您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。 [美国国家电信和信息管理局]:最小元素软件清单物料SBOM - 发现报告

最小元素软件清单物料SBOM

报告封面

根据《加强国家网络安全行政命令》第14028号 美国商务部 2021年7月12日 商务部 SBOM 的最低要素 目录 目录........................................................................................................................................ 2 商务部 SBOM 的最低要素 一、执行摘要 《关于加强国家网络安全的行政命令(14028)》要求商务部与国家电信和信息管理局(NTIA)协同,发布软件物料清单(SBOM)的“最低要素”。SBOM是一份正式记录,包含构建软件所使用的各种组件的详细信息和供应链关系。除了建立这些最低要素外,本报告还界定了思考最低要素的范围,描述了为增强软件供应链透明度而使用SBOM的场景,并提出了未来发展的选项。 一个软件物料清单(SBOM)为生产、采购和运营软件的人员提供了信息,增强了他们对供应链的理解,从而带来了多重好处,最显著的是能够追踪已知和新兴的漏洞与风险。SBOM不会解决所有软件安全问题,但它将形成一个基础数据层,在此基础上可以构建进一步的安全工具、实践和保障。本文件中定义的最小元素是支持基本SBOM功能所必需的部分,并将成为软件透明度演进方法的基础。这些最小元素涵盖三个广泛且相互关联的领域。 本文件确定了实现基本用例所需的最小要素,例如漏洞管理、软件清单和许可证。它还展望未来,开启关于推荐SBOM功能以及超越最小要素的进一步工作优先事项的讨论。这包括关键安全功能,如SBOM完整性,以及跟踪更详细的供应链数据。随着更多SBOM要素变得可行、经过测试并集成到工具中,它们将支持更广泛的用例。其中一些期望中的要素目前正在实施中,或已展现出巨大的潜力。 行政管理部门已将软件物料清单(SBOM)确定为重点,以推动软件保障和供应链风险管理,而从今天开始执行比等待完美时机更好。本报告发布后,下一步工作包括制定提供指导方针。 商务部 SBOM 的最低要素 根据行政命令的要求,向软件购买者提供SBOM,并继续开展公私合作,以完善和落实SBOM相关工作。 商务部 SBOM 的最低要素 II. 背景 2021年5月12日,总统发布了关于提升国家网络安全的行政命令(EO)14028。该命令聚焦于通过以下方式现代化网络安全防御:保护联邦网络,改进美国政府与私营部门在网络安全问题上的信息共享,以及加强美国在事件发生时应对的能力。在众多其他任务中,它指示商务部长,在通信与信息助理部长以及国家电信与信息管理局(NTIA)局长协调下,在命令发布后60天内发布软件物料清单(SBOM)的最低要素。 自2018年以来,NTIA一直关注这一问题,当时它启动了一个开放透明的软件组件透明度多利益相关方流程。NTIA作为召集人和中立的促进者,汇集了来自世界各地的代表软件生态系统多个领域和观点的专家。最终成果由利益相关方起草,并在交付成果形成过程中,社区有频繁的机会参与讨论。该流程产生的文件为本次活动提供了宝贵的见解和背景材料,以提出EO 14028指导下SBOM的最小要素。 透明度之必要 管理局在《执行令》中指出:“我们对数字基础设施的信任,在现代世界中,应与其可信度和透明度成正比。” 软件系统涉及复杂、动态——而且往往晦涩——的供应链。让供应链内部和外部的组件与连接透明化,对于发现和解决这些链中的薄弱环节至关重要。软件物料清单(SBOM)是保障软件供应链安全的关键一步。没有它们,对系统贡献者、构成和功能的透明度缺乏,会显著增加网络安全风险,并提高开发、采购和维护的成本。 透明度最有效地通过一个行业支持的可理解模型来实现。SBOM模型通过跟踪组件元数据、实现与其它信息源的映射,并将元数据与其在供应链中流转和部署时绑定,从而实现这种系统化的共享。要使该模型在全球范围内规模化,就必须解决普遍识别和定义软件组件某些方面的问题,以便让下游用户能够有效且高效地消费这些数据。 商务部 SBOM 的最低要素 识别软件组件是SBOM的核心,它提供了可见性和认知能力。SBOM数据可用于特定目的,从简单的(例如映射到漏洞数据库)到复杂的(例如通过关联和分析多个数据源,对包含的开源软件包进行针对特定威胁的持续监控)。在这两种情况下,可能仍需要外部数据。SBOM是必要的粘合剂,用以将相关的外部数据映射到相关的软件产品上。 软件物料清单(SBOM)对软件的生产者、购买者和运营者都很有用。它有助于理解软件生态系统,并为多种用例和用户带来益处。4 其中包括生产者和运营者使用SBOM进行库存、漏洞和许可证管理,以及购买者进行风险评估(许可证和漏洞分析)。 SBOMs为生产者提供了诸多优势,例如确保组件保持最新状态,并能快速响应新出现的漏洞。SBOMs还能带来超越安全范畴的益处,例如通过提升可见性来支持更高的效率和效能,进而实现优先级排序和更优的管理。例如,它们有助于生产者了解并遵守许可证义务。 在漏洞管理用例中,SBOM数据通过提供软件生态系统中依赖项的透明度,帮助生产者和运营商更快、更准确地评估新发现的漏洞相关的风险。因此,它提升了漏洞识别能力以及响应速度。 理解软件供应链,获取软件组件的全面SBOM数据,并利用这些数据识别和分析已知漏洞及潜在缓解措施,对于风险管理至关重要。这需要机器可读的SBOM支持自动化和工具集成,以及应用程序查询和处理这些数据的能力。 III. 范围 本文件确立了软件物料清单(SBOM)的“最低要素”。这些最低要素将建立SBOM提供的基本技术和实践,并被视为实现行政命令14028中阐述的目标所必需的。本文件还回顾了 商务部 SBOM 的最低要素 如何能在此基础上进行扩展,并提供了一些关于在可预测的SBOM格式与灵活性需求之间的张力的指导,具体取决于所涉及的技术和消费者的需求。 仅凭软件物料清单(SBOM)无法解决软件供应链和软件保障中存在的众多问题。承认当前生态系统面临的没有安全担忧,这本身就是一个必要的陈词滥调,而网络安全万灵药也并非如此。如前所述,SBOM能够促进对已知漏洞的更好、更快响应。特定软件的已知漏洞数量取决于其用户基础、研究界以及供应商的披露流程和产品安全团队。披露的漏洞更多可能意味着该软件使用风险更低,因为这表明研究人员正关注该软件,且供应商也在管理披露流程。 SBOM 是基于已识别漏洞的起点。当前环境下被认为可行的最小要素,未能涵盖现代软件流程中可能出现的、围绕软件来源、处理和使用的那部分全部元数据。其中部分数据将被纳入 SBOM 数据的未来扩展中。与此同时,SBOM 不会是供应链安全或软件保证的唯一资源或机制。其他数据对多种用例非常有价值,但应被视为与 SBOM 相分离且互补的。与其将 SBOM 视为所有保证和软件供应链数据的单一模型,不如鼓励采用可链接、模块化的方法,以最大限度地发挥灵活性和采用的潜力。可链接性使 SBOM 数据能够轻松映射到其他重要的供应链数据,而模块化架构则支持针对更多用例进行扩展,随着软件供应链透明度和管理数据及工具的成熟。 软件供应链讨论中的某些关键点不在此报告的范围内,包括监管和采购要求的问题。最低要素不应被理解为创建新的联邦要求。集中或整合SBOM数据以用于运营、威胁情报或研究的潜在益处尚未得到探讨。最后,“软件物料清单”中的“软件”自然限制了硬件的考量。虽然嵌入在硬件和设备中的软件当然在范围内,但硬件相关的关键供应链和安全问题既独特又复杂,值得单独处理。 最后,本文件中的任何内容均不得被视为限制SBOM的使用或约束当今软件生态系统中正在进行的创新与探索。这些最低要素是 商务部 SBOM 的最低要素 起点。总而言之,本文件代表了SBOM流程中的一个关键初始步骤,该流程将随着时间的推移而发展和成熟。 IV. 最小要素 一个整体SBOM的最小构成部分——称为元素——包括三个广泛且相互关联的领域。这些元素将支持一种不断发展的软件透明度方法,既能捕捉技术层面,也能反映其功能运行。未来的工作无疑将包含更多细节或技术进步。如上所述,目前这些只是最低要求;组织机构可能要求更多,并且软件供应链的透明度能力也可能随着时间的推移而改进和演变。(参见“SBOM的未来”) 这三个元素类别是: • 数据字段• 自动化支持• 实践与流程 软件可以表示为一个分层树状结构,由组件构成,而这些组件又可以拥有子组件,以此类推。组件通常是“第三方”组件,来自其他来源,但也可能是“第一方”组件,即来自同一供应商,但能够被唯一识别为一个独立的、可追踪的软件单元。每个组件都应有自己的SBOM(软件物料清单),列出其组件,从而构建分层树状结构。这些数据字段适用于每个组件,并且会根据既定的实践和流程,使用工具和格式进行编码,以支持自动化。 数据字段 SBOM(软件物料清单)的核心在于一个一致且统一的结构,该结构能够捕获和呈现用于理解构成软件的组件的信息。数据字段包含每个组件的基本信息,这些信息需要被跟踪和维护。这些字段的目的是能够充分识别这些组件,以便在软件供应链中跟踪它们,并将它们映射到其他有益的数据源,例如漏洞数据库或许可证数据库。这些基本组件信息包括: 商务部 SBOM 的最低要素 这些字段中的大多数有助于识别组件,以便明确映射到其他数据源。供应商是指软件组件的原始开发者或制造商。组件名称由供应商确定。如果可能,应支持为供应商和组件名称分别注明多个名称或别名。 缺乏统一、被广泛理解和使用的 6 软件命名空间所带来的挑战已有详尽记录。当不存在现有标识符时,应使用现有的组件识别系统。供应商名称和组件名称是人类可读的字符串,用于支持识别,尽管软件生态系统的一些特征,如企业合并和开源分支,将使得在此基础上的普遍且永久的解决方案难以实现。 软件版本管理中的复杂性是软件生态系统中多样性需要融入组件识别方法灵活性的另一个例子。不同类型的软件或软件供应商对版本和发行版本的处理方式不同。解决 商务部 SBOM 的最低要素 这超出了最初SBOM讨论的范围。7 对于这些最小元素,版本号采用供应商提供的信息,因为该方对所涉及软件的跟踪和维护负有最终责任,类似于组件名称。版本字符串的理想功能是识别特定的代码交付。虽然存在版本管理最佳实践(例如语义版本管理8),但它们在当今并非普遍存在。 其他唯一标识符支持跨数据使用和生态系统自动映射数据,并在不确定性情况下增强确定性。常用唯一标识符的例子包括通用平台枚举(CPE)、9 软件标识(SWID)标签、10 以及包统一资源定位符(PURL)。11 这些其他标识符可能并非每款软件都有,但若存在则应使用。 依赖关系反映了软件包含的方向性,并能够表示从软件到其组件以及潜在子组件的传递性。最后,SBOM特定的元数据有助于跟踪SBOM本身。作者反映了元数据的来源,这可能来自SBOM中描述的软件的创建者、上游组件供应商或某些第三方分析工具。请注意,这不是软件本身的作者,只是描述数据的来源。时间戳记录了数据组装的时间——即SBOM创建的时间点。这些进一步支持了数据的来源,并有助于识别SBOM的更新版本。这些数据字段为SBOM数据源提供了上下文,并且可能被用于做出信任判断。 自动化支持 自动化支持,包括自动生成和机器可读性,使得跨软件生态系统扩展成为可能,尤其是在组织边界之间。利用SBOM数据将需要工具,这要求可预测的实施和数据格式。例如,一些机构可能希望将此功能集成到他们现有的漏洞管理实践中;其他人可能希望实现实时 7 随着SBOM(软件物料清单)的使用和消费,越来越多的可见性得以显现,我们可以期待进一步的讨论,并且不同模型、方法和模式之间可能实现更大的趋同。8 语义版本2.0.0,https://semver.org/(最后访问日期:2021年7月1日)。 商务部 SBOM 的最低要素 合规性安全策略审计。自动化将是关键,而这反过来又需要通用的、机器可读的数