了解 SBOM (软件物料清单)

近年来,开源软件在开发中的采用激增,目前已占已构建软件的高达 90%。它在全球公司中的受欢迎程度源于成本节约和产品上市时间的加快。然而,在集成开源软件组件时,有一个关键的方面需要考虑。

Synopsys 报告84% 的商业和专有代码库至少包含一个已知的开源漏洞。这凸显了确保您使用的开源组件的安全性变得越来越重要。这就是软件物料清单 (SBOM) 派上用场的地方。 

什么是 SBOM?

开源组件和第三方代码可能很复杂,有很多层。就像俄罗斯套娃一样,这些部件相互配合,每一层都有自己的规则。为了确保他们的软件安全,公司需要确切地知道其中包含什么。

SBOM 提供有关每个组件的详细信息。它就像软件的标签,列出了所有部件及其关系——就像开源部件、第三方部件和公司自己的代码的混合。它提供了每个部分的技术详细信息,包括其名称、版本和许可证。 SBOM 还可以包括有关安全问题、传递依赖性、组件来源和其他信息的信息。

例如,在汽车行业,制造商为每辆车制定详细的规格,包括他们制造的零件和来自外部供应商的零件。如果发现某个零件有缺陷,制造商很快就会知道哪些车辆受到影响。它允许他们通知业主需要维修或更换。这种清晰的记录对于查找缺陷的来源以及如何有效地修复它们非常重要。

最低数据要求 

在美国,受新的政府信息安全政策要求更严格的软件安全措施的影响,软件开发商越来越多地采用软件物料清单 (SBOM)。

总统行政官第 14028 号命令于 2021 年 5 月 12 日发布,旨在“改善国家的网络安全”,制定了具体标准用于联邦信息系统。该命令的一个关键方面(详见第 4 节)涉及制定安全软件开发和采购实践指南。该文件将 SBOM 视为确保软件完整性和管理与软件供应链相关风险的关键要素。

根据第 14028 号行政命令,美国商务部和国家电信和信息管理局 (NTIA) 概述了软件组件的最低数据要求,分为三个主要组:

数据字段包括有关每个软件组件的基本信息,例如:

供应商名称:创建、定义和标识组件的实体的名称。
组件名称:分配给原始供应商定义的软件单元的名称。
组件版本:供应商使用的标识符,用于指定软件相对于先前标识的版本的更改。
其他唯一标识符:用于标识组件或用作相关数据库的查找键的其他标识符。
依赖关系:表征上游组件X包含在软件Y中的关系。
SBOM 数据的作者:为此组件创建 SBOM 数据的实体的名称。
时间戳:SBOM 数据组装的日期和时间的记录。

自动化支持有助于自动生成 SBOM 和机器可读性,从而实现跨软件生态系统的扩展。此外,SBOM 应以以下三种格式之一生成:
 
软件包数据交换 (SPDX)
 
此格式广泛用于记录有关软件许可证和组件的信息。 SPDX 由 Linux 基金会开发,标准化了组织在其产品中使用的软件组件和许可证的通信方式,从而简化了合规性。

CycloneDX

CycloneDX 主要关注安全性,是一种轻量级 SBOM 格式,设计用于应用程序安全上下文和供应链组件分析。它提供了一种标准方法来表示应用程序中的组件、库和模块及其相关的安全风险和许可。

软件识别 (SWID) 标签

SWID 标签由国际标准化组织 (ISO) 开发,是为软件产品提供唯一标识的 XML 结构。它们帮助管理软件库存并确保遵守许可证。 SWID 标签对于软件资产管理和网络安全目的特别有用。

将 SBOM 集成到安全开发生命周期中需要遵循的实践和流程。 其中包括建立 SBOM 更新频率、定义依赖树的深度、处理具有不确定或不完整依赖信息的 SBOM 元素,以及设置分发、传递和访问控制策略。 

SBOM 用例

SBOM 用例可大致分为三个主要类别:

漏洞检测和管理:SBOM 有助于跟踪所有代码组件。当发现关键漏洞时,安全团队可以快速使用 SBOM 定位代码中的问题,了解其影响并优先修复它。例如,TuxCare 的 SecureChain for Java 为服务审查和修补的每个 Java 包提供详细的 SBOM,确保知情决策完全透明。

软件许可证管理:借助 SBOM,公司可以轻松跟踪第三方和开源软件的许可证。许可证经常发生变化,因此定期检查是必要的。这有助于确保公司不会违反任何许可协议或知识产权,从而避免法律问题和财务风险。

软件开发生命周期 (SDLC) 改进:SBOM 使创建、部署和维护软件的整个过程更加高效。例如,开发人员在编写代码时会在初始 SBOM 中列出所有软件依赖项。当发现新的漏洞和依赖项时,此 SBOM 在测试和部署阶段进行更新。它还会提醒开发人员软件使用后出现的任何问题,确保持续更新和改进。 

SBOM 的未来

SBOM 对于向政府实体(尤其是国防和航空航天等行业)提供软件的公司尤其重要。然而,它的相关性也延伸到了其他公司。

最近经常利用开源漏洞的供应链攻击有所增加供应链攻击强调了严格检查第三方开源的重要性组件、库和框架。这些攻击可以使恶意行为者完全控制公司的系统、破坏产品功能、引入恶意软件,甚至将病毒传播给客户和其他交互组织。此类攻击的不可预测性和潜在的广泛影响使其成为重大威胁。

Gartner 预测到 2025 年,60% 的组织将把 SBOM 纳入其安全系统。然而,SBOM 虽然有用,它并不是解决软件供应链和保障挑战的灵丹妙药。它只是众多工具之一,而不是包罗万象的解决方案。 

SBOM 的有效性取决于广泛采用,随着标准和要求的不断发展,这种采用仍在进行中。鉴于目前正在开发的各种工具和标准不断涌现,实现普遍使用需要时间。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt-QTransform介绍与使用

QTransform是一个用于二维坐标系转换的类。我们知道Qt的坐标系是左上角为原点,x轴向右,y轴向下,屏幕上每个像素代表一个单位,那么,如果我们想要在屏幕上建立自己的坐标系用于绘制,就需要借助QTransform。 …

Guitar Pro8.1最新2024中文免激活版下载(附教程)

Guitar Pro 8是一款功能强大的指法阅读器和编辑器,它允许您编辑吉他、贝斯和尤克里里的乐谱和指法谱,并为鼓或钢琴创建背景音轨。轻松创建、播放和共享您的标签!快速的进行乐谱播放并进行练习,也可以进行编辑操作,允许…

Gumbel 重参数化相关性质证明

Gumbel 的采样过程: z a r g m a x i { g i l o g ( π i ) } , g i − l o g ( − l o g ( u i ) ) , u i ∼ U ( 0 , 1 ) zargmax_i \{g_i log(\pi_i)\}, g_i -log(-log(u_i)),u_i\sim U(0, 1) zargmaxi​{gi​log(πi​)},gi​−log(−log(ui​)),ui​∼U(0…

机器学习---推荐系统案例(一)

一、推荐系统-数据处理流程 推荐系统数据处理首先是将Hive中的用户app历史下载表与app浏览信息表按照设备id进行关联,然后将关联数据使用python文件进行处理,将数据预处理为label和feature两列的临时数据,后期经过处理转换成逻辑回归 模型的…

【经典LeetCode算法题目专栏分类】【第5期】贪心算法:分发饼干、跳跃游戏、模拟行走机器人

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 分发饼干 class Solutio…

【Qt之Quick模块】1. 概述及Quick应用程序创建流程

概述 Qt的Quick模块是用于创建现代化、动态和响应式用户界面的工具集。它是基于QML(Qt Meta-Object Language)和JavaScript的。 QML是一种声明性的语言,用于描述用户界面的结构和行为。它使用层叠样式表(CSS)的语法来…

算法基础课-基础算法-二分-数的三次方根

790. 数的三次方根 题目 提交记录 讨论 题解 视频讲解 给定一个浮点数 n�,求它的三次方根。 输入格式 共一行,包含一个浮点数 n�。 输出格式 共一行,包含一个浮点数,表示问题的解。 注意&…

Apache Flume(5):多个agent模型

可以将多个Flume agent 程序连接在一起,其中一个agent的sink将数据发送到另一个agent的source。Avro文件格式是使用Flume通过网络发送数据的标准方法。 从多个Web服务器收集日志,发送到一个或多个集中处理的agent,之后再发往日志存储中心&…

电脑操作系统深度剖析:Windows、macOS和Linux的独特特性及应用场景

导言 电脑操作系统是计算机硬件和应用软件之间的桥梁,不同的操作系统在用户体验、性能和安全性方面有着独特的特色。电脑操作系统是计算机系统中的核心组件,不同的操作系统在设计理念、用户体验和应用领域上存在显著差异。本文将深入探讨几种常见的电脑操…

安全芯片是什么?为什么可以应用在加密卡上?

安全芯片是指芯片内带有微处理器CPU、随机数发生器、硬件密码算法、存储单元(包括随机存储器RAM、程序存储器ROM(FLASH)、用户数据存储器EEPROM)以及芯片操作系统COS的智能芯片,相当于一台微型计算机,不仅具…

【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! X的平方根 class Soluti…

单页应用如何提高加载速度?

提高单页应用(Single Page Application,SPA)的加载速度可以从以下几个方面入手: 代码优化:压缩和精简 JavaScript、CSS 和 HTML 代码,减少文件大小,通过使用工具如Webpack对代码进行打包和优化。…

【Image】图像处理

计算机视觉 CV Perception 如自动驾驶领域。 只要是从所谓的图像当中去抽取信息的过程,我们都叫做Perception。 视觉检测可以涵盖二维检测,如车辆、人和信号灯的检测。另外,还可以控制三维信息,直接在三维空间中操作数据。 SL…

Vue 3 + Vite 4 移动端低版本白屏处理

vue3打包后在低版本浏览器或webview中出现白屏,原因就是因为语法兼容问题。根据vite官方文档描述,build.target 默认支持 Chrome >87、Firefox >78、Safari >14、Edge >88 传送,所以需要我们手动兼容低版本。 方法: …

【uniapp小程序-分享】

//分享到聊天onShareAppMessage() {let shareMessage {title: this.liveInfo.wx_title,path: /subPages/livePages/liveCourse/live_course_info?courseid this.courseid,imageUrl: this.liveInfo.wx_thumb};let shearMsg uni.getStorageSync(shearImg this.courseid);if (…

L1-028 判断素数

本题的目标很简单,就是判断一个给定的正整数是否素数。 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于231的需要判断的正整数。 输出格式: 对每个需要判断的正整数&a…

鸿蒙OS:打破界限的操作系统新星

导言 鸿蒙OS(HarmonyOS)是华为公司为应对技术封锁而推出的分布式操作系统,其背后蕴含着华为构建全球数字生活愿景的雄心。本文将深入剖析鸿蒙OS的起源、核心特性,并展望其未来在数字生态中的角色。 1. 背景与起源 华为的…

【基础篇】1.2 认识STM32(二)

3.3 VREF/VREF-引脚 VREF和VREF-是STM32中用于提供参考电压的引脚。如下图: VREF引脚可以连接一个单独的外部参考电压,范围在2.0V~VDDA,但不能超过VDDA,否则就超过了模拟器件的最大供电电压。在100引脚的封装中&#…

智慧养老:创新科技让老年生活更美好

智慧养老:创新科技让老年生活更美好 随着人口老龄化的加剧,智慧养老成为了关注焦点。智慧养老以创新科技为核心,旨在改善老年人的生活品质、促进健康、增强安全感和社会融入感。本文将详细介绍智慧养老的关键技术和应用场景,带您了…

SiLM5350MDBCA-DG车规级隔离驱动芯片,我们能为汽车智能提供什么?

SiLM5350MDBCA-DG是一款适用于IGBT、MOSFET的单通道 隔离门极驱动器,具有10A拉电流和10A灌电流驱动能 力。提供内部钳位功能,可单独控制 上升时间和下降时间。 在 SOP8 封 装 中 具 有 3000VRMS 隔 离 耐 压 ( 符 合 UL1577)。 与…