某些x86 CPU中的硬件后门
项目:rosenbridge:x86 CPU中的硬件后门 github.com/xoreaxeaxeax/rosenbridge // domas // @xoreaxeaxeax 概述 项目:rosenbridge揭示了一些台式机、笔记本电脑和嵌入式x86处理器中的硬件后门。该后门允许环3(用户态)代码绕过处理器保护,任意读取和写入环0(内核)数据。虽然该后门通常是禁用的(需要环0执行才能启用),但我们发现它在某些系统上默认是启用的。该库包含了检查您的处理器是否受影响的工具,如果存在则关闭后门,以及用于发现和分析后门的研究和工具。 后门 rosenbridge后门是一个小型的非x86核心,嵌入在CPU的主要x86核心旁边。它通过特定于模型的寄存器控制位启用,然后通过启动指令进行切换。嵌入式内核接受用专门格式化的x86指令包裹的命令。该核心执行这些命令(我们称之为“深度嵌入指令集”),绕过所有内存保护和特权检查。虽然后门理论上应该需要内核级访问才能激活,但有观察到在某些系统上默认启用,允许任何没有特权的代码修改内核。 rosenbridge后门与其他已知的公共协处理器(如管理引擎或平台安全处理器)完全不同;它比任何已知的协处理器更深入地嵌入,拥有对CPU所有内存、寄存器文件和执行流水线的访问。 受影响系统 预计只有VIA C3 CPU受到此问题的影响。C系列处理器面向工业自动化、销售点、ATM和医疗硬件,以及各种消费类台式机和笔记本电脑。 展望未来 这项漏洞的范围有限;C3之后的CPU代不再包含此功能。本工作作为一个案例研究和思想实验发布,说明了后门如何在日益复杂的处理器中出现,以及研究人员和用户如何识别此类特征。这里提供的工具和研究为更深入的处理器脆弱性研究提供了起点。 检查您的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 一组用于监控内核内存的辅助工具。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡