软件供应商的供应链安全指南
2022-04-29吕蕴藉
吕蕴藉
2022年10月31日,美国国家安全局、网络安全及基础设施安全局、国家情报总监办公室携手发布了保护软件供应链的实操指南。该指南内容总共有40页,主要提及了軟件供应商在供应链中所需要承担的责任和改进方法。指南中提及的供应商主要责任包括:
第一,努力识别可能危及组织、软件开发、软件本身和软件交付(即内部部署或SaaS)环境的威胁,并实施相关的缓解措施;
第二,作为客户和软件开发团队之间的联络人,需要确保软件在安全环境下开发,并通过安全渠道交付;
第三,供应商通过合同协议、软件发布和更新、通知和漏洞缓解机制来提供所交付的软件额外的安全功能。
对于软件供应链的安全实践,NSA、CISA与ODNI有着一系列的规划,相关规划落实在由NSA及CISA所主导的政企工作小组所开发的“长期安全框架(Enduring Security Framework,ESF)”之中。这一框架将产出指导美国重大网络基础设施的安全指南,针对软件供应链总计有三部分:首先是2022年9月发布、锁定软件开发者的Securing the Software Supply Chain for Developers,此次发布的指南适用于软件供应商,下一步则会发布针对软件供应链客户使用者的版本。
该指南针对软件供应商的供应链安全提出了很多建议,主要要点如下:
第一,敦促软件供应商在软件收发供货过程中保证供应链安全。供应商有义务做到确认发货的软件与客户收到的软件是一样的;需要创建一个安全的哈希值来验证文件是否传送正确;需要确保软件传输通信渠道是安全的;需要通过利用国际公认的标准(如NIST SSDF)对软件进行最终检查,这有助于确保在软件发布前满足软件功能和安全要求。
第二,认为供应商应提供一种机制,通过在整个软件生命周期内对代码进行数字签名,来验证软件发布的完整性。经过数字签名的代码,使代码接收者以及客户能够积极地验证和信任代码的来源和完整性。
第三,要求供应商必须确保本地开发的软件和由第三方供应商提供的任何组件都需要符合安全要求。由于第三方提供的软件和模块通常会包含在供应商发布的软件产品中,为此,供应商可以通过召集专家评估第三方提供的软件是否符合适用的安全要求、与第三方软件提供者签订合同协议来解决潜在的第三方软件问题。
第四,该指南认为供应商应尽一切努力,确保提供给客户的软件中不存在公开的或容易识别的漏洞。在向客户提供软件之前,需要测试、了解和消除软件中的漏洞,以防止提供容易被破坏的代码。需要建立一个由架构师、开发、测试人员、密码学家和人为因素工程师组成的漏洞评估小组,其任务是识别软件中可利用的弱点。需实时检查与第三方软件和与软件相关的开放源码组件相关的软件物料清单(SBOM),在相关问题公布后,建立并遵循企业对嵌入式组件升级的指导。