Hacker News Best

Hardware backdoors in some x86 CPUs

8.5内容质量

TL;DR · AI 摘要

某些x86处理器存在硬件后门漏洞,允许用户态代码绕过内核保护。

核心要点

  • VIA C3系列CPU存在默认启用的硬件后门漏洞
  • 后门通过专用指令集绕过内存保护机制
  • 检测工具需在物理机上运行且可能不稳定

结构提纲

按章节快速跳转。

  1. 揭示x86处理器中的硬件后门漏洞及其影响范围

  2. 描述通过专用指令集绕过内存保护的实现方式

  3. 明确VIA C3系列处理器为唯一受影响硬件

  4. 提供基于物理机的检测工具及使用限制

  5. 说明通过修改控制位关闭后门的可行性

  6. 展示复杂处理器中后门漏洞的发现方法论

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • x86 CPU硬件后门
    • 后门机制
      • 专用指令集绕过保护
      • 模型特定寄存器控制
    • 受影响系统
      • VIA C3系列处理器
      • 工业自动化设备
    • 应对方案
      • 物理机检测工具
      • 控制位关闭方法

金句 / Highlights

值得收藏与分享的关键句。

#x86 CPU#硬件漏洞#安全研究
打开原文

GitHub - xoreaxeaxeax/rosenbridge: x86 CPU 中的硬件后门 · GitHub

project:rosenbridge

: x86 CPU 中的硬件后门

github.com/xoreaxeaxeax/rosenbridge // domas // @xoreaxeaxeax

概述

project:rosenbridge 揭示了部分台式机、笔记本和嵌入式 x86 处理器中存在硬件后门。

该后门允许环3(用户空间)代码绕过处理器保护机制,自由读写环0(内核)数据。虽然该后门通常需要环0权限才能启用,但我们发现某些系统上该后门默认处于启用状态。

本仓库包含以下工具:检查处理器是否受影响、若存在后门则关闭它,以及用于发现和分析后门的研究成果与工具。

后门机制

rosenbridge 后门是一个小型非 x86 核心,与主 x86 核心一同嵌入在 CPU 中。它通过特定模型寄存器控制位启用,随后通过 launch 指令进行切换。嵌入式核心会接收封装在特殊格式 x86 指令中的命令。该核心执行这些命令(我们称之为“深度嵌入式指令集”),绕过所有内存保护和权限检查。

尽管该后门应需要内核权限才能激活,但观察到某些系统默认启用该后门,允许任何非特权代码修改内核。

rosenbridge 后门与 x86 CPU 上其他已知协处理器(如管理引擎或平台安全处理器)完全不同;它比任何已知协处理器都更深层嵌入,不仅可访问 CPU 的全部内存,还能访问其寄存器文件和执行流水线。

受影响系统

目前认为只有 VIA C3 处理器会受到此问题影响。C 系列处理器主要面向工业自动化、销售点、ATM 和医疗硬件,以及多种消费类台式机和笔记本电脑。

未来展望

此漏洞的影响范围有限;C3 之后的 CPU 世代不再包含此特性。

本研究以案例分析和思维实验形式发布,旨在说明随着处理器复杂度增加,后门可能如何出现,以及研究人员和终端用户如何识别此类特性。此处提供的工具和研究为更深入的处理器漏洞研究提供了起点。

检查你的 CPU

检查 CPU 是否受影响的方法:

code
git clone https://github.com/xoreaxeaxeax/rosenbridge
cd rosenbridge/util
make
sudo modprobe msr
sudo ./bin/check

提供的工具必须在裸机(非虚拟机)上运行,目前处于 alpha 阶段。它可能导致未安装后门的系统崩溃、恐慌或挂起。

此处提供的工具针对特定处理器系列和核心设计;不幸的是,如果后门与研究形式存在细微差异,工具将无法检测到该后门。

关闭后门

部分系统默认启用该后门,允许非特权代码未经许可获得内核访问权限。如果“检查你的 CPU”部分的步骤表明你的 CPU 存在漏洞,可以通过安装脚本在启动早期关闭后门:

code
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:用于检测处理器是否受 rosenbridge 影响的 alpha 阶段工具。

参考文献

(TODO: 链接到白皮书)

(TODO: 链接到幻灯片)

免责声明

本文中呈现的细节和影响是作者基于所述研究的推断和观点。本研究的目的是识别并修复所述 CPU 上感知到的安全漏洞。VIA 处理器以其低功耗和嵌入式设计的卓越性能而闻名;我们认为所描述的功能是出于良好意图,作为嵌入式市场的有用功能开发的,并且在某些早期处理器世代中无意中被启用。此处不暗示任何恶意意图。

作者

project:rosenbridge 是 Christopher Domas(@xoreaxeaxeax)的研究项目。