这是ba-ack!-

新的幽灵攻击再次让英特尔和AMD争抢修复

一种新的瞬时执行变体是第一个利用微操作缓存的方法。

一排排漂亮的彩色计算机组件。

自2018年以来,一系列被称为“幽灵”(Spectre)的攻击几乎无休无止,让英特尔(Intel)和AMD忙于开发防御措施,以缓解恶意软件直接从硅材料中窃取密码和其他敏感信息的漏洞。现在,研究人员表示,他们已经设计出了一种新的攻击,可以破坏大部分(如果不是全部的话)芯片上的防御。

Spectre因其投机执行的滥用而得名,这是几乎所有现代cpu的一个特性,它可以预测cpu未来可能接收到的指令,然后沿着指令可能遵循的路径运行。通过使用强制CPU沿着错误路径执行指令的代码,Spectre可以提取出机密数据,如果CPU沿着错误路径继续执行,这些机密数据可能会被访问。这些漏洞被称为瞬态执行。

“危险的含义”

自幽灵是首次描述于2018年,几乎每个月都有新的变种出现。在许多情况下,新变种要求芯片制造商开发新的或增强的防御来减轻攻击。

例如,称为LFENCE的密钥英特尔保护,可将更新的指令停止调度到之前的指令。基于硬件和软件的解决方案广泛称为“击剑”构建秘密数据中的数字栅栏,以防止允许未经授权访问的瞬态执行攻击。

弗吉尼亚大学(University of Virginia)的研究人员上周表示,他们发现了一种新的瞬时执行变体,它几乎可以打破英特尔(Intel)和AMD迄今为止实施的所有芯片上的防御。这项新技术的工作目标是一个用于缓存“微操作”的片上缓冲区,微操作是从复杂指令中派生出来的简化命令。通过允许CPU在推测执行过程的早期快速获取命令,微操作缓存提高了处理器速度。

研究人员是第一个利用微量操作缓存作为一个侧通道,或作为一种媒介,对存储在脆弱计算系统内的机密数据进行观察。通过测量目标系统的时间、功耗或其他物理属性,攻击者可以使用侧信道来推断那些不受限制的数据。

“作为侧面通道的微型op缓存有几个危险的含义,”研究人员写道学术论文。“首先,它绕过将缓存作为侧通道减轻缓存的所有技术。其次,任何现有攻击或恶意软件配置文件都不会检测到这些攻击。第三,因为微op缓存位于管道前面,在执行之前,通过限制推测缓存更新来缓解幽灵和其他瞬态执行攻击的某些防御仍然容易受到微op缓存攻击的影响。“

本文继续:

大多数现有的隐形猜测和基于围栏的解决方案侧重于隐藏在处理器管道后端发生的推测执行的意外弱势副作用,而不是抑制前端的猜测源。这使得它们容易受到我们描述的攻击,该攻击揭示了通过前端侧通道推出的秘密,在瞬态指令有机会被派遣以便执行之前。这阐述了一系列现有的防御。此外,由于微型op缓存的尺寸相对较小,我们的攻击明显比现有的幽灵变体更快,依赖于启动和探测几个缓存集来传输秘密信息,并且相当多的隐身,因为它使用了微观 -op缓存作为其唯一披露原语,介绍了较少的数据/指令缓存访问,更不用说未命中。

反对的声音

自从研究人员发表论文以来已经有一些推送。英特尔不同意新技术破坏已经放置的防御,以防止瞬态执行。在一份声明中,公司官员写道:

英特尔审查了该报告并告知研究人员,现有的缓解措施没有被绕过,我们的安全编码指南解决了这一问题。遵循我们指导的软件已经对附带通道(包括uop缓存附带通道)进行了保护。不需要新的缓解或指导。

瞬时执行使用恶意代码来利用投机执行。反过来,这些漏洞绕过了边界检查、授权检查和内置到应用程序中的其他安全措施。遵循英特尔安全编码准则的软件可以抵御此类攻击,包括上周推出的变种。

英特尔指导的关键是使用恒定时间编程,一种代码被写入秘密无关的方法。该技术上周推出的研究人员使用嵌入秘密进入CPU分支预测因素的代码,因此,公司发言人在背景上表示,它不遵循英特尔的建议。

AMD没有及时做出回应,所以没有收录在这篇文章中。

另一个拒绝来自于博客作者是乔恩·马斯特斯,一位计算机体系结构的独立研究者。他说,这篇论文,特别是它所描述的跨域攻击,是“有趣的阅读”和“潜在的担忧”,但有办法修复漏洞,可能是通过在跨越特权障碍时使微操作缓存无效。

“这个行业的手在幽灵上有一个巨大的问题,并且作为直接后果,投入了大量的努力,分离特权,隔离工作量和使用不同的背景,”大师写道。“根据这份最新的纸张,可能需要一些清洁剂,但有可用的减轻,虽然总是以某种性能成本。”

没有这么简单

Ashish Venkat, a professor in the computer science department at the University of Virginia and a co-author of last week’s paper, agreed that constant-time programming is an effective means for writing apps that are invulnerable to side-channel attacks, including those described by last week’s paper. But he said that the vulnerability being exploited resides in the CPU and therefore should receive a microcode patch.

他还说,今天的很多软件仍然很脆弱,因为它不使用恒时编程,而且没有迹象表明这种情况何时会改变。他还赞同Masters的观点,即代码方法会减慢应用程序的速度。

他告诉我,Constant-time编程“不仅在实际程序员工作方面非常困难,而且还涉及到重大的部署挑战,涉及到对所有已编写的敏感软件进行修补。由于性能开销,它通常也专门用于小型、专门的安全例程。”

Venkat说,这种新技术对2011年以来设计的所有英特尔芯片都有效。他告诉我,除了容易受到相同的跨域攻击外,AMD cpu也容易受到单独的攻击。它利用了同步多线程设计,因为AMD处理器中的微操作缓存是竞争性的共享。因此,攻击者可以创建一个跨线程隐蔽通道,以250 Kbps的带宽和5.6%的错误率传输秘密信息。

暂时执行带来了严重的风险,但目前,它们大多是理论上的,因为它们很少被积极利用。另一方面,软件工程师有更多的理由担心,而这种新技术只会增加他们的担忧。

你必须置评。

通道ARS Technica.