姜宗伯,李澍,刘颖颖
1.重庆大学 生物工程学院,重庆 400044;2.中国食品药品检定研究院 医疗器械检定所,北京 102629;3.北京医药健康科技发展中心,北京 100035
随着人工智能、物联网、大数据、云计算等技术不断融入医疗行业,信息数据在患者、医生、医疗机构、医疗设备之间交互,医疗服务逐步走向智能化[1]。新一代信息技术正在加速与医疗器械融合创新,人工智能辅助诊疗产品、可穿戴健康监测设备、远程诊疗设备等新技术产品加速普及应用,智能化医疗器械正在改变传统的疾病预防、检测、治疗模式,为提高人民群众健康质量提供新的手段。智能化医疗器械具有智能化、网络化、数字化等特点,其安全性直接关系到人身安全、财产安全以及个人信息权益。
在充分利用新技术为整个医疗器械行业带来革命性进步的同时,如何解决随之而来的信息安全问题值得我们分析探讨[2]。如今的医疗设备已经从独立的系统过渡到互联互通、网络化的设备,这些设备严重依赖于更智能、更便捷的软件,越来越多的医疗设备具备患者信息存储、处理和网络通讯能力,从而提供更高效的患者护理服务。随着医疗设备在医疗机构资产和效益中的权重逐渐增加,医疗设备更加频繁地参与电子健康信息的交换活动,网络信息安全问题变得越来越重要[3-4]。随着互联网技术在医疗领域的广泛应用,具备网络连接功能以及无线连接功能的医疗器械不断出现[5],有效提升了医疗工作的质量和效率[6],但是网络数据信息危险也相应增加,导致器械信息面临网络攻击,受到包括勒索、盗取和破坏医疗数据的威胁[7-8]。医疗器械网络出现安全威胁后的影响十分恶劣,例如,侵犯患者隐私,同时可能产生医疗器械非预期运行的风险,导致患者或使用者受到伤害甚至死亡[9]。造成智能医疗器械信息安全问题的主要原因有软件质量问题、网络攻击、信息安全监管缺失以及木马病毒等[10],为了避免因发生网络安全问题而造成的后果和影响,除了运行时对网络安全的维护,投入使用前对潜在的网络安全问题的预防也至关重要,对场景下各个医疗器械和接口之间以及数据流进行分析,发现可能存在的威胁及漏洞并制定预防措施成为了必不可少的步骤。
目前我国对医疗器械网络信息安全性虽然已有一些标准要求,但适应性广[11],并没有完备的评价标准或流程来评判场景下医疗器械的网络信息安全性,评价研究尚未充分开展,相关研究报告较少,也尚未形成标准。在医疗健康场景中,数据的时效性、完整性等尤为重要,在数据的传输存储过程中,一旦发生泄露、篡改或丢失,则会侵犯使用者的隐私,甚至影响医生的判断进而最终影响患者的健康或治疗。
结合医疗健康场景的特殊性,本文对模拟构建的医疗健康场景下的医疗器械及接口的数据流进行分析并构建出数据流图,运用Microsoft 威胁建模工具根据STRIDE 模型生成漏洞列表,对扫描出的漏洞进行分类、分析并制定预防策略,并通过参考通用安全漏洞评分系统(Common Vulnerability Scoring System,CVSS)模型和渗透测试等方法验证漏洞的可利用性与降低风险措施的有效性,达到对可能发生的网络安全问题进行预防的目的,为医疗健康场景下医疗器械网络信息安全评估规范和标准的制定提供参考。
在分析医疗健康场景的网络安全问题时,由于场景的特殊性,需要特别关注通信过程中的性能,包括数据的完整性、可靠性、传输速率与距离、延时以及功耗等问题。医疗数据和患者信息在医疗设备、服务器系统、数据库之间传输和存储等过程中一旦发生泄露,则会侵犯患者的隐私。在医生进行远程诊断等线上操作时,数据传输的可靠性及延时成为了需要考虑的重要因素,直接影响到医生的判断,关系到患者或用户的治疗与健康。所以在分析场景的网络安全问题时,要针对场景的特殊性制定专门的、适合场景的方法和策略。
为了针对医疗健康场景的特点及特殊性,探究其网络安全问题的解决方法,本文通过模拟用户或患者在家庭及医院所处场景中的医疗设备及主动健康设备、场景中的节点及数据传输模式,构建一个医疗健康场景,见图1。在家庭场景中,用户在家中使用血压计、血糖仪、呼吸机、心电检测仪等医疗设备及主动健康设备测量自身数据,仪器通过蓝牙或者Wi-Fi 上传至手机或PAD,经路由器最终上传到服务器中。医院场景中,院内的医疗器械设备直接通过网络上传至服务器。服务器将采集测量到的数据储存在数据库中,并将数据传到报告分析系统,系统对用户的数据进行分析并生成用户检测报告单上传到PC 端及用户手机上,医生可以通过PC 端查看患者的数据做出诊断和给出治疗意见,用户和患者可以通过移动端查看检测报告和医生诊断结果和意见。
图1 医疗健康场景示意图
STRIDE 威胁建模[12]是微软提出的一种风险分析和评估工具,几乎可以涵盖所有的安全问题[13]。该方法将威胁类型分为假冒(Spoofing,S)、篡改(Tampering,T)、否认(Repudiation,R)、信息泄漏(Information Disclosure,I)、拒绝服务(Denial of Service,D)和权限提升(Elevation of Privilege,E)。假冒(S),指用户冒用他人的认证信息;篡改(T),指未经授权对数据进行修改;否认(R),指用户拒绝从事活动,并且没有任何办法可以证明他在拒绝承认;信息泄露(I),指信息泄露给无权知晓该信息的人员;拒绝服务(D),指拒绝服务攻击;权限提升(E),指原本低权限的用户获得了更高的权限,从而可以进行危害系统的活动[12-14]。每类STRIDE 都会根据数据流的元素产生漏洞,威胁建模可以对最可能影响系统的威胁进行系统识别和评价[14]。
本文选择使用Microsoft 威胁建模工具来实现对场景的建模和生成威胁列表,威胁建模工具是Microsoft安全开发生命周期的核心要素。潜在安全问题处于无须花费过多成本即可相对容易解决的阶段,软件架构师可以使用威胁建模工具提前识别这些问题,因此可以大幅减少开发总成本。此外,设计该工具时考虑到了非安全专家的体验,为他们提供有关创建和分析威胁模型的清晰指导,让所有开发人员都可以更轻松地使用威胁建模。
在医疗健康场景中,患者的隐私及医疗数据和医学图像的完整性尤为重要,即使是很小的泄露或者改变都可能会给患者或用户造成重大影响和威胁,建模的过程中需要着重针对数据进行考虑。因此,基于医疗健康场景的特殊性,本文选择使用Microsoft 威胁建模工具,通过Microsoft 威胁建模工具可以创建数据流图,分析数据流图自动生成潜在威胁列表,绘制数据流图分析各个外部实体与系统之间的数据交互关系。系统体系结构和数据流图分析是通过对系统的总体架构和业务流程的分析,划定业务系统的数据流和安全边界[15]。Microsoft威胁建模工具可以通过数据流图分析出漏洞,根据潜在的漏洞提出缓解措施,并生成报告,列出已识别和已缓解的威胁,还可以为威胁建模创建自定义模板。
1.4.1 建模绘制数据流图并生成漏洞列表
对系统环境进行分析,确定场景下的各个设备和参与的角色,确定数据资源并将参与者映射到资源;进行系统分解,对每种设备类型的数据流进行建模,识别威胁面;对数据流模型进行系统分解,以创建漏洞列表;确定系统边界,作为设备类型建模的一部分,边界用于定义固有信任区域。信任边界被描述为虚线框,当在模型中使用时,指示边界的两侧不信任另一侧。因此,当数据流跨越信任边界时,其将成为不可信的数据流,并产生可能的漏洞。利用Microsoft 威胁建模工具绘制数据流图并生成漏洞列表,通过STRIDE 模型对医疗设备系统中的潜在威胁进行识别并分类。
1.4.2 对漏洞威胁进行评分
CVSS 是由美国国家基础设施顾问委员会(NIAC)开发、事件响应与安全组织论坛(FIRST)维护的一个开放的计算机系统安全漏洞评估框架,是公开的行业评测标准,用来评估漏洞的严重程度。CVSS 将每个漏洞量化为0~10 的具体分值,分数越高,危险级别越高[16-18]。但由于医疗健康场景的特殊性,评分的标准应该针对场景进行相应的调整,需考虑到数据泄露或篡改、传输过程中的延时等造成的影响,根据数据存储传输过程中的完整性、机密性、可利用性以及时效性等因素,调整相应分值的比重。通过基本评估、时间评估、环境评估3个维度,在生成漏洞列表后,参考CVSS 对潜在威胁进行评分,并确定威胁的优先级顺序。
1.4.3 风险降级
根据评分的结果,针对STRIDE 的威胁类别提出相应的缓解措施方案,进行风险降级。而后利用Nmap、Hscan、Nikto、SQLMap、Burpsuit 等渗透测试工具和信息收集、端口扫描、Web 端口手工访问与探测、弱口令探测、配置文件与数据库检查等渗透测试技术[19]对整个场景进行渗透测试,并用CVSS 对降级后的风险进行评估,以验证漏洞的可利用性和降低风险措施的有效性,确保漏洞都降低到可接受的风险水平。
对医疗健康场景进行分析,利用软件Microsoft Threat Modeling Tool 针对场景绘制流程图(图2),并生成威胁建模报告。
图2 医疗健康场景数据流图
分析每个数据流及相关处理过程是否有STRIDE 各类威胁存在,识别并记录威胁。针对设备及系统的处理过程、数据流和数据存储及外部实体的访问可能存在的各种威胁进行分析,共有66 个威胁,包含15 个S(假冒)、3 个T(篡改)、10 个R(否认)、4 个I(信息泄露)、14 个D(拒绝服务)和20 个E(权限提升)。由于威胁个数过多且有一定重复性,根据类型整理归类出可能存在的威胁的风险描述及分析如表1 所示。
表1 各类威胁的描述分析
通过对模拟的医疗健康场景构建数据流图并使用Microsoft 威胁建模工具生成漏洞列表的结果表明,本研究方法用于发现场景下的网络安全问题并寻找解决办法是可行的。对于医疗健康场景下的网络安全,应该更加注重对患者隐私及数据的保护,要保证患者的隐私安全,保证医疗数据不会泄露或被篡改导致影响医生的判断甚至影响患者的健康和安全。在生成威胁列表对威胁进行分类分析后,结合医疗健康场景的特殊性,根据CVSS制定评分策略。新的评分策略既要关注医疗系统的风险识别、安全防御、检测、恢复、响应以及可控性等因素,还要关注医疗数据的完整性、保密性、可用性、异常识别以及备份恢复等因素,并根据评分结果结合医疗健康场景的特殊性针对每一类威胁制定威胁缓解措施进行风险降级。
(1)当患者、医护人员与医疗器械及系统或医疗器械系统与数据库发生信息的传递或交互时会产生假冒(S)威胁,可以使用强身份验证以及加密算法进行加密等方法来缓解威胁。例如,当数据库被攻击者欺骗时可能会导致数据被写入攻击者的目标而不是数据库,以及服务器或系统被攻击者欺骗可能导致未经授权访问服务器或系统,可以使用标准身份验证机制来标识目标数据存储及系统服务器。
(2)当使用人员对医疗器械及系统发送请求时会产生篡改(T)威胁,使用者请求的数据可能被攻击者篡改,可以采取授权管理、数字签名、输入验证及物理方法等来缓解威胁。例如,使用者与医疗器械系统进行交互时可能缺乏输入验证,流经请求的数据可能被攻击者篡改,导致针对医疗器械系统的拒绝服务攻击、特权提升攻击或信息泄露。未能验证输入是否符合预期是问题的根本原因,可以考虑所有路径及其处理数据的方式,使用批准的列表输入验证方法验证所有输入的正确性。
(3)当使用人员与医疗器械及系统进行请求及响应时,发生数据的传递与交互时会产生否认(R)威胁,导致未从信任边界另一端接收到数据,可以采取数字签名、系统审计等方法来缓解威胁。例如,医护人员对系统发送请求时,系统声称没有从信任边界之外的源接收数据,可以考虑使用日志记录或审核来记录接收数据的源、时间以及摘要。
(4)当对数据库的数据进行读取和使用人员对医疗器械及系统发送请求时,会产生信息泄露(I)的威胁,发送请求的数据可能会被攻击者嗅探,用来攻击系统的其他部分。当信息可以被未经授权的一方读取时,就会发生信息泄露,可以对数据流进行加密,使用授权管理、隐私增强协议等方法来预防。例如,服务器读取数据库信息时可能会发生资源的弱访问控制,导致攻击者可以读取其他信息,可以使用查看授权设置;医护人员对系统发生请求时流经请求的数据可能会被攻击者嗅探,根据攻击者可以读取的数据类型可能被用来攻击系统的其他部分导致泄露信息,可以使用加密数据流。
(5)当进程或数据存储无法为传入请求提供服务或无法按规范执行时,会发生拒绝服务(D)。当医疗器械及系统发生故障停止运行或运行缓慢,以及数据库发生过度的资源消耗时,会对传入的请求拒绝服务,可以提高网络带宽或关闭不必要的服务和端口来提高抵抗拒绝服务的能力,使用身份验证、过滤、限流等方法来缓解威胁。
(6)医疗器械系统及服务器可能会被利用bug 来实现获得增强的功能或特权产生权限提升(E)威胁。例如,攻击者将数据传递到系统中,以便将系统中的程序执行流程更改为攻击者的选择;医生对系统发生请求时,攻击者可以模拟请求的上下文来获得额外的特权;攻击者对系统使用远程执行代码获得特权提升,可以采取最小权限原则及强授权等方法来预防威胁。
进行风险降级后,根据医疗健康场景的特殊性,针对场景下的数据传输存储及医疗系统等,进行侧重于医疗健康场景的渗透测试,并使用新的评分策略进行评分以验证漏洞的可利用性和降低风险措施的有效性,确保漏洞都降低到可接受的风险水平。
本文根据医疗健康场景的特点及特殊性,通过模拟移动救治和个人家庭的场景讨论检测并解决其网络安全的方法,为场景下的网络安全问题分析和预防提供思路。但是没有实际搭建场景和系统来通过实验具体验证其可行性,未来的研究方向可以针对医疗健康场景,制定符合医疗健康场景特殊性的漏洞评分标准及渗透测试方法,搭建实际的场景和系统来验证其科学性及可行性。
本文结合医疗健康场景的特殊性,通过Microsoft 威胁建模工具对模拟的医疗健康场景进行建模分析,绘制数据流图生成威胁列表,对威胁进行分类、分析并参照CVSS 制定针对医疗健康场景的评分策略,提出解决办法缓解威胁并进行风险降级。可以科学有效地分析出医疗健康场景下可能遇到的威胁及网络安全问题,在一定程度上避免或预防了由网络安全问题带来的后果及影响,为场景下的医疗器械网络安全问题的分析和预防提供思路。