英特尔和AMD CPU中的新幽灵缺陷影响了数十亿台计算机

2018年1月,当影响现代处理器的一类关键漏洞Spectre被公开披露时,这一发现背后的研究人员表示,“由于不容易修复,它将困扰我们相当长一段时间,”解释了命名推测性执行攻击背后的灵感。
事实上,已经过去三年多了,幽灵在眼前永无止境。
来自圣地亚哥弗吉尼亚大学和加利福尼亚大学的一组学者发现了一种新的攻击路线,绕过了内置在芯片中的所有幽灵保护,潜在地将几乎每一个系统都放在了第8212系统中;台式机、笔记本电脑、云服务器和智能手机—;就像三年前一样,他们再次面临风险。
幽灵和熔毁事件的披露开启了一道闸门,在这几年里,各种各样的攻击层出不穷,尽管英特尔、ARM和AMD等芯片制造商一直在争先恐后地整合防御措施,以缓解允许恶意代码读取密码、加密密钥和密码的漏洞,以及其他直接来自计算机内核内存的有价值信息。
Spectre的核心是一种定时侧通道攻击,它打破了不同应用程序之间的隔离,并在CPU硬件实现中利用一种称为推测执行的优化方法来欺骗程序访问内存中的任意位置,从而泄露它们的秘密。
“幽灵攻击诱使处理器沿着错误的路径执行指令,”研究人员说。“即使处理器恢复并正确完成其任务,黑客也可以在处理器走错方向时访问机密数据。”
The new attack method exploits what's called a micro-operations (aka micro-ops or μops) cache, an on-chip component that decomposes machine instructions into simpler commands and speeds up computing, as a side-channel to divulge secret information. Micro-op caches have been built into Intel-based machines manufactured since 2011.
弗吉尼亚大学的助理教授、该研究的合著者Ashish Venkat说:“英特尔提出的针对Simele的防御方案,称为LVEART,将敏感代码放在等待区域,直到安全检查被执行,然后才是敏感代码被允许执行。”“但事实证明,这个等候区的墙壁上有耳朵,我们的攻击就是利用这些耳朵。我们展示了攻击者如何将Microop缓存用作隐蔽通道,通过它走私机密。”
研究人员详细介绍,在AMD Zen微体系结构上,可以利用微操作公开原语实现带宽为250 Kbps、错误率为5.59%或纠错率为168.58 Kbps的隐蔽数据传输通道。
英特尔(Intel)在其针对加密实现的反定时攻击指南中,建议遵守恒定时间编程原则,这是一种说起来容易做起来难的做法,要求仅凭软件更改无法充分缓解推测性执行带来的威胁。
Venkat在与《黑客新闻》分享的一份声明中说:“固定时间编程不仅在实际程序员的努力方面很困难,而且在修补所有敏感软件方面也会带来高性能开销和重大部署挑战。”。“事实上,使用恒定时间原则编写的代码所占的比例非常小。依赖它会很危险。这就是为什么我们仍然需要保护硬件的原因。”
这里的一线希望是,利用幽灵的弱点是困难的。为了防止新的攻击,研究人员建议刷新micro ops缓存,这是一种抵消使用缓存获得的性能优势的技术,利用性能计数器检测micro ops缓存中的异常情况,并根据分配给代码的权限级别对其进行分区,防止未经授权的代码获得更高的权限。
研究人员说:“微操作缓存作为一个侧通道有几个危险的含义。”。“首先,它绕过了所有将缓存作为副通道进行缓解的技术。其次,这些攻击不会被任何现有的攻击或恶意软件配置文件检测到。第三,由于micro op缓存位于管道前端,在执行之前,某些防御措施通过限制ve缓存更新仍然容易受到micro op缓存攻击。"