×
嵌入式 > 技术百科 > 详情

如何确保互联医疗的网络安全

发布时间:2020-06-17 发布时间:
|

整个医疗保健领域的互联为该行业和患者们带来了巨大的好处,而且,这种连通性及其带来的便利还将持续并加速发展。

但是,网络安全是一个不可忽视的问题。尽管人们普遍认为医疗行业需要一个安全的企业级体系架构,但是,很重要的安全编码设备起到的作用却很容易被忽略。

尽管患者和医护人员可以受益于使用各种来源实时数据带来的更高的操作效率,但是,这种便利同样带有一定的不利。

随着联网医疗设备的不断增加,坏蛋操纵数据从事不良行为的访问接口的数量同样在随之增加。

2011年,白帽黑客Barnaby Jack进行的一个演示使人们开始审视这个问题的严重性。他修改了天线设计,进行了编程,展示了如何通过无线方式攻击和控制美敦力的植入式胰岛素泵,并命令它们管理致命剂量的胰岛素。

最近的一些案例表明,几年过去了,这种直接式的攻击仍然是一个尚未完全解决的挑战。比如在2017年8月23日,美国食品药品监督管理局(FDA)批准了一次医疗器械的固件更新,以减少某些Abbott(以前的St.Jude Medical)起搏器利用网络安全漏洞给患者造成伤害的潜在风险。

2017年,英国国家卫生局(NHS)遭遇的WannaCry恶意软件攻击是另外一个例子。这个恶意软件利用Windows的服务器消息块(SMB)协议进行传播,攻击对象是在XP工作站上运行的MRI和CT扫描仪。攻击者对这些医疗设备进行了加密,并索要赎金,导致妨碍了对患者安全有效的治疗。

据估计,这次攻击影响了全球150个国家超过20万台计算机,造成的总损失估计在数亿至数十亿美元之间。

上图:将LDRA工具套件的功能映射到IEC 62304:2006 + AMD1:2015的准则

纵深防御

攻击的性质多种多样,说明了没有单一的防御措施可以解决问题。

为了抵御攻击,需要做一些基本的整理工作,比如更新较旧的操作系统和保护协议,更新和验证软件和固件。但是,即便是采取了这些预防措施,攻击者仍然有无数种攻击系统的方法,因为他只需要一个漏洞就可以了。

根据James Reason教授的说法,许多医学活动都需要人工输入,随之而来的便是不可避免的人为错误。但是总的来说,当建立多层级的防御体系之后,需要整个体系层层被攻破才能发生灾难的几率便大大降低了。

Reason将其比作“瑞士奶酪”的切片序列,只是在他的模型中,和瑞士奶酪相比,“切片”中的孔永远都在移动、闭合、扩大和缩小。

就像检查和控制人类向医疗系统的输入一样,多层次的网络安全方案在很大程度上可以起到作用。比如说,即便攻击者攻破了第一道防线,后面还有好几层防线在等待着他。

可能有助于建立这种纵深防御的方法和技术包括安全的网络体系结构、数据加密、安全的中间件和域分离。

不过,我们对医疗设备尤需特别注意。对于攻击者而言,围绕医疗设备的网络基础设施下手只是达到其攻击目的的一种手段,设备本身才是真正的威胁对象。

医疗设备和网络安全

在过去,嵌入式医疗软件通常用于实现静态、固定不变的功能,面向专用设备,隔离足以保证它的安全。网络安全和安全软件的开发则倾向于被动式:先开发软件,然后使用渗透、模糊和功能测试来暴露它的弱点。

从本质上来说,“打补丁”以解决现场发现的弱点是对上述被动式原则的扩展,但是,设备制造商不大会及时提交程序修补记录。

针对这种情况,MITRE公司和FDA在2018年10月发布了其“医疗设备网络安全”战术手册,该手册分为四个阶段:准备阶段、检测和分析、遏制/根除和恢复,以及事后恢复。

在医疗设备“准备阶段”的网络安全实践中,采取积极主动的方法可能是减少这种“事件-响应”周期的关键要素。不仅仅是确定现有设备的安全措施,更是主动将它们设计到新产品中。

网络安全设计的一个方法是让它遵循并反映功能安全标准所倡导的开发过程,例如IEC 62304“医疗设备软件-软件生命周期过程”。

IEC 62304提供了开发软件的通用框架,它完全满足了软件开发生命周期中各个层面的质量、风险和软件安全性要求。

使用这种方式的结构化开发生命周期,不仅可以实现开发生命周期的最佳实践,还创建了一组可追溯的人工信息,在发生违规情况时,这种信息对提供快速响应非常宝贵。

除了可以规避任何违反安全规定的行为外,这种方法还符合FDA的建议,即任何医疗设备均不得允许未经授权的实体查看或访问敏感数据。数据必须始终处于受保护状态,并保持准确性,以防止黑客更改诊断信息或重要的患者信息。

上图:瑞士奶酪模型,说明了即便有一系列不完善的防御层,系统也仅会在所有这些不完善之处都重合时才会失效

安全代码开发

通过应用自动化工具,可以最高效地证明代码开发活动对法规提倡的流程的遵从性。

尽管在开发功能安全应用和网络安全应用之间存在一些差异,但它们也有许多相似之处。例如,它们都是从一开始就定义了恰当的需求,并且建立了对这些需求的双向可追溯性,以确保能够完全践行功能安全和网络安全的理念,而且它们都可以从这种流程中受益。

单元测试和动态分析也可以以同样的方式适用于功能安全和网络安全,这对网络安全至关重要,因为这有助于确保防御机制(举个例子)有效,而且在应用边界值时也不会轻易地受到攻击。

IEC 62304还要求使用编码标准,以将指定编程语言的使用方法限制到安全的子集内。实际上,为功能安全开发的代码通常也是安全的,因为编程语言应用中的相同弊端也同样经常引起安全性和安全性方面的顾虑。

结论

任何联网的医疗系统都无法同时保证既能发挥作用又绝对无法被渗透。所以,按照风险级别的高低进行对等程度的保护是说得通的,而且这意味着需要应用多个安全级别。

医疗设备本身值得人们特别关注,因为它们提供了黑客发起攻击的主要途径。功能安全标准(例如IEC 62304)的结构开发方法可以提供理想的框架,以将主动方法应用于安全应用的开发。

令人高兴的是,许多用于安全编码的质量保证技术已经在功能安全领域得到了充分证明。 这些技术包括:确保正确地遵循了编码标准的静态分析、检查是否有多余的“恶意代码”的动态代码覆盖率分析,以及在整个开发过程中跟踪需求。

这种开发流程给开发者留下了一组结构化的人工信息,如果在现场发生安全漏洞,这些信息将提供理想的参考。考虑到黑客与解决方案提供商之间的战斗永无止息,优化漏洞响应时间绝对不仅仅是加快修补漏洞的进度,有的时候它还能救命。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
三星研发基于risc-v架构的5G毫米波射频芯片