麻省理工学院(MIT)的研究人员开发了一款名为 Fractal 的新型操作系统内核,旨在为研究芯片底层工作原理提供一个干净、可控的实验环境。通过在苹果 M1 处理器上运行 Fractal,团队发现了之前未被注意到的安全问题,包括首次证实了 Phantom 类推测攻击在苹果芯片上的存在,以及跨特权级的缓存泄露风险。该系统被设计为一个通用的研究基础设施,支持多种主流芯片架构,旨在提高整个领域研究的准确性和可靠性。
为芯片研究打造的“洁净室”
以往,安全研究人员通常在 macOS 或 Linux 等通用操作系统上进行芯片分析。这种方法存在诸多问题:
- 不稳定性: 需要手动修改操作系统内核,过程复杂且难以复现。
- 测量干扰: 操作系统自身的活动,如中断、任务调度等,会产生大量“噪音”,污染实验数据,使得精确分析变得非常困难。
- 平台限制: 在苹果平台上,这种修改内核的方式未来可能被禁止。
为了解决这些问题,MIT 团队从零开始构建了 Fractal。它直接在裸机上运行,将硬件本身作为研究对象。Fractal 采用了一种名为 “多特权并发” 的新技术,允许单个实验在运行时切换特权级别,同时在相同的地址空间内执行相同的指令,从而获得几乎没有背景噪音的干净测量结果。
“我们以硬件未曾被设计过的方式来使用它… 这就像一个显微镜。如果你只有一个手持放大镜,你能看到一点点。但如果你有了一台电子显微镜,那才是真正的深入观察。Fractal 就是操作系统领域的电子显微镜。”
Fractal 在 M1 芯片上的发现
通过 Fractal 提供的前所未有的清晰视野,研究团队对苹果 M1 处理器进行了深入分析,并得出了一些颠覆性的结论:
缓存泄露风险: 尽管 M1 芯片的 ARM CSV2 规范能阻止用户代码直接控制内核的推测执行,但 Fractal 发现,在保护机制生效前,CPU 仍然会将目标指令提取到指令缓存中。这意味着,用户代码依然可以跨越权限边界影响内核的缓存内容,构成潜在的侧信道攻击风险。
Phantom 推测攻击: 团队首次证实了 Phantom 推测攻击在苹果芯片上同样存在。在这种攻击中,CPU 会将普通指令(甚至无操作指令)错误地解读为分支指令,从而触发程序从未请求过的推测行为。
颠覆以往结论: 此前有研究称 M1 的性能核心和能效核心在分支预测器权限隔离上表现不同。但 Fractal 的实验表明,这两种核心的条件分支预测器实际上都没有任何权限隔离。之前的结果很可能是因为 macOS 在后台悄悄迁移线程所造成的“噪音”伪影。
“对我们来说,这是一个真正的独立变量。你只改变特权级别,其他一切都不变。唯一能解释攻击是否成功的,就只有特权级别本身。”
一个通用工具,而非一次性项目
Fractal 的目标远不止于单次实验。它被设计成一个可供整个研究社区使用的共享基础设施。
- 广泛的兼容性: Fractal 支持 x86_64、ARM64 和 RISC-V 等主流架构。
- 易于使用: 它提供了熟悉的 POSIX 系统调用、C 语言库以及 vim、GCC 等标准工具,方便研究人员将现有实验代码轻松迁移过来。
- 社区愿景: 项目负责人 Joseph Ravichandran 希望 Fractal 能成为微架构研究领域的 QEMU 或 FFmpeg,成为一个可靠的、能减少噪音、提高研究准确性的公共平台。
南加州大学助理教授 Mengyuan Li 评价道:
“Fractal 是一项强大的架构贡献,因为它将通常是临时性的微架构逆向工程工作流程,转变为可复用的研究基础设施。”