研究人员发现了滥用英特尔 CPU 中推断性执行的另外一种方法,可从运行的应用程序中窃取机密和其它数据。

该安全缺陷可被 Web 浏览器标签中的恶意 JavaScrip 或系统上运行的恶意软件或恶意的已登录用户用于提取密码、密钥和内存中的其它数据。因此,攻击者需要在用户机器中站稳脚跟。该漏洞似乎需要在硅片级别进行重大的重新设计工作才能得到修复或者缓解。

推断性执行即允许处理器在等待其它计算进行时执行所需或不需要的未来的工作的实践,而这也是去年年初触发 Spectre 漏洞的核心所在。

本月初,美国伍斯特理工学院和德国吕贝克大学的计算机科学家们Saad Islam、Ahmad Moghimi、Ida Bruhns、Moritz Krebbel、Berk Gulmezoglu、Thomas Eisenbarth 和 Berk Sunar发表论文《SPOILER:推断性负载危害推进 Rowhammer 和 Cache 攻击》,说明了新的滥用方法。

这些研究员“在英特尔的内存子系统专有实现的地址推断中发现了一个弱点”泄漏内存布局数据,导致其它攻击如 Rowhammer 更容易执行。

研究人员还查看了 ARM 和 AMD 处理器核心,但发现并不存在类似行为。

研究人员解释称,“我们已经发现了暴露物理页面映射到用户空间进程的关键信息的新型微小架构泄漏问题。只需有限的指令就能够利用该泄漏,问题存在于自第一代英特尔 Core 处理器起的所有处理器中,它独立于操作系统且适用于虚拟机以及沙箱环境中。”

不同于 Spectre 漏洞,无缓解

该问题不同于 Spectre 漏洞,且不适用于现有的缓解措施。在无需提升权限的情况下即可从用户空间遭利用。

该漏洞被命名为“SPOILER”,但并不含任何意义。研究人员解释称,“选择了以’Sp’开头的名称,因为该问题是因推断性执行造成的,而且在某种程度上破坏对现代 CPU 的安全假设。”

SPOILER 说明了通过衡量推断性加载和存储操作的时间以及查找解释内存布局的差异来辨别虚拟内存和物理内存之间关系的技术。

Moghimi 指出,“问题的根本原因是存储器操作以推断性方式执行,当完整的物理地址位可用时,处理器解析了依赖性。物理地址位是安全敏感信息,如果它们可供用户空间使用,会推动用户执行其它微架构攻击。”

疯狂的内存

现代处理器使用存储器顺序缓冲器来管理对 RAM 的读取和写入以跟踪操作。该缓冲区用于按照可执行代码中的顺序执行存储指令(将数据从 CPU 寄存器中复制到主存储器)和按照无序方式以推断方式执行加载操作(将数据从主存储器中复制到 CPU 寄存器中)。它允许处理器提前运行并推断性地将信息从 RAM 提取到寄存器中,前提是不存在依赖性问题如依赖于尚未完成的早期存储负载。

如果物理地址信息不可用,那么推断加载操作可能导致错误的依赖性。英特尔的芯片执行内存消歧,以防止因错误推断二队无效数据进行计算的情况发生。

但他们做的只是不够好。论文指出,“SPOILER 的根因在于英特尔专有的内存子系统实现的地址推断中存在缺陷,从而导致因物理地址冲突直接导致时序行为遭泄漏。”

Moghimi 表示,“我们的算法填充了处理器内的存储缓冲区,其地址具有相同偏移但位于不同虚拟页面中。之后,我们发出一个具有相同偏移量但来自不同内存页面的内存加载并测量加载时间。通过迭代大量虚拟页面,时间显示具有多个阶段中依赖项解析失败的信息。”

研究人员表示,SPOILER 将使现有的 Rowhammer 和缓存攻击变得更容易实施,且导致启用 JavaScript 的攻击更加可行。Rowhammer 攻击只需几秒钟即可实施,而此前需要几周的时间。Moghimi 表示论文描述的是基于 JavaScript 的缓存素数+探测技术,通过点击即可触发泄露无法防御缓存时间攻击的私密数据以及加密密钥。

缓解措施难以提供。研究人员表示,“尚不存在能够完全消除这个问题的软件缓解措施。芯片架构修复可能起作用,但它以牺牲性能为代价。”

据悉,英特尔在2018年12月1日即收到通知。该论文是在90天的宽限期之后发布的。

Moghimi 认为,对于内存子系统中出现的问题,非常难以做出任何改变,而且无法在不严重影响性能的情况下就能通过微代码轻易修复。他认为未来五年内可能也无法修复此类攻击,而这也可能是该漏洞未被分配 CVE 编号的一个原因。

英特尔回应

英特尔公司回应称,“英特尔收到了此项研究的通知,我们希望能够应用侧信道安全开发实践的方式保护软件免受此类问题的影响。可采取的措施包括避免依赖于相关数据的控制流。同样,我们希望缓解 Rowhammer 类攻击的 DRAM 模块依然能够受到保护。保护客户及其数据的安全仍然是我们工作的重中之重,感谢安全社区为期正在进行的研究所作出的努力。”

本文由360代码卫士翻译自theregister

声明:本文来自代码卫士,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。