UEFI固件使用OpenSSL暴露了软件材料清单(SBOM)

news2024/11/29 2:48:50

Binarly REsearch团队近日深入研究了最近的OpenSSL安全更新给UEFI固件供应链生态系统带来怎样的影响以及OpenSSL版本在固件环境中是如何广泛使用的。研究结果不容乐观。

科技行业正在积极讨论使用“软件材料清单”(SBOM)来化解供应链安全风险。为了确保供应链安全实践落地,必须加强软件依赖项方面的透明度。以前,任何一款软件作为黑盒子来发布,并不提供与软件依赖项和第三方组件相关的任何信息。固件在很大程度上也是如此。

SBOM是否有助于加强专有固件软件包的透明度?答案很复杂。SBOM有助于人们更好地了解依赖项,但在许多情况下,诸厂商将SBOM信息与固件软件包或映像文件分开来分发。当SBOM不相关或可能含有误导性信息时,这就产生了与之前关于供应链问题的讨论相同的问题。现在我们的供应链与SBOM密切相关,在许多情况下,SBOM是厂商提供的信息的静态快照。

当固件不含有相应的源代码时,如果没有全面的代码分析基础设施,很难基于编译后的二进制模块来验证SBOM信息。

本月早些时候,CISA发布了一份与OpenSSL最近的高危安全问题(CVE-2022-3602和CVE-2022-3786)相关的安全公告。CVE-2022-3602和CVE-2022-3786这两个安全漏洞都与x.509证书验证失败有关,证书验证失败可能导致基于堆栈的缓冲区溢出。事实上,较旧的版本不受影响,比如OpenSSL 1.0.2和1.1.1。早期版本也不受影响,因为易受攻击的代码是在OpenSSL 3.0.0中首次引入的。

Binarly REsearch团队决定深入研究这种紧急更新给UEFI固件供应链生态系统带来了怎样的影响以及OpenSSL版本在固件环境中是如何广泛使用的。

深入核心

核心框架之一EDKII作为任何UEFI固件的一部分来使用,它在CryptoPkg组件中有自己的子模块和OpenSSL包装器库(OpensslLib)。Github上的主要EDKII存储库经常更新,开发者社区经常关注安全问题。但其中一个主要问题是,这些更新给终端设备的供应链又带来了怎样的影响。

在许多情况下,固件是供应链所有层和终端客户设备之间的单一故障点。我们以前强调过,即使在设备厂商知道漏洞之后,在端点设备上部署这些补丁时,仍会一再出现失败。但是说到第三方相关的代码,就会带来围绕补丁部署的更复杂问题。

微软最近在《2022年数字防御报告》中强调:分析的固件映像中32%含有至少10个已知的严重漏洞。

 

我们在自己的遥测数据中也看到了这一趋势,证实这股势头在上升。据Binarly Platform在调查企业级厂商后得到的数据显示,大约20%的固件更新含有至少两到三个已知的漏洞(以前披露过)。

与利用新的漏洞(0-day)相比,部署使用1/N-day漏洞的固件攻击的成本大幅降低。不妨进一步了解联想Thinkpad企业设备,以及在一个固件映像中使用了多少个不同版本的OpenSSL。

 

我们可以看到,同一个固件二进制包中至少使用了三个不同版本的OpenSSL:1.0.0a(2014)、1.0.2j(2018)和0.9.8zb(2014)。最新的OpenSSL版本是在2018年发布的,因此已过时四年。

许多与安全相关的固件模块含有明显过时的OpenSSL版本。其中一些模块(比如InfineonTpmUpdateDxe)含有已知过时至少八年的易受攻击的代码。InfineonTpmUpdateDxe模块负责更新英飞凌芯片上可信任平台模块(TPM)的固件。这清楚地表明了第三方依赖项存在的供应链问题,这些依赖项看起来从未收到更新,哪怕针对严重的安全问题。

在联想企业设备上使用的OpenSSL的最新版本可以追溯到2021年夏天。下图显示了Binarly Platform检测到的所有OpenSSL版本(用于最新的固件更新)和Linux供应商固件服务(LVFS)公共数据内容:

 行业目前采取的做法是为单独的模块生成散列,与特定的版本版本号相关联,以便连接SBOM层面的依赖项列表。这种做法适用于开源项目(比如用于验证的Sigstore项目),但面对闭源生态系统,它总是以失败告终。虽然散列提供了完整性信息,但无法为闭源项目保证SBOM内容和完整性。从这个意义上说,涉及到在二进制层面进行验证的编译代码时,我们迫切需要一个额外的SBOM验证层,即与厂商提供的实际SBOM相匹配的第三方依赖项信息列表。

完整性提供不了代码级别的可见性,根据二进制模块的散列确定依赖项的范围很困难。当依赖项是间接的,隐藏在代码抽象层中时,尤其困难重重。

遗憾的是,说到二进制代码分析,目前还没有简单的解决办法,业界在如何思考基于SBOM的供应链安全解决方案方面需要改变观念。说到封装的第三方代码,依赖项列表总是不尽如人意。“信任但验证”的方法是处理SBOM失败和降低供应链风险的最佳方法。

但UniSCA软件供应链管理平台可以很好的解决此类问题,UniSCA集成了Bingem二进制分析引擎,可以快速的对二进制文件进行同源分析,精准识别漏洞与许可证合规问题,在二进制代码分析领域处于业界领先水平。同时,UniSCA还支持生成SBOM,为企业管理自身的供应链提供更便捷的服务。

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

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

相关文章

前端面试常考 | js闭包

文章目录一. 闭包1. 介绍闭包2. 闭包的作用3. 闭包与变量二. 闭包引起的内存泄漏1. 闭包是如何引起内存泄漏的2. 如何解决闭包引起的内存泄漏三. 最后一. 闭包 1. 介绍闭包 有不少开发人员总是搞不清楚匿名函数与闭包两个概念,因此经常混用。同时闭包也是我们前端…

我见过最好的天线基础知识

天线作为无线电的发射和接收设备是影响信号强度和质量的重要设备,其在移动通信领域的重要性非常关键。通过对天线选型,天 线安装,天线调整从而保障基站覆盖区域的信号强度与质量。对其的 掌握程度是网规与网优工程师的技能基本要求之一。下文重点说明天线要掌握哪些方面及其原理…

版本控制 | 如何将 UnrealGameSync 与 Perforce Helix Core 结合使用

为了帮助虚幻引擎4和虚幻引擎5的开发,Epic公司开发了UnrealGameSync,使其与版本控制工具Perforce Helix Core交互。虽然UnrealGameSync除了P4V (Helix Core客户端)之外还有许多功能,但主要用途是分发内部引擎和项目构建,它极大地简…

springboot+vue

一、案例结构 用springboot做后端接口,采用restful风格。用vue-cli来创建前端项目,通过axios进行前后端交互。来实现用户的增删改查操作。二、效果图 点击修改: 点击添加: 三、服务器端 控制层代码: package com.ex…

【Tryhackme】dogcat(LFI+文件解析漏洞,Docker逃逸)

免责声明 本文渗透的主机经过合法授权。本文使用的工具和方法仅限学习交流使用,请不要将文中使用的工具和渗透思路用于任何非法用途,对此产生的一切后果,本人不承担任何责任,也不对造成的任何误用或损害负责。 服务发现 ┌──(r…

CentOS7.4安装教程

CentOS7.4安装教程: centos系统自行网上查找链接下载,我使用的是最小安装版本,搞服务器用 1、进入操作系统,选择第一项进行安装: 2、耐心等待,直到弹出这个界面: 3、下拉选择中文&#xf…

磷脂-荧光素标记DSPE-FITC磷脂改性荧光素

磷脂-荧光素标记DSPE-FITC磷脂改性荧光素 中文名称:荧光素标记二硬脂酰磷脂酰乙醇胺 中文别称:磷脂-荧光素标记;二硬脂酰磷脂酰乙醇胺改性荧光素 英文名称:18:0 PE Fluorescein 英文别称:DSPE-FITC 外观&#xff1a…

开发人员的绝佳生产力工具

介绍 从长远来看,每天工作 8 小时对您没有帮助,但利用这些来最大化产出肯定会让您受益。这就是为什么生产力是最重要的事情之一。 今天,我们将学习一些很棒的工具,它们可以提高您的工作效率。除非并且直到您将这些工具集成到您的…

【Lilishop商城】No3-7.模块详细设计,订单模块-1(购物车、收银台)的详细设计

仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在: 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口类、业务类,具体的结合源代…

【TECH SCIENCE PRESS出版社】2区SCI,仅3个月左右录用,数字孪生、绿色技术、供应链、人工智能物联网、智能传感器相关领域均可

【出版社】TECH SCIENCE PRESS 【期刊简介】IF:3.5-4.0,JCR2区,中科院3区 【检索情况】SCI&EI双检,正刊 【参考周期】3个月左右 【征稿领域】 ①数字孪生在智能医疗系统中的应用(2023.3.25截稿) …

NetInside助力IT提高业务性能管理能力(一)

需求简介 某外高桥公司的OA系统是其重要的业务系统,OA系统负责人表示,部分用户反馈,访问OA系统时比较慢。需要通过分析系统看一下实际情况。 信息部已对企业领导定义了独立的组,本次要主动分析领导们的使用体验快慢。如果OA系统…

一个带详细程序和注释的实例,手把手带你学会用BP神经网络做预测

目录 1.问题描述 1.1问题剖析 2.实现程序 2.1运行结果 2.3总结 3.预测 3.1输出结果 4.预测理解 1.问题描述 某运输系统连续9年货运量的有关数据如表2-10所示。根据对关于货运量影响因素的分析,这里分别取国内生产总值GDP、工业总产值、铁路运输线路长度、复线…

使用vue-easytable实现仿excel表格,支持可编辑、添加删除行、虚拟表格等功能

使用npm安装vue-easytable npm install --save vue-easytable 在 main.js 中写入以下内容: // 引入样式 import "vue-easytable/libs/theme-default/index.css"; // 引入组件库 import VueEasytable from "vue-easytable"; Vue.use(VueEasyt…

ADI Blackfin DSP处理器-BF533的开发详解49:图像处理专题-Bright (图像亮暗处理)(含源码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像亮暗处理,代码运行时,会通过文件系统打开工程文件根目下" …/ImageView"路径中的 tes…

[附源码]Node.js计算机毕业设计电子市场计算机配件报价系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

聚焦人机交互智能应用领域,APISIX 在希沃网关的应用与实践

分享嘉宾简海清,视源股份运维负责人。 视源股份(CVTE)自成立以来,依托在音视频技术、人机交互、应用开发、系统集成等电子产品领域的软硬件技术积累,建立了教育数字化工具及服务提供商希沃(seewo&#xff0…

三、JavaScript——编写位置

1.在script标签内编写 JS的代码一般可以写到script标签中&#xff0c;script标签的完整写法是要加type"text/javascript",但这个一般可以省略&#xff0c;所以只用<script>即可 <!DOCTYPE html> <html lang"en"> <head><meta …

【架构师李肯】带你走进架构师的一天

作者简介 *架构师李肯&#xff08;全网同名&#xff09;**&#xff0c;一个专注于嵌入式IoT领域的架构师。有着近10年的嵌入式一线开发经验&#xff0c;深耕IoT领域多年&#xff0c;熟知IoT领域的业务发展&#xff0c;深度掌握IoT领域的相关技术栈&#xff0c;包括但不限于主流…

js逆向之加密方法远程调用

js逆向之加密方法远程调用 加密方法的远程调用主要是使用了RPC协议,RPC(Remote Procedure Call)是远程调用的意思。RPC的应用十分广泛,比如在分布式中的进程间通信、微服务中的节点通信。 我们这里使用的rpc其实是实现两个不同进程通信的一种方式,比如在浏览器执行一些方…

SystemUI 调整Recents中全部清除按钮位置

Recents 即多任务界面&#xff0c;显示最近使用过的APP List的。下面内容都是基于Android 11平台修改的。Android 11上&#xff0c;Recents 这一部分代码其实都已经被挪到Launcher3中。由于个人习惯&#xff0c;所以将内容分类作为SystemUI部分记录。 多任务界面主要几个文件&…