Security Affairs 网站披露,攻击者可以通过一种名为 PACMAN 的新硬件攻击技术,绕过苹果 M1 处理器上的指针认证(PAC),入侵 MacOS 系统。
据悉,这项技术是由麻省理工学院计算机科学与人工智能实验室(CSAIL)的研究人员Joseph Ravichandran, Weon Taek Na, Jay Lang和Mengjia Yan 共同发现。
研究人员发现,指针认证码(PAC)允许检测和防范内存中指针意外更改。
指针认证实现了一个特殊的 CPU 指令,在存储指针之前,将一个加密签名(PAC)添加到指针未使用的高阶位,当从内存中读回指针后,该签名会被另一条指令移除并进行验证。
在写入和读取之间对存储值的任何更改都会使签名无效,这一事件被解释为内存损坏,并设置指针中的高阶位,使指针无效。
研究人员在其发表的研究论文中表示,利用推测执行攻击来绕过一个重要的内存保护机制--ARM 指针身份认证,这是一个用于执行指针完整性的安全功能。之后研究人员提出了 PACMAN,这是一种新的攻击方法,它可以通过微架构的侧边渠道投机性地泄露 PAC 验证结果,而不会造成任何崩溃。
这一攻击技术消除了在使用指针身份验证保护的平台上进行控制流劫持攻击的主要障碍。
研究人员已通知苹果公司
值得一提的是,研究人员指出,PACMAN 攻击只是一种利用技术,并不足以破坏一个系统。但坏消息是,PACMAN 使用的硬件机制不能用软件更新来修补。
目前,研究人员设计了一个 PAC 谕令,以区分正确的 PAC 和不正确的 PAC,不会引起任何系统崩溃。
攻击者可以暴力破解正确的 PAC 值,同时抑制崩溃,并对启用 PA 的受害者程序或操作系统构建控制流劫持攻击。 PACMAN 攻击的关键洞察力是使用推测执行通过微架构侧通道秘密泄露 PAC 验证结果。
一个 PACMAN gadget 包含以下两个操作:
一个指针验证操作,推测性地验证猜测的 PAC 的正确性;
一个传输操作,通过微架构侧通道推测性地传输验证结果。
指针验证操作由验证指令(ARMv8.3 中的新指令)执行,如果验证成功,则输出有效指针,否则输出无效指针。
最后,研究人员指出,这种攻击对于希望实现具有指针身份验证功能的处理器设计人员具有重要意义,并对未来控制流完整性原语的安全性产生广泛影响。目前,研究人员已经与苹果公司分享了其发现。
参考文章:
https://securityaffairs.co/wordpress/132154/hacking/pacman-attack-apple-m1-cpus.html