SBOM应该是软件供应链中的安全主食

当谈到软件材料清单(SBOM)时,通常的类比是食品包装上的成分列表,它让消费者知道他们将要吃的薯片中有什么。
美国机构有90天时间创建所有软件的清单
同样,SBOM是一个软件中组件的清单,在应用程序是来自多个来源的代码的集合的时代,这是一个至关重要的工具,许多代码来自组织的开发团队之外。
当谈到SBOM时,它与食品上的营养标签一样重要,因为这种风险不是对你的身体健康,而是对你的业务的风险。
当您使用软件时,您的业务可能面临的风险是,您不了解软件的组成。当这种情况发生时,你……将自己暴露在一个你无法控制的弱点之下。如果你不了解这一点,你就无法采取预防措施来确保自己不会过度暴露。
这就是为什么在过去几年中,随着威胁级别的增加,SBOM已经成为不断扩大的软件供应链管理的核心。
通过开源软件和可重用软件组件的日益增长的使用,来自多个来源的贡献,加速的代码发布速度,以及持续集成和持续交付(CI/CD)管道,现代开发已经变得更快和更复杂。
随着软件供应链变得越来越复杂,关键是要知道你间接利用什么开源作为第三方库、服务、API或工具的一部分。
不法分子知道,通过在开发过程中的任何一点注入恶意代码或利用组件中的漏洞,他们可以向上游移动并感染多个系统,正如2020年的网络安全管理软件产品漏洞和Log4j漏洞的滥用。
需要知道 SBOM也是拜登政府制定并于本周发布的国家网络安全计划的一个关键点。
他们不仅告诉组织他们引入的软件是由什么组件组成的,还告诉组织里面有什么代码。
SBOM确保你不仅知道软件中的成分,还知道这些成分的成分,有时被称为传递依赖关系。
在开源中,许多包都在调用其他包,您可能知道也可能不知道您正在使用这些包,而SBOM可以帮助您完全理解这些关系。
2021年12月发现的Apache Log4j缺陷在科技界引起了轩然大波,因为这种广泛使用的日志工具正被广泛利用,通过单次注入恶意代码来危害易受攻击的系统。
它的应用如此广泛,以至于触及了大多数组织,其中许多组织并不知道自己受到了影响。
在漏洞曝光的几周内,有报告称每小时有1000万次Log4j漏洞利用尝试。
Log4j被用于绝大多数软件中,我们对SBOM有需求。当Log4j中的缺陷被发现时,我们所有人都立即暴露于该漏洞之下。
Log4j将一切都置于清晰的焦点中。问题已经存在一段时间了。
SBOM的概念相对较新。它于2018年与美国农业部下属的国家电信和信息管理局一起出现,三年后发布了标准。
拜登总统在2021年5月的行政命令中呼吁联邦政府在网络安全管理软件产品和Log4j事件后改善其IT安全,这两起事件都影响了政府机构。
与通常发生的情况一样,组织将SBOM从一个不错的功能提升为一个半强制性的解决方案,现在大多数政府机构和大型企业都在评估它。
一个挑战是实现和管理SBOM是高度手动的,这对管理员和开发人员来说是个坏消息。当谈到软件供应链安全时,一个持续的紧张是确保安全需求不会阻碍现代软件开发的增长速度。
自动化是关键
这就是SBOM流程自动化如此重要的原因。NIST的标准包括多个元素,从使用的软件组件及其供应商到版本号和对组件库的访问。
必须根据发布级别、发现的潜在威胁和确定的风险来评估版本级别。
从开源操作系统到内部开发的应用,再到第三方‘收缩包装’堆栈,大型应用的展开充满了上下文挑战、清点方法和手动验证,所有这些都容易出错。
虽然识别和报告问题的过程是成文的,但它没有解决手动维护此类清单并一致验证其内容的问题。
必须将自动化纳入流程的每个步骤,从生成和发布SBOM到接收它们,然后将漏洞补救纳入他们当前的应用程序安全计划,而不必采用新的工作流程。
如何处理SBOM还有其他的考虑。SBOM提供了大量信息,但组织需要决定如何使用这些信息。
SBOM是一个很方便的缩写词,用来指代更广泛的软件供应链问题。
它们也是更大的供应链安全技术缓存的一部分,例如SLSA(软件工件的供应链级别),这是一个用于确保整个供应链中软件工件完整性的框架。
它诞生于一个内部谷歌工具,现在是一个行业项目,包括英特尔、VMware、Linux基金会和云本地计算基金会等组织。
SBOM本身并不是灵丹妙药。
我们必须了解他们擅长什么,不太有用的地方。他们擅长帮助你理解软件中的组件。它们对于提高这些组件的安全性来说用处不大。
有几个关键的标准SBOM格式–软件分组数据交换(SPDX)、CycloneDX和软件识别(SWID)标记。
现在需要的是一个安全和集中的漏洞交流平台,公司可以在这里分享关于漏洞的信息。
拥有SBOM的数据是有用的,但是如果一个漏洞被发现,关于它的交流仍然是点对点的,信息需要更快更广泛地共享。
另一个新出现的问题是SBOM等意味着维护大多数应用程序中使用的开源软件的人要做更多的工作。据称,大多数维护人员60%是无偿的,基本上是志愿者。
他们通常缺乏一致性,更没有动机去处理安全开发实践的长清单。在像影响网络安全管理软件产品和Log4j这样的高调漏洞之后,政府和行业越来越关注网络安全,在这种背景下,对这些志愿维护者的需求呈指数级增长。
提高安全性需要工具(如SBOM)和人员。是时候开始向开源维护者支付报酬了,就像公司向其他负责软件安全的人支付报酬一样。
与许多用于供应链安全的工具一样,SBOM仍然相对较新,需要不断完善。
鉴于不法分子想方设法攻击供应链的速度,成熟越快越好。
SBOM还有一段路要走,但这是一个很好的解决方案。有个标准也不错,没有标准就是个问题。

相关文章:
SBOM应该是软件供应链中的安全主食
当谈到软件材料清单(SBOM)时,通常的类比是食品包装上的成分列表,它让消费者知道他们将要吃的薯片中有什么。 美国机构有90天时间创建所有软件的清单 同样,SBOM是一个软件中组件的清单,在应用程序是来自多个来源的代码的集合的时…...
[计算机组成原理(唐朔飞 第2版)]第一章 计算机系统概论 第二章 计算机的发展及应用(学习复习笔记)
第1章 计算机系统概论 1.1 计算机系统简介 1.1.1 计算机的软硬件概念 计算机系统由“硬件”和“软件”两大部分组成。 硬件 是指计算机的实体部分,它由看得见摸得着的各种电子元器件,各类光、电、机设备的实物组成如主机、外部设备等 软件 软件看不见…...
Python的数据分析相关的框架
Python特别强大,也是一款可以实现可数据分析语言,它有很多开源的库和工具,可以帮助数据科学家处理和分析数据。 以下是一些常用的Python库和工具: NumPy:NumPy是一个Python库,用于处理大型多维数组和矩阵&…...
为什么会出现植物神经紊乱 总是检查不出来该怎么办
植物神经紊乱是一种很多人都害怕的疾病,你们知道是为什么吗? 植物神经紊乱是一种神经系统失调导致的多种症状的总称,这种疾病是由于社会因素所诱发的脏器功能的失调,是一种非常复杂的疾病。而这种疾病是可能会发生在任何年龄阶段的…...
宏任务和微任务
JavaScript 把异步任务又做了进一步的划分,异步任务又分为两类,分别是: ① 宏任务(macrotask) 异步 Ajax 请求setTimeout、setInterval文件操作其它宏任务 ② 微任务(microtask) Promise.then…...
使用WebSocket、SockJS、STOMP实现消息实时通讯功能
客户端 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head><title>websocket client</title><script src"http://cdn.bootcss.com/sockjs-client/1.1.1/sockjs.min.js"></script>…...
C++回顾(十一)—— 动态类型识别和抽象类
11.1 动态类识别 11.1.1 自定义类型 C中的多态根据实际的对象类型调用对应的函数 (1)可以在基类中定义虚函数返回具体的类型信息 (2)所有的派生类都必须实现类型相关的虚函数 (3)每个类中的类型虚函数都需…...
雷电模拟器安卓7以上+Charles抓包APP最新教程
一、工具准备: 证书安装工具全局代理工具下载: https://download.csdn.net/download/weixin_51111267/87536481 二、Charles设置 (一)电脑上证书安装 (二)安卓模拟器上系统证书安装(RooT权限打…...
vsvode 配置sftp,连接远程linux全过程
在本地安装sftp插件,配置参数https://blog.csdn.net/u011119817/article/details/106630599在linux机台安装vscode-service服务https://zhuanlan.zhihu.com/p/294933020连接超时,将配置文件添加超时时间遇到的错误处理:(272条消息) 【vscode插…...
C++类转换为蓝图、打印日志、蓝图关卡、删除C++文件
蓝图宏 UCLASS(Blueprintable)//c脚本可转换为蓝图 UPROPERTY(BlueprintReadWrite)//蓝图中可创建set,get节点 UFUNCTION(BlueprintCallable)//可创建函数节点 UPROPERTY(BlueprintReadWrite,Category”My Variables”)//节点进行分类打印日志 UE_LOG(LogTemp, Lo…...
elasticsearch高级篇:核心概念和实现原理
1.elasticsearch核心概念1.1 索引(index)一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母&#…...
部署安装Nginx服务实例
其他服务: 搭建zabbix4.0监控服务实例 普罗米修斯监控mysql数据库实战 Linux安装MySQL数据库步骤 一. Nginx概念介绍 1.介绍Nginx程序 Nginx (engine x) 是一款开源且高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。主要特点是占用…...
云原生架构设计原则及典型技术
云原生是面向云应用设计的一种思想理念,充分发挥云效能的最佳实践路径,帮助企业构建弹性可靠、松耦合、易管理可观测的应用系统,提升交付效率,降低运维复杂度。代表技术包括不可变基础设施、服务网格、声明式 API 及 Serverless 等…...
【Linux】-- 工具介绍 vim_gcc/g++_gdb
目录 Linux中的软件管理工具 – yum 在Linux下安装软件的方式 认识yum 查找软件包 安装 卸载 lrzsz.x86_64 rz sz Linux中的编辑器 – vim vim的基本概念 vim各模式切换 vim命令模式命令 vim底行模式命令 gcc / g gcc / g的作用 gcc / g语法 预处理 编译 汇…...
JAVA SE: IO流
一、Java流式输入输出原理Java对于输入输出是以流(Stream)的方式进行的,JDK提供各种各样的“流”类,以获取不同类型的数据。可以理解为将管道插入到文件中,然后从管道获取数据。这个管道外边还可以套管道,外边的管道对数据进行处理…...
打破原来软件开发模式的无代码开发平台
前言传统的系统开发是需要大量的时间和成本的,如今无代码开发平台的出现就改变了这种状况。那么你知道什么是无代码开发平台?无代码开发对企业来说有什么特殊的优势么?什么是无代码平台无代码平台指的是:使用者无需懂代码或手写代码,只需通…...
06-redux中的hook
知识点06-redux的hook 在函数组件中要和redux连接,分为两个步骤 前提状态机已经主备就绪 注入store到根组件 在函数组件中,使用Provider包裹根组件,并将store注入这一步,依旧是不能少的 import store from "./redux/store…...
watch监听不到数组对象的变化
watch监听不到数组对象的变化一、利用索引直接改变arr的值二、修改数组的长度arr.length三、添加和修改对象属性和值Vue不能监听到数组和对象值的变化其实和双向绑定的原理有关。Vue双向绑定原理是利用js中的Object.defineproperty重定义对象的GET和SET方法,而同时这…...
言语理解与表达之语句表达
考点一语句填空提问方式:填入划横线处最恰当的一句是( )1.横线在结尾:总结前文提出对策2.横线在开头:需概括文段的中心内容3.横线在中间:注意与上下文联系把握好主题词,保证文段话题一致实例1和…...
2023年全国最新食品安全管理员精选真题及答案14
百分百题库提供食品安全管理员考试试题、食品安全员考试预测题、食品安全管理员考试真题、食品安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 131.食品生产企业在一年内()次因违反《中华人民共…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...
