
AMD 也别高兴太早
谷歌的 Project Zero 团队对 AMD 所指出的事情产生了质疑,该团队发现,CPU 数据高速缓存时间可能会被滥用,这无疑加速泄漏了错误推测的执行信息,将导致(最坏的情况下)在各种语境下任意虚拟内存跨本地安全边界的读取漏洞。就已知的情况来看,这个问题的变种已经影响到了包括英特尔、AMD 和 ARM 的某些处理器。
于是他们通过 Intel Haswell Xeon CPU、AMD FX CPU、AMD PRO CPU 和 ARM Cortex A57 这四款处理器来做了一个实验,用来检测出在同一个进程中错误推测执行的数据读取能力。
图丨实验逻辑图
经过变体 1 验证后,Project Zero 得出结论:在具有发行版标准配置的现代 Linux 内核下以普通用户权限运行时,可以在 Intel Haswell Xeon CPU 上的内核虚拟内存中的 4GiB 范围中执行任意读取。如果启用了内核的 BPF JIT(非默认配置),那么它也适用于 AMD PRO CPU。在 Intel Haswell Xeon CPU 上测试时,经过约 4 秒的启动时间后,内核虚拟内存可以以每秒 2000 字节的速度读取。
变体 2 的验证结论为:在使用 Intel Haswell Xeon CPU 上的虚拟机管理器创建的基于内核的虚拟机内以超级用户权限运行时,在主机上运行的特定(已过时)版本的 Debian 发行版内核条件下,