SCA面面观 | 如何生成一份软件物料清单SBOM?

由于网络安全挑战和不断变化的威胁环境,使得软件供应链安全成为了一个重要议题。特别是近年来,软件供应链的复杂性和全球化程度的提升,第三方软件的安全性和可追溯性变得越来越重要。

为了应对这一挑战,从美国政府开始,各个国家开始积极推动软件供应链安全的相关政策和措施。美国陆续发布的了《保障软件供应链安全:SBOM实践应用相关指南》、拜登14028号行政令(EO14028)成为了其他国家进行软件供应链安全保护的指导性文件。

近年来,我国先后发布了《网络安全审查办法》《关键信息基础设施安全保护条例》等政策法规强调加强软件供应链的安全保障。《GB/T 36637-2018 信息安全技术 ICT 供应链安全风险管理指南》标准要求,从产品全生命周期的角度开展风险分析及管理,以实现供应链的完整性、保密性、可用性和可控性安全目标。

软件物料清单(SBOM)作为一种有效的基础性工具,被广泛应用于软件供应链的安全管理中。简单来说,SBOM是详细记录软件组件的来源、版本和依赖关系等信息,有助于提高软件的透明度和可追溯性,便于发现和修复其中的安全漏洞。本文我们就来详细讲解 SBOM的具体是什么样子?以及它是如何生成的?

SBOM是个什么样子?

根据美国国家电信和信息化管理局(NTIA)的定义:SBOM是一份信息详尽、机器可读的形式化清单,其中囊括了软件所有组件的详尽信息及它们之间的层级关系。

SBOM是一个结构化列表,其中包含了软件基本信息、软件间的关系和软件其他信息这三类成分。

而SBOM的生成和交付,需要符合相应标准的数据结构。目前,业界公认的三种主流SBOM格式标准分别是SPDX、CycloneDX和SWID。这些标准通常采用XML或JSON等机器可读的格式,以便在不同的系统和工具之间进行交换和处理。

1. SPDX格式:是由Linux基金会赞助的SPDX项目编写的开放标准,用于识别和编目与软件相关的组件、许可证、版权、安全参考和其他元数据。SPDX使用一种标准化的、机器可读的格式,使其在不同的公司和行业之间保持一致,适合提供软件供应链、组件和依赖关系的大图。支持包括YAML、JSON、RDF/XML、tag:value等多种文件类型。

2. CycloneDX格式:是一种轻量级的标准,专为应用安全和供应链组件分析而设计,专注于提供快速、可靠的软件组件信息,而不是提供信息详尽的元数据。这使得CycloneDX在处理大型、复杂的软件项目时具有较高的性能。

3. SWID格式:是一种用于标识和描述软件实体的XML标准格式。它是为了提供对软件产品的准确和一致的信息而设计的。SWID支持四种类型的标签,分别是corpus、primary、patch和supplemental,用于在软件开发生命周期中表示不同的软件状态和信息,可以用于软件部署、配置管理、软件资产管理、安全漏洞评估等场景。

美国国家电信和信息化管理局(NTIA)认证了这三种格式,并要求向美联邦政府销售软件的组织必须以这三种格式之一提供SBOM。其中,SPDX作为唯一被写入ISO国际标准的格式,被各个国家广泛使用。

如何生成一份SBOM?

SCA工具作为当下开源软件治理和软件供应链安全管理的重要工具之一,生成SBOM是其重要核心功能之一,为后续各阶段的安全工作提供必备的基础信息,SCA工具生产SBOM可分为6个步骤:

1. 扫描软件:SCA工具会对目标软件进行扫描,扫描过程会涉及软件的源代码、二进制文件、容器镜像等不同层面。SCA工具会分析这些文件,以识别和提取其中的组件信息。

2. 识别组件:在扫描完成后,SCA工具会识别出软件中包含的所有组件。这些组件可能包括开源库、框架、插件等。SCA工具会使用不同的技术和算法,如文件哈希、模式匹配等,来准确识别这些组件。

3. 收集组件信息:一旦组件被识别出来,SCA工具会开始收集这些组件的相关信息。这包括组件的名称、版本号、供应商、许可证类型等。这些信息对于生成完整和准确的SBOM至关重要。

4.生成 SBOM数据:SCA工具会将生成的数据与知识库进行匹配对比,与此同时,根据用户所选的SBOM格式标准(如SPDX、CycloneDX、SWID等)生成相应的SBOM结构,将比对后的数据填入到相应字段。

5. 验证和优化SBOM:在生成SBOM后,SCA工具可能会进行一些验证和优化操作。验证可以包括检查SBOM的格式是否正确、组件信息是否完整、依赖关系是否准确等。优化则是对SBOM进行进一步的调整和改进,以提高其质量和可用性

6. 输出和交付SBOM:SCA工具会将生成的SBOM输出为机器可读的格式(如XML、JSON等),并交付给需要的相关方(软件开发团队、安全团队、合规性检查团队等),可以使用SBOM进行供应链安全管理、软件资产管理、风险评估、漏洞修复、安全事件响应等工作。

充分利用SBOM,确保软件供应链安全

生成SBOM之后,如何充分利用这份清单是保障软件供应链安全的关键所在。首先,通过SBOM可以精确掌握软件中每个组件的来源、版本和依赖关系,这有助于及时发现和修复已知的漏洞,避免安全风险,并且利用SBOM进行许可证合规性检查,确保软件使用合法,避免因违规而引发的法律纠纷。

此外,将SBOM与自动化工具相结合,在软件供应链的引入、生成、应用阶段的风险评估中,帮助识别关键供应商和组件,确保供应链的可靠性。因此,充分利用SBOM,不仅大幅度提升软件的安全性,而且进一步提高软件开发效率,降低合规风险,为整个软件供应链带来更加稳固可靠的安全基础。

推荐阅读

区区一个组件检测工具,还需要费劲选?

SCA只能用在测试阶段?那格局就小了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/313032.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法Hot100系列】外观数列

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

2023年北邮渣硕的暑期秋招总结

背景 实验室一般是在研究生二年级的时候会放实习,在以后的日子就是自己完成毕业工作要求,基本上不再涉及实验室的活了,目前是一月份也是开始准备暑期实习的好时间。实验室每年这个时候都会有学长学姐组织暑期实习经验分享,本着不…

【抓包教程】BurpSuite联动雷电模拟器——安卓高版本抓包移动应用教程

前言 近期找到了最适合自己的高版本安卓版本移动应用抓HTTP协议数据包教程,解决了安卓低版本的问题,同时用最简单的办法抓到https的数据包,特此进行文字记录和视频记录。 前期准备 抓包工具:BurpSuite安卓模拟器:雷…

构建基于RHEL9系列(CentOS9,AlmaLinux9,RockyLinux9等)的MySQL8.0.32的RPM包

本文适用:rhel9系列,或同类系统(CentOS9,AlmaLinux9,RockyLinux9等) 文档形成时期:2023年 因系统版本不同,构建部署应略有差异,但本文未做细分,对稍有经验者应不存在明显障碍。 因软件世界之复杂和个人能力…

WPF XAML(一)

一、XAML的含义 问:XAML的含义是什么?为什么WPF中会使用XAML?而不是别的? 答:在XAML是基于XML的格式,XML的优点在于设计目标是具有逻辑性易读而且简单内容也没有被压缩。 其中需要提一下XAML文件在 Visu…

k8s动态PV

当发布PVC之后可以生成PV,还可以再共享服务器上直接绑定和使用PV 动态PV需要两个组件: 存储卷插件,k8s本身支持的动态PV创建不包括NFS,需要声明和安装一个外插件 Provisioner:存储分配器。动态创建PV,然后…

基于JAVA+SSM框架开发的志愿者服务管理系统设计与实现【附源码】

🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统 📝 🚀🚀&#x1f6…

生活自来水厂污水处理设备需要哪些

生活自来水厂是确保我们日常用水质量安全的重要设施。在自来水的生产过程中,污水处理设备是不可或缺的环节。那么,生活自来水厂的污水处理设备都有哪些呢?本文将为您详细介绍。 首先,生活自来水厂的污水处理设备主要包括预处理设备…

编译器和解释器:V8是如何执行一段JS代码的

编译器和解释器:V8是如何执行一段JS代码的 背景编译器和解释器V8 执行 JavaScript 代码1. 生成抽象语法树(AST)和执行上下文2. 生成字节码3. 执行代码 JavaScript 的性能优化 背景 前端工具和框架迭出不穷,而且还不断有新的出现&…

ChatGLM基于LangChain应用开发实践(二)

一、使用notion样例数据构建知识库 这里使用LangChain开发框架支持的Faiss构建知识向量库,通过以下命令来安装Faiss的GPU版本: pip install faiss-gpu 简单起见,向量库会以文件的形式存储到磁盘,具体步骤如下: 引入…

项目经理周报,月报编写模板

一、项目基本情况 二、本周工作总结 三、下周工作计划 软件开发管理全文档获取:软件开发全套资料-CSDN博客

linux高级篇基础理论十一(GlusterFS)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技…

格密码:如何找最近的格点(CVP问题)

目录 一. 摘要 二. 介绍 2.1 简单的CVP问题 2.2 Gram-Schmidt向量 2.3 KZ基 三. 格密码的基本符号 四. CVP问题的发展 五. 如何解决CVP问题 5.1 随机取整算法 5.2 Babai算法随机取整 5.3 小结 六. 推荐论文 一. 摘要 本文章将解释如何利用随机取整算法&#xff08…

【微信小程序开发】深入学习小程序开发之功能扩展和优化

前言 随着移动互联网的快速发展,微信小程序作为一种轻量级应用,已经逐渐成为许多企业和个人进行业务推广和服务提供的重要平台本文将详细介绍 微信小程序开发的功能扩展和优化,帮助开发者更好地提升小程序的用户体验和性能。 一、功能扩展 …

【qt】opencv导入pro

我的sdk0文件夹在opencv003项目下,使用opencv451 INCLUDEPATH $$PWD/sdk0/opencv/includeCONFIG(release, debug|release) {LIBS -L$$PWD/sdk0/opencv/lib/ -lopencv_world451opencv.files $$PWD/sdk0/opencv/bin/opencv_world451.dllopencv.path $$OUT_PWD/Re…

Shopify绑定Facebook收费吗?付款方式是什么?-站斧浏览器

Shopify绑定Facebook收费吗? 答案是:Shopify绑定Facebook并不收取额外费用。Shopify和Facebook之间的绑定是免费的,卖家可以充分利用这一功能来扩展他们的在线业务。通过将商店与Facebook Page相连接,卖家可以将产品目录同步到Fa…

【EI会议征稿通知】2024年机器学习与智能计算国际学术会议(MLIC 2024)

2024年机器学习与智能计算国际学术会议(MLIC 2024) 2024 International Conference on Machine learning and intelligent computing 智能计算与机器学习被广泛应用于大数据分析、人工智能、智能制造、智能交通、智能电网、智慧城市、智慧医疗、金融科…

imx6ull基于Linux 5.10.19移植OV2640驱动过程记录及问题解决

硬件使用正点原子的阿尔法开发板&#xff0c;摄像头原理图如下&#xff1a; OV2640是淘宝上买的0v2640模组&#xff0c;如下&#xff1a; 添加设备树节点如下&#xff1a; &i2c2 {clock-frequency <100000>;pinctrl-names "default";pinctrl-0 <&am…

gazebo怎样快速导入其他机器人及其配置

只要拿过来100块钱&#xff0c;我就告诉你我花了1天才偶然找到的内容哈哈&#xff0c;请留言

Thumbnail AI:让图片处理更智能

一、产品介绍 Thumbnail AI是一款基于人工智能技术的图片处理软件&#xff0c;能够快速、准确地生成各种尺寸的缩略图。这款软件非常适合用于网站建设、广告设计、电商等领域&#xff0c;能够大大提高图片处理效率。 二、应用场景 网站建设&#xff1a;在网站建设中&#xff…
最新文章