5月6日消息,一组弗吉尼亚大学和加州大学圣地亚哥分校的学者发现了幽灵漏洞新变种,它可以绕过当前处理器上所有针对幽灵漏洞的防护措施,几乎可以将所有设备一网打尽,包括台式机、笔记本电脑、云服务器和智能手机。
Spectre和Meltdown的披露在某种程度上打开了一扇闸门,在此后的几年里,无尽的攻击变种被曝光,即使像英特尔、ARM和AMD这样的芯片制造商一直在努力加入防御措施,以缓解恶意代码直接从计算机内核内存中读取密码、加密密钥和其他有价值的信息。
Spectre的核心是一种时序攻击的侧信道攻击,它打破了不同应用程序之间的隔离,并利用CPU硬件实现中的一种称为推测执行的优化方法,欺骗程序访问内存中的任意位置,从而窃取信息。
研究人员表示:“Spectre攻击诱使处理器沿着错误的路径执行指令,即使处理器恢复并正确地执行任务,黑客也可以在处理器走错路时访问机密数据。”
新的攻击方法利用了所谓的微操作缓存(又称微操作或μops),这是一个将机器指令分解成更简单的命令并加快计算速度的片上组件,作为泄露秘密信息的一个侧面渠道。自2011年以来,基于英特尔生产的机器中已经内置了微运算缓存。
它是一组安装在芯片上的组件,作为窃取秘密信息的侧信道,可以将机器指令分解为更简单的命令,并加快计算速度。自2011年以来,微型操作缓存已经被内置到基于英特尔的机器中。
“英特尔对幽灵漏洞提出的防御方案是LFENCE,将敏感代码放置在等待区等待执行安全检查,之后敏感代码才允许被执行。”弗吉尼亚大学的助理教授和该研究的共同作者Ashish Venkat表示,“但事实证明,等候区也是有遗漏的,新的攻击正是利用了这一点。我们将展示攻击者如何通过微操作缓存作为秘密通道来窃取信息。”
研究人员解释到,在AMD Zen微架构上,可以利用微操作披露的原始信息,实现带宽为250Kbps,错误率为5.59%或168.58Kbps的隐蔽数据传输通道。
英特尔在指导方针中建议遵守恒定时间编程原则,这种做法说起来容易做起来难,因为仅靠软件修改无法充分缓解投机执行带来的威胁。
值得庆幸的是,利用Spectre漏洞很困难。为了防止新的攻击,研究人员建议刷新微操作缓存,这种技术首先抵消了使用缓存获得的性能好处,利用性能计数器来检测微操作缓存中的异常情况,并根据分配给代码的权限级别对其进行区分,防止未授权代码获得更高的权限。
研究人员表示:"微操作缓存作为一个侧信道,有以下几点危险之处。首先,它绕过了所有将缓存作为侧信道的技术。第二,这些攻击未被现有的恶意软件配置文件检测到。第三,由于微操作缓存位于管道的前端,在执行之前,某些通过限制投机性缓存更新来缓解Spectre和其他瞬时执行攻击的防御措施,仍然容易受到微操作缓存的攻击。"