2020 年 11 月,苹果 M1 处理器发布后,凭借其优越性能和低功耗表现一度引发轰动。然而近日,麻省理工学院(MIT)的研究人员发现,M1有一个“不可修补”的硬件漏洞,可能允许攻击者突破其最后一道安全防线。该漏洞存在于M1芯片中使用的一种硬件级安全机制,称为“指针身份验证机制”( Pointer Authentication Code,PAC)。
PAC是什么?
据 9To5Mac 报道,在设计 M1 芯片时,苹果创建了不同的安全层,每层都旨在防止攻击者成功渗透之前的层。M1 的最后一层就是 PAC ,可帮助保护 CPU 免受已获得内存访问权限的攻击者的攻击。
PAC是Arm在 2017年 ARMv8.3 中推出的指针身份验证,作为如今处理器中广泛存在的硬件安全机制,它通过使用加密哈希保护指针来保护内存中的指针完整性,该加密哈希验证指针无法被修改,系统使用它来验证程序对受保护指针的使用。这一功能使攻击者更难将恶意代码注入设备的内存,并提供了对缓冲区溢出漏洞的防御水平,攻击迫使内存数据溢出到芯片的其他位置。
使用 Arm指针身份验证的堆栈保护(图自:MIT)
根据此前Arm公布的信息显示,PAC最小化了攻击面,使得面向返回编程(ROP)漏洞减少了60%以上、面向跳转编程(JOP)漏洞减少了40%以上。
如果是同时使用PAC和分支目标标识符(BTI)这两个硬件安全机制的Arm CPU则能够进一步提升安全性,Glibc 中攻击者可用的小工具数量减少了约 98%,而代码大小仅增加了 2% 左右。
然而,当使用错误的PAC时,程序会崩溃。
吃豆人,猜猜猜
来自麻省理工学院计算机科学和人工智能实验室(CSAIL)的研究人员Joseph Ravichandran、Weon Taek Na、Jay Lang 和 Mengjia Yan创造了一种新颖的硬件攻击,它结合了内存损坏和投机性执行攻击来规避安全功能。
该研究团队由 MIT 电气工程与计算机科学系助理教授 Mengjia Yan 领导
该攻击表明,指针式验证机制可以在不留痕迹的情况下被洞穿,更糟的是,由于它利用了硬件机制,没有软件补丁可以修复它。
MIT CSAIL研究团队将其攻击方式称之为"PACMAN"(吃豆人),意思是通过"猜测"PAC发挥作用,该代码是一种加密签名,可以确认一个应用程序没有被恶意更改。由于PAC的可能值只有一定数量,研究人员发现有可能将它们全部尝试一遍以找到正确的值,并抑制崩溃,从而启动连锁攻击,最终构建控制流劫持攻击。这一概率大约为 65000 分之一,恶意软件必须非常幸运才能猜到正确的代码。
“PAC的大小相对较小,直接的暴力攻击会导致足够多的崩溃来检测恶意行为——更不用说程序重新启动会导致 PAC 被刷新。但PACMAN攻击的关键在于,使用推测执行攻击,通过微架构侧信道秘密泄露PAC验证结果,而不会导致崩溃。”该论文解释道。
至于如何做到不断猜测,又不会出现任何引发崩溃的错误猜测,就涉及到现代计算的核心。
几十年来,计算机一直在使用所谓的推测执行来加速处理。在典型的程序中,下一条指令应该遵循哪条指令,通常取决于前一条指令的结果(if/then)。但如今 CPU 不会等待答案,而是会推测接下来会发生什么,并开始按照这些思路执行指令:
如果 CPU 猜对了,这种推测性的执行会节省很多时钟周期;如果结果证明猜错了,所有的工作都被扔掉,处理器按照正确的指令序列重新开始。重要的是,错误的计算值永远不会对软件可见。没有任何程序可以简单地输出推测执行的结果,只有硬件侧信道用于显示猜测是否正确。
然而,近年来研究人员找到了利用推测执行从 CPU 中偷数据等操作的方法。这被称为侧信道攻击(side-channel attack),因为它们通过观察间接信号来获取数据,例如访问数据需要多长时间,Spectre 和 Meltdown 漏洞就是如此。
指针身份认证还安全吗?
值得注意的是,指针认证主要用于保护核心操作系统内核。在一个概念验证中,研究人员证明了这种攻击甚至可以针对内核,这对"所有启用了指针认证的Arm系统的未来安全工作具有巨大的影响",麻省理工学院CSAIL的博士生、该研究论文的共同第一作者Joseph Ravichandran说,“未来的 CPU 设计人员在构建未来的安全系统时应该注意考虑这种攻击,开发人员应注意不要仅仅依靠指针认证来保护他们的软件。”
Ravichandran补充说:"指针认证背后的想法是,如果其他一切防御都失败了,你仍然可以依靠它来防止攻击者获得对你系统的控制。但是,我们已经证明,作为最后一道防线的指针身份验证并不像我们曾经认为的那样的安全。"
迄今为止,苹果已经在其所有基于Arm架构的定制芯片上实施了指针式认证,包括M1、M1 Pro和M1 Max,包括高通和三星在内的其他一些芯片制造商已经宣布或预计将推出支持硬件级安全功能的新处理器。麻省理工学院表示,它还没有在苹果未发布的M2芯片上测试攻击,该芯片也支持指针式认证。
根据此前Arm公布的信息显示,不仅基于Armv8.3/8.6指令集的CPU内置了PAC功能,最新的Armv9指令集的CPU同样也内置了PAC功能。
MIT CSAIL的研究人员在研究报告中说:"如果不加以缓解,我们的攻击将影响大多数移动设备,甚至可能在未来几年影响桌面设备。"
要解决PACMAN,按下葫芦起了瓢
研究人员向苹果提交了他们的发现,并提到PACMAN攻击并不能对M1芯片上所有安全机制的"神奇绕过",只能采取指针式认证所保护的现有错误。
端到端攻击示例(图自:MIT)
Joseph Ravichandran表示:“到目前为止,还没有使用PACMAN创建端到端攻击,因此没有直接的担忧。PACMAN需要一个现有的软件漏洞才能发挥作用——攻击者需要能够写入溢出内存。攻击者可以使用现有的漏洞与我们的谓的‘PACMAN Gadget’相结合——受攻击中的一个代码序列,允许推测性地使用签名指针。”
PACMAN Gadget及其相应的执行时间线(图自:MIT)
Yan 的团队探索了一些PACMAN的简单解决方案,但往往会增加处理器的整体漏洞。如 Yan 所说:“以前人们认为软件攻击是独立的,与硬件攻击是分开的。而我们正试图研究两种威胁模型之间的交叉点。在这种新的复合威胁模型下,还有许多未充分研究的缓解机制,我们将 PACMAN攻击视为起点。”
在这项研究中,除了PACMAN 攻击之外,研究者也在将微架构边通道攻击扩展到苹果处理器方面做出了重要的贡献。有两个重要的结果值得强调:首先,他们对 TLB 组织进行了逆向工程,在 Apple M1 处理器上使用 Speculative_execution ,对基于 TLB 的边通道进行首次攻击。其次,他们展示了 PACMAN 跨特权级别攻击的工作,这意味着攻击启用 PA 的操作系统内核是可行的。
该研究团队将在 6 月 18 日的计算机架构国际研讨会(ISCA 2022)上披露更多细节。
苹果回应:不会对我们的用户构成直接风险
苹果公司发言人 Scott Radcliffe 对外回应称:“我们要感谢研究人员的合作,因为这个概念证明促进了我们对这些技术的理解。根据我们的分析以及研究人员与我们分享的详细信息,我们得出的结论是,此问题不会对我们的用户构成直接风险,并且不足以自行绕过操作系统安全保护。”
其他熟悉 PACMAN的研究人员表示,它到底有多危险还有待观察。加州大学河滨分校计算机工程系主任、架构安全专家 Nael Abu-Ghazaleh 认为Yan 的团队打开了通往处理器安全新方向的大门。他表示:“ PACMAN 让我们在设计新的安全解决方案时多了一份担忧和考量。”近年来,处理器制造商一直在为其设计添加指针身份验证以外的其他安全解决方案。他怀疑:“既然 PACMAN 已经被披露,一些研究将开始寻找针对这些新型解决方案的投机攻击。”
PACMAN是在苹果M1芯片中被发现的第三个漏洞。
《电子工程专辑》去年5月曾报道,安全研究员赫克托马丁 (Hector Martin)发现了苹果M1芯片中一个无法修复的缺陷M1RACLES,该缺陷创造了一个隐蔽的通道,两个或更多已经安装的恶意应用程序可以用来相互传输信息。但这个缺陷最终被认为是"无害的",因为恶意软件不能利用它来窃取或干扰Mac上的数据。
上个月,多个大学组成的团队又发现了一个名为 Augury 的漏洞,可导致芯片泄漏静态数据,不过目前还没有展示出任何可行的漏洞利用方法。
确实,自两年前推出以来,还没有发生过针对 M1 芯片的严重攻击事件,这表明其安全系统运行总体良好。
2022年6月29日,全球领先的专业电子机构媒体AspenCore将与深圳市新一代信息通信产业集群联合主办【2022国际AIoT生态发展大会】,同期将举办工业互联网、智慧家庭、智慧机器人、智慧可穿戴、智慧两轮车等多场分论坛,多家企业将在论坛现场探讨AIOT领域的前景机遇。 【一键报名】现场与行业资深人士交流与互动!点击这里了解大会详情。
MIT报道参考链接:https://news.mit.edu/2022/researchers-discover-hardware-vulnerability-apple-m1-0610
论文参考链接:https://PACMANattack.com/paper.pdf