logo Parasoft C/C++test 使用教程 我也要发布文档

基于新的FDA网络安全指南准备医疗设备软件


随着FDA在其新的软件验证指南中增加了更多的网络安全要求,医疗设备制造商可以转向静态分析,这是解决安全性和安全性问题并交付可预测软件的最有效方法。

正如我之前提到的那样,今年在Embedded World,我们与医疗设备制造商的对话比以往任何时候都多得多。因此,我想我将解决许多此类对话的主题,围绕网络安全和静态分析。显然,医疗设备制造商正在集中精力改进其软件开发流程,以(a)应对日益增长的安全威胁,并且(b)满足FDA的要求,并且这一要求越来越精确。


FDA的新网络安全指南


FDA过去一直专注于系统的功能安全方面,但是现在网络安全已成为同等重要的主题。尽管安全性非常相似(并且您很容易就认为这两者都是关于创建可预测的软件),但FDA现在正在考虑将网络安全视为需要专门关注和采取措施的事物。

即将有新的FDA标准。在“医疗设备网络安全管理的上市前提交内容”草案中,我们可以阅读:

“随着无线、互联网和网络连接设备、便携式媒体(例如USBCD)的使用以及医疗设备的频繁电子交换,对确保医疗设备功能和安全的有效网络安全的需求变得越来越重要,相关的健康信息。”


FDA的新要求是什么?


那么,对于典型的医疗设备开发软件组织来说,新要求有什么变化?好吧,以前的医学标准要求在测试建议方面不是很明确。即使我们仔细查看了流行的法规文件(例如IEC 62304FDA通用软件验证原则),也不会发现必须在代码覆盖范围内使用静态分析或动态测试。使用新标准,这一点变得更加清晰,直接成为提交的一部分。

“医疗设备网络安全管理的上市前提交内容”的VII.B点中,我们可以找到有关可信赖设备风险管理报告内容的建议:

4.为确保网络安全风险控制的适当性而进行的测试的说明... c)静态和动态代码分析,包括对“硬编码”、默认、容易被猜到和容易受到破坏的凭据的测试

这是明确定义并遵循静态分析过程的明确建议。怎么做?在很大程度上取决于组织中的现有流程以及用于开发的技术。


如何针对新的FDA软件开发要求采用静态分析


我们的许多医疗设备客户从头开始,都通过遵循以下步骤成功引入了针对C/C++的静态分析:


  1. 查看组织中的现有准则,即使将其设计为手动执行,也应将它们尽可能地映射到静态分析工具随附的检查程序。一个成熟的静态分析工具可能会涵盖其中大多数,并且您可以考虑为无法立即映射到静态分析检查器的其余准则构建自定义检查器。
  2. 查看流行的编码标准,尤其是那些考虑到安全性而创建的编码标准,并选择一组准则供您的团队遵循。选择准则时,有必要遵循标准中的分类并选择被归类为最重要的准则。例如,对于CERT指南,您可能想从L1指南开始,而对于MISRA C 2012(修订版1),您将要查看强制性指南。
  3. 定义静态分析工具配置,并包括您的组织特定准则和选定准则(即CERT)。不要一次启用所有检查程序,而要从一小部分开始,以免开发人员遇到违规情况。
  4. 确保您的开发人员能够在创建代码后立即对其进行扫描。将静态分析包括在CI/CD流程中也很有意义。
  5. 随着开发人员不断进步并清理源代码,请确保逐步启用列表中的更多检查程序。最终,您想提供证据证明您遵守了所选的整套准则(不是中途停止)。为了更好地适应流程并了解当前的进度,您可以部署中央报告系统,以帮助您汇总测试数据并监视开发人员的工作。请参见下面的示例:



演示静态分析工具的适用性(工具资格)


由于静态分析报告已成为质量管理系统的一部分,因此您不能仅使用任何工具。FDA要求验证用于软件开发和验证的所有工具。有多种方法可以证明该工具适用于安全关键型开发。根据设备的风险,它可能很简单,例如重复使用合格证书或完成更长的工具鉴定过程。

使用TüVSüD认证

对于最终用户,最方便的选择是归功于工具供应商所做的工作,并重新使用由外部认证机构(例如TüVSüD)为测试工具授予的认证。例如,Parasoft C/C++test获得了TüVSüD认证,该认证可以重复用于证明其根据医学标准(例如IEC 62304)开发软件的适用性。

执行工具鉴定

对于C类之类的高风险设备,您可能需要在开发环境中内部对工具进行实际验证。目的是提供证据,证明该工具根据项目的开发环境中的操作要求进行操作。这是一个非常繁琐且耗时的过程。

最好的情况是,如果您的工具供应商可以在此方面为您提供支持,并提供一个特殊的工具鉴定工具包,其中包含设计良好的测试用例,在项目开发环境中执行它们的自动化框架,并自动生成可以用作文档的工具验证的证据。再次,Parasoft的旗舰产品C/C++test以自动化工具鉴定工具包的形式提供了很好的支持。


硬化医疗器械


当然,引入静态分析是一项专门的工作,需要开发人员花费时间和成本。但这是一种增强系统抵抗恶意攻击的可靠方法。部署具有深思熟虑的安全准则集的静态分析,使您可以构建可以抵御无法预料的未来攻击的系统。