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.食品生产企业在一年内()次因违反《中华人民共…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
