麻省理工学院(MIT)开发了一款全新的操作系统内核 Fractal,为研究人员提供了前所未有的“近距离”视角来观察处理器内部运行机制。借助这一工具,团队在苹果 M1 处理器上发现了此前未被记录的行为特征。
当安全研究人员想要弄清现代处理器在真实环境中的工作方式,尤其是评估是否可能发生 Spectre、Meltdown 等侧信道攻击时,通常只能在 macOS 或 Linux 这类通用操作系统上“硬改”内核做实验。他们需要手动打补丁、修改内核逻辑,然后祈祷这些改动不会被系统其他部分干扰。这种方式不仅难以复现、结果噪声大,而且在苹果平台上也逐渐变得不可持续。
MIT 计算机科学与人工智能实验室(CSAIL)的一支团队选择从根本上改变这一现状。他们从零开始编写了 Fractal 内核,把“研究硬件本身”作为首要目标。Fractal 的首次重要应用,就是对苹果 M1 分支预测器的系统性分析——分支预测器是 CPU 在尚未确定下一步执行路径时提前“猜测”要执行哪段代码,以减少等待时间的关键组件。通过 Fractal,研究人员观察到此前工作未能捕捉到的现象,其中包括首次证实一类名为“幽灵”(Phantom)的推测攻击可以影响苹果自研芯片。
项目负责人、MIT 电气工程与计算机科学系博士生 Joseph Ravichandran 表示:“我们以硬件设计时并未预期的方式在使用它。这些操作甚至一开始看起来都不像是硬件能支持的。但我们找到了实现这些原语的方法。它就像显微镜:手持放大镜能看到一点细节,而电子显微镜则完全是另一个层级。Fractal 就是操作系统世界里的电子显微镜。”
为芯片实验打造“净化”环境
Fractal 试图解决的是研究人员多年来一直在绕行的核心难题。现代处理器内部维护着大量状态:分支预测器、缓存、转换后备缓冲区(TLB)等。要研究这些结构在用户态与内核态这两个本应隔离的权限域之间的交互,研究人员需要在边界两侧运行几乎完全对称的实验。
在通用操作系统上,这几乎不可能做到干净。系统会自动管理权限级别、地址空间和调度策略,并在每一次测量中引入自身的活动噪声。
Fractal 则彻底改变了这一模式。它直接在裸机上启动,不依赖任何其他软件层,并提供一组底层原语,使单个实验可以在运行过程中切换权限级别,同时在同一地址空间中执行同一段指令。团队将这一关键技术称为“多权限并发”,并为此引入了一个新概念:外核线程(exokernel thread)。外核线程驻留在用户进程的内存空间中,但以内核权限执行。
这样一来,实验环境中的背景噪声被压到极低。在 macOS 或 Linux 上,测量数据往往会被中断、调度器行为和地址空间切换所干扰;而在 Fractal 下,研究人员可以获得几乎平坦的基线和清晰可辨的信号。
Fractal 在 M1 上的关键发现
苹果 M1 实现了 ARM 规范中的 CSV2 机制,目标是阻止一个权限级别的代码驱动另一个权限级别的推测执行。利用 Fractal,MIT 团队验证了这一防护在间接分支预测的执行阶段确实有效:用户态程序无法通过间接分支预测器,让内核在推测执行阶段跳转到其选择的目标。
但团队也发现了芯片设计者可能未充分预料到的行为。CPU 在 CSV2 保护真正生效之前,仍会将潜在目标取入指令缓存。这一取指过程可以通过侧信道被观测到,意味着用户态代码依然可以影响内核在跨权限边界时被拉入缓存的内容。类似的模式也出现在使用不同地址空间标识符(ASID)的进程之间。

研究人员还首次给出了苹果硅芯片存在幽灵(Phantom)推测的证据。这类错误预测此前只在 AMD 和 Intel 处理器上被实验证实。幽灵攻击中,即便是普通指令(包括空操作 NOP),也可能被 CPU 误判为分支,从而触发程序本不打算发生的推测行为。在 M1 上,Fractal 显示幽灵取指可以跨越权限级别和地址空间成功进行,尽管在执行阶段仍然受到阻断。
另一项基于 Fractal 的实验则推翻了此前关于 M1 条件分支预测器的一些结论。早期研究认为,在苹果的性能核心上,跨权限训练条件分支预测器是可行的,而在效率核心上则不可行。Fractal 团队证明,条件分支预测器在两类核心上都不存在权限隔离,之前的差异很可能是由于 macOS 在系统调用期间悄然迁移线程,导致实验结果被误读。
Ravichandran 指出:“对我们来说,权限级别是真正的独立变量。你只改变权限级别,其他一切保持不变。攻击是否成功,唯一能解释的因素就是权限级别本身。”
从一次性实验到通用研究平台
Fractal 目前支持 x86_64、ARM64 和 RISC-V 架构,代码规模已超过 31,000 行。团队从一开始就将其定位为可复用的基础设施,而不是只为单个实验定制的系统。为降低研究人员迁移成本,Fractal 提供了熟悉的 POSIX 系统调用接口、C 标准库,以及 vim、GCC、dash shell 等常用工具的移植版本,方便直接在其上运行现有实验代码。
MIT 团队已经将关于 M1 的发现披露给苹果产品安全团队,苹果工程师也罕见地对 Fractal 本身进行了技术审查。
从更长远的角度看,研究者的目标远不止于当前这批结果。Ravichandran 希望 Fractal 能在微架构研究领域扮演类似 QEMU、FFmpeg 在各自社区中的角色,成为一个由整个社区共同维护和扩展的共享平台。
“我希望我们的研究成果能变得更可靠、更精确,”他表示,“在噪声更低、信号更清晰,并且可以确认你确实运行在正确核心和正确系统上的前提下。”
南加州大学助理教授 Mengyuan Li(未参与该论文)评价道:“Fractal 是一项重要的架构贡献,它把原本零散的微架构逆向工程流程,转化为可复用的研究基础设施。通过降低软件噪声,并让研究人员对跨权限边界的行为拥有更精细的控制,它让许多原本难以解释的硬件实验变得更可理解。”
这项工作由 Ravichandran 与 MIT 电气工程与计算机科学系副教授、CSAIL 首席研究员 Mengjia Yan 共同完成。研究部分由美国国家科学基金会(NSF)、美国空军科学研究办公室以及由美国国防高级研究计划局(DARPA)资助的 ACE 项目支持。相关成果已在于美国加州旧金山举办的 IEEE 安全与隐私研讨会上对外发布。
本文根据 MIT News(web.mit.edu/newsoffice/)授权内容改写,该网站专注报道 MIT 的研究、创新与教学相关资讯。
