医用机器人网络安全问题研究与探讨
2020-10-12王晨希孟祥峰王浩李佳戈
王晨希,孟祥峰,王浩,李佳戈
中国食品药品检定研究院 光机电室,北京 100050
引言
机器人不仅用于工业领域,在医疗系统也已得到推广应用。机器人在医疗界中应用的相关研究主要集中在外科手术机器人、康复机器人、护理机器人和服务机器人方面[1]。近些年,随着通讯技术的迅猛发展,远程通讯覆盖率和传输速度得到了很大提升,远程医疗在医用机器人领域也得到了广泛应用,如医生能够为远端病人进行手术前期诊断、手术方案确定和手术治疗,使得患者能够得到及时有效的治疗[2]。远程医疗技术推动了医用机器人产业的进步,同时带来的网络安全问题也应当引起关注[3]。
2001 年9 月7 日法国医生雅克·马雷斯科在美国纽约通过网络远程遥控在法国斯特拉斯堡手术室中的ZEUSTM机器人把装有微型光纤摄像头的内窥镜导入一位病人的腹部,然后使用解剖刀和镊子摘除了可疑的胆囊组织,实现了世界上首个跨洋胆囊摘除手术。国内方面,2018 年12月18 日,中国人民解放军总医院(301 医院)第一医学中心肝胆外二科主任刘荣医生利用5G 网络,远程无线操控机器人床旁系统,为50 公里外的一只实验猪进行了肝脏楔形切除手术[4]。技术创新的日新月异往往伴随着新风险引入,远程医疗技术与医用机器人产业的结合带来了很多新的问题和挑战,其中最为重要的就是网络安全问题。IOActive 网络安全公司长期以来一直在探索医用机器人的网络安全问题,2019 年,这两个机构披露了在医用机器人控制软件中的大约50 个缺陷。攻击者可能会利用这些缺陷来远程控制医用机器人、渗入网络、窃取数据并造成损失。例如,修改被感染模块文件以更改机器人的默认操作、禁用临床功能,将错误的数据发送到命令与控制服务器,导致临床使用风险。IOActive 专家在2018 年卡巴斯基安全分析师峰会上第一次对医用机器人进行了勒索软件攻击,以研究这类攻击所需的关键要素以及黑客成功后会产生的影响。事实证明医用机器人在临床使用过程中由于网络安全导致的问题是存在的,并且后果是很严重的[5]。
本文依据相关研究,发现当前医用机器人技术面临的威胁以及在临床使用过程中的网络安全问题,阐述相关威胁造成的损害,目的是提高医用机器人在使用过程中的安全性,防止攻击者利用漏洞对患者及其周遭环境造成严重损害[6]。
1 医用机器人的网络安全问题
为了识别医用机器人可能遭遇的网络安全问题,需要明确医用机器人生态系统的结构。医用机器人生态系统通常由物理机器人、操作系统、固件、软件、移动/远程控制应用程序、供应商互联网服务、云服务、网络等组成[7]。整个生态系统呈现出一个巨大的攻击面,具有多种网络攻击选项。关注于手术机器人的高级别和关键的网络安全风险,因此需要重点评估机器人生态系统中最易访问的组件,如:移动应用程序、操作系统、固件映像和软件,这些组件为医用机器人提供了大部分功能得以实施的基础。
医用机器人生态系统组件中的网络安全漏洞类型较多,其中许多是常见问题,主要体现在以下七个方面。
1.1 不安全的通信
通信允许用户和生态系统组件无缝交互,是医用机器人生态系统的重要组成部分。例如,用户可以用计算机为医用机器人编程,可以用移动应用程序实时发送命令,或者医用机器人可以连接到供应商的互联网服务/云以进行软件更新和运行应用程序等[8]。通过使用加密的强通信来确保医用机器人的安全至关重要。否则,攻击者很容易截获通信和窃取机密信息,危害机器人生态系统的关键组件,入侵机器人等。
事实上,目前大多数医用机器人使用的是不安全的通信。通过互联网、蓝牙、Wi-Fi 等与医用机器人连接的移动和软件应用程序,并未适当保护通信信道。他们用明文或弱加密发送关键信息。一些医用机器人甚至可以在没有任何保护的情况下通过明文向供应商服务或云发送数据来连接互联网。
1.2 身份验证问题
正确识别有权访问的用户非常重要。只有有效的用户才能对医用机器人编程或向医用机器人发送命令。无法防范未经授权的访问意味着攻击者可以在没有有效用户名和密码的情况下轻松远程使用某些医疗功能,从而从本质上控制医用机器人。
大多数医用机器人都公开了一个或多个可以通过计算机软件、移动应用程序、互联网服务等远程访问的服务。这些服务包括复杂和关键的功能,如编程机器人和接收外部命令,以及返回基本机器人信息等简单的功能。如果找到不需要用户名和密码的关键机器人服务,允许任何人远程访问这些服务。在某些情况下,则可以绕过身份验证,从而允许在没有正确密码的情况下进行访问。这是目前最关键的问题之一,即系统忽略用户身份验证,致使非授权用户远程入侵医用机器人[9]。
1.3 缺少授权问题
医用机器人操作系统中所有robot 功能应仅可由具有适当权限的授权用户或资源访问。如果未正确实现授权,则未经授权的攻击者可能会滥用robot 功能[10]。大多数医用机器人不需要足够的授权来保护其功能,包括在医用机器人中安装应用程序、更新操作系统软件等关键功能。这使得攻击者能够在未经许可的情况下在医用机器人中安装软件,并获得对其的完全控制。
1.4 弱密码问题
数据保护是确保完整性和隐私的关键。医用机器人可以存储敏感信息,包括密码、密钥、患者信息和系统设置,并将这些信息发送到移动应用程序、互联网服务、计算机软件等,这意味着必须对通信信道进行加密,以避免数据泄露[11]。医用机器人还可接收远程软件更新,需要进行适当的加密,以确保这些更新是可信的,并且没有被恶意软件修改。但是当前大多数医用机器人要么没有使用加密,要么使用不当,将敏感数据暴露给潜在的攻击者。
1.5 隐私问题
医用机器人生态系统可以包括患者信息的获取,这取决于医用机器人及其预期用途。其中一些患者信息应保密,不得与医用机器人所有者以外的任何人共享。隐私信息包括个人信息、检查诊断数据及与医用机器人生态系统本身有关的数据。用户应该完全控制这些信息以及控制何时与谁共享。然而,医用机器人的移动应用程序在未经用户同意的情况下向远程服务器发送私人信息,包括移动网络信息、设备信息和当前GPS 位置。这些信息可以在用户不知情的情况下用于监视、跟踪和窃取目的。医用机器人还可以在没有身份验证的情况下远程公开患者信息,允许任何人访问[12]。
1.6 弱默认配置问题
大多数医用机器人都提供了一组功能,这些功能可以通过机器人中的软件服务进行访问和编程。默认情况下,应安全配置这些功能,以便只有经过授权的用户才能访问它们。它们还应受到密码保护,允许授权用户启用/禁用它们。当前医用机器人具有不安全的特性,这些特性不容易被禁用或保护,以及具有默认密码的特性,这些特性要么难以更改,要么根本无法更改。这意味着任何人都可能滥用医用机器人的功能,因为默认密码通常是公开的,或者由于机器人模型共享相同的默认密码,因此很容易获得。
1.7 易受攻击的开源框架和库问题
大多数医用机器人使用开源框架和库。其中最流行的是机器人操作系统(Robot Operating System,ROS),用于多个供应商的多个医用机器人中。ROS 存在许多已知的网络安全问题,例如明文通信、身份验证问题和弱授权方案。所有这些问题都使医用机器人不安全。在医用机器人研发领域,用于开发和编程的软件框架、库、操作系统都是开源共享的,这已经成为行业内的不变现象,事实上这些开源的软件框架、库、操作系统是存在安全隐患的,极容易被黑客利用,攻击机器人本身[13]。
总之,并非所有的医用机器人都会受到上面提到的每一个网络安全问题的攻击,也并非每个医用机器人都会有网络安全漏洞,但是网络安全问题在医用机器人领域应当得到足够的重视。可以看到医用机器人界存在一个广泛的问题:研究人员和制造商在世界范围内使用相同或非常相似的工具、软件和设计实践。例如,作为研究项目诞生的医用机器人在没有附加网络安全保护的情况下成为医疗产品是很常见的;最终产品的安全状况与研究或原型机器人保持不变。这种做法导致网络安全防御不力,因为研究和原型机器人通常在设计和制造时很少或者根本没有保护措施。医用机器人网络安全的缺失在现实生态中是显而易见。
2 医用机器人易受到网络攻击的方式
医用机器人根据预期用途和场景不同有着不同的功能,功能越多,医用机器人通常就越先进和智能。但这些功能也会使医用机器人更容易受到攻击,更容易被攻击者滥用。
近些年,医用机器人制造商发布的产品,某些功能正在成为趋势,这些共同的特性提高了可访问性、可用性、互连性和可重用性,例如,带有移动应用程序的实时远程控制。然而,从网络安全的角度来看,这些特性中的许多都使医用机器人更加脆弱,更易被攻击,许多这些特征都存在着严重和很高风险的网络安全问题。其中一些可能被直接滥用,另一些则带来严重威胁[14-15]。医用机器人功能可能面临的威胁和攻击见表1。
表1 医用机器人功能可能面临的威胁和攻击
3 改进医用机器人网络安全能力
构建安全的医用机器人并不是一项简单的任务,制造商应当结合医疗机器人的预期用途、使用环境和核心功能以及相连设备或系统的情况来确定产品的网络安全特性,并采用基于风险管理的方法来保证网络安全:识别资产、威胁和脆弱性,评估威胁和脆弱性对于产品和患者的影响以及被利用的可能性,确定风险水平并采取适宜的风险缓解措施,基于风险接受准则评估剩余风险。要进行深入研究分析,有针对性地提出解决方案。
3.1 全生命周期安全性
医用机器人一般是包含嵌入式软件的,用于控制驱动硬件设备等,制造商必须实现安全的软件开发生命周期过程[16]。从软件的需求分析、设计、开发、测试、维护、退市等阶段均考虑引入网络安全技术要素。制造商应当在医用机器人整个生命周期过程中持续关注网络安全问题,包括产品的设计开发、生产、分销、部署和维护。同时,制造商应当结合自身质量管理体系的要求和医疗器械产品特点来保证产品的网络安全,包括上市前和上市后的相关要求,如风险管理、设计开发、网络安全维护及用户告知等要求。此外,制造商可采用信息安全领域的良好工程实践来完善医用机器人的网络安全管理,保证产品的安全性和有效性。一般从六个阶段进行相关安全活动,见表2。
表2 安全活动和描述
3.2 加密
从医用机器人的安全角度,制造商必须要考虑数据加密问题,包括存储加密和传输加密。制造商要保证储存在医用机器人存储设备上的数据是安全的。基于风险分析,必须考虑对存储在产品上的数据进行加密。加密可以保护临床用户、提供服务和收集临床数据的应用程序工程师的机密性/完整性。应使用一种与传统使用、服务访问、紧急访问一致的加密密钥管理机制。加密方法和强度考虑了数据的容量(记录收集/聚合的程度)和灵敏度。应根据医用机器人的预期用途、使用方式和风险评估综合考虑此项能力的验证与确认。
对于传输的保密性,制造商必须正确加密医用机器人通信和软件更新,医用机器人与外部软件和硬件进行数据交换时,务必使用加密技术,传输前使用相关算法进行加密,传输结束后进行解密,保证数据在链路上加密传输;对于医用机器人内部软件的更新应采取加密机制,对于授权用户进行软件更新时应采用密码验证的方式,同时密码应动态更新,防止硬编码的情况出现。例如,主从式医用机器人数据传输采取AES+Base64 加密方式,即采用对称加密的方式,主手将指令数据使用密钥将明文数据加密成密文,然后发送出去,接收方收到密文后,使用同一个密钥将密文解密成明文读取。
3.3 认证和授权
制造商应对医用机器人进行经过身份验证的单个用户进行标识,授权功能允许每个用户仅有访问已批准的数据权利,并仅在产品上执行已批准的功能。授权用户包括注册申请人安全控制人员和该策略定义的服务人员。软件功能通常支持基于许可的系统,提供对注册申请人安全控制人员中个人角色(基于角色的访问控制)适当的系统功能和数据的访问。例如,操作者可使用所有适当的医用机器人功能执行指定的工作,管理员可使用操作者管理、产品维护等功能。
制造商必须确保只有授权用户才能访问医用机器人服务和功能。确保医用机器人的使用者、管理者、维护者、拥有者得到合适的授权是重要的风险控制手段。用户权限的管理可以提升保密性、完整性与可核查性。以一种方式管理账户以保护产品数据访问的能力,操作者可能需要将个人首选项与操作者账户关联。这可能有助于多个运营商、部门,甚至多个使用的医用机器人和系统。控制对产品、网络资源和健康数据的访问,并生成不可否认的审计跟踪[17]。
3.4 工厂恢复
制造商必须提供将医用机器人恢复到其出厂设置状态的方法。医用机器人被攻击后可能导致恶意软件或脚本的注入,使得机器人的全部或部分功能失去控制,从而导致临床使用的巨大风险,恢复出厂设置可以将医用机器人各参数恢复到出厂状态,删除恶意软件和脚本,医用机器人重新恢复使用。此外工厂恢复应该将医用机器人存储介质上的数据进行覆盖删除,应避免数据在被清除之后被重新恢复。
3.5 默认安全
制造商必须确保医用机器人的默认配置是安全的。应当保证医用机器人出厂前默认设置是安全的,比如,端口的开放,安全传输协议,加密格式存储等设置应保证安全。应合理保证储存在医用机器人存储介质上的数据是和保持安全的方式与设备上数据记录的灵敏度和容量成比例。系统合理地避免了可能危及完整性、保密性或可用性的篡改或组件删除。篡改(包括设备移除)是可以检测到的。应根据医用机器人的预期用途、使用方式和风险评估综合考虑此项能力的验证与确认。
医用机器人的默认安全能力应该考虑网络安全配置能力,管理员能够选择使用产品安全功能,包括与安全能力控制交互的特权管理方面,同时也应考虑网络安全升级能力,根据客观的、权威的、文档化的漏洞风险评估,优先考虑解决高风险漏洞的补丁。要求医用机器人制造商和医疗服务提供商确保其产品持续安全和有效的临床功能。
3.6 保障供应链安全
制造商应确保其医用机器人系统所有技术供应商以最佳实践实施网络安全。医用机器人是个系统工程,其中包括机械、电气、软件等多个子系统组成,只有在子系统设计时充分考虑网络安全要素,子系统集成时才能做到系统级的安全。例如在医用机器人的软件组件设计时使用不安全或已遭弃用的软件组件和库,将导致产品被攻陷,组件包括操作系统平台的不安全定制以及使用来自受损的第三方软件或硬件组件。第三方组件作为整体医疗器械的一部分,责任方若对此类组件不知情,则不利于此类组件未来的网络安全管理,也不利于未来网络安全事件的责任划分,可能导致不可接受的风险。
3.7 漏洞披露
制造商应具有报告网络安全问题的清晰沟通渠道,并明确确定负责适当处理报告的个人或团队。目的是为了建立漏洞管理机制,提醒其他制造商在进行产品研发时参考,弥补漏洞。
例如,美国食品药品监督管理局(Food and Drug Administration,FDA)早在好几年之前就已经向医疗领域发出了医疗设备极易遭到网络攻击的警告。这样的担心显然非常有必要,据悉,研究人员已经成功攻破过医用机器人、心脏除颤器、心脏起搏器、胰岛素泵等医疗设备,并对其实施远程控制。除了设备之外,病人的医疗信息也是网络攻击的重要对象之一。美国FDA 建议,各大制造商还应当联合起来建立一个信息共享与分析组织(Information Sharing and Analysis Organization,ISAO)以此来分享重要的安全威胁和应对措施。此外,美国FDA 还建议,大部分用于解决网络安全漏洞问题的补丁和更新将不需要每次都上报给他们,除非出现了死亡或非常严重的医疗事件。不过这些信息必须要在发现漏洞的30 天内告知消费者和设备使用者,而漏洞必须要在60 天修复,同时这些信息也有必要分享给ISAO。如此的漏洞披露机制缓解了医疗器械产品的网络安全风险[18]。
3.8 安全审计
制造商应确保在投入生产之前对医用机器人的所有生态系统组件进行完整的安全评估。这种安全评估包括产品的测试和验证,同时包括生产活动和质量文件的检查。
通过在医用机器人上创建审计跟踪来跟踪系统和数据访问、修改或删除,从而记录和检查系统活动的能力。支持将日志记录信息作为独立存储库(在其自己的文件系统中记录审计文件)使用[19]。使用适当的审计审查工具支持审计创建和维护,确保审核资料的安全(特别是在这些资料本身含有个人资料的情况下),并确保无法编辑或删除审计数据。审计数据包含个人数据和/或设备数据,所有处理(例如存取、储存和转移)都应该有适当的控制。应根据医用机器人的预期用途、使用方式和风险评估综合考虑此项能力的验证。
4 讨论与总结
从改进医用机器人的网络安全能力目的出发,分别从全生命周期安全性、加密、认证和授权、工厂恢复、默认安全、保障供应链安全、漏洞披露、安全审计八个方面提出了缓解网络安全风险的措施,并做举例说明,一定程度上避免了医用机器人在临床使用过程中被攻击或被控制,但是网络安全技术是一项迭代较快的技术,缓解措施应当动态变化,不应一成不变,墨守成规。
伴随着医用机器人逐步深入社会生活中,网络安全问题必须得到足够的重视,以避免潜在的严重后果,许多网络安全问题本来可以通过实施众所周知的网络安全来预防[20]。医用机器人制造商应立即采取措施保证网络安全。
新技术通常容易出现安全问题,因为制造商优先考虑上市时间而不是安全测试。我们已经看到,医用机器人制造商正面临越来越多的网络安全问题。这通常是在产品生命周期开始时不考虑网络安全的结果;在产品发布后,修复漏洞变得更加复杂和昂贵。希望本文能为医用机器人厂商开始认真对待网络安全敲响警钟[21]。