英特尔处理器硬件设计被发现漏洞 修补将降低性能
英特尔处理器曝出了一个严重的硬件设计漏洞,迫使主要操作系统和云计算服务商都忙着打补丁。因为漏洞信息没有解密,所以目前只能通过已发布的补丁反推这个漏洞。该漏洞是奥地利格拉茨技术大学(TU Graz)的一组研究人员发现的,他们在去年十月发布了最早的 KAISER 补丁集。
去年 12 月,在内核邮件列表上,应 Linus 等人的要求,KAISER 被改名,内核开发者提出了一系列技术上正确的首字母缩写,包括 User Address Space Separation(uass)和 Forcefully Unmap Complete Kernel With Interrupt Trampolines(fuckwit),最后出于政治上正确的理由改名为 Kernel Page Table Isolation(KPTI)。从表面上看,KPTI 补丁是为了确保 ASLR 仍然有效。
ASLR 是现代操作系统的一项安全功能,通过引入虚拟地址随机化阻止攻击者定位目标程序数据的位置。而在去年底举行的 34C3 会议上,TU Graz 的研究人员描述了一种纯 Javascript 的 ASLR 攻击(YouTube),通过组合高精度测时和选择性驱逐 CPU 缓存行,一个运行在浏览器上的 Javascript 程序能还原一个 Javascript 对象的虚拟地址,然后再利用浏览器的内存管理 bug 进行攻击。
从表面上看,KAISER(KPTI)补丁的作者们演示了一种技术能暴露 ASLR 化的地址。问题看起来也和虚拟内存也有关。每当一些机器代码尝试加载、储存或跳到一个内存地址,CPU 都必须首先通过其管理的页面将这个虚拟地址翻译到物理地址。
虚拟内存可能是现代操作系统最重要的特性之一,它能防止一个死亡的进程崩溃操作系统,一个浏览器 bug 崩溃桌面环境,或者一个能影响到同一主机上的其它虚拟机。TU Graz 的研究人员此前曾在一篇论文里描述了一种新的 Rowhammer 提权攻击。