一个名为 rosenbridge 的硬件后门在部分 x86 处理器中被发现。这个后门允许低权限的用户程序绕过系统保护,直接读写核心的内核数据。尽管通常需要内核权限才能启用,但在某些系统上它被发现是默认开启的。此漏洞主要影响威盛(VIA)的 C3 系列 CPU,目前已被视为一个研究案例,展示了复杂处理器中可能存在的安全风险。
后门是什么?
rosenbridge 后门是在 CPU 主核心旁边嵌入的一个小型的、非 x86 架构的“微型核心”。攻击者可以通过它绕过所有内存保护和权限检查。
- 激活方式: 通过一个特定的“模型专用寄存器”(MSR)控制位来启用,再通过一个特殊的启动指令进行触发。
- 执行命令: 激活后,这个微型核心会接收包裹在特殊格式 x86 指令中的命令,并直接执行它们。
- 核心风险: 它允许处于最低权限“ring 3”(用户态)的代码,直接读取和写入最高权限“ring 0”(内核态)的数据。
尽管该后门本应需要内核级访问权限才能激活,但在某些系统上它被发现是默认启用的,这使得任何非特权代码都能修改内核。
这个后门与英特尔管理引擎(ME)或 AMD 平台安全处理器(PSP)等其他已知的协处理器完全不同。它被嵌入得更深,不仅能访问 CPU 的所有内存,还能访问其寄存器文件和执行管道。
哪些系统受到影响?
目前认为,只有威盛(VIA)的 C3 系列 CPU 受到此问题的影响。
这些处理器主要面向特定市场,例如:
- 工业自动化设备
- 销售终端(POS)机
- 自动取款机(ATM)
- 医疗硬件
- 部分消费级台式机和笔记本电脑
后续影响与展望
这个漏洞的影响范围是有限的,因为 C3 之后的 CPU 已不再包含此功能。这项研究主要作为一个案例和思想实验,旨在:
- 展示后门如何在日益复杂的处理器中产生。
- 探索研究人员和最终用户如何识别此类隐藏功能。
这里提供的工具和研究为更深入的处理器漏洞研究提供了一个起点。
如何检查你的 CPU
研究人员提供了一个 alpha 阶段的工具来检查你的 CPU 是否受影响。
警告: 该工具必须在实体机上运行(不能在虚拟机中),并且尚不稳定。在不包含该后门的系统上运行,可能会导致系统崩溃、内核恐慌或挂起。
如果你了解风险并希望尝试,可以执行以下步骤:
- 克隆代码库:
git clone https://github.com/xoreaxeaxeax/rosenbridge - 进入目录:
cd rosenbridge/util - 编译:
make - 加载 MSR 模块:
sudo modprobe msr - 运行检查工具:
sudo ./bin/check
如何关闭后门
如果检查工具显示你的 CPU 存在漏洞,并且后门是默认开启的,你可以安装一个脚本,在系统启动早期关闭它。
- 进入修复目录:
cd fix - 编译:
make - 安装:
sudo make install - 重启:
reboot
请注意,即使安装了此补丁,拥有内核级访问权限的攻击者仍然可以重新启用该后门。这个脚本只是一个基础修复方案,可能需要根据不同系统进行调整。
研究中使用的工具与技术
这项研究使用了多种自定义工具来发现和分析后门:
- sandsifter: 用于发现未知 CPU 指令的实用程序。
- asm: 一个为该后门的“深度嵌入指令集”(DEIS)编写的汇编器。
- esc: 一个利用 rosenbridge 后门进行权限提升的概念验证工具。
- fuzz: 用于模糊测试 x86 和 rosenbridge 核心的工具集合,以分离出未知的指令。
- lock: 用于锁定或解锁 rosenbridge 后门的实用程序。
- util: 用于检测处理器是否受 rosenbridge 影响的 alpha 版工具。