美国国家标准与技术研究所 (NIST) 于周五发布了期待已久的安全软件开发实践指南,正式规定要求向政府销售软件的企业实施 SBOM 并对构建的软件二进制文件进行威胁测试。
为了满足拜登总统网络行政命令中规定的 2021 年 5 月的最后期限,NIST 上周晚些时候提出了一系列新建议,其中一些包括新标准。
这些记录已经公开,但许多问题仍未解决,包括谁有权保证政府机构购买的软件的安全以及政府编写的代码的下落。
软件开发的新标准
在 Houzzdata,我们专注于电话营销,帮助 手机号码数据 您的企业直接与潜在客户建立联系。我们的目标方法可确保您接触到合适的受众,提高参与度并推动转化。利用我们经过验证的联系人列表,最大限度地提高您的外展工作并建立有意义的关系。立即通过 Houzzdata 的有效电话营销转变您的营销策略!
上周为满足行政命令的要求而创建的五份文件之一就是新指南。
除了800-218文件之外,这些还包括针对消费软件和物联网产品的网络安全标签的建议。
还有一份常见问题解答,概述了 NIST 根据 EO 14028 针对软件供应链提出的安全建议。
全面实施后,新的 NIST 建议将使向联邦机构销售产品的软件公司在其软件供应链中更加安全。这是因为 SP 800-218 包含许多旨在在软件开发过程中发现威胁的规范。
商业现货(COTS)和政府现货(GOTS)软件制造商除其他事项外,还必须遵守 SP 800-218。
- 收集、管理和共享所有软件版本依赖项和组件的出处信息(例如,在软件物料清单 [SBOM] 中)。
- 为了更准确地评估组件可能引入的风险,获取并分析每个软件组件的来源数据(例如,SBOM、源组成分析、二进制软件组成分析)。
- 在源代码中寻找后门和其他有害代码。
根据行政命令中建立并整合到文件中的附加标准,软件开发人员必须证明他们遵守安全软件开发实践,并且他们使用的任何开源软件都是安全的。
ReversingLabs 首席软件架构师托米斯拉夫·佩林 (Tomislav Periin) 表示,新框架的目标是阻止联邦政府使用的软件中的漏洞流动,并防止类似于 SolarWinds 软件供应链中的攻击。
SSDF 建议区分检查构建的二进制文件和源代码,并敦促软件工程师同时进行这两项工作。
SBOM 指南目前正在制定中
最近发布的指南参考了之前发布和 高级欺诈检测:确保 AI 营销策略免受欺骗行为侵害 起草的软件供应链安全指南,包括 NIST 特别书 800-161 Rev 1(草案),这是对 2021 年 11 月最新修订的 NIST 出版物的更新。
NTIA 所概述的 SBOM 的“最低限度要素”必须存在于符合 NIST 指南创建的软件物料清单中。
其中包括提供每个要跟踪的组件的背景详细信息的数据字段。其中包括供应商、组件名称、组件版本、其他唯一标识符、依赖关系、数据的作者和时间戳。
此外,SBOM 必须促进自动化,包括自动化 SBOM 生产和使用机器可读数据格式,以允许在整个软件生态系统中广泛采用 SBOM。
强烈建议支持预先存在的 SBOM 数据格式,如 SPDX、CycloneDX 和 SWID 标签。
企业还必须创建规则以实现 SBOM 部署,包括管理 SBOM 的创建频率、SBOM 的深度、如何处理“已知的未知数”、如何分发产品、如何管理访问以及对错误的容忍程度。
SP 800-161 的草案语言中添加了附加 销售线索 定义,要求联邦机构和部门“要求次级软件供应商生产、维护和提供 SBOM,确保所有类别的软件(包括购买的软件、开源软件和内部软件)都能获得全面且最新的 SBOM”。
进一步测试编译后的代码
新 SSDF 文档中的一些比较令人好奇的语言提到要求检查生成的可执行文件以及开发方法和人类可读的代码是否存在漏洞。
“测试可执行代码以发现漏洞并确保符合安全要求”,该指南明确指导软件开发人员这样做。
为了“在应用程序部署之前修复可执行文件(如二进制文件、直接运行字节码和源代码)中的任何漏洞以防止被利用”,敦促生产商“协助识别”。
软件开发商和安全公司都可以从中获益匪浅。在对 SolarWinds Sunburst 攻击的分析中,我们注意到,能够渗透到构建和开发环境并将有害代码与正版代码交织在一起的攻击者很有可能避免被发现。
通过识别 SolarWinds Orion 软件的两个编译版本之间的行为差异(或“静态行为指标”)(其中一个是恶意软件),ReversingLabs 能够识别对 SolarWinds 的 Sunburst 攻击。
根据新的 NIST SSDF 标准,软件开发人员的任务是在将软件二进制文件部署到政府系统之前评估软件二进制文件中是否存在漏洞,该标准似乎要求类似这样的能力。
证明之争
这自然引出了一个问题:鉴于 EO 和 NIST 指南为软件安全设立的高标准,谁(或什么)来证明该安全性。
NIST 支持所谓的 SSDF 合规性和 EO 14028 合规性的“第一方认证”,这是一个有争议的问题。
换句话说,当软件提供商声称他们已经遵守了 SSDF 和其他要求时,建议政府软件购买者“相信他们的话”。
说“第一方证明”总是一个好主意,并不意味着它就是一个好主意。
美国国家标准与技术研究院 (NIST) 允许对关键任务软件进行更高级别的保证,其规定“所需方法的类型和严谨性应与所采购服务或产品的关键性以及相应的保证要求相称”。
选项包括第三方评估、现场检查和认证。
Periin 表示,当软件开发人员难以实施安全软件开发框架、软件物料清单 (SBOM) 和其他标准时,第一方认证可能一开始是可以接受的。
ReversingLabs 认为,尽管 SolarStorm 和 log4j 表明供应链问题十分复杂,合规性仍必须由评估代理进行评估。随着供应链分析和 SBOM 变得越来越复杂,这一点尤其正确。
这些可以是一个组织、一个免费软件项目或一个开源计划,使软件开发人员和软件用户能够获得所讨论软件的精确且相同的软件物料清单 (SBOM)。
联邦政府能够与其软件供应商保持信任和开放的唯一方法就是通过这样的框架。
就范围而言,按我说的做,而不是按我做的做
该建议的“范围”是与 NIST 建议相关的第三点。即哪些实体受到该指南的保护。
您可能会认为联邦机构开发的软件将受到 NIST 发布的《政府机构安全软件开发框架》(其中有很多)的保护。但在这种情况下,您错了。