软件供应链的基础:SBOM

news2025/1/16 12:46:46

软件作为一种强大的工具,可以简化复杂的技术概念,但随着软件不可思议的力量而来的是一个相互关联的软件依赖迷宫,这些依赖常常构成软件开发的基础。这些依赖关系并非没有缺陷,正如我们从 Log4Shell 这样的事件中所了解到的那样。当我们试图驾驭不断变化的软件供应链安全时,我们需要确保我们的应用程序建立在坚实的基础之上。

在这篇博文中,我们将深入探讨软件物料清单(Software Bill of Materials,SBOM)的概念,它是安全软件供应链的基本需求。正如物理供应链需要仔细检查以确保产品的质量和安全一样,软件供应链也需要严格的评估。危在旦夕的不仅仅是应用程序的功能,还有应用程序可以访问的信息的安全性。让我们深入到软件供应链的世界中,探索 SBOM 如何作为软件开发和安全中更具弹性的未来的基石。

什么是软件供应链攻击?

供应链攻击是针对应用程序组件的供应商而不是应用程序本身的恶意攻击。软件供应链类似于物理供应链。当你购买 iPhone 时,你看到的只是成品。在最终产品的背后,是一个由零部件供应商组成的复杂网络,这些供应商随后被组装在一起,生产 iPhone。来自日本公司的显示器和相机镜头,来自亚利桑那州的 CPU,来自圣地亚哥的调制解调器,来自加拿大矿山的锂离子电池; 所有这些部件在深圳组装工厂组装成最终产品,然后直接运到你的家门口。

 同样,攻击者可以在 iPhone 组装之前针对 iPhone 供应商之一修改组件,软件供应链威胁参与者也可以这样做,但是目标是随后内置到商业应用程序中的开源软件包。当70-90% 的现代应用程序是使用开源软件组件构建时,这就是一个问题。有鉴于此,供应链的安全性取决于其最薄弱的环节。

所有这些依赖关系都赋予了软件开发人员构建极其复杂的应用程序的超能力,这些应用程序可以非常快速地构建,但会产生无意识的副作用,即他们不可能理解所有组成要素。这给予了攻击者机会。一个受到攻击的包允许攻击者操纵其入口点“下游”的所有包。

在 Log4j 事件中,软件行业(以及所有依赖软件行业的行业,也就是所有行业)深切地感受到了这一现实。

Log4Shell 冲击

Log4Shell 是软件供应链安全重要性的典型代表。我们不打算在这篇文章中深入探讨这起事件。事实上,我们已经在之前的博文中做到了这一点。相反,我们将关注事件对在应用程序中有 Log4j 实例的组织的影响,以及他们为了修复这个漏洞而必须经历的事情。

首先让我们回顾一下时间线:

Log4j中的漏洞最初是在11月24日私下披露的。五天后,发布了一个pull请求来关闭该漏洞,一周后,新的软件包发布了。官方的公开披露发生在12月10日。这就是混乱开始的时候,公司开始确定他们是否是脆弱的,并找出如何补救漏洞的工作。

 平均而言,受影响的个人花费约90小时处理 Log4j事件。大约20%的时间用于确定 log4j 包部署到应用程序的位置。 

从与我们的客户和潜在客户的对话中可以看出,为什么这占用了如此多的时间,主要的罪魁祸首是一个组织是否拥有一个关于软件依赖关系的元数据的中央存储库,这些元数据已经被用于构建他们的应用程序。对于拥有中央存储库和查询数据库的客户来说,识别哪些应用程序存在 log4j 漏洞的步骤需要1-2个小时,而不是像其他组织那样需要20多个小时。这就是为所有软件准备好 SBOM 的力量,也是帮助进行SBOM管理的工具。

什么是软件物料清单SBOM

与您购买的食品背面的营养标签类似,SBOM 是一个成分列表,这些成分进入您的应用程序使用的软件。我们通常认为 SBOM 是开发过程的产物。作为一个开发人员,他们使用不同的依赖关系来制造他们的应用程序,同时他们也在构建一个基于成分的配方。实际上,可以(也应该)在构建管道的所有步骤中生成 SBOM。源代码、构建、映像和生产软件都可以用来生成 SBOM。

 通过使用 SBOM 作为金字塔的基础,组织可以确保它们层叠到这个基础上的所有附加安全特性将经得起时间的考验。只有当我们对用于生成“成分”标签的过程有信心时,我们才能知道我们的软件没有已知的漏洞。签署软件以证明软件包没有被篡改,只有当签署的软件都没有已知的漏洞时才有效。签署一个易受攻击的软件包或图像只能证明从那时起软件没有被篡改过。它不能回顾过去并验证之前出现的软件包在没有 SBOM 或漏洞扫描器帮助的情况下是安全的。

利用软件物料清单(SBOM)作为软件供应链安全的基本要素有以下优势:

  1. 透明性: SBOM 提供了应用程序中使用的所有组件的全面视图。它们揭示了构成软件的“成分”,使团队能够理解他们的应用程序的整个组成,包括所有的依赖关系。不再有黑盒依赖关系和随之而来的相关风险。
  2. 风险管理: 借助 SBOM 提供的透明度,组织可以识别其软件组件中潜在的安全风险,并主动解决这些风险。这包括检测依赖项或第三方组件中的漏洞。SBOM 允许组织标准化其软件供应链,从而允许对脆弱性管理和影响风险管理采取自动化方法。
  3. 快速响应漏洞: 当在软件中使用的组件中发现新的漏洞时,SBOM 可以帮助快速识别所有受影响的应用程序。这大大减少了响应和补救这些漏洞所需的时间,最大限度地减少了潜在的损害。当一个事件发生,而不是如果,一个组织能够迅速反应的缺口和限制的影响。 
  4. 守规: 法规和标准越来越要求 SBOM 展示软件的完整性。通过合并 SBOM,组织可以确保它们满足这些遵从性需求。尤其是在与联邦政府、金融服务业和医疗保健等受到高度监管的行业合作时。
  5. 信任和验证: SBOM 通过允许用户验证所使用的组件来促进对软件产品的信任和信心。它们作为客户、合作伙伴和监管机构的“诚信证明”,展示了该组织对安全的承诺。它们还支持更高级别的安全抽象,如签名映像或源代码,以继承 SBOM 提供的底层基础安全保证。

通过将 SBOM 放在软件供应链安全的基础上,组织可以建立一个安全、有弹性和高效的健壮结构。使用软件材料清单(sBOMs)作为安全软件供应链的基石,提供了一个根本性的转变,即提高透明度、改善风险管理、更快地应对脆弱性、提高守规和加强对软件产品的信任。通过解开软件应用程序中复杂的依赖关系迷宫,SBOM 提供了识别和处理潜在弱点的必要见解,从而创建了一个能够抵御潜在安全威胁的弹性结构。面对 Log4Shell 这样的事件,业界需要采取积极主动的战略方针,强调建立一个经得起时间考验的安全基础。通过提升 SBOM 的作用,我们正朝着软件开发和安全的未来迈出关键的一步,这种未来不仅是创新的,而且是安全、可信和高效的。SBOM 提供了这方面的知识,因此是全面安全战略不可或缺的基石。

使用UniSCA快速生成SBOM

 UniSCA能自动化一键生成SBOM,内容为本次扫描任务扫描出来的所有组件SPDX信息,和扫描包的相关信息,包含厂商、组件名、版本号、组件哈希值、特殊标识符、依赖关系等详细信息。并支持SPDX在内的数种可定制导出格式,节省团队大量时间,切实有效地维护软件供应链安全。

wx【泛联新安软件安全实验室】,回复“SBOM”获取更多软件供应链资讯。

原文链接:让代码安全变轻松,简单好用的开发安全平台-CodeAnt

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

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

相关文章

详解WebSocket

目录 1.WebSocket是什么? 2.WebSocket的通信过程 3.WebSocket的报文结构 4.JAVA中的WebSocket 1.WebSocket是什么? 在传统的BS体系中,请求响应一直是单向的,服务器一直扮演的”被动“的角色,浏览器发起请求去访问…

FFmpeg常见命令行(一):FFmpeg工具使用基础

前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》。本文是Android音视频任务列表的其中一个, 对应的要学习的内容是:FFmpe…

Windows下安装sqlmap及应用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Windows下安装sqlmap前提下载安装创建快捷方式修改属性 使用验证安装成功 使用GET猜解是否能注入查找数据库猜解表(假如通过(2)得到了web1这个数据库)根据猜解的表进…

uniApp 插件 Fvv-UniSerialPort 使用实例

接上一篇 uniApp 对接安卓平板刷卡器, 读取串口数据 , 本文将详细介绍如何使用插件读取到串口数据 原理 通过uniApp 插件读取设备串口数据, 解析后供业务使用; 步骤 创建uniApp 项目;添加插件 安卓串口通信 Fvv-UniSerialPort 安卓串口通信 Fvv-UniSerialPort - DCloud 插件…

简单高效的npm地址源管理器

Note: 这个库的灵感来自于使用 nrm 时只切换 npm 的问题 您可以使用此库来帮助npm、cnpm、yarn和pnpm快速切换下载地址源。此外,你还可以指定单个或多个地址源进行切换。 这个库将为您省去切换地址源的许多麻烦! 1、为什么使用 但你想要简单快速地切换…

宝塔Linux面板Java项目部署域名访问 (SpringBoot项目)

1. 域名解析 (阿里云) 我的域名是阿里云, 服务器是腾讯云 2. SSL证书申请 (阿里云) 3. 证书签发成功 (阿里云) 4. 下载Nginx证书 (阿里云) 5. 解压获取 .key 和 .pem 文件 6. 添加域名 (腾讯云) 7. 添加域名 (宝塔面板) 8. SSL (宝塔面板) 9. SSL 添加成功 10. 域名访问项目 (成…

【AI底层逻辑】——篇章6:人工神经网络(深度学习算法)

目录 引入 一、深度学习算法 1、人工神经网络结构 2、卷积神经网络 3、循环神经网络:模拟记忆 ①循环神经网络 ②长短时记忆网络(LSTM) 4、强化学习 ①强化学习的控制论 ②强化学习的反馈机制 ③马尔可夫决策过程 ④强化学习的重…

开始学习 Kafka,一文掌握基本概念|Kafka 系列 一

如果你还不了解 Kafka,或者也打算深入探索、系统学习,那么欢迎有同样目标的小伙伴可以加群交流,让学习之路不再孤独。 一个人可能走的很快,但是一群人会走的更远。(后台回复:加群) 点击上方“后…

如何做好主机安全防护

当今数字化时代,网络安全威胁和风险日益突出,已成为企业面临的重大安全挑战。网络攻击者不断尝试利用各种技术和手段对企业网络资源进行探测和攻击,如:利用漏洞、木马、钓鱼、勒索等方式窃取数据、破坏系统、篡改信息。因此&#…

Semantic Kernel 入门系列:Semantic Function

如果把提示词也算作一种代码的话,那么语义技能所带来的将会是全新编程方式,自然语言编程。 通常情况下一段prompt就可以构成一个Semantic Function,如此这般简单,如果我们提前可以组织好一段段prompt的管理方式,甚至可…

软考论文如何得高分?

软考论文如何才能得高分?这是最近很多同事咨询我的问题,最近几天我也反思了一下为什么我的论文可以取得高分,对比了一下网络上45-55分的论文之后,总结如下: 1.子题目的要求一定要重点全面的回应 2. 要有过渡段-理论结…

如何分辨几类网线 如何制作网线的工作笔记

如何分辨几类网线 方法一. 可以通过查看网线的皮胶套上的数字进行判断 方法二. 1、六类网线和五类网线的内部结构不同,六类网线内部结构增加了十字骨架,将双绞线的四对线缆分别置于十字骨架的四个凹槽内,电缆中央的十字骨架随长度的变化而…

spark history网络流量占用高问题记录

生产环境遇到一台机器网络流量占用高告警 由于监控只有机器总的网络流量,没有具体进程的 于是只能登陆服务器,安装nethogs:yum install nethogs 然后执行nethogs命令查看进程流量 观察到主要是spark history server这个进程占用流量高(最高…

Kafka3.0.0版本——生产者如何提高吞吐量

目录 一、生产者提高吞吐量参数设置二、产者提高吞吐量代码示例 一、生产者提高吞吐量参数设置 batch.size:设置批次大小,默认16klinger.ms:设置等待时间,修改为5-100msbuffer.memory:设置缓冲区大小, 默认…

数字孪生电力:让电力智能化

随着科技的飞速发展,电力行业的智能化进程不断推进。智慧电力可以实现系统管理和能源分配的优化,实现电力行业的降本增效。以下主要介绍易知微科技有限公司为湖南国网建设的电力项目案例。 一、行业背景 1.1 政策背景 2014年12月获国务院常务会议原则通过…

抄写Linux源码(Day3:启动南大OS)

我们可以尝试启动南大OS,接着阅读南大OS源码,看看 JYY/YZH 构建主引导扇区的手段 (注意:我使用的是南大2023年的 OS 实验代码) https://jyywiki.cn/OS/2023/labs/Labs 首先,根据 JYY 的文档,…

jenkins gitlab多分支构建发布

内容背景介绍 这个是新手教程,普及概念为主 公司现在还使用单分支发布测试环境和生产,多人协同开发同一个项目导致测试环境占用等待等情况 测试环境占用等待问题 测试环境代码直接合并到 master,容易导致误发布到生产的情况 避免多版本同时发布测试不完善的情况出现 中间件…

汇川伺服驱动器整理

额定电压(V)功率(KW)额定输入电流(A)系数乘系数电流(A)推荐断路器电流(A)单相220V0.22.31.53.4540.441.5660.757.91.511.851619.61.514.4161.512.81.519.220三…

【100天精通python】Day24:python 迭代器,生成器,修饰器应用详解与示例

目录 专栏导读 1 迭代器,生成器,修饰器概述 1.1 概述 1.2 应用场景 2 语法与示例 2.1 迭代器 2.2 生成器 2.3 修饰器 3 综合应用案例 专栏导读 专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12375510.html 1 迭代器&a…

助力工业物联网,工业大数据之ST层的设计【二十五】

文章目录 04:ST层的设计05:服务域:工单主题分析06:服务域:工单主题实现 04:ST层的设计 目标:掌握ST层的设计 路径 step1:功能step2:来源step3:需求 实施 功…