虎符智库|解读美国“加强软件供应链安全实践的指南” (SSDF V1.1草案)
对此,NIST修订了其2020年4月发布的《安全软件开发框架(SSDF) V1.0》,形成V1.1草案,并于2021年9月30日至11月5日完成公开征求意见。
一、 SSDF基本原则
二、SSDF实践分类
-
组织准备(PO):此类实践用来确保已准备好组织层面执行安全软件开发的人员、过程和技术(某些情况下针对单独的项目),共5项,根据行政令要求,新增了实践“软件开发安全环境(PO.5)”; -
保护软件(PS):此类实践用来保护软件的所有组件不受篡改和未授权访问,共3项; -
生产安全性良好的软件(PW):此类实践用于尽量减少软件发布版本中的安全漏洞,共8项。新草案将原实践“验证第三方软件是否符合安全要求(PW.3)”合并到了PW.4中; -
漏洞响应(RV):此类实践用来识别软件版本中的剩余漏洞,适当响应以解决它们,并防止未来发生类似漏洞,共3项。 表1 SSDF V1.1草案中所有实践和任务↓
分析草案所有实践可知,19项实践覆盖了软件供应链安全应包含的软件自身及其生产要素的安全内容,整体框架较为全面:
(1) 框架中实践涉及软件开发生命周期的需求、设计、集成第三方软件、编码、构建、测试源代码和可执行码、漏洞修复响应和分析等各个阶段的安全要求。
(2) 框架中实践考虑到了人员、工具链、开发环境、授权访问、完整性、安全配置等软件生产要素方面的安全和防护手段。
三、SSDF实践细节
-
实践:实践的简介、唯一标识符和解释等; -
任务:完成实践所需的一个或多个动作。V1.1草案中共43个(表1第三列,其中粗体的为新增任务,斜体的为从V1.0的其他实践中调整来的任务); -
实现示例:可用于实现相应实践的工具、过程或其他方法的示例; -
参考:对美机构已有标准指南中相关信息的引用。
表2 实践详细描述示例↓
四、与行政令要求的对应关系
(1) 软件供应链安全保障中,使用自动化工具检查已知和未知漏洞并修复依然是核心工作。它涉及框架中18项任务,包括定义检查标准、设计、集成、编码、构建、代码审查和漏洞分析、基线配置、漏洞信息收集、修复等各环节、各要素中与漏洞相关的工作。其中PW.4.4、PW.5.1、PW.7.1、PW.7.2和PW.8.2是检查漏洞的主要任务,多由有经验的安全人员在SAST、SCA、IAST等类型工具的辅助下完成。
(2) 实践“复用安全软件(PW.4)”的任务包括获取或维护安全可靠的内部和第三方组件、验证第三方组件符合组织要求、验证第三方组件的完整性和来源等。这些任务多用于供应链来源、控制和完整性方面的安全要求(3、4、6、10)的应对方案中。其中第三方组件的验证可以使用SCA工具进行。
(3) 新增“开发的安全环境(PO.5)”的两项任务可用于行政令多项要求(1(1)-(6)、2、3、5、6)的应对方案中。这说明在供应链安全中,软件开发环境已成为重点考虑的因素之一。
表3 SSDF任务与行政令要求的对应关系↓
关于作者
董国伟,奇安信集团代码安全事业部专家,博士,从事网络安全、软件安全、代码审计和漏洞分析相关工作10余年。