医疗器械软件物料清单SBOM
医疗器械的 SBOM — 您需要了解的一切
法律和标准要求医疗器械制造商编制软件物料清单 (SBOM)。然而,标准化的 SBOM 格式并不总是足以满足这些要求。
尤其是那些不提供和使用 SBOM 的医疗器械制造商,他们将不再被市场接受。原因如下。
1. SBOM:基础知识
a) 什么是“软件物料清单”?
“SBOM”一词的定义
“软件物料清单”(SBOM) 是构成软件系统的软件项目的嵌套列表。制造商使用此清单来明确哪些版本中的哪些组件构成了他们的软件项目。
SBOM 映射了组成软件项的组件的层次结构。

SBOM 与 SOUP 列表的区别
SBOM 和使用的 SOUP 列表并不相同:
汤 | SBOM |
SOUP“仅”列出了医疗设备本身所包含的软件项目。 | SBOM 还可能包含设备所依赖的医疗设备周围的系统组件。 |
SOUP 是尚未根据 IEC 62304 开发的软件项目。 | SBOM 并未区分这一点。 |
作为医疗设备一部分但不是根据 IEC 62304 开发的自行开发的软件项目也算作 SOUP。 | SBOM 不区分自主开发软件的类型。 |
SOUP 列表一般是一个“平面列表”。 | SBOM 可以包含组件的层次结构。 |
作为技术文档的一部分,SOUP 列表通常是一个独立的文档或其一部分(例如,软件架构的一部分)。 | SBOM 是机器可读的。 |
作为技术文档的一部分,SOUP 列表是一份内部文件。 | SBOM 可供运营商(医院等医疗保健提供者)使用。 |
SOUP 列表包含每个条目所需的属性,以识别相应的 SOUP 组件。 | SBOM 的条目比 SOUP 列表的元素具有更多属性。例如 HASH/签名、与主机组件的链接、全局唯一 ID 等。 |
结论:IEC 62304 中的 SOUP 和 SBOM 均用于识别和管理软件组件。但它们源自不同的环境并服务于不同的目的:
- SOUP 是特定于医疗器械软件的概念,特别是在确保该软件的安全性和有效性的背景下。
- SBOM 的概念更广泛,被各个行业用于管理软件供应链,并通过提高系统中使用的软件项目的透明度来提高网络安全。
b) SBOM 的目标是什么?
SBOM 旨在为制造商及其客户(例如软件运营商)和监管机构或公告机构提供服务。
制造商的目标
制造商通过 SBOM 追求以下几个目标:
- 他们满足其监管要求(详见下文)。
- 开源软件的许可条款包括披露该开源软件是设备一部分的义务。
- 制造商必须快速找到所用组件中的漏洞(例如,通过对照 NIST 数据库进行检查)并修复它们。这要求他们确切知道其设备包含哪些组件。SBOM 使此漏洞分析自动化成为可能。
- 这些知识也有助于风险分析,尤其是 FMEA。这是因为这种分析方法从设备组件有故障的假设开始。
- 制造商还必须在上市后阶段继续进行这种分析,特别是作为上市后监测的一部分。
- 在开发过程中,了解(并定义)哪些组件在哪些版本中使用非常重要。版本冲突和冗余组件经常导致软件出现故障,并使故障排除更加困难。因此,SBOM 成为配置管理的一部分。
- 最后,SBOM 可以成为供应商管理的一部分。它将组件与供应商及其流程和设备(组件)的要求联系起来。它通过唯一地标识组件并将其分配给相应的供应商来促进制造商和供应商之间的沟通。
运营商的目标
- 操作员可以使用 SBOM 来确定他们是否受到安全漏洞的影响,他们必须向制造商或“漏洞数据库”报告,并在必要时自行消除。
- 在安装过程中,SBOM 有助于识别和避免组件之间的版本冲突。例如,当操作员在一个平台上安装多个设备(来自多个制造商)时,就会发生此类冲突。
主管部门和指定机构的目标
当局和公告机构必须确保制造商符合监管要求。
- 如果制造商可以提供 SBOM,则表明其符合要求。
- 如果制造商还能合理地演示其如何创建 SBOM(自动),这也表明它了解其系统并能控制配置管理。
这两个因素都有助于当局和公告机构满足其自身的监管要求。
2. 监管要求
FDA 明确要求使用 SBOM。在其他法律领域,SBOM 也必不可少,因为它们是最先进的,没有它们就无法履行其他法律义务。
a) 欧盟要求
医疗器械的具体要求
MDR附件 I第 17.2 节以及 IVDR 类似地不要求 SBOM,而“仅”要求符合最新技术的 IT 安全。但 SBOM 是最先进的。
MDCG 2019-16 rev. 1 也没有明确要求使用 SBOM。但是,它确实要求进行漏洞监控。
“这可能包括对软件漏洞进行现场监控,以及执行设备更新的可能性(在现场安全纠正措施的范围之外),例如通过提供补丁来确保设备的持续安全。”
MDCG 2019-16 修订版 1
如果没有 SBOM,就很难实现这一过程的自动化并以有意义的方式实施它。
即使是未来的协调标准IEC 81001-5-1也没有明确要求 SBOM。但它说:
“软件物料清单 (SBOM) 是跟踪所有合并软件的文档。”
IEC 81001-5-1,E.2.4 中的注释
IEC TR 60601-4-5满足医疗电气系统的要求,也明确适用于医疗设备软件。该标准描述了“安全物料清单”:
“安全概念相关的网络安全物料清单,包括但不限于商业、开源和现成的软件和硬件组件列表。该列表应使目标群体能够有效地管理其资产,了解已发现的漏洞对医疗设备(以及连接的 IT 网络)的潜在影响,并部署对策以维护医疗设备的基本功能。”
国际电工委员会 60601-4-5
公告机构的解读依然谨慎,无论是IG-NB的立场文件还是TEAM-NB的立场文件都没有提到SBOM。
所有设备的要求
《网络弹性法案》确实将医疗设备排除在外,因为它们已经遵循垂直立法。然而,有趣的是,该法律在 13 段中提到了“软件物料清单”(SBOM)。
含有数字元素的产品制造商应当:(1)识别并记录产品中包含的漏洞和组件,包括以常用和机器可读的格式编制软件物料清单,至少涵盖产品的顶级依赖关系;
《网络弹性法案》附件一第 2 节
为了使此前未公布的法律更加切实可行,BSI 发布了技术指南 TR03183。TR03183-2部分名为“软件物料清单 (SBOM)”,并制定了相应的要求。这些可以理解为普遍适用的现有技术。
b) FDA 要求
虽然在欧洲,SBOM 的要求通常没有明确制定,但 FDA 长期以来一直坚持要求制定“网络安全物料清单”,其中也包括硬件。
随着综合法案在国家层面的出台,SBOM 最终具有法律约束力,并且现在也是当前最终网络安全文件中的必填项。
它引用了国家电信和信息管理局 (NTIA) 的规范。这些规范还指定了 SBOM(基线和选项)的内容。FDA 要求基本属性(“基线属性”,来源:本文档第 17 页)。
美国政府的第 14028 号行政命令要求美国政府机构的供应商提供软件物料清单。
c) 其他市场的要求
其他市场对 SBOM 也有明确要求。
其中包括IMDRF关于网络安全的“原则和实践”以及相关指导文件。
中国已发布专门的医疗器械网络安全指南。其中包括《医疗器械网络安全注册审查指南》(2022 年修订版)。它们将 SBOM 命名为:
“16. 现成软件列表(SBOM):产品向用户提供现成软件完整列表的能力。”
医疗器械网络安全注册审查指南 (2022年第7号)
因此,SBOM 不仅可作为一份文档,而且还与某一目的相关(向操作员发布)。
3. SBOM:标准化格式
a) 格式概述
SPDX 和 CyclonDX
SPDX和CyclonDX是成熟的 SBOM 格式。这些格式定义了文档格式(JSON、XML),但不能唯一地标识软件项目。相反,它们受益于其他格式,例如 CPE、PURE 或 SWID(见图 2),以及校验和或哈希值。

所有这些格式的属性均有部分重叠。

转换器允许将 SPDX 文件转换为 CycloneDX 文件,反之亦然。
如上所示,其他标准(如 CPE、PURL 和 SWID)也可用于唯一标识软件项目。前两个标准尤其重要。
持续教育

NIST 还编制了“常见漏洞”列表。CPE 和 CVE(通用漏洞枚举)格式以及 CVSS 都是安全内容自动化协议 (SCAP) 的一部分。
金银丝
PURL 采用分散式方法。制造商自行分配属性。这类似于 Maven 使用 GAV 参数的方法。GAV 代表
- 组 ID(例如 org.apache.commons),
- 工件 ID(例如 commons-math),以及
- 版本(例如,2.0)。
与 CPE 相比,工件或组件可以更精细地表示。例如,PURL 区分了 Log4j 中的 log4j-core 和 log4-api,而 CPE 则没有(见表 2)。
属性 | 持续教育 | 包管理器 (Maven) |
制造商或命名空间 | 阿帕奇 | org.apache.logging.log4j |
组件名称 | log4j | log4j 核心 |
组件的版本 | 2.0 | 2.0 |
b) 通过以下形式满足监管要求
不幸的是,标准格式中的属性定义不够完整,无法满足所有法律要求。例如,IEC 81001-5-1 区分了组件的“维护”、“支持”或“必需”状态。此状态不是标准格式的属性。
制造商可以决定是否手动添加这些信息或将自己限制在现有的最先进格式中。
FDA 的要求最为严格(本文档第 17 页“基线属性” )。这些要求与美国国家电信和信息管理局 (NTIA) 的要求相对应,并包含在上述格式中。
4. 使用 SBOM
a) 自动生成 SBOM
制造商应自动生成 SBOM,并将其作为其CI/CD 管道的一部分。诸如CycloneDX Maven 插件或npm 元包“CycloneDX BOM”之类的插件适用于此目的。微软已在 GitHub 上发布了“sbom-tool”。
OWSAP 工具列表也很有帮助。
我们还推荐可以自动分析并直观显示库和包依赖关系的插件。其中一个例子就是Oracle 的 JDeps for Java。
b)SBOM 在漏洞自动检测中的应用
SBOM 的主要优点是可以自动识别正在使用或已制造的软件设备中的漏洞。
为此,工具会自动定期将 SBOM 中列出的软件项目与NIST 数据库中发布的漏洞进行比较。
市面上有无数的商业和免费工具。例如,搜索“sbom 漏洞检查”,必要时再搜索“开源”,就能找到相关的结果。
制造商应每周至少运行一次,如果发现漏洞超过指定的 CVSS 值,则通过推送通知实时告知。
5. 总结与结论
在没有 SBOM 的情况下交付软件不符合最新技术水平。在美国,这是一项法定要求。
有许多工具可用于创建软件物料清单并自动将其与漏洞数据库进行比较。
特别是医疗器械制造商,必须履行其设备信息安全的责任。
由于这些原因,不再有任何理由不使用 SBOM。