Hardware backdoors in x86 CPUs
:x86 CPU中的硬件后门
github.com/xoreaxeaxeax/rosenbridge // domas // @xoreaxeaxeax
项目:rosenbridge 揭示了某些台式机、笔记本电脑和嵌入式 x86 处理器中的硬件后门。
该后门允许 ring 3(用户态)代码绕过处理器保护,自由读写 ring 0(内核态)数据。虽然该后门通常处于禁用状态(需要 ring 0 执行才能启用),但我们发现它在某些系统上默认启用。
此仓库包含用于检查您的处理器是否受影响、关闭后门(如果存在)的实用程序,以及用于发现和分析后门的研究和工具。
rosenbridge 后门是一个小型、非 x86 的内核,嵌入在 CPU 的主 x86 核心旁。它通过一个特定型号寄存器(MSR)控制位启用,然后通过一个启动指令触发。然后,嵌入式核心接收包装在特殊格式的 x86 指令中的命令。该核心执行这些命令(我们称之为"深度嵌入指令集"),绕过所有内存保护和权限检查。
虽然该后门需要内核级别的访问权限才能激活,但已在某些系统上观察到默认启用,允许任何非特权代码修改内核。
rosenbridge 后门与 x86 CPU 上其他已知的协处理器(如管理引擎或平台安全处理器)完全不同;它比任何已知的协处理器嵌入得更深,不仅能够访问 CPU 的所有内存,还能访问其寄存器文件和执行流水线。
据认为,只有 VIA C3 CPU 受此问题影响。C 系列处理器面向工业自动化、销售点、ATM 和医疗硬件,以及各种消费级台式机和笔记本电脑。
此漏洞的范围有限;C3 之后的 CPU 代不再包含此功能。
本工作作为案例研究和思想实验发布,说明在日益复杂的处理器中后门可能如何出现,以及研究人员和最终用户如何识别此类功能。此处提供的工具和研究为更深入的处理器漏洞研究提供了起点。
要检查您的 CPU 是否受影响:
git clone https://github.com/xoreaxeaxeax/rosenbridge
cd rosenbridge/util
make
sudo modprobe msr
sudo ./bin/check
提供的实用程序必须在裸金属(而非虚拟机)上运行,并且处于alpha状态。它可能导致不包含后门的系统崩溃、恐慌或挂起。
此处提供的实用程序是针对特定处理器系列和核心设计的;不幸的是,如果后门与所研究的形式相比有任何微小的修改,这些工具将会遗漏后门。
某些系统默认启用后门,允许非特权代码未经许可获得内核级访问权限。如果"检查您的 CPU"中的步骤表明您的 CPU 易受攻击,您可以安装一个脚本在启动早期关闭后门:
cd fix
make
sudo make install
reboot
请注意,即使如此,拥有内核级访问权限的攻击者仍然可以重新启用后门。此脚本作为在启动过程中纠正此问题的概要提供,但需要针对不同系统进行调整。
本研究中广泛使用 sandsifter 实用程序来发现未知指令。
asm
深度嵌入指令集(DEIS)的汇编器。它将用自定义的 rosenbridge 汇编编写的程序转换为 x86 指令,这些指令在跟随启动指令执行后,会将命令发送到隐藏的 CPU 核心。
esc
使用 rosenbridge 后门进行权限提升的概念验证。
fix
针对受影响系统关闭漏洞的粗略方案,尽可能通过特定型号寄存器更新实现。
fuzz
一组用于对 x86 和 rosenbridge 核心进行模糊测试的实用程序,以隔离未知的启动指令和桥接指令,并解析 rosenbridge 核心的指令格式。
deis
用于探索隐藏 CPU 核心效果和能力的模糊测试器。
exit
据认为,在某些处理器上,需要在 DEIS 序列结束时使用退出序列切换回 x86 核心。此目录包含在研究早期用于搜索退出序列的实用程序,但在发现一个不需要此类序列的处理器后被放弃。
manager
一组用于监控和管理分布在工作节点网络上的模糊测试任务的 Python 实用程序。
wrap
精简版的 sandsifter 模糊测试器,用于识别将命令从 x86 核心发送到隐藏 rosenbridge 核心的桥接指令。
kern
一组辅助实用程序,用于监控内核内存和寄存器,以检测由模糊测试的 DEIS 指令引起的变化。
lock
用于锁定或解锁 rosenbridge 后门的实用程序。
proc
用于从模糊测试日志中识别模式,以确定 DEIS 指令行为类别的工具。
test
研究早期使用的工具,尝试通过执行已知的 RISC 指令来识别隐藏核心的架构。
util
一个 alpha 状态工具,用于检测处理器是否受 rosenbridge 影响。
(待办:链接到白皮书)
(待办:链接到幻灯片)
本工作中呈现的细节和含义是作者根据所描述的研究得出的推断和意见。该研究的执行和提供旨在识别和修复所述 CPU 上的感知安全漏洞。VIA 处理器以其低功耗和卓越的嵌入式设计而闻名;我们认为所描述的功能是出于善意,作为嵌入式市场的一个有用特性而创建的,并且无意中在某些早期代次的处理器上保持启用状态。无恶意意图暗示。
项目:rosenbridge 是 Christopher Domas (@xoreaxeaxeax) 的研究成果。