日前,来自麻省理工学院计算机科学与人工智能实验室 (简称 MIT CSAIL)发布了一份最新的研究报告,研究人员称已经找到了一种方法来击败苹果 M1 SoC 上所谓的“最后一道安全线”。
漏洞无法修复
事实上,苹果 M1 自 2020 年发布以来,一直广受业界好评,其不仅帮助 Mac 达到了新的性能高度,更是开启了苹果掌控自己软硬件生态的新篇章。
然而,随着 M1 芯片中内置了一个新漏洞的消息发酵,立即引起了不少安全专家的关注。
据 IEEE Spectrum 报道,此漏洞存在于 M1 芯片硬件层安全机制 PAC(pointer authentication codes) 中,且达到无法修复的级别。
MIT CSAIL 计划在 6 月 18 日举行的国际计算机体系结构研讨会上提交一种攻击模式,其是由本科毕业于浙江大学、现任麻省理工学院电气工程和计算机科学系的助理教授、计算机科学与人工智能实验室的成员 MENGJIA YAN 领导的研究人员推出。
这种新的攻击模式叫做 PACMAN,可以绕过 Apple M1 CPU 上的指针身份验证(PAC),最终导致计算机操作系统的核心变得脆弱。指针身份验证是一项安全功能,它将加密签名添加到指针中,可帮助保护 CPU 免受已获得内存访问权限的攻击者的攻击。
IEEE Spectrum 表示,由于 PAC 可能会陆续整合到由 64 位 Arm 架构构建的未来处理器中,因此,这种漏洞可能会变得更加普遍。
具体实现原理
具体来看,MIT CSAIL 的研究人员发现,通过 PACMAN 可以允许攻击者使用 Apple M1 CPU 物理访问 Mac,以访问底层文件系统。
来源:https://pacmanattack.com/
当然,想要通过 PACMAN 这种新型方式来实现攻击,也是有前提条件的。
首先,攻击者需要找到一个影响 Mac 上软件的内存 Bug,该 Bug 可以读取和写入不同的内存地址。然后,该 Bug 利用 M1 硬件架构上的细节,能够使得漏洞执行代码,甚至接管操作系统的能力。
研究人员在验证过程中表示,“我们先假设这个漏洞就在那里,但我们把它变成了一个更严重的漏洞。”
PACMAN 是在将软件攻击的硬件缓解措施与微架构侧信道混合在一起时产生的。主要手段就是使用 PACMAN 方式,其能够利用预测执行泄露 PAC 验证结果,且不会引发系统的任何崩溃。
至于是如何做到这一点的,研究人员称,这涉及到了现代计算的核心。“几十年来,计算机一直在使用所谓的推测执行来加速处理。在传统的程序中,下一个指令应该遵循哪条指令,通常取决于上一个指令的结果(想想if/then)。现代 CPU 不会等待答案,而是会直接进行推测,做出有根据的猜测之后,开始沿着这些路线执行指令。如果 CPU 猜对了,这种推测执行能够节省很多时钟周期。如果猜错了,那么一切会重新开始,处理器沿着正确的指令顺序再次开始。重要的是,错误计算的值永远不会对软件可见。没有一个程序可以简单地输出推理执行的结果。”
然而,在过去几年中,研究人员已经发现了可以利用推测执行来做一些事情的方法,比如从 CPU 中偷偷地拿出数据。这些被称为侧信道攻击(side-channel attack),因为它们通过观察间接信号(例如访问数据所需的时间)来获取数据。曾经席卷全球的 Spectre 和 Meltdown 便是侧信道攻击的代表。
MIT 研究人员想出了一种方法来欺骗 CPU 猜测指针身份验证代码,这样就不会出现异常,操作系统也不会崩溃。当然,答案对软件来说仍然是看不见的,其中涉及用数据填充特定的缓冲区,使用 timing 来揭示成功推测取代了哪个部分。
苹果:对用户没有直接风险
截至目前,MIT CSAIL 称只是展示了 PACMAN 在苹果 M1 CPU 上的试验,其他平台或版本具体情况暂未可知。不过,需要注意的是,PACMAN 类似于幽灵攻击,不会留下任何日志,因此很多人无法识别出自己的设备是否在被攻击的范围内。
那么,这是否会对普通用户带来一定影响?
MIT CSAIL 表示,“只要您保持软件最新,就可以。PACMAN 是一种利用技术 ——就其本身而言,它不能损害用户的系统。虽然 PACMAN 的原理是通过硬件机制无法通过软件功能进行修补,但内存损坏错误可能会出现。”
就在 MIT 研究人员报告了他们的发现之后,也与苹果分享了概念验证攻击过程和代码。苹果的产品团队向 Yan 的团队回应道:
“我们要感谢研究人员的合作,因为这种概念验证促进了我们对这些技术的理解。根据我们的分析以及研究人员与我们分享的细节,我们得出结论,这个问题不会对我们的用户构成直接风险,也不足以单独绕过设备保护。”
对此,也有网友评论称,”好巧不巧,前段时间的 WWDC22 上宣布了 M2 的到来,如果说 M1 不安全了,那么也是时候换上 M2 了。“然而,现实来看,对于这一刚爆出的漏洞,M2 芯片上是否已经做了修复还是一个未知数。
参考:
https://pacmanattack.com/
https://spectrum.ieee.org/pacman-hack-can-break-apple-m1s-last-line-of-defense
http://pacmanattack.com/paper.pdf