了解 NSA 关于管理 OSS 和 SBOM 的最新指南

开源软件很容易受到恶意行为者的攻击,但软件材料清单可以帮助减轻威胁。美国国家安全局的指导为管理生态系统奠定了坚实的基础。

软件供应链安全仍然是网络安全和软件行业的一个关键话题,并且有充分的理由,从针对大型软件供应商的持续攻击到攻击者对开源软件生态系统的恶意关注,它是大多数人的前沿和IT安全主管与安全从业者。幸运的是,组织继续提供可靠的指导来帮助从业者减轻软件供应链风险。最新出版物《保护软件供应链:管理开源软件和软件物料清单的建议做法》来自美国国家安全局 (NSA)。

它还以之前的出版物(例如白宫网络安全行政命令 (EO)和备忘录)以及即将对联邦机构提出的要求为基础,例如管理和预算办公室 (OMB) 的备忘录22-18和23-16,其中要求软件供应商向美国联邦政府出售产品,以自我证明与美国国家标准与技术研究所 (NIST) 的安全软件开发框架 (SSDF) 等出版物保持一致,甚至在某些情况下提供 SBOM。

虽然 NSA 指南引用了白宫、NIST 和 OMB 之前的出版物,但本出版物与所有生产和使用软件、利用 OSS 以及寻求采用 SBOM 等工件的组织相关。

以下是该指南的一些关键领域,包括该文件的建议和要点。

NSA SBOM 指南的结构

NSA 指南重点关注四个关键领域,如下表所示,并与其各自的 SSDF 活动保持一致。(区域1仅作介绍,因此省略):

开源软件管理

NSA 指南的这一部分定义了开发商和供应商等的关键角色和责任。它指出,开发人员的责任包括确定要使用的潜在 OSS 解决方案并将 OSS 解决方案集成到产品软件中,以及跟踪这些组件的更新。供应商是指生产产品或服务并执行活动(例如监控产品中包含的 OSS 组件的许可证变更或漏洞)的人,因为他们可能会将风险传递给下游消费者。

NSA 列出了使用 OSS 的主要考虑因素,例如评估 NVD 和其他漏洞数据库等来源中的 OSS 组件是否存在漏洞,并确保易受攻击的组件不会包含在产品中。它还建议组织继续了解许可注意事项,例如许可合规性以及出口管制,例如不断发展的欧盟法规,这些法规可能会影响将开源软件纳入产品中。

该指南建议采用 SBOM 作为 OSS 组件库存管理的一种手段,同时也为下游消费者提供透明度,并了解通过开发到产品中的组件的漏洞状况。SBOM 是软件组件的嵌套清单,主要格式是 Linux 基金会的SPDX和 OWASP 的CycloneDX。NSA 建议生成的 SBOM 满足 NTIA 的“ SBOM 的最低元素”中记录的最低元素要求。

创建和维护公司内部安全的开源存储库

鉴于组织消费和使用 OSS 的广泛程度,一些研究引用了 70-90% 的现代代码库是 OSS 的数据,并且大约 90% 的代码库包含某些 OSS 组件,NSA 指南中的另一个突出建议是创建和维护公司内部安全的 OSS 存储库。该存储库有助于审查 OSS 组件,以确保它们在提供给产品和开发团队之前满足组织风险和合规性要求。

NSA 建议在通过安全存储库向开发人员提供 OSS 组件之前,使用软件组成分析等工具来识别漏洞和许可问题,如下图所示:

这当然意味着组织需要定义添加包以供使用的流程以及允许将包添加到安全存储库所需的安全分析和文档。它还指出,与生产版本相比,开发等环境可能有不同的政策,并建议与安全供应链消费 (S2C2F)等行业框架保持一致,该框架侧重于为开发人员提供安全的 OSS 消费和使用。

OSS 采用过程应包括在隔离的安全环境中进行的软件组成分析、病毒扫描和模糊测试等活动。还建议开发人员考虑其他因素,例如许可、漏洞历史记录以及采用组件在时间和降低内部开发成本方面的好处。NSA 还建议使用 OpenSSF 记分卡等工具来分析组件,当然,OpenSSF 记分卡不仅仅关注已知漏洞等滞后风险指标,还关注项目代码审查、贡献者密度、维护保养等方面。

值得注意的是,小型组织可能拥有单个安全存储库,并由开发人员实施治理,而大型组织可能利用开源审查委员会来审查采用请求,并涉及许多利益相关者,例如开发、管理和安全性。建议包括监视授权组件存储库中是否存在新漏洞,并始终了解哪些开发人员组和产品团队采用了某个组件,以便在某个组件随后变得脆弱或受到损害时,他们可以参与任何必要的事件响应活动。

为了向下游产品和软件消费者提供上下文和优先级,该指南建议供应商和开发人员采用漏洞利用交换 (VEX)文档来帮助消费者和客户了解哪些组件实际上受到漏洞影响,哪些组件已得到解决,以及应该通过补偿控制来解决哪些问题。

美国国家安全局还建议供应商和供应商采用认证流程,以证明产品在产品开发和分销的整个构建、扫描和包装过程中的安全开发。这当然是由行业努力主导的,例如 in-toto 和 SSDF 以及在不生成和使用机器可读工件时的自我证明。这不仅有助于保证最终产品的组件,还有助于保证开发过程的安全性。

为了解决漏洞,NSA 建议不仅使用 CVE 和 NVD,还建议使用其他漏洞数据库(例如 OSV)以及漏洞情报源(例如 CISA已知利用漏洞 (KEV)目录和利用预测评分系统 (EPSS))。这不仅可以深入了解漏洞基本评分和严重性,还可以深入了解已知或可能的利用情况。

开源软件维护、支持和危机管理

强调的另一个关键活动是安全代码签名要求,例如执行代码签名、使用经过验证的加密技术以及保护代码签名基础设施本身。美国国家安全局还建议在 NIST 的事件处理指南等指南的基础上制定危机管理计划。它包括定义危机、构建组织应对方式以及参与人员等活动。如果 OSS 组件在野外被主动利用,这一点至关重要。这还涉及创建和完善危机管理团队 (CMT) 以及角色和职责。该团队将调查与主动利用相关的潜在事件,确定组件位于执行路径内时系统或应用程序是否受到影响,并确定是否可以修补漏洞或是否需要补偿控制。

SBOM 创建、验证和工件

本指南的这一部分重点介绍创建和使用 SBOM 的工具、流程和注意事项。为了有效地使用 SBOM,供应商需要了解产品是如何构建的以及它们包含哪些组件。鉴于 SBOM 可以在 SDLC 的各个阶段创建,NSA 指南将 SBOM 工具分为源代码、二进制文件、程序包和运行时提取器四类。

NSA 建议组织在签名之前验证 SBOM 内容的准确性。它还重申,SBOM 可以附有 VEX 等文件,以明确易受攻击的组件、供应商为解决漏洞而采取的活动以及可能仍然易受攻击或可利用的组件。由于 SBOM 是一个新兴且不断发展的主题,因此 NSA 引用了来自SPDX、CycloneDX和Linux Foundation的各种资源,组织可以在其中了解有关 SBOM、其作用以及如何使用它们来降低组织风险的更多信息。

该指南强调了恶意利用的速度,在发现和披露漏洞后平均 5.5 天就会发生,并建议在 CI/CD 等自动化管道中利用 SBOM 来自动生成 SBOM。它还建议查看 CISA 的SBOM 和 VEX资源。有关 VEX 文档和 SBOM 如何协同工作的详细可视化,请参见下图:

这展示了 SBOM 如何提供软件组件的透明度,而 VEX 可以伴随软件供应商的信息来传达哪些组件受到漏洞影响或不受漏洞影响,并且可能需要客户和消费者采取行动并减轻控制。可以向消费者提供 SBOM 和随附的 VEX 文档,以清楚地传达产品或应用程序中包含哪些 OSS 组件,并且 VEX 可以帮助最大限度地利用资源,重点关注产品的哪些方面实际上容易受到攻击以及可能采取的行动的详细信息由供应商或销售商。

这解决了软件供应商和消费者之间长期缺乏透明度的问题,并为加强整个生态系统的软件供应链安全提供了机会。

有关供应商 SBOM 流程的更多详细信息,NSA 指南推荐 NTIA 的“软件供应商手册:SBOM 生产和提供”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/585959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单工厂、工厂方法、抽象工厂和策略模式

摘要 本文简单介绍软件开发过程中面临的痛点和几个总体原则。详细介绍了简单工厂、工厂方法、抽象工厂和策略模式的实现,以及各种模式之间的相似、区别。 背景 开发面临哪些问题(痛点)? 相信做过大型软件开发的tx都遇到过以下类似…

2023年年终总结 —— 致满载荣誉或满脸惆怅的你

开篇请允许我引用歌曲《西楼儿女》的一句歌词: 陌生的朋友你请听我讲,许多年前我也曾有梦想,想过满载荣誉回到家乡,这肆意的风压弯了海棠。 2023年即将过去,不管你这一年经历了多少,或是职场的得心应手、情…

微服务事务处理:CAP 定理和最终一致性的关系

CAP 定理和最终一致性 CAP 定理和最终一致性是两个密切相关的概念,但它们在范围和细节上有所不同。以下是比较: CAP 定理 **正式陈述:**在分布式系统中,最多只能同时满足以下三个保证中的两个:一致性、可用性和分区…

STL——遍历算法

1.for_each 函数原型&#xff1a; for_each(iterator beg, iterator end, _func);——// 遍历算法 遍历容器元素&#xff1b; beg 开始迭代器&#xff1b;end 结束迭代器&#xff1b; _func 函数或者函数对象 #include<iostream> using namespace std; #include<ve…

C++ 判断 float 或 double 数据小数点后位数的方法

文章目录 Method 1Method 2Method 3 Method 1 #include <cmath> int countDecimalPlaces(double num) { if (num 0) return 0; // 避免除以零错误 return std::floor(std::log10(std::abs(num - std::floor(num)))) 1; }Method 2 #include <string> #…

GBASE南大通用-小内存单机安装GBase 8c分布式数据库实践

* 这种小内存部署方式仅用于分布式数据库个人学习使用&#xff0c;不建议用于其他用途。 随着数据高并发复杂场景业务需求不断增多&#xff0c;信息数据呈现出爆炸式增长、多源多维、数据类型繁复等特征。在这一趋势下&#xff0c;目前分布式数据库因其架构的天然优势&#xf…

Creo各版本安装指南

下载链接 https://pan.baidu.com/s/1VyP0_185mJeBiorlpUJqrQ?pwd0531 1.鼠标右击【Creo10.0(64bit)】压缩包&#xff08;win11及以上系统需先点击“显示更多选项”&#xff09;【解压到 Creo10.0(64bit)】。 ​2.打开解压后的文件夹&#xff0c;鼠标右击【Crack】选择【解压到…

mysql 数据查重与查重分页

起因是公司的crm录入不规范,有重复数据。 之后考虑到需要手动处理,首先需要自动找出重复的数据 查重要求: 存在多个不允许重复的字段,任一字段重复,则判断为同一个客户。划分到同一重复组中。 查重sql如下 SELECT CONCAT(组, dense_rank() OVER (ORDER BY group_key)) …

Winform RDLC报表(数据库连接、报表函数使用、动态表头)

文章目录 NuGet安装库数据库连接报表设计报表引用添加报表 数据集设计方法一手动添加方法二——连接数据库添加 关联报表与数据集表格数据与数据集数据设计表格格式、字体设计报表数据字段绑定 Winform 使用报表控件数据库填充数据集从数据库获取与数据源相同字段的数据 动态表…

数据库一般会采取什么样的优化方法?

数据库一般会采取什么样的优化方法&#xff1f; 1、选取适合的字段属性 为了获取更好的性能&#xff0c;可以将表中的字段宽度设得尽可能小。 尽量把字段设置成not null 执行查询的时候&#xff0c;数据库不用去比较null值。 对某些省份或者性别字段&#xff0c;将他们定义为e…

【并发】AtomicInteger很安全

AtomicInteger 简介与常规用法 AtomicInteger 是 Java 中 java.util.concurrent.atomic 包下的一个类。用于实现原子操作的整数。它是一个基于CAS&#xff08;Compare-And-Swap&#xff09;实现的原子整数类。它提供了一系列的原子操作&#xff0c;确保对整数的操作是原子性的&…

JavaScript(ES6)数据结构与算法之树

6. 树 文章目录 6. 树6.1 概念6.2 二叉树6.3 二叉搜索树概念代码实现插入遍历获取最值搜索删除节点 6.4 红黑树红黑树概念红黑树规则平衡原理 6.1 概念 非线性结构 n(n>0)个节点构成的有限集合&#xff0c;n0时称为空树 对于任一非空树 有一个根节点其余节点可以构成子树 …

python 中断点调试 pdb 包的介绍及使用

pdb 的简介 pdb&#xff08;python debugger&#xff09; 是 python 中的一个命令行调试包&#xff0c;为 python 程序提供了一种交互的源代码调试功能&#xff0c;其官方使用文档链接为 pdb — Python 的调试器。 pdb 的主要功能包括设置断点、单步调试、进入函数调试、查看当…

Django、Python版本升级问题大汇总

Django3.0升级到4.1,Python3.8升级到3.11.6问题大汇总 报错1:ERROR: Could not build wheels for cffi, uWSGI, which is required to install pyproject.toml-based projects ERROR: Could not build wheels for cffi, uWSGI, which is required to install pyproject.tom…

golang 图片加水印,字体文件从哪里找

鼠标左键双击此电脑图标在此电脑文本框输入电脑默认字体地址&#xff1a;C:\Windows\Fonts找到需要用到的字体文件&#xff0c;复制到指定文件夹

python企业车辆车货信息平台 s05fw

车货信息平台系统可具体分为货源方、平台方、承运方三部分。其中前端要求包含货源方&#xff1a;发布货源信息、选择承运方、司机服务评价&#xff1b;平台方&#xff1a;账户管理、货主、司机资质审核、聊天功能&#xff1b;承运方&#xff1a;车辆信息上传、个人车主发布车源…

Ubuntu Desktop 死机处理

Ubuntu Desktop 死机处理 当 Ubuntu Desktop 死机时&#xff0c;除了长按电源键重启&#xff0c;还可以使用如下两种方式处理。 方式1&#xff1a;ctrlaltFn 使用 ctrl alt F3~F6: 切换到其他 tty 命令行。 执行 top 命令查看资源占用最多的进程&#xff0c;然后使用 kill…

HEX报文协议打包生成工具

本工具可以用于灵活定制各种格式的报文。以下是定制报文中每个字段的说明&#xff1a; isbig&#xff1a;指示报文中的字节顺序是否为大端序&#xff08;Big Endian&#xff09;。如果为true&#xff0c;则表示使用大端序&#xff1b;如果为false&#xff0c;则表示使用小端序…

centrifuge5.0.1版本请求websocket实例

目录 一、安转 二、快速开始 三、实例开始 centrifuge提供了一个客户端&#xff0c;可使用纯 WebSocket 或一种替代传输&#xff08;HTTP 流、SSE/EventSource、实验性 WebTransport&#xff09;从 Web 浏览器、ReactNative 或 NodeJS 环境连接到Centrifugo或任何基于 Cent…

WorkPlus局域网即时通讯软件的领航者,连接高效协作的利器

在快速发展的商业环境中&#xff0c;高效的内部沟通和协作对于企业的成功至关重要。而局域网即时通讯软件则成为实现内部高效沟通的必备工具。作为一款领航者级别的局域网即时通讯软件&#xff0c;WorkPlus通过卓越的性能和创新的技术&#xff0c;成为了众多企业的首选之一。 W…