自从苹果M系列芯片开售,业界对其溢美之词便层出不穷。虽然M系列芯片,为Mac销售提供了巨大帮助,但却一直存在一些漏洞,并且都非常难以修复。
这两天,研究人员又发现M系列芯片存在一项新的安全漏洞。这个漏洞就比较离谱了,不仅不需要root后提权到kernel,影响面会非常大,而且想要修复,就要拖垮芯片的工作性能。
不用Root权限,1~10小时盗走密钥
上周,安全专家发表了一篇论文,他们称:在苹果M系列芯片发现了一个新的漏洞,该漏洞允许攻击者在执行广泛使用的加密操作时,发起侧信道攻击,从而在Mac中提取密钥。
该漏洞存在于CPU的一种功能——Data Memory-Dependent Prefetcher(DMP,数据内存依赖预取器)中,DMP是解决现代计算常见瓶颈而放在内存中的新功能,能够减少主内存和CPU间的延迟,目前仅在M系列芯片和英特尔的第13代Raptor Lake微架构中使用。
苹果芯片中DMP的一个行为在过去一直被忽视:有时候,DMP会将密钥等敏感数据内容与内存地址指针混淆,导致攻击者可以通过“解引用”操作泄露信息。即读取数据并通过侧信道泄漏数据,这明显违反了常量时间的操作范式。
这是一个严重的漏洞,会影响各种加密算法,包括经过强化以抵御量子计算机攻击的2048位密钥。
研究人员尝试对DMP发起攻击,并将这种攻击命名为GoFetch,它使用一个不需要Root访问权限的应用程序,只需要与macOS系统上安装的大多数第三方应用程序相同的用户权限,即可完成攻击。
M系列芯片的架构是Arm经典的“集群”形式。例如,M1有两个集群:一个包含四个效率核心(E核心),另一个包含四个性能核心(P核心)。只要GoFetch应用和目标加密应用运行在同一个性能集群上,即使运行在该集群中的不同内核上,GoFetch就可以挖掘足够的机密来泄露密钥。这种攻击既可以攻击经典的加密算法,也可以攻击最新的量子强化算法。
目前,研究团队已对配备M1芯片的苹果硬件进行了端到端GoFetch攻击,同时还在其它苹果芯片上测试了DMP激活模式,并发现M2和M3也表现出类似的可利用DMP行为。
至于其有效性,研究人员的测试应用程序能够在不到一个小时的时间内提取2048位的RSA密钥,提取2048位的Diffie-Hellman密钥则只需两个多小时。除去离线处理时间,获取Dilithium-2密钥需要十个小时。
需要强调的是,该漏洞无法直接修补,因为它源于芯片本身的微架构设计,也就是Apple Silicon芯片的核心部分,这意味着,短期内几乎无法完全修复。
相反,只能通过在第三方加密软件中构建防御措施来缓解漏洞,这些防御可能会在执行加密操作时大幅降低M系列的性能,尤其是在早期的M1和M2代上。
此前,研究团队曾向苹果公司进行了负责任地披露,不过目前,苹果拒绝就此事发表评论。
苹果芯片漏洞屡屡暴露
事实上,这并非苹果芯片第一次被曝漏洞。
2018年,CPU芯片超级漏洞——Meltdown(熔断)和Spectre(幽灵)被发现,不仅影响了自1997年以来生产的几乎所有x86设备,同时也影响了彼时所有Mac和iOS设备。这些安全漏洞依赖于“推测性执行”,即芯片可以通过同时处理多条指令,甚至无序处理来提高速度。
2020年,腾讯安全玄武实验室对外公布了一个苹果M1芯片的安全漏洞。攻击者在打开所有系统保护的情况下,在一秒之内获取到了系统的最高权限(root身份),从而可以任意读写设备中存储的通讯录、照片、文件等用户隐私。
2022年,GoFetch研究团队在M1和iPhone A14仿生芯片中,发现了一个以前未知的“指针追逐 DMP”。这项研究来自不同的学者群体,引发了名为Augury的攻击,这是一种识别并利用泄漏指针的内存侧通道的攻击。最终,当使用常量时间编程后,Augury无法将数据信息和数据地址混合在一起。
那时候,攻击失败给当时人们带来了一种错觉:DMP并没有构成太大的威胁。不过,GoFetch表明,DMP比之前想象的更具侵略性,因此也构成了更大的安全风险。任何从内存中加载的值都有可能被解引。这使我们能规避Augury的许多限制,并在常量时间编程演示端到端攻击。
2022年,麻省理工学院(MIT)发现,M1芯片的“指针身份验证”(PAC)是广泛存在于Arm处理器当中的一项硬件安全机制,而黑客则可通过指针身份验证,不留痕迹地攻破M1发的最后一道防线,并且由于是硬件安全机制,苹果无法通过更新M1芯片软件补丁来修复它。那时候,苹果表示,这不足为惧。
可以说,自从M系列芯片问世以来,漏洞便不断袭来,修修补补。而这一次的漏洞,可以说是致命的,毕竟用性能来填补,无异于拆东墙补西墙,只能期待苹果有更好的解决办法。
同样的剧情,又来了
通过漏洞窃取密钥,通过下降CPU性能的补丁,修复漏洞……这样的剧情是不是很熟悉?是的,这次剧情和英特尔此前的“Downfall”漏洞门如出一辙。
2023年8月,英特尔披露了一个名为“Downfall”的安全漏洞,追踪编号为“CVE-2022-40982”。其利用“Gather Data Sampling”从计算机上窃取其他用户的数据和敏感信息,这一次的影响也堪称史诗级——横跨第6代的Skylake至第11代的Rocket Lake和Tiger Lake。
而后,英特尔针对“Downfall”安全漏洞推出了更新的微码,对此进行修复,不过有可能会出现性能损失。
据Phoronix报道,为了了解具体的性能影响,通过双路Xeon Platinum 8380(Ice Lake)、单路Xeon Gold 6226R(Cascade Lake)以及消费端的Core i7-1165G7,使用各种软件包进行了测试。
双路Xeon Platinum 8380在OpenVKL 1.3.1上的运行速度会降低6%左右,OSPRay 2.12的性能会下降34%,各种涉及人工智能的工作负载也受到了影响,比如Neural Magic DeepSparse 1.5、Tencent NCNN和QMCPACK,最多会降低17%的性能。
单路Xeon Gold 6226R的情况也类似,比如在OSPRay 2.12中损失了33%的性能,在Neural Magic DeepSparse 1.5中下降的幅度为20%。Core i7-1165G7并不是测试的重点,仅运行了三个测试,不过同样会带来损失,性能降低了11%~39%。
从测试结果来看,更新后不可避免地出现性能下降,损失的幅度还比较大,而且涉及各种工作负载。不过英特尔的微码更新不是强制性的,而且提供了一种选择退出机制。如果用户不太在意漏洞带来的安全性问题,而更重视性能,那么可以选择不去理会。
这样的剧情,也曾经出现在2018年。影响英特尔、AMD和Arm处理器的Meltdown(熔断)和Spectre(幽灵)内存崩溃漏洞,曾让整个计算机世界陷入恐慌。虽然后来微软陆续推送了KB4090007等安全更新来修补此漏洞,但同时却带来了计算机性能下降的问题。后来谷歌开发的“Retpoline”修复方案则解决了性能下载问题,微软借鉴此了方案。再之后,为了解决内存问题,Arm甚至还推出了Morello平台,围堵内存漏洞。
有了类似剧情,有程序员评论:“所以,难道说,苹果是在利用漏洞,不管不顾地让跑分看起来很高?”也有程序员称,“都学会牙膏倒吸是吧?”
世界上从来没有密不透风的墙。虽然,我们不知道未来苹果为了修复漏洞,会不会暴力降低性能,不过M3刚刚发布没多久,就遇上这种严重漏洞,这种尴尬境地,只能看后续苹果怎样修复。而用户也需要权衡性能和安全,选择性地进行未来的系统升级。
参考资料
[1] https://arstechnica.com/security/2024/03/hackers-can-extract-secret-encryption-keys-from-apples-mac-chips/
[2] https://gofetch.fail/
[3] https://www.oschina.net/news/253029/intel-downfall-attack
[4] https://www.bilibili.com/video/BV1HK411V7Z9
[5] https://www.freebuf.com/news/374376.html
[6] https://www.chiphell.com/thread-2538277-1-1.html
本文来自微信公众号:电子工程世界(ID:EEworldbbs),作者:付斌