安全医疗设备参考架构

安全医疗设备参考架构

摘要

我们提出了一种参考架构,旨在支持医疗设备的安全性与安全。ISOSCELES(内在安全、开放和安全的网络物理使能、生命关键基本服务)架构基于一系列设计原则,这些原则利用了近年来在基于虚拟机监控器及其他隔离技术的软件组件隔离方面的进展。该架构针对特定医疗设备的实例化由基于架构分析与设计语言的开发流程提供支持。该架构模型可支持安全性与安全分析,作为更广泛的风险管理框架的一部分。这些模型还可用于生成设备软件的骨架,并配置平台的隔离策略以及大量服务。我们正在低成本开发板上开发该架构及其示例医疗设备实例的原型,这些开发板可用于产品解决方案。该原型及配套的开发与保证相关成果将以开源许可证发布。

参考架构是一种针对特定领域内某类系统结构的通用设计模板,该模板定义了具有特定角色和通信模式的一组组成部件。本文讨论的参考架构面向小型床旁医疗设备(例如输液泵、心电图机、呼吸机)。该架构还旨在通过与ASTMF2761集成临床环境(ICE)1或IEEE11073面向服务的设备连接标准2兼容,来支持互操作性接口。

任何此类架构都必须满足广泛的需求,包括安全性、成本、可维护性和性能。同时,它还必须应对一个令人不安的现代现实:制造商用户不能假设医疗设备将在良性的安全环境中运行。任何能够连接到网络或物理暴露某种数据端口的设备都可能面临风险。在这种情况下,我们应该如何思考和管理风险?

这个问题已被广泛探讨。3,4美国国家标准与技术研究院(NIST)发布的特别出版物(例如800‐39)提供了一个概念性的风险管理框架。5,6 AAMITIR577描述了如何将安全风险管理与安全性风险管理相结合(例如,在ISO14971中所述,以及针对医疗设备的IEC80001)。UL2900系列标准为医疗设备提供了网络安全需求。8

简而言之,威胁源引发威胁事件,该事件可能利用设备漏洞,造成负面影响。这种影响可能波及设备的任务、终端用户或创建或操作该设备的组织。在此框架中,风险基于威胁事件发生的可能性,并由事件发生后可能导致的潜在损失(负面影响)所放大。

威胁源具有能力、意图,且通常对特定目标有偏好。自动化威胁(如恶意软件)在选择目标时可能不加区分,并不在乎其利用的是个人系统还是医院系统。针对特定组织的威胁也有充分记录。9–11威胁源的意图通常以经济利益为目的,近期频发的勒索软件攻击(例如WannaCry)便是例证。12除了直接勒索外,某些设备中包含的医疗信息还可能具有间接价值,例如受保护的健康信息或个人身份信息被用于盗取资金或非法获取药品。

需要考虑医疗设备的一种特殊影响:患者的 生命和健康可能依赖于这些设备 。在这类系统中,安全与安全性相互关联,未能管理安全风险可能会带来安全风险。

医疗设备除了可能成为攻击的最终目标外,还可能成为更大规模攻击活动的跳板。利用存在漏洞的设备,攻击者可能通过利用信任信息或提取凭据,获得对其他临床或财务系统的访问权限,从而使该设备能够连接到这些系统。MEDJACK报告中记录了一个此类成功攻击的案例,即2015–2016年遭受攻击的血气分析仪。

一个值得注意的长期风险是恶意软件作者或研究人员将攻击自动化。这可能导致多个几乎同时发生的故障,类似于2017年5月发生的WannaCry攻击。通过自动化,僵尸网络控制器可以利用这些设备攻击医疗机构网络中的其他设备。几十年前,攻击者是主动攻击你计算机的人。不幸的是,如今普遍的攻击者是自动化僵尸网络——数以百万计已被破坏的机器正试图扩大其影响范围。

近期美国国土安全部的公告记录了医疗设备中存在的硬编码密码和凭据。此类漏洞使得恶意软件(例如僵尸网络、勒索软件)更容易在设备上立足。

仅靠医疗设备架构无法解决所有风险问题。安全分析师谢尔盖·洛日金指出,尽管渗透测试暴露了存在漏洞的设备,“但问题不仅仅在于医疗设备防护薄弱,其范围要广泛得多。现代医院的整个IT基础设施都未得到妥善组织和保护,这一问题在全球范围内持续存在。”10

在软件能够被自动且完全验证之前,我们必须假定即使经过正式设计和广泛测试,仍然会存在一些漏洞。然而,合适的参考架构和工具可以帮助实例化它可以减少攻击面。设备中的安全控制可以进一步降低攻击者利用某些未解决漏洞的能力,并尽量减轻成功利用其他漏洞所造成的影响。

本文其余部分介绍了推动内在安全、开放和安全的网络物理使能、生命关键基本服务(ISOSCELES)设计与实例化的原则——一种用于医疗设备的安全且可靠的架构。

架构

ISOSCELES参考架构通过分层要求进行规定:
1. 平台核心要求,用于支持医疗应用的硬件、系统软件和服务。
2. 平台设计要求,由平台核心要求导出并细化为特定设计。
3. 设备设计要求,针对正在开发的特定医疗设备(例如输液泵)。

前两个平台层级推动参考架构的发展。这134项需求旨在适用于广泛类型的潜在医疗设备。

示意图0

所需的医疗应用和服务可能因设备而异。硬件层(图底部)包含支持安全机制的处理器和外围设备。低层软件隔离层利用这些机制将所有其他软件组件相互隔离,仅允许特定的交互。ISOSCELES平台服务满足顶层医疗应用的典型需求,这些应用提供医疗诊断和治疗。特定设备的设计可能仅包含该类设备所需的必要元素。

架构原则

ISOSCELES参考架构旨在推广提供安全和安全性的基本原理。这些原理及其动机如下所述。

使用强时间与空间隔离

许多现代系统提供基本的安全边界,但缺乏内部安全屏障,使得攻击者在突破边界后很容易访问设备内的任意信息,甚至控制设备。软件组件之间的强屏障有助于防止故障和攻击蔓延至安全关键组件。

例如,如果输液泵需要网络连接(例如,用于维护最新的药物库),则与检索药物库相关的网络协议栈和代码应完全独立于解释药物库内容的软件。反过来,该功能也应与控制药物泵送速率的功能完全隔离。在安全架构中,每个隔离单元称为一个分区。15隔离内核和某些实时操作系统(操作系统)能够提供强隔离。从历史上看,医疗设备上的应用软件要么构建在无法提供强隔离的最小化操作系统之上,要么根本没有使用任何操作系统。

空间隔离是指分配给不同组件的内存区域和可寻址外设之间的屏障。在一个分区中运行的组件不应能够直接引用专属于另一个组件的内存或输入/输出(IO)设备。如果无法做到这一点,则可能导致有缺陷的或被破坏的组件影响其他组件的任务。

时间隔离是指一个组件无法影响或测量另一个组件访问资源的时间间隔。例如,有缺陷的或被破坏的组件不应能够主导中央处理器(CPU),从而阻止其他组件及时执行其任务。在一个分区中运行的程序应无法感知其他分区中程序的运行和资源使用情况,除非是明确设计如此。

ISOSCELES通过指定一个专门用于建立和维护空间隔离和时间隔离的底层软件内核来满足这些需求。它是设备上唯一能够直接控制硬件提供的保护机制的程序。其设计有意保持尽可能小和简单,以提高其可信度。

支持此角色的关键硬件特性是硬件内存管理单元(MMU)和输入/输出MMU(IOMMU)。尽管这些特性在桌面系统上是标准配置,但历史上在廉价或低功耗微处理器上并不存在。例如,ARMv3系列之前的ARM微控制器缺乏集成MMU,而2016年之前的Intel Atom处理器则缺少IOMMU。这类处理器存在于许多现役医疗设备中,使得攻击者有可能从易受攻击的进程发起攻击,并逃逸以篡改其他进程的资源。然而,这些特性最近已出现在价格合理的嵌入式CPU中,涵盖ARM和x86处理器架构。

内存管理单元是一种可编程硬件,用于控制特定进程可访问的物理内存,同时为该进程提供有序的“虚拟地址空间”假象。它还可以将某段内存标记为只读。在某些情况下,它可能能够防止处理器执行内存特定区域中的指令。如果一个进程尝试访问其分区之外的内存或以编程策略不允许的方式访问内存,则访问将被阻止,中央处理器将陷入处理程序以处理该故障。

近期的“熔断”和“幽灵”攻击揭示了超标量处理器中存在的多个缺陷,这些缺陷会破坏上述保护机制;而ISOSCELES所指定的处理器(例如ARM A53)目前尚不存在此类问题。IOMMU(输入输出内存管理单元)为外围设备提供了类似的功能。若未能隔离IO空间,则可能存在缺陷或已被破坏的软件组件突破其分区限制,进而干扰其他组件和外部设备的风险。例如,一个用于检查网络更新的进程可能会被恶意构造的数据包破坏,注入的代码可能会修改GPIO(通用输入/输出)引脚,从而启动泵或改变设备的电源状态。

ISOSCELES的原型已使用seL4微内核和Xen虚拟机监视器实现隔离。16,17微内核类似于操作系统内核,但没有通常的设备驱动程序、网络协议栈和文件系统驱动程序。它专注于将内存和处理器时间强隔离到各个分区中,并提供最少的区间通信(IPC)支持。seL4微内核的特点是在某些处理器架构上具有其正确性的形式化证明。虚拟机监视器提供了为每个分区提供模拟环境的额外能力,使组件产生仿佛在独立硬件上运行的假象。这使得分区能够运行通用操作系统(例如Linux、伯克利软件套件、微软Windows)。所谓的一类虚拟机监视器(例如Xen)同时支持低级隔离和仿真能力。

最小权限

与隔离相辅相成的是最小权限原则,或称最小特权原则。权限是安全的基石。在参考架构的背景下,这意味着任何给定组件仅应被授予执行其任务所必需的权限。这里的权限包括访问内存、任意处理器指令和外围设备等资源的能力。遗憾的是,基于通用操作系统(如Linux、Windows)的嵌入式系统往往以“root”权限实现,这意味着一旦边界被突破,攻击者便能轻易访问所有内容。

在我们的参考架构中,硬件层通过上述隔离机制以外的方式协助实现这一目标。现代微处理器提供多种操作模式,包括具有更高权限的监管模式和具有更低权限的用户模式。监管模式可以执行处理器的全部指令集,并允许编程内存管理单元(MMU)和输入输出内存管理单元(IOMMU)。用户模式无法更改内存管理,且被禁止使用特权指令,例如控制中断处理或处理器故障。

ISOSCELES规定,只有隔离层在最高特权模式下运行。所有其他软件组件均在非特权模式下运行,并依赖隔离层仅将执行其任务所需的特殊权限委托给它们。尽管类似这种“内核与用户空间”的区分在通用操作系统中已存在,但基于微内核的系统进一步将这种降权扩展到设备驱动程序、文件系统驱动程序和协议栈等组件。这些组件通常是相对复杂的组件,其故障不应危及其他系统部分。例如,在单体内核中,网络设备驱动程序遭到破坏将会威胁到系统运行的每一个方面。(该驱动程序将在内核内存空间中以全部权限运行。)而在微内核中,该设备驱动程序只是另一个用户级组件,即使遭到破坏,也只会影响与其交互的其他组件。

最小化复杂性

软件的可信度往往与复杂性成反比;代码越复杂,其可信度就越低。许多因素会影响这一点,包括攻击面的数量、正确开发代码的难度,以及验证和确认所需属性所付出的努力。参考架构鼓励构建尽可能小且简单的组件。

许多应用程序组件可以在没有通用操作系统中典型应用程序的所有附加功能的情况下执行其主要功能。额外负担包含通用的C语言和其他标准软件库,任意软件语言,以及完全访问所有系统调用。Linux 2.6内核有338个系统调用。19标准C库增加了500千字节(通常更多)的二进制代码。20地址中存在此代码组件的攻击面有助于远程执行代码的表面使用诸如返回导向之类的技术编程。21

相比之下,ISOSCELES规定了一个极简的组件运行时环境,仅包含基本的IPC原语。组件可以通过IPC利用架构的服务层,避免将其自身内存分区中包含服务层代码。采用这种方法,ISOSCELES的微内核实现中的组件可以从数百KB缩减到数十KB,并且仅暴露非常狭窄的IPC攻击面。架构分析与设计语言(AADL)建模工具(参见利用正确性模型部分)有助于指定和构建适当最小化的设计。

管理信任关系

即使在最简单的系统中,设备的软件组件也必须相互通信。现代医疗设备还必须与外部系统通信。这种交互具有固有风险,因为一方必须信任另一方能够提供有效且及时的消息。关键进程的安全性和活性取决于这种信任是有根据的。

参考架构通过多种方式应对这一挑战。首先,它通过策略将内部通信限制在预定义的通道内。有缺陷或被攻破的组件无法向其他组件打开新的通道。这些通道在设计的AADL模型中进行定义和检查,然后转换为微内核或虚拟机监控器中的执行机制。

外部协作者通信还受到一个独立于内部通信组件的集成防火墙的进一步监管。默认拒绝防火墙策略确保设备仅与已批准方的“白名单”进行通信。商用操作系统通常附带开放策略以简化操作集成和开发的开销;这些策略必须明确地严格收紧。

该框架鼓励采用限制所需信任程度的通信模式。在许多情况下,组件之间的关系可以通过评估其相对可信度或相对关键性来进行排序。例如,某些组件明显比其他组件更复杂,或包含无法完全评估的第三方代码库。与外部网络直接通信的组件可能不太可信,因为它们可能会受到外部攻击而被破坏。安全相关组件应被视为比其他操作组件更为关键,并且不应直接依赖于这些面向外部的组件。15参考架构允许设计人员将较不可信的组件置于比其更可信的对等组件的从属角色。

设计可以选择按通道基础的通信机制,以提供所需的隔离,包括:
- 同步分区间远程过程调用。
- 消息队列。
- 共享内存对某些组件标记为只读。
- 异步事件信号。

利用通用服务

示意图1

图1所示的服务层包含多个支持医疗设备通用需求的组件。基于参考架构的医疗设备将包含这些服务的实现;设计人员只需选择所需组件,无需在内部完全开发这些组件。

  • 日志服务 可以将设备日志消息定向到本地持久存储,和/或通过网络发送到远程日志主机。
  • 时间服务 提供当前同步时间以及精确的延迟信号,以触发定时操作。
  • 存储服务 负责管理设备上的持久性存储设备,其中可能包括多个加密的逻辑分区。
  • 信息物理抽象层组件 使医疗应用程序无需直接连接医疗传感器和执行器。通过允许设备将逻辑传感器或执行器角色映射到不同的物理设备,提高了灵活性,从而在传感器更新时减少验证与确认的影响。此外,它还能支持网络化设备。例如,未来的输液泵可能会利用位于同一集成临床环境(ICE)中其他医疗设备上的血氧传感器。22
  • 防火墙服务 可控制对连接到设备的数据网络的访问。需要网络访问的内部组件通过此内部防火墙进行访问,该防火墙仅暴露一个外部地址。
  • 更新服务 负责管理现场的安全设备固件升级,这些升级可能通过网络或附加存储设备进行。
  • 设备控制 设备配置服务 支持操作生命周期以及设备及其组件的配置。
  • 身份验证 授权服务 控制用户对特定设备功能的访问权限。用户可被授予角色(例如,临床医生、管理员),并通过策略决定其可在设备上执行的操作。
  • 用户界面服务 提供显示和人机输入设备,以允许设备用户监控和控制设备。
  • 密钥服务 控制加密操作,如下所述。

利用密码学实现保密性和完整性

医疗设备需要信息保护以维护保密性和完整性。这对于医疗设备的若干任务至关重要:

  • 执行前验证软件
  • 在持久存储中传输敏感数据
  • 验证设备的软件更新
  • 与外部服务(例如药房)通信
  • 与集成临床环境(ICE)中的对等设备通信

密码学在满足这些需求方面起着核心作用。设计中的任何组件都可包含加密库,以满足其信息保护需求。这包括标准服务(如存储、更新、集成临床环境)和设备专用组件(例如必须与外部药房同步的药物库组件)。参考架构要求配置加密密钥管理服务(CKMS),该服务提供一种机制来控制密钥、共享密钥和证书等加密材料。这可实施一项策略,用以控制哪些组件可以对特定加密数据执行哪些操作。在可用的情况下,CKMS可以进一步使用硬件安全模块(例如可信平台模块)。此类设备设计为防篡改,即使攻击者试图拆解设备,其中存储的密钥也能受到保护。

利用正确性模型

尽管系统测试是验证实现正确性的常用方法,但正确性的分析性证明更具价值。软件工程在从系统的形式化模型生成机器生成证明方面已取得进展。当系统实现部分或全部由这些模型生成时,开发人员可以获得减少工程工作量和实现正确设计的额外优势。

ISOSCELES参考架构在AADL模型中表示。23,24 该语言对系统的硬件和软件组件具有明确定义的语义,并包含支持对设计的系统级特性进行推理的属性。图2显示了部分设计的示例通信流。这些流注释规定了在不同分区中运行的特定组件之间允许的信息流(例如从诊断到互操作性服务),然后流向网络服务(例如电子健康记录)。

在设计时,可依据安全策略检查这些流,该策略可能禁止信息直接从非受控组件流出,例如互操作性服务流向III类治疗服务。此外,工具将这些建模的流转换为运行时通信表,从而提供了分析模型与实际实现之间的关联。

这些模型还支持时间分析。模型可以指定事件之间延迟的容差,或循环调度中可容忍的抖动量。工具能够检查模型并评估进程调度是否满足所有要求,同时考虑分区间切换开销等因素。这些工具还可以生成运行时调度。

AADL还支持建模特性,可用于对故障和故障管理策略进行推理。对故障模式与影响分析的假设进行形式化,意味着可以根据故障行为及其传播,以定性和定量的方式评估设计中的危险。

结论

ISOSCELES医疗设备参考架构目前正在开发中。完成后,它将提供美国食品药品监督管理局要求的文档和一个示范设备,以展示该架构的应用。其中一个原型基于Xen虚拟机监视器16和采用ARM CPU(双核Cortex‐A7)的嵌入式计算机片上系统(SoC)。它使用一个通用计算模块,并与已退役的患者自控镇痛泵的机电组件进行接口。另一个原型在基于ARM、英特尔Atom和AMD G系列的片上系统(SoC)上运行,这些系统采用seL4或NOVA微内核,并搭载Genode应用框架(图3)。26

示意图2

ISOSCELES的需求、设计、示例实现及相关开发工具将作为开源产品提供。医疗器械公司可利用这些成果作为开发其专有设计的起点。原始设备制造商(OEM)需根据自身产品的特定需求选择硬件和隔离方法。接下来,若尚未具备,OEM应将其选定的隔离方法移植到其硬件及特定接口设备上。他们可在该隔离层之上使用ISOSCELES平台服务,并针对具体密钥管理和认证方法等特性进行优化,以满足其市场需求。

ISOSCELES专为集成临床环境(ICE)中的互操作设备而开发,具备强大的用户及机器对机器认证、可配置网络和密钥管理功能。当前形式的ISOSCELES针对配备现代处理器、通信模块和电源的外部设备,不适用于极端受限电源环境。尽管架构原则在这些环境中仍然重要,但随着设备体积不断缩小所导致的功耗限制,将因内存和计算需求的增加而对现有技术构成挑战。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值