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

 

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.mzph.cn/bicheng/50789.shtml

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

相关文章

从零开始学Java(超详细韩顺平老师笔记梳理)08——面向对象编程中级(上)IDEA常用快捷键、包、封装、继承

文章目录 前言一、IDEA使用常用快捷键模板/自定义模板 二、包package1. 基本介绍2. 包的命名规范3. 常用的包和如何引入4. 注意事项和细节 三、访问修饰符(四类)四、封装Encapsulation(重点)1. 封装介绍2. 封装步骤3. 快速入门4. …

SpringCloud Nacos的配置与使用

Spring Cloud Nacos的配置与使用 文章目录 Spring Cloud Nacos的配置与使用1. 简单介绍2. 环境搭建3. 服务注册/服务发现4. Nacos 负载均衡4.1 服务下线4.2 权重配置4.3 同集群优先访问 5. Nacos 健康检查5.1 两种健康检查机制5.2 服务实例类型 6.Nacos 环境隔离6.1 创建namesp…

【MySQL进阶之路 | 高级篇】表级锁之S锁,X锁,意向锁

1. 从数据操作的粒度划分:表级锁,页级锁,行锁 为了尽可能提高数据库的并发度,每次锁定的数据范围越小越好,理论上每次只锁定当前操作的数据的方案会得到最大的并发度,但是管理锁是很耗资源的事情&#xff…

驾驭代码的无形疆界:动态内存管理揭秘

目录 1.:为什么要有动态内存分配 2.malloc和free 2.1:malloc 2.2:free 3.calloc和realloc 3.1:calloc 3.1.1:代码1(malloc) 3.1.2:代码2(calloc) 3.2:realloc 3.2.1:原地扩容 3.2.2:异地扩容 3.2.3:代码1(原地扩容) 3.2.3:代码2(异地扩容) 4:常见的动态内存的错误…

vite + xlsx + xlsx-style 导出 Excel

如下 npm i 依赖 npm i xlsxnpm i xlsx-style-vite1、简单的使用:.vue文件中使用 const dataSource ref([]) // 数据源const columns [{title: 用户名,key: userName,width: 120,},{title: 用户组,key: userGroup,width: 120,},{title: 状态,key: enable,width: …

鸿蒙(HarmonyOS)下拉选择控件

一、操作环境 操作系统: Windows 11 专业版、IDE:DevEco Studio 3.1.1 Release、SDK:HarmonyOS 3.1.0(API 9) 二、效果图 三、代码 SelectPVComponent.ets Component export default struct SelectPVComponent {Link selection: SelectOption[]priva…

浅谈我对RESTful架构的理解

总结说在前面: RESTful API是目前比较成熟的一套互联网应用程序的 API 设计理论,他是一种理论规范,方便不同的前端设备与后端进行通信,在 RESTful 风格的 API 设计架构中,每个网址代表一种资源(resource&am…

maven介绍 搭建Nexus3(maven私服搭建)

Maven是一个强大的项目管理工具,它基于项目对象模型(POM:Project Object Model)的概念,通过XML格式的配置文件(pom.xml)来管理项目的构建 Maven确实可以被视为一种工程管理工具或项目自动化构…

飞凌嵌入式技术创新日深圳站,8月26日见!

飞凌嵌入式技术创新日(深圳站)将于8月26日举行,一场嵌入式前沿科技的高端局就在眼前。届时,将有多位重量级技术大咖出席,为大家分享最新的研究成果、独到的行业见解和典型的应用案例,紧密结合当前行业热点和…

网络服务综合项目(一键部署shell脚本)

目录 需求: 主机环境描述 注意: 项目需求: 代码讲解 配置本地仓库 安装软件包 配置防火墙 配置策略中的一个布尔值 配置web服务 配置网络仓库 配置DNS服务 配置NTP服务 配置MySQL服务 配置NFS服务 配置论坛服务 进入网站配置…

Python数据分析案例55——基于LSTM结构自编码器的多变量时间序列异常值监测

案例背景 时间序列的异常值检测是方兴未艾的话题。比如很多单变量的,一条风速,一条用电量这种做时间序列异常值检测,想查看一下哪个时间点的用电量异常。 多变量时间序列由不同变量随时间变化的序列组成,这些时间序列在实际应用…

小黄人欢乐来袭,国漫萌物大集结

最近上映的《神偷奶爸》4不知道大家有没有去看,小黄人作为该系列电影的标志性角色,继续以其呆萌可爱的形象和幽默搞怪的性格赢得了观众的喜爱。 在中国动漫中,也有许多可爱且深受观众喜爱的萌物角色。这些角色以其独特的形象、有趣的性格和与…

数据结构day6

一、思维导图 二、模拟面试 typedef定义函数指针的方式typedef int(*p)(int,int);对void*指针的理解,相关应用万能指针,可以定义形参用来接收任意类型的指针变量,也可以定义函数用来返回任意类型的指针变量例如malloc函数在堆区申请内存&…

HTTP协议和RPC协议的区别是什么

从功能层面来说,HTTP协议是一个应用层的超文本传输协议,它是万维网数据通信的一个基础,主要服务在网页端和服务端的一个数据传输上。而RPC是一个远程过程调用协议,它是定位在实现分布式应用之间的一个数据通信,屏蔽了通…

SpringBoot入门:如何新建SpringBoot项目(保姆级教程)

在本文中,我们将演示如何新建一个基本的 Spring Boot 项目。写这篇文章的时候我还是很惊讶的,因为我发现有些java的初学者,甚至工作10年的老员工居然并不会新建一个SpringBoot项目,所以特别出了一篇文章来教大家新建一个SpringBoo…

数据挖掘-数据预处理

来自🥬🐶程序员 Truraly | 田园 的博客,最新文章首发于:田园幻想乡 | 原文链接 | github (欢迎关注) 文章目录 3.3.1 数据的中心趋势平均数和加权平均数众数,中位数和均值描述数据的离散程度 &a…

VSCode | 修改编辑器注释的颜色

1 打开VsCode的设置进入settings.json 2 添加如下代码 "editor.tokenColorCustomizations": {"comments": "#17e917"},3 保存即可生效

Linux源码阅读笔记14-IO体系结构与访问设备

IO体系结构 与外设通信通常称为输入输出,一般缩写为I/O。在实现外设IO的时候,内核必须处理三个可能出现的问题: 必须根据具体的设备类型和模型,使用各种方法对硬件寻址。内核必须向用户应用程序和系统工具提供访问各种设备的方法…

hugging face 使用教程———快速入门

概述 本篇存在的意义是快速介绍hugging face使用,梳理主要部件,梳理易混淆概念。原因是:目前hugging face的使用,官方放在了3个地方(参考链接部分):使用文档、NLP教程、Transformers git的readm…

Vue3+Element Plus 实现table表格中input的验证

实现效果 html部分 <template><div class"table"><el-form ref"tableFormRef" :model"form"><el-table :data"form.detailList"><el-table-column type"selection" width"55" align&…