医疗设备软件不可或缺的**性设计

分享到:
355
下一篇 >
在医疗器材研发过程中,大量的精力被投注于确保**性和降低患者风险的考量;尽管如此,随着不同仪器连网性能的不断提升,**研究人员在很多医疗仪器中都发现了**性漏洞,其中一个例子就是在一种非常普及的输液帮浦(infusion pump)中发现的1,400个**弱点。

为了因应这种不利的局面,美国食品**管理局(FDA)发布了关于管理医疗设备**性的规范。此公告意在重申除了使用**之外,讯息**也应纳入医疗设备研发过程中的关键考量。

针对网路**与静态分析的FDA指导原则

在意识到医疗仪器应当遵守更为严格的**性目标后,FDA在2014年颁布了网路**管理指导原则;随着无线通讯、网路和网际网路在医疗设备中更进一步的普及和应用,医疗设备的**性也面临着****的挑战。

进一步来说,与其他仪器不同的是,医疗设备直接关系到患者的**和隐私。风险管理(包括**性强化和弱点管理)是医疗设备软体开发中*重要的组成部分——而静态分析(Static Analysis)则是这个过程中*重要的环节。

家庭护理和「穿戴式」医疗装置数量呈现指数型成长,而它们仅是医疗设备中的一个分支。同样,对于其他医疗和物联网(IoT)的商业契机来说,这些发展都面临着**、资料**性和隐私的考量。

FDA的指导原则涵盖范围较广,并且意在建立高层级的**性管理规范;此指导原则列举了需要启用自动化工具的众多原因,其中包括以下几点:

˙「制造商应当在设计和开发医疗设备时将讯息**性列入考量」: 这也是软体工具暨网路**解决方案GrammaTech一直着重探讨的一个课题——在研发的*开始就将**性纳入设计考量,而不是研发后再作为附加项目,这是非常关键的。以下是详细的说明。

˙「在进行设计和开发时就应该适当的对所涵盖资产、威胁和**弱点的定义进行探讨」: 在良好的软体开发流程无缝整合静态分析,并特别着重于于侦测与识别程式码和二进位码中的**弱点。

˙「评估设备功能中之**威胁和弱点对终端使用者/患者中所造成的影响,以及这些威胁与弱点被利用的可能性」: 举例来说,透过对遭污染资料的分析,GrammaTech的CodeSonar工具能追踪整个软体的资料来源,并辨别来自外部的潜在**弱点。

˙「在提交产品上市审核前,制造商应当提供与其医疗设备资安相关的文件」: 静态分析工具能提供报告功能,以协助准备这类文件、测试完备度以及软体是否就绪。

「**性优先」的设计

**性(security)并非一直是医疗仪器的首要考量因素——长时间以来,仪器间的通讯**于本地网路并掌握在可信赖的操作人员和设备中。然而现代化的医疗设备普遍拥有连网功能(且通常能连上网际网路), 因此这些设备也对**性和隐私有着更高的要求。所以在研发周期的较初期阶段就需要遵循**性原则。

软体开发周期中的软体**性

「**性优先」的设计理念,意味着将整合**性视为软体开发周期(SDLC)中的首要考量,如图1所示;***和专案经理应该在以下的关键阶段注意各种情况。

图1 叠加于软体开发周期的**性设计流程。

˙需求阶段(requirements stage): 一旦可进行系统范围内的威胁评估,就可以了解医疗设备中的威胁面(threat surface)。在需求阶段,可以导入**性相关的需求以及已知的「滥用案例(abuse cases,即骇客可能会追踪的使用案例)」和风险分析;后面会进一步提及应该被导入并加以考量的**性需求。此阶段十分关键,因为在这个时间点,**性成为一个已知的专案目标并已拥有适当水准的风险管理、开发时程和成本。

˙设计和架构(Design and architecture): 在候选架构完成时,**性必须纳入审核项目中(之前可能并未纳入);根据已知威胁评估和**性需求对架构进行审核,为这个开发阶段增加了一个新的环节。在这个阶段,应该建立测试计画,涵盖针对预知「滥用案例」的**性分析。

˙程式码开发(Code development): 在撰写程式码阶段,遵循**性指南和编码标准非常重要;使用例如静态分析等自动化工具,是确保**性弱点不被导入产品的关键。测试和对自动化测试(包含**性分析)在此阶段十分重要。

˙整合和测试(Integration and Test): 在系统整体上开始成形时,子系统和系统测试可以在整合,以及上市之前发现**弱点。自动化渗透测试(penetration testing)工具在这个阶段十分有效,可以发现在较早开发阶段未能发现的**性弱点;*终产品上市前的包装与配置是此阶段*后一个步骤的关键,需要确保这款开箱即可使用的产品的具备*高的**性,可预防大多数目前市面上连网装置常见的问题。

˙布建和维护(deployment and maintenance): 当产品进入市场并大范围布建后,修补**性弱点所需的费用将会大幅飙升;一款以「**性优先」设计理念出发的产品,发生**漏洞事件的机率较低,但是供应商必须具备能持续因应**性挑战的能力。在设计产品时至关重要的一点就是采用可更新的韧体和软体,从而能迅速因应新出现的问题;不过在产品进行维护和改版时,**性仍然是一个持续性的目标,新出现的**性弱点和威胁也需要以新一代的方案回馈到系统设计中。

**性需求

确保医疗设备**性需要经过许多考量;以下列出了**性需求的关键案例──其中有一些可能凌驾于对产品功能性的需求:

__˙使用者身份验证(User authentication)──__根据不同的使用者等级,验证使用者存取资料与执行功能的权限。

__˙防篡改(Tamper resistance)──__防止透过改变设备软硬体来规避**防护机制的行为。

__˙**储存(Secure storage)──__确保设备储存资料无论透过线上或离线存取的**性,包括用档案加密与数位版权管理(DRM)技术。

__˙**通讯(Secure communication)──__确保资料传输**性,同时避免透过连结通路(如网路、USB埠)的有害存取;虽然网路连结通常是**个被注意到的,别忘了还有其他可能遭遇攻击的通道。

__˙可靠性和可用性(Reliability and availability)──__在面临进行中的骇客攻击时,仍能维持医疗设备的**运作。

静态分析工具对IEC 62304标准和医疗设备软体的适用性

尽管IEC62304标准没有明确要求开发工具,却列出了对严格测试、验收标准(acceptance criteria)和可追溯性(traceability)的要求;有鉴于目前大部分医疗设备软体专案的涵盖范围,在没有工具的情况下要完成那些功能要**不实际的。例如:

IEC62304标准Section 5.5.2对一个软体单元(software unit)验证步骤的要求:制造商需要建立相关策略、方法和步骤来验证每一个软体单元。

Section5.5.3要求:制造商需要在较大型软体项目的整合之前,为软体单元建立适当的验收标准,并确保软体单元符合验收标准…软体程式码是否符合程式编写流程和编码标准?

Section 5.5.4提供额外验收标准:当呈现于设计时,制造商需要依以下情况包含适合的额外验收标准:正确的事件序列(event sequence);资料和控制流程;经计划的资源配置;错误处理(错误描述、隔离和复原);变量初始化;自我诊断;记忆体管理和记忆体溢位(overflow);以及边界条件。

这些验收标准中的大多数非常适合静态应用程式**检测(SAST),即静态分析工具;实际上已经有采用静态分析的强力佐证──FDA曾使用GrammaTech的CodeSonar工具,在一连串的输液帮浦故障事件中,分析医疗设备软体并评估其原始程式码的品质。

SAST工具在**性设计中所扮演的角色

SAST工具在编码和整合阶段为软体开发提供了关键性的支援;无论是在开发还是维护阶段,持续确保程式码品质,能大幅降低软体**性与品质可能带来的成本与风险。以下是其主要优势:

__˙静态分析可以找出基于覆盖(coverage-based)的测试无法发现的错误(bug)──__后者的单元测试一般透过软体覆盖程度的量测来进行,诸如声明(statement)决策(decision )的覆盖等;尽管已经很严苛,但仍有一些缺陷会通过这类测试。静态分析工具能识别这类缺陷。

__˙静态分析工具能在较早阶段发现缺陷──__能在产品***手上就避免缺陷发生是*理想的情况,这样可以节省随着专案进展而不断增加的测试和修复所需成本。

__˙静态分析可以因应SOUP──__在医疗设备软体中,未知来源软体(SOUP)需要特别的因应方式;一款良好的静态分析工具能够评估第三方和商用现成软体(包括二进位应用程式和程式库)的品质和**性。

__˙静态分析可以加速上市前核准文件的建立──__将软体单元验收结果建档,是证明产品遵循认证标准的关键;静态分析工具拥有大量的报告功能,可符合FDA审核要求。

结论

**性现在已经成为医疗设备软体研发过程中的首要风险/责任管理因素;在研发初期就将**性纳入产品设计考量,不但是FDA的要求也是一个良好的习惯;对于缩短医疗设备上市时程,以及产品通过上市前核准流程,静态分析工具扮演了重要角色。

你可能感兴趣: 业界新闻 图片 软件 医疗
无觅相关文章插件,快速提升流量