苹果M系晶片爆安全漏洞 无法透过补丁修补 使用钱包时密钥或被盗

Allen Li
| 0 min read

学术研究人员在3月21日发表的一篇论文中透露,他们新发现的一个漏洞存在于苹果M系列芯片中,允许攻击者在Mac执行广泛使用的加密操作时,提取密钥。

无法透过补丁修补


这个缺陷是一个名为侧信道(GoFetch)的问题,当苹果芯片运行广泛使用的加密协议的实现时,允许端到端的密钥提取,而且这个问题不能直接修补,因为它源芯片微架构设计本身。相反,只能通过在第三方加密软件中构建防御来缓解,这可能会在执行加密操作时,特别是在早期的M1和M2代芯片上,大幅降低M系列的性能。当目标的加密操作和具有普通用户系统权限的恶意应用在同一个CPU集群上运行时,这个漏洞就可以被利用。

侧信道原意为优化处理速度


这个威胁存在于芯片的数据内存依赖预取器中,这是一种硬件优化,它预测正在运行的代码在不久的将来可能访问的内存地址。通过在实际需要之前就将内容加载到CPU缓存中,DMP(如该功能所缩写)减少了主内存和CPU之间的延迟,这是现代计算中的一个常见瓶颈。DMP是仅在M系列芯片和英特尔第13代Raptor Lake微架构中发现的相对新现象,尽管较老的预取器形式已经存在多年。

安全专家早就知道,传统的预取器开启了一个侧信道,恶意进程可以通过探测此信道来获取加密操作中的密钥材料。这个漏洞是因为预取器根据之前的访问模式做出预测,这可能会造成状态的变化,攻击者可以利用这种变化泄露信息。作为回应,加密工程师设计了恒定时间编程,这是一种确保所有操作完成所需时间相同的方法,不论它们的操作数如何。它通过保持代码不涉及依赖密钥的内存访问或结构来实现这一点。

这项新研究的突破在于,它揭示了苹果硅芯片中DMPs先前被忽视的行为:有时它们会将内存内容,如密钥材料,与用于加载其他数据的指针值混淆。结果,DMP经常读取数据并试图将其作为地址来进行内存访问。这种“指针解引用”意味着通过侧信道读取数据并泄露它,是对恒定时间范式的公然违背。