研究表明,一项使Apple M系列处理器速度更快的功能也使它们容易受到无法修补的新侧信道攻击。理论上,黑客可以提取秘密加密密钥,然后访问敏感数据。
这个新发现的概念验证攻击被称为“GoFetch”。
GoFetch基于一种称为数据内存依赖预取器(data memory-dependent prefetcher,DMP)的CPU功能,旨在提高执行代码时的计算机性能,该功能存在于最新的Apple M系列处理器中。DMP可用于Apple芯片和Intel第13代Raptor Lake CPU。
DMP通过预测接下来需要什么数据并提前准备数据来加快处理器的速度。然后,这些数据会提前从较慢的内存部分提取到较快的内存区域,例如CPU缓存。如果预测准确,现在就可以快速获得数据,从而提高计算机的性能。如果猜测错误,CPU会照常请求正确的数据。
在一篇论文中,一个由七名研究人员组成的团队描述了此功能是如何泄露敏感信息的。在对Apple和Intel DMP进行逆向工程后,他们针对经典密码学的恒定时间实现开发了端到端密钥提取攻击。
研究人员开发了一种新型的受害者不可知的选择输入攻击和相关的攻击原语,不需要攻击者和受害者共享内存。他们利用这些技术对固定时间交换操作进行了概念验证攻击。这种攻击利用内存访问模式的定时行为从受害进程泄露敏感信息。
具体来说,研究人员发现Apple在DMP系统的实施中存在一个缺陷,违反了恒定时间的良好实践。
“我们对Apple M系列CPU上的DMP进行了逆向工程,发现DMP激活(并试图解除引用)从内存中加载的数据,这些数据看起来像一个指针,”论文写道,“这明显违反了恒定时间编程范式的要求,该范式禁止混合数据和内存访问模式。”
攻击者可以制作特殊的输入,使预取器解除对数据的引用,如果正确猜测了密钥的某些比特,这些数据将显示为指针。
接下来,他们观察DMP是否被激活,逐渐推断出密钥的比特。只要这个过程重复得足够多,就可以重建整个秘密加密密钥。
导出完整密钥的时间
“DMP对现代软件构成了重大的安全威胁,破坏了各种最先进的加密实现。在高层次上,如果攻击者有能力独立地写一个指向内存的指针,DMP使其能够了解有关该秘密的部分或全部信息。”论文写道。
基本上,攻击者可以欺骗处理器将密钥加载到缓存中,并从缓存中窃取密钥。为此,他们不需要管理员权限。这使得攻击特别危险,因为系统上的任何恶意应用程序都可以运行它。
研究人员写道:“对于我们的加密攻击,我们假设攻击者运行非特权代码,并且能够通过名义软件接口与受害者交互,触发它执行私钥操作。”
研究人员展示了对四种不同加密实现的攻击,其中还包括后量子加密。然而,更多的项目可能面临风险。
正如研究人员所证明的那样,恶意应用程序可能需要一到十个小时才能与目标软件(即加密钱包)并行运行,以提取和重建密钥。
虽然研究人员对Apple M1芯片进行了研究,但他们指出,“Apple的M2、M3和Intel第13代CPU上也存在DMP,这个问题似乎超越了特定的处理器和硬件供应商,因此需要专门的硬件对策。”
在Apple M2(左)和Intel Raptor Lake(右)上测试了四种访问模式
GoFetch的影响程度是巨大的,不仅影响传统的加密协议,还影响那些旨在抵抗量子计算攻击的协议。这使多种加密密钥面临风险,包括RSA和Diffie-Hellman,以及Kyber-512和 Dilithium-2等后量子算法。
研究人员报告说,“GoFetch应用程序需要不到一个小时来提取2048位RSA密钥,需要两个多小时来提取2048位Diffie-Hellman密钥”,强调了这种攻击媒介的效率和危险。
更深层次的,GoFetch攻击还动摇了现代处理器设计的基础,使依赖于数据内存的预取器的安全性受到质疑。
这一发现凸显了重新评估当前防御措施并制定新策略来防范此类微架构侧通道攻击的必要性。
内存访问模式和后续预取
上图比较了内存访问模式和后续预取,说明了Augury报告的激活模式以及显示DMP激活的新发现,即使训练数组包含非指针值也是如此。
GoFetch攻击清楚地提醒人们网络安全威胁的不断演变以及攻击者和防御者之间持续的军备竞赛。
随着处理器变得越来越复杂,此类漏洞的可能性也在增加,因此需要警惕的研究和主动防御机制来保护我们的数字基础设施。
不幸的是,由于这个弱点是Apple CPU中直接内置的数据内存依赖预取器的一部分,因此没有办法通过硬件修复来减轻攻击。
研究人员表示,在一些CPU上禁用DMP是有用的,比如M3,移除GoFetch所依赖的预取行为。不过这个解决方案比较激进,关键是还将导致严重的性能损失,“并且在M1和M2 CPU上不太可能实现”。
开发人员的其他防御措施包括输入盲化和DMP激活屏蔽,它们在DMP级别上混淆攻击者的输入结果。
虽然Apple可以将缓解措施作为软件补丁引入macOS,但这会导致性能下降,正如研究人员在之前针对侧信道攻击的软件修复中看到的那样。
作为一名Apple用户,除了养成安全的使用习惯,能做的不多。研究人员建议使用最新版本的软件,并定期进行更新。这意味着定期更新你的操作系统和软件,只安装来自官方渠道和信誉良好的来源的软件,以防止恶意软件感染。
在论文公开发表之前,研究结果已向供应商披露。Apple尚未公开回应这一问题。
研究人员还计划“很快”发布概念验证代码。
参考链接:
[1]https://cybernews.com/security/macs-can-leak-secrets-gofetch/
[2]https://www.bleepingcomputer.com/news/security/new-gofetch-attack-on-apple-silicon-cpus-can-steal-crypto-keys/
[3]https://gofetch.fail/files/gofetch.pdf