REDCap系统开放API安全性的研究与实践
2019-04-04耿辉田国祥贺海蓉马茂张勇曾宪涛吕军
耿辉,田国祥,贺海蓉,马茂,张勇,曾宪涛,吕军
开放的Web业务系统,带来跨越时间和距离的工作流技术,人们在享受方便快捷的同时,也会因为基于各种动态Web技术开发的B/S(浏览器服务器)模式系统产生的安全隐患而担忧,越是深化网站内部共享数据服务接口,越是需要对开放平台使用者进行严格的权限和安全性审查,对系统管理者也提出了更高的技术性要求,REDCap系统提供多种模块化的API负责完成接收请求,身份校验,权限检查,行为监控,服务转发,返回结果的工作,使得科研人员在一个web平台就可以完成数据收集、数据过滤、图表说明、科研统计等复杂问题。
1 REDCap系统在各种临床研究项目中的应用
电子数据采集系统(REDCap)是由范德堡大学的保罗·哈里斯(PaulHarris)教授团队开发网络应用程序,旨在帮助研究人员系统性捕获临床研究数据、创建研究项目和数据库。程序基于工作流系统,专注于收集数据并将其导出到统计程序和其他数据分析软件中进行专业数据处理,REDCap系统为研究小组收集和存储的高度敏感信息提供安全的环境,世界范围内多个医学研究中心都在使用REDCap系统建立科研项目和数据库数据处理[1,2]。通过前面文章的介绍[3-6],相信对REDCap系统的架设和应用学者们已经有了系统化的认识,下面本文通过世界范围内REDCap系统在多个医学行业的应用进行介绍:
2017年Kaur等学者用REDCap系统对11例患者,3名整容外科医生和行政人员进行了半结构式访谈,从不同地点(家庭或整容手术室)收集数据,分别使用不同的模式(纸张与电子问卷),参与研究的所有人员都更倾向于使用电子问卷[7]。2018年2月~3月期间,Hendry等学者通过REDCap系统开展了一项关于受过教育的成年人群的足部疼痛和足部健康调查,本研究的目的是:描述受过教育的成年人群的足部疼痛和足部健康特征;探讨中度至重度足部疼痛与多种因素之间的关联;评估中度至重度足部疼痛与足部
功能,足部健康和与健康相关的生活质量间的关联。结果是在受过大学教育的人群中,中度至重度足部疼痛非常普遍,且与女性,高体质指数,拇囊炎,背痛,髋部疼痛和较低的职业阶层独立相关。中、重度足部疼痛的存在与足部功能,足部健康和与健康相关生活质量的较差得分相关。教育程度与中度至重度足部疼痛无关[8]。2018年Varghese等研究者在先前REDCap系统工作基础上,建立了一个拥有大量医疗数据模型的欧洲信息基础设施,该项目对所选数据模型和用户定制的最小数据集便于研究者对研究项目早期规划和开发。该在线工具提供了用户便捷开展新项目的方法,可重复使用,从而使项目更好的标准化或从已发布模型项目中学习,成为新研究项目的设计蓝图[9]。2013年6月~2015年12月期间Agrawal SK,Shenoy SS,Nalawade N等开展了据11个公布的乳腺癌前哨淋巴结活检的质量指标评价前哨淋巴结活检(SLNB)取代腋窝淋巴结清扫术(ALND)作为早期乳腺癌的标准治疗方法。研究者用REDCap数据系统从所在医院接受SLNB的乳腺癌患者中提取临床,病理和随访数据。该研究支持SLNB的已发表质量指标评价在早期乳腺癌患者队列中筛查的适用性[10]。2015年鉴于临床注册管理机构需要收集高质量准确的数据,但是,目前手动收集数据存在高错误风险,罗切斯特大学神经外科学者Pittman等与该大学的临床和转化科学研究所合作,实施了生物学和床边信息学与电子数据采集(REDCap)系统的整合使用,完成标准化电子数据收集[11]。儿科神经外科培训不足以应对低收入和中等收入国家日益增长的疾病负担, CURE Hydrocephalus和Spina Bifida(CHSB)奖学金提供强化的亚专科培训计划,旨在为LMIC的外科医生提供最先进的手术技巧和设备,以最有效地管理儿童期常见的神经外科疾病。在乌干达姆巴莱的CURE儿童医院(CCHU)接受为期8周的培训期之前,准研究员及其家庭机构接受REDCap系统搭建平台进行全面评估。截止2018年,该奖学金已经为20个不同的中低收入国家培养了33名外科医生,他们每年独立完成数千次脑积水和脊柱裂手术[12]。2018年英国的Gardiner MD,Giblin V等学者对实施了基于腹部的微血管乳房重建手术后恢复(ERAS)方案进行研究意向改善患者的术后护理。接受腹部微血管乳房重建的妇女围手术期护理的变化。基于REDCap系统开展整形外科医生,麻醉师和主要临床医生调查用于每个单元的乳房重建,这些调查评估了围手术期护理的大部分方面。这项研究实践调查显示,接受腹部微血管乳房重建的女性围手术期护理存在差异,本文的学者们提出一项大型前瞻性实验,以评估当前的方案并进行随机对照试验,以改善目前的护理方案[13]。Boller等学者报告了2013年9月1日~2017年3月31日的来自美国兽医紧急和重症监护兽医创伤委员会(VetCOT)登记处的总结数据,多机构兽医将具有创伤证据的狗和猫向兽医创伤中心(VTC)提交了数据,VetCOT为狗和猫创伤创建了标准化的数据收集方法,数据被输入人员录入REDCap系统包括人口统计学数据,创伤类型(钝器与穿透),入院前护理,住院和重症监护要求,呈现时的创伤严重程度评估(例如,改良的格拉斯哥昏迷量表和动物创伤分类评分),关键实验室参数,外科手术干预的必要性以及案件结果被收集。报告了每个物种的描述性数据[14]。
2 REDCap系统的API接口模块安全性设置
开放的系统平台也带来了同样多的数据安全问题,获取电子化的数据集对于研究者来说非常重要,因为它可以直接作为验证统计的公共数据源资源,研究者通常通过网页表单和Web服务API访问此类数据集。基于网络协议(如http)的接入技术已使用了10余年,并且在整个行业中被广泛采用于各种功能(如,搜索,商业交易和社交媒体),几乎所有架构都采用这些技术,为用户提供访问和共享数据的工具,提供多种接入点可确保用户能够以最简单,最有效的方式访问数据以满足其特定需求,越是开放的接口越意味着在选择接入之前,必须了解具体需求和权衡安全性,后者需要重视第三方应用安全漏洞带来的隐患而影响系统整体的安全系数,但是,所有系统都不可能保证100%没有安全漏洞,要求所有的第三方开发者开发出非常安全的应用也是不现实的,所以需解决开放API后的安全性问题,REDCap系统提供了如下几种方案:①服务权限分级开放。在认证和授权中,管理员尽量做到“最小化授权”。在API服务里面,对接入的API的应用进行数据分级开放是非常有必要的,应基于接入应用使用数据进行分级处理。②权限按需求划分。权限按需求分级的附加目的是识别可能的风险并使风险可控。比如某第三方应用的安全攻击对平台其它用户并无太大影响,而只是影响到该项目使用者自身数据。③开发者资格审查。对于研究项目的管理者而言,针对某一科研项目的开发者进行资质审查和必要的安全告知,是系统管理员必须做到的。④第三方应用接入审查。应用接入审查不仅包括安全检查,还应加入业务规则检查。
REDCap系统的API接口模块接口的安全性主要围绕Token机制展开设计,保证接口的数据不会被篡改和重复调用,服务器配置和授权检查第一步主要关注服务器的登录帐户。Token机制是开放平台的身份认证体系:用户名和密码认证是身份认证体系中的第一道关卡,进入系统后服务器会验证用户是否有权限调取该项目进行研究,审核通过后,采用Token授权机制,这是第二层关卡,用户使用用户名密码登录服务器后申请一个特定的Token,并将Token以键值对的形式存放在服务器上,经过用户的下载后,使用第三方软件开发时向服务端发送Token验证请求,服务器接收到请求后进行Token验证是否存在,不存在则说明请求无效并抛弃。Token机制作为独立的安全主体,对来自安全边界以外的每一次访问请求都需要做独立的身份认证,通常REDCap系统需要认证两类身份:一类身份是应用身份,一类是用户身份。针对应用身份的认证一般是通过用户的授权码(Token)完成的。这个机制中,需要开放平台生成的应用授权码具备以下特性以确保安全:①唯一性。每个Token必须唯一标示一个指定用户身份防止冒用。②不可破解。Token的生成方式必须是随机因子,使它难以被暴力破解。③时效性。尽管开放平台基于方便开发者和使用者的考虑,对Token的时效性没有做要求,但是从安全管理的角度,为Token设置一个有效期并实行过期提醒策略,督促开发者和使用者更新Token,这是非常有必要的,过期时间一般设为6个月左右对一个科研项目来说比较合适。④项目管理者或系统管理员应提供Token暂时失效能力。即项目开发者或使用者发现身份被盗用后迅速通知管理员切断Token的登陆机制,该能力应常备作为REDCap系统的运维团队作处理紧急情况使用。
3 基于REDCap系统保证API接口安全模块的有效性
对于REDCap系统而言,开放API接口意味着数据库需要承受更大的风险,因此权限检查是必需的,应做到如下几点:①系统管理员通过服务器控制中心的“浏览用户”部分验证用户是否拥有系统帐户;②系统管理员需要在项目的“用户权限”部分中验证用户是否拥有执行该项目的权限,特别需要注意的是如果一个用户的用户名和密码虽然不能登陆,系统管理员核发给用户的API接口仍然有效,因为REDCap系统API调用机制是使用令牌而不是密码;③系统管理员应通过服务器控制中心的“浏览用户”部分核实用户是否已经通过电子邮件验证其帐户,合法使用API的用户应该拥有“已验证”的标签和图标(图1粉红色圈中标出)。
3.1 系统管理员应验证用户是否已获得该项目的导入、导出权限 可在项目中的“用户权限”部分或API部分中进行验证(图2)。
3.2 通过验证并核实无误后,系统管理员授予合法用户使用API接口令牌的权限 指导其使用。
3.3 REDCap系统的API每次执行完函数会返回一个HTTP状态代码 下面是可能从API返回所有HTTP代码以及每个代码表示的内容的完整列表。
图1 用户邮箱已验证示意图
图2 系统管理员授予用户API接口权限
4 结语
REDCap系统开放API接口能够为用户跨越多个行业领域进行数字业务整合,但是开放的接口必然为管理人员带来更高的技术性上安全性要求,REDCap系统提供了标准化的API后,即可将多个支持该标准第三方的应用接入开放平台。本文通过对开放API的安全性问题进行系统化介绍,期望引起项目管理人员对开放API后数据安全性预先做以全面的规划和架构,避免出现恶意程序攻击系统导致数据崩溃而无法挽救的情况。