NIST 安全软件开发框架 1.1
控制项模式NIST SSDF v1.1 从官方可机读的 SSDF 表格工作簿中提取。
根据最低权限原则存储所有形式的代码——包括源代码、可执行代码和配置即代码——以确保只有授权人员、工具、服务等可以访问。示例:示例1:将所有源代码和配置即代码存储在代码库中,并根据代码的性质限制对其的访问。例如,为公众访问而公开的开源代码可能需要保护其完整性和可用性;其他代码也可能需要保护其机密性。示例 2:使用仓库的版本控制功能跟踪对代码所做的所有更改,并对个人账户负责。示例 3:对代码仓库使用提交签名。示例 4:让代码所有者审查并批准他人对代码所做的所有更改。示例 5:使用代码签名来帮助保护可执行文件的完整性。示例 6:使用加密(例如加密哈希)来帮助保护文件完整性。参考文献:BSAFSS:IA.1, IA.2, SM.4-1, DE.1-2;BSIMM:SE2.4;CNCFSSCP:保护源代码—验证、自动化、受控环境、安全认证;材料安全——自动化 EO14028:4e(iii)、4e(iv)、4e(ix) IDASOAR:事实表 25 IEC62443:SM-6、SM-7、SM-8 NISTCSF:PR.AC-4、PR.DS-6、PR.IP-3 OWASP ASVS:1.10、10.3.2 OWASP MASVS:7.1 OWASP SAMM:OE3-B PCI SSLC:5.1、6.1 SCSIC:供应商软件交付完整性控制、供应商软件开发完整性控制 SP80053:SA-10 SP800161:SA-8、SA-10
向软件获取者提供软件完整性验证信息。例如:示例 1:在安全性良好的网站上发布发行文件的加密哈希值。示例 2:使用已建立的证书颁发机构进行代码签名,以便消费者的操作系统或其他工具和服务在使用前可以确认签名的有效性。示例 3:定期审查代码签名流程,包括证书续期、轮换、吊销和保护。参考资料:BSAFSS:SM.4,SM.5,SM.6 BSIMM:SE2.4 CNCFSSCP:保障部署——验证 EO14028:4e(iii),4e(ix),4e(x) IEC62443:SM-6,SM-8,SUM-4 NISTCSF:PR.DS-6 NISTLABEL:2.2.2.4 OWASPSAMM:OE3-B OWASPSCVS:4 PCISSLC:6.1,6.2 SCSIC:供应商软件交付完整性控制 SP80053:SA-8 SP800161:SA-8 SP800181:K0178
安全地归档每个软件版本需要保留的必要文件和支持数据(例如,完整性验证信息、来源数据)。示例:示例 1:按照组织既定的政策,将发布文件、相关图像等存储在仓库中。仅允许必要的人员以只读方式访问,其他人不得访问。示例 2:存储和保护发布完整性验证信息和来源数据,例如将其保存在与发布文件分开的位置或对数据进行签名。参考资料:BSAFSS: PD.1-5, DE.1-2, IA.2 CNCFSSCP: 保护工件—自动化、受控环境、加密;部署安全——验证 EO14028: 4e(iii), 4e(vi), 4e(ix), 4e(x) IDASOAR: 25 IEC62443: SM-6, SM-7 NISTCSF: PR.IP-4 OWASPSCVS: 1, 3.18, 3.19, 6.3 PCI SSLC: 5.2, 6.1, 6.2 SCSIC: 供应商软件交付完整性控制 SP80053: SA-10, SA-15, SA-15(11), SR-4 SP800161: SA-8, SA-10, SA-15(11), SR-4
收集、保护、维护并共享每个软件版本所有组件的来源数据(例如,在软件物料清单 [SBOM] 中)。示例:示例 1:根据组织的政策向软件获取者提供来源数据,最好使用基于标准的格式。示例 2:向组织的运营和响应团队提供来源数据,以帮助他们缓解软件漏洞。 示例 3:保护来源数据的完整性,并提供一种方法让接收方验证来源数据的完整性。 示例 4:每当软件的任何组件更新时,更新来源数据。 参考文献:BSAFSS: SM.2 BSIMM: SE3。6 CNCFSSCP:材料安全——验证、自动化 EO14028:4e(vi)、4e(vii)、4e(ix)、4e(x) NTIA SBOM:全部 OWASP SCVS:1.4、2 SCSIC:供应商软件交付完整性控制 SCTPC:维护3 SP80053:SA-8、SR-3、SR-4 SP800161:SA-8、SR-3、SR-4