OWASP CycloneDX 如何捍卫开源软件供应链安全

 

软件物料清单(SBOM)组件库

  • 为什么需要SBOM

SBOM本质上是在应用程序中使用的所有软件组件的清单。没有它,企业就无法看到正在构建或使用的软件相关的许可证和安全风险。维护一个符合SBOM格式的最新清单对于跟上敏捷开发的步伐至关重要。因为在现代软件快速开发的过程中,组件及其版本正在迅速变化。

  • 什么是CycloneDX

OWASP CycloneDX是一个常用的SBOM标准,用于应用程序安全环境和供应链组件分析,它提供了所有第一方和第三方软件组成的清单。该标准非常完整,并且超出了软件库的范围,甚至扩展到了SaaSBOM、VEX等标准范围。CycloneDX是一个Apache2.0许可的开源项目,可以在GitHub中进行协作。

 

构建SBOM的必要性

  • 安全要求

  • 合规要求

SBOM能带给我什么?


1.提高透明度:为了产生忠诚度和推动重复销售,公司需要建立客户信任。共享的SBOM意味着企业所依赖的工具是可见的,它们的质量是有保障的,而不是一纸空文。

2.增强安全性:目前大多数开源漏洞都是通过间接依赖关系产生的。根据sonatype的2021年软件供应链报告,29%的流行项目版本包含至少一个已知的安全漏洞。通过使用SBOM,公司可以在软件发布之前找到并消除漏洞,并在发布后迅速修复新漏洞。

3.提高供应链弹性:供应链的强度取决于其最薄弱的环节。在像医疗保健这样高度监管的环境下,一个未被发现的软件漏洞可能会暴露病人的数据并导致代价高昂的漏洞。虽然SBOM不可能防止所有未被发现的漏洞,但它可以在SDLC早期发现问题,并有效的解决它们。

4.降低成本:让开发人员手动挖掘平台以发现和解决漏洞是一件费时费力的工作。通过将组件和版本更新的列表合并到一起,SBOM节省了开发人员手动搜索漏洞所花费的大量时间,这种自动化可以降低成本并提高生产率。

5.减少代码膨胀:软件迭代经常导致软件变得越来越臃肿,这就是所谓的代码膨胀。当开发人员添加多个执行相同功能的不同组件时,就会发生这种情况。这同时也增加了受攻击面,即需要维护的组件数量。SBOM可以帮助开发人员识别多余的代码,这意味着更快、更精简、更安全的服务。

6.简化EOL管理:当软件组件抵达它们的EOL(END OF LIFE)阶段时,供应商应该立即停止对它们的支持,这也意味着它们不再接收关键的更新和安全补丁。当组件到达EOL阶段时,开发人员需要根据SBOM来识别组件。SBOM有助于防止过时和不安全的组件继续运行,并帮助确定替换组件。

7.提高许可证合规性:公司在使用开源软件时需要注意许可证问题。不遵守开源协议可能会导致声誉受损、诉讼等等麻烦,另外一些许可证可以保护用户不受专利问题的影响,但前提是你要知道自己的哪些组件用的是哪些许可证。SBOM有助于公司管理许可证风险,帮助它们进行尽职调查,并避免将不符合规定的软件投入生产。

 

如何捍卫开源软件供应链安全?

最直接的办法是将SCA工具集成进企业的CI/CD管道,一般的SCA工具只能做到开源组件检测,实现开源代码的管理和监控

参照:https://baijiahao.baidu.com/s?id=1737745694930903351&wfr=spider&for=pc

 

---------------------------------------------------------------

SolarWinds 网络安全事件的影响,加上 Log4j 漏洞对众多知名企业产生难以估量的后果,使软件供应链安全成为安全领域的热门话题,并且SBOM现在成为网络安全漏洞计划的一个重要组成部分。

SBOM 本质上是构成软件的组件列表,其好处之一是识别潜在的带有漏洞的组件。领先的 SBOM 平台和工具,如 Dependency Track,通过将与组件相关的漏洞与那些使用 SBOM 来分析其软件组件的人所关注的漏洞相关联,来实现这一目的。此类工具通过查询国家漏洞数据库(NVD)、Sonatype OSS索引、VulnDB或OSV等来源来实时更新漏洞信息。

然而,软件中带有漏洞的组件并不意味着该组件是可以被利用的。这便是漏洞可利用性交流(VEX)发挥作用的地方。

什么是漏洞可利用性交流(VEX)?

漏洞可利用性交流(VEX)最初是为用户(运维人员、开发人员以及服务提供商)提供额外的信息,说明产品是否受到所含组件中特定漏洞的影响,如果受到影响,是否有建议的补救措施。

简言之,VEX为漏洞添加了上下文信息以告知风险管理活动。与SBOM和软件供应链安全指南类似,VEX诞生于美国国家电信与信息管理局软件组件透明度的多利益相关方流程。虽然VEX是为特定的SBOM用例而开发的,但它并不局限于与SBOM一起使用。

再次强调,并不是所有漏洞都可以被利用,因此企业可以通过漏洞管理计划和活动进行风险管理。在网络安全风险管理中,企业需要基于其风险容忍度来识别、分析、评估和解决网络安全威胁。因此,企业需要根据风险发生的可能性和严重程度来对风险进行优先级排序。如果不了解漏洞是否被利用,就不可能精确地预估其发生的可能性。

参考:https://baijiahao.baidu.com/s?id=1743093006953602482&wfr=spider&for=pc

 

posted @ 2023-09-14 15:57  幸福在今天  阅读(86)  评论(0编辑  收藏  举报