开源安全危机的特效药:SBOM
近年来,开源软件的一系列供应链安全事故给全球企业敲响了警钟。从npm开源项目的“删库跑路”、“投毒事件”,再到当下数百个开源项目对俄罗斯用户的“围剿”(参考阅读:开源软件围剿俄罗斯)。开源软件的伦理道德和安全性正在遭遇前所未有的挑战,同时也给全球数字化社会带来巨大威胁。
作为现代软件开发的核心基础,开源软件在安全方面存在先天性的严重短板:可见性。使用开源软件的企业无法准确记录和统计生产运营中的所有(开源)软件。如果没有可见性的保障,软件供应链就容易受到安全性和合规性风险的影响。
而SBOM(软件物料清单),正是安全业界公认的遏制软件供应链风险的最佳方案之一,实施SBOM可以增强软件供应链的可见性。
近年来一些重大的软件供应链攻击,如2020年的SolarWinds和2021年的Kaseya,越来越多的组织和政府意识到软件供应链安全的重要性。例如,美国总统拜登曾于2021年5月签署一项行政命令,规定所有负责向联邦机构提供软件的供应商都必须提供SBOM。
Gartner预测,到2025年,60%负责开发关键基础设施软件的组织将在其软件工程实践中强制实施和标准化SBOM,比2022年(不到20%)大幅上升。
以下是软件工程领导者需要了解的,如何在整个软件交付生命周期(SDLC)中集成SBOM,实现安全软件开发的关键信息。
SBOM有哪些优势?
SBOM可帮助企业确定它们是否容易受到软件组件中已被发现的安全漏洞的影响,无论这些组件是内部开发的、商业采购的还是开源的软件库。SBOM会生成并验证有关代码出处和组件之间关系的信息,这有助于软件工程团队在开发和部署期间检测恶意攻击。
例如,2021年12月在广泛使用的开源Java日志记录库中发现了Apache Log4j中的零日漏洞。由于该漏洞非常危险且分布广泛,企业安全领导者必须清查哪些应用程序使用了存在漏洞的程序库。那些实施了SBOM的企业能够快速映射应用程序所依赖的存在漏洞的代码库,从而大幅减少了事件响应时间。
SBOM还能通过连接开源和第三方软件进一步提高效率。虽然企业使用的组件相同,但每个企业都会扫描漏洞并单独分析合规性风险。基于SBOM的通用基础架构和数据交换格式,组织间可以建立更大范围的协作来节省时间。
SBOM面临的挑战
数据共享和数据交换标准化决定了SBOM成败,因为当供应链中的每个人都遵守相同的标准时,SBOM将产生最大的价值。然而,由于已经使用或正在出现的软件和工具的数量庞大,达成这一共识可能需要一段时间。
另一个需要考虑的挑战是适用性。SBOM不是静态文档。组件的每个新版本都必须包含一个新的SBOM。在没进行SBOM变更的情况下发布和使用新组件存在巨大风险。SBOM的生成和管理工具对于其能否被广泛采用至关重要,因为这些工具可帮助组织将SBOM功能集成到软件开发、打包和发布活动中。
此外,SBOM生成工具需要通过包管理器查询依赖项。这可能会产生一种完整性错觉,因为开发人员可能将预编译的二进制文件或原始代码拉入其代码库中。软件工程团队必须避免将表层SBOM与整体SBOM混为一谈。为了实现完全透明度,SBOM必须在依赖关系图中尽可能深入地枚举组件。SBOM还可以提供分层信息,其中SBOM中的每个组件都有自己的SBOM。
SBOM将在整个关键基础设施和人类数字化生活中得到越来越多的采用,例如能源、公用事业、医疗、制造业、电信和政府等。其中最直接的影响将是政府和公共部门。例如,在美国联邦部门和机构中,NIST指南要求软件产品和服务供应商开始支持并使用标准数据格式的SBOM。