主要观点:多年来 CPU 设计者注重提升处理器速度,采用乱序和推测执行等技术,但也带来新漏洞。2018 年 Spectre 和 Meltdown 漏洞表明使处理器高效的特性可用于窃取内存中的私有数据,打破了程序与操作系统间隔离的基本假设。
关键信息:
- 乱序执行:现代处理器不按代码顺序执行指令,而是在数据和资源可用时立即执行,提高速度但留下安全隐患。
- 推测执行:处理器在遇到条件分支时提前猜测并执行指令,若猜测错误则丢弃工作,但其微架构状态会留下痕迹被攻击者利用。
- Spectre 工作原理:通过操纵分支预测器让处理器推测执行不应在正常程序流中运行的指令,利用缓存定时检测访问,有针对直接和间接分支的变种。
- Meltdown 工作原理:利用乱序执行在检查权限前执行指令的特点,让用户程序读取内核内存,通过测量缓存访问时间获取秘密值。
- 缓解措施:硬件方面 Intel 引入
LFENCE指令,操作系统方面 Linux 增加 KPTI 并使用 Retpoline 技术,这些缓解措施有性能影响。
重要细节: - Spectre 例子中通过多次调用安全值让 CPU 学习分支通常为真,再用恶意越界值使处理器推测执行读取不应访问的内存,从而通过缓存泄露秘密。
- Meltdown 攻击步骤包括尝试加载内核地址、推测访问内存、捕获故障并测量缓存行等。
- 缓解措施的性能影响,如频繁在用户和内核模式间切换的工作负载会明显变慢。
- Spectre 和 Meltdown 漏洞表明硬件优化有意外安全后果,后续仍有新攻击基于类似想法,CPU 供应商在新架构中采取措施但研究仍在继续。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。