五大设备制造商的 200 多种机型的安全启动功能完全失效

news2024/11/24 0:00:50

 

2012 年,一个由硬件和软件制造商组成的行业联盟采用了安全启动技术,以防范长期存在的安全威胁。这种威胁是恶意软件的幽灵,它可以感染 BIOS,即每次计算机启动时加载操作系统的固件。从那里,它可以保持不受检测和删除,甚至可以在操作系统和安全应用程序加载之前加载。

这种 BIOS 恶意软件的威胁在很大程度上是理论上的,很大程度上是由2007 年一位中国研究人员创建的ICLord Bioskit所推动的。ICLord 是一种rootkit ,这种恶意软件通过破坏操作系统内置的关键保护来获得并保持隐秘的 root 访问权限。

概念验证表明,这种 BIOS rootkit 不仅可行,而且功能强大。2011 年,随着Mebromi的发现,这种威胁变成了现实,这是第一个已知的在野外使用的 BIOS rootkit。

安全启动架构师敏锐地意识到 Mebromi及其可能引发的新型破坏性攻击,因此他们制定了一种复杂的新方法来加强预启动环境的安全性。安全启动内置于 UEFI(统一可扩展固件接口,将成为 BIOS 的后继者)中,使用公钥加密来阻止加载任何未使用预先批准的数字签名进行签名的代码。

直到今天,安全领域的主要参与者(其中包括微软和美国国家安全局)都将安全启动视为重要(甚至必不可少)的信任基础,用于保护某些最关键环境(包括工业控制和企业网络)中的设备。

无限安全启动绕过

周四,安全公司 Binarly 的研究人员透露,宏碁、戴尔、技嘉、英特尔和超微销售的 200 多种设备型号的安全启动功能已完全被攻破。原因:这些型号的安全启动功能所依赖的加密密钥在 2022 年遭到入侵。在当年 12 月提交的公共 GitHub 存储库中,为多家美国设备制造商工作的某人发布了所谓的平台密钥,即构成硬件设备与在其上运行的固件之间的信任根锚的加密密钥。该存储库已被删除。

该存储库以加密形式包含平台密钥的私有部分。然而,加密文件受四个字符的密码保护,这一决定使得 Binarly 以及任何好奇心强的人都能轻松破解密码并检索相应的纯文本。密钥的泄露在很大程度上没有引起人们的注意,直到 2023 年 1 月,Binarly 研究人员在调查一起供应链事件时发现了它。现在泄漏事件曝光,安全专家表示,这实际上破坏了安全启动提供的安全保障。

这是一个大问题,对于使用此平台密钥的设备来说,这基本上是一种不受限制的安全启动绕过。因此,在设备制造商或 OEM 提供固件更新之前,任何人基本上都可以……在系统启动期间执行任何恶意软件或不受信任的代码。当然,需要特权访问,但在很多情况下这不是问题。

Binarly 研究人员表示,他们对固件映像的扫描发现了 215 台使用被泄露密钥的设备,这些设备可以通过证书序列号 55:fb:ef:87:81:23:00:84:47:17:0b:b3:cd:87:3a:f4 来识别。本文末尾的表格列出了每台设备。

研究人员很快发现,密钥泄露只是更大规模供应链崩溃的开始,这引发了人们对几乎所有主要设备制造商的 300 多种其他设备型号的安全启动完整性的严重怀疑。与 2022 年 GitHub 泄漏中泄露的平台密钥一样,另外 21 个平台密钥包含字符串“请勿发货”或“请勿信任”。

 

安全启动简介

使安全启动发挥作用的四个关键资源是:

1. 平台密钥(PK):以嵌入系统固件的加密密钥形式提供信任根锚。它在平台硬件和在其上运行的所有固件之间建立信任。

2. 密钥交换密钥(KEK):这是在操作系统和平台固件之间建立信任的密钥。

3. 签名数据库或 DB:包含硬件制造商批准的第三方 UEFI 组件和引导加载程序的可信签名和证书的数据库。

4. 禁止签名数据库或 DBX:用于撤销先前受信任的启动组件的签名和证书数据库,以便它们不再可以在启动期间运行。

DB 和 DBX 的更新都必须由安全启动 KEK 数据库中的 KEK 签名。

以下三张图片分别由 Binarly、Microsoft 和 NSA 提供,直观地概述了这四种主要资源。

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

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

相关文章

jenkins参数化构建在UI中定义脚本中使用

先看配置: 流水线脚本: pipeline {agent {//label "${server}"label "${28}"}stages {stage(Hello) {steps {echo "--------------------------"// 只有这个可以输出变量echo "${character_argument}"echo &q…

Pytorch使用教学5-视图view与reshape的区别

有同学后台留言问为什么view有时可对张量进行形变操作,有时就会报错?另外它和reshape功能好像一致,有什么区别呢?本文就带你了解PyTorch中视图的概念。 在PyTorch中对张量进行形变操作时,很多同学也会使用view方法&am…

kettle从入门到精通 第八十课 ETL之kettle kettle中的json对象字段写入postgresql中的json字段

场景:源数据库表为mysql的其中有json字段,通过kettle 查询出来 插入到目标数据库 postgresql中,对应的表中也有json字段。。但是报错,提示kettle查询出来是varchar的的字段,无法插入到目标数据库中。 1、创建测试表。 …

【VSCode实战】Golang无法跳转问题竟是如此简单

上一讲【VSCode实战】Go插件依赖无法安装 – 经云的清净小站 (skycreator.top),开头说到了在VSCode中Golang无法跳转的问题,但文章的最后也没给出解决方案,只解决了安装Go插件的依赖问题。 解决了插件依赖问题,无法跳转的问题也离…

echo,tail ,飘号和重定向符

1. 输出指定内容 echo 语法; echo 输出的内容 较多内容使用 “ 双引号 ”, 相当于 printf ; 2. 飘号 飘号,也就是我们通常所说的反引号,被飘号包括的内容会当作命令执行,常配合 echo 使用,输出结果为…

【python】python图书管理系统_普通用户+管理员菜单(源码+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

Docker安装 OpenResty详细教程

OpenResty 是一个基于 Nginx 的高性能 Web 平台,它集成了 Lua 脚本语言,使得开发者可以在 Nginx 服务器上轻松地进行动态 Web 应用开发。OpenResty 的核心目标是通过将 Nginx 的高性能与 Lua 的灵活性结合起来,提供一个强大且高效的 Web 开发…

IO多路复用——select

仅一个线程、进程处理并发 IO多路转接(复用)之select 跨平台适用linux,windows 底层:线性表 IO多路转接(复用)之poll 适用linux 底层:线性表 IO多路转接(复用)之epo…

微信小程序支付流程

前端需要做的事情: 生成平台订单:前端调用接口,向后端传递购买的商品信息、收货人信息,(后端生成平台订单,返回订单编号)获取预付单信息:将订单编号发送给后端后,&#x…

2024最新Selenium面试题(附带答案),建议收藏备用

一.你在TestNG中使用了哪些注解? TestBeforeSuiteAfterSuiteBeforeTestAfterTestBeforeClassAfterClassBeforeMethodAfterMethod 二.如何从Excel中读取数据? FileInputStream fs new FileInputStream(“excel文件路径”); Workbook wb WorkbookFact…

Web前端知识视频教程分享(五) Bootstrap

资料下载地址: https://545c.com/f/45573183-1336822373-45bb4f?p7526 (访问密码: 7526)

WordPress原创插件:自定义文章标题颜色

插件设置截图 文章编辑时,右边会出现一个标题颜色设置,可以设置为任何颜色 更新记录:从输入颜色css代码,改为颜色选择器,更方便! 插件免费下载 https://download.csdn.net/download/huayula/89585192…

Xinstall揭秘:一键拉起服务如何助力App提升用户体验和下载转化率

在移动互联网时代,App的运营和推广显得尤为重要。而在这个过程中,如何提升用户体验和下载转化率成为了每个App运营者关注的焦点。今天,我们就来揭秘一下Xinstall的一键拉起服务,看看它是如何助力App提升用户体验和下载转化率的。 …

示例:WPF中如何处理TabControl页面绑定ItemsSource切换TabItem时UI数据没有持久保存的问题

一、目的:在WPF开发过程中,经常用到TabControl,也会遇到类似问题,用TabControl绑定数据源ItemsSource时,切换TabItem时,UI上的数据没有持久保存,本文介绍一种处理方式,可以做到缓存页…

解决学生技能短板:泰迪智能科技2024年中职大数据实验室,全面提升学生实践能力

一、中职院校现状及实验室建设背景 在当今信息化时代,大数据技术已成为国家战略发展的重要方向。中职院校作为我国职业教育体系的重要组成部分,肩负着培养高素质技术技能人才的重任。然而,目前我国中职院校在大数据教育方面存在以下问题&…

蓝桥强化宝典(4)Dijkstra

前言 Dijkstra算法(迪杰斯特拉算法),又称狄克斯特拉算法,是由荷兰计算机科学家Edsger W. Dijkstra于1959年提出的。该算法主要用于在加权图中查找从一个起始节点到所有其他节点的最短路径,解决的是有权图中最短路径问题…

在线教育数仓项目(数据采集部分1)

文章目录 数据仓库概念项目需求及架构设计项目需求分析系统数据流程设计框架版本选型集群规模估算集群资源规划设计 数据生成模块目标数据页面事件曝光启动播放错误 数据埋点主流埋点方式(了解)埋点数据上报时机埋点数据日志结构 服务器和JDK准备服务器准…

C++(入门1)

C参考文档 Reference - C Reference C 参考手册 - cppreference.com cppreference.com 第一个C程序 #include<stdio.h> int main() {printf("Hello C\n");return 0; }由上述代码可知C是兼容C语言 第一个C标准程序 #include<iostream> using names…

C#初级——枚举

枚举 枚举是一组命名整型常量。 enum 枚举名字 { 常量1, 常量2, …… 常量n }; 枚举的常量是由 , 分隔的列表。并且&#xff0c;在这个整型常量列表中&#xff0c;通常默认第一位枚举符号的值为0&#xff0c;此后的枚举符号的值都比前一位大1。 在将枚举赋值给 int 类型的…