开源 · 三句半
许可收紧频变换
开源治理又变难
谁能帮忙过难关
软件物料清单!
“开源软件可能正面临中年危机”,产生这种说法的原因是许多开源项目在商业化上未达到目标,使得项目维护者缺乏基本运营资金,导致那些正运行于全球各地重要系统中的开源软件难以维持,一些维护者只能重新定位许可证来保障运营工作。因此,很多流行的开源软件突然进行一系列限制性许可更改,其中包括Terraform、Redis、Elasticsearch等等,且变更许可证的项目数量逐渐上升。
此趋势下,开源软件的安全隐患和管理难度逐渐上升,加之近年来,开源软件漏洞引发的安全事件也爆发增长,使得软件物料清单(SBOM)与开源软件治理显得尤为重要。本文帮助软件开发人员深入理解SBOM,通过SBOM进行开源软件治理方法,有效提升软件项目安全性和质量。
SBOM不只是“配料表”
SBOM,即软件物料清单,是一个详细记录软件组件、版本、许可证及依赖关系等信息文档,类似软件的“配料表”,让用户和开发者能够清晰地了解软件的构成。
美国政府于2021年发布的旨在加强国家网络安全态势的第14028号行政命令的一部分要求软件生产商向其联邦客户提供SBOM。我国也陆续发布了一系列相关政策和指导文件,包括《关键信息基础设施保护条例》在内,都强调了增强软件供应链安全保障能力,推动软件物料清单等关键技术的应用。近期,关于SBOM的国家标准《网络安全技术 软件物料清单数据格式》也到了公开征求意见稿阶段,标准将有力规范我国软件物料清单的格式与内容,进一步提升软件供应链的透明度和安全性。
SBOM本质上是提供对构成软件的所有组件成分的可见性记录,它提供了详细可机读的清单,列出了所有开源和第三方库、依赖项以及用于构建软件的组件。SBOM是修复组件问题或0day漏洞不可或缺的工具,当其存储在可搜索的存储库中时,可提供特定依赖项存在的地图,使安全团队能够快速追踪漏洞回到受影响的组件。当前,主流的SBOM标准包括SPDX和CycloneDX等,为SBOM的生成和管理提供了统一的规范,使得不同工具和平台之间能够实现互操作,关于SBOM的生成可以详看《如何生成一份软件物料清单SBOM?》。
SBOM在开源软件治理中的应用
当下,开源软件的威胁严重程度不容忽视。据2024年OSSRA报告,在分析的1,067个代码库中,96%包含开源代码;在所有被评估的源代码和文件中,77%来自开源代码,且代码库中74%包含高风险漏洞。此外,评估检测的软件应用中开源组件的平均数量为526个。在这种风险规模下,采用SBOM进行开源治理具有建立透明化管理体系、增强安全管控能力的关键作用。
首先,SBOM可以通过相应的管理工具生成,可自动化地识别开源软件中的已知漏洞和过期版本,再结合安全扫描工具,可进行更全面的风险评估,及时发现并修复潜在的安全问题。若进一步对软件成分进行分析,可应用开源网安SBOM管理平台实现对软件内部组成成分的精细化拆解与风险关联,发现与开源软件之间的多层依赖关系,深度识别开源风险。
其次,通过对SBOM的分析,可完成对开源软件的许可证兼容性审查,避免因许可证冲突而引发的风险,应用SBOM管理平台为软件资产管理提供详细的许可合规性信息,可清楚地展示项目中所使用的开源软件在法律上的合规性。
此外,在SBOM的基础上拓展,能帮助企业和开发者构建清晰的软件供应链关系视图,追踪组件的来源和动向,引入签名验证机制,我们可以确保组件的完整性和真实性,从而有效防范供应链攻击。
SBOM在开源软件供应链管理中的应用
开源网安SourceCheck团队认为,SBOM是确保开源软件供应链安全、可靠、合规的关键工具,对于保障供应链安全和管理起到重要作用:
- 来源追踪:SBOM可以提供软件组件的来源信息,帮助企业追踪软件的构建过程。这有助于确保软件的完整性和可信度,并防止恶意软件或篡改的组件进入软件供应链。
- 风险评估:通过分析SBOM中的组件信息,企业可以评估软件供应链中的潜在风险。例如,发现使用了来自不可信来源的组件或存在已知安全漏洞的组件,可以及时采取措施降低风险。
- 合规性管理:SBOM可以帮助企业确保软件供应链符合相关的法规和标准。例如,某些行业可能要求软件产品使用特定的开源组件或遵循特定的许可证要求。通过SBOM,企业可以轻松地验证软件的合规性。
- 沟通和协作的工具。双方可以共享SBOM,确保对软件组件的理解一致,并共同管理供应链中的风险。
- 事件响应:在发生安全事件或供应链中断时,SBOM可以帮助企业快速了解受影响的软件产品和组件。这有助于制定应急响应计划,并采取措施恢复软件的正常运行。
随着技术的发展和软件安全的关注度越来越高,SBOM及其管理工具的标准化、自动化和智能化势必成为未来的重要发展方向。不过,在此之前,行业规范和政策导向是关键,国际和国内关于软件透明度、开源治理的法规政策将逐渐健全,从政策层面推动 SBOM和开源治理的广泛应用与发展,为软件行业的健康稳定发展提供坚实后盾。
SBOM软件物料清单管理平台,可帮助用户快速了解软件构成,提高软件透明度,提前识别消除开源组件的漏洞、安全缺陷和许可风险,是用户提高软件安全性与开发效率,满足合规要求的有力工具
推荐阅读:
如何用SCA工具做好开源软件风险管理?