事关数据安全,ARM被爆不可修复漏洞

日前,ARM架构再次被爆出重大安全漏洞,影响波及ARMv8.3架构及以前的所有CPU。该漏洞为硬件级且无法完全修复,如被利用可能造成严重数据泄露风险。

ARM硬件级安全漏洞

来自ARM开发者官网的一项安全更新证实,存在一种名为PACMAN的新型安全攻击,恶意软件可以利用它来暴力破解指针认证码 (PAC)。一旦确定了PAC,攻击者就可以利用它来降低指针认证机制的防护能力,并绕过内存保护机制,利用CPU上的用户空间伪造内核 PAC 进行硬件攻击并窃取数据。

值得一提的是,PAC(Pointer Authentication Code)指针认证本身是ARM芯片提供的一项安全功能,通过在指针中添加加密签名来验证软件,从而防止恶意攻击者通过软件漏洞对内存实施攻击。这一功能被认为对于保护CPU免受已获得内存访问权限的攻击者的攻击具有重要意义。

PACMAN漏洞最早于2021年由麻省理工学院安全研究人员发现,利用ARM CPU的硬件缺陷,可在无需触发任何系统崩溃的情况下,直接避开针对软件漏洞的防护机制,实现对内存和数据的劫持,甚至直接接管操作系统。

该漏洞起初仅在苹果的M1芯片中被验证,但在随后的研究中,发现大量的ARM内核也容易被该漏洞攻击。包括 Neoverse V1、Neoverse N2、Cortex-A78C、Cortex-A78AE、Cortex-A710、Cortex-A715、Cortex-X1C、Cortex-X2 和 Cortex-X3,而这些内核被广泛应用于手机、电脑等设备中。

ARMV8.2架构CPU被抛弃

根据ARM官方的描述,在Armv8.3-A 架构的后续版本中,指针认证功能得到了增强,新增了故障检测功能 (FEAT_FPAC),允许在指针认证失败时触发故障检测。但也强调到,"在CPU实现了FEAT_FPAC的系统上,可以进一步缓解 PACMAN 的影响"。

言外之意表明,该漏洞影响仅能缓解,而非彻底解决。

值得关注的是,ARM官方的修补方案是针对ARMv8.3-A版本推出,这一架构主要使用者正是被验证PACMAN漏洞的苹果。而在ARMv8架构中,使用者更为广泛的ARMv8.2版本并未被提起重视,这也让使用该版本的CPU存在更大的受攻击风险。

这样的局面主要与ARM公司独特的授权机制有关。ARM的架构授权机制类似"订阅制",ARM公司对其架构版本做出严格划分,使用者需根据版本号订阅该版本的不同层级使用权,包括指令集、IP核和成品使用。需要注意的是,授权仅单向支持新版本到旧版本兼容。

ARM公司此举其实并不意外。一方面ARMv9如今已经成为主流架构,主要厂商已经基本切换至该版本中,ARMv8.2自然成为昨日黄花了。另一方面,苹果不仅是ARM最重要的客户,更是ARM上市的基石投资者,受到特殊关照自然也无可厚非。

国内相关产品需抓紧替换

虽然ARM官方一再强调"PACMAN攻击并非可利用的漏洞",但从其专门发布CPU安全更新的表现看,这种说辞似乎并不可信。而在其描述中,也使用了"进一步缓解"而非彻底修复的含糊表达。

目前已知ARMv8.2架构CPU不在被专门修复之列,也意味着采用此架构的CPU数据泄露和操作系统劫持风险巨大。这不免令人担忧,我国目前的国产替代CPU中,ARM技术架构的厂商,其所持授权许可皆为ARMv8.2指令集授权。而受实体清单影响,采用ARMv8.2技术架构的主要厂商,原则上无法绕开制裁购买新版本架构授权。

**而PACMAN安全漏洞再次证明,即便购买了ARM新版本架构授权,也很难在安全上实现自主可控。**诸如此类漏洞存在于硬件底层,不仅无法彻底修复,还存在着巨大的后门风险。一个长达四年未被重视的CPU硬件级漏洞,无异于将数据的大门长期敞开欢迎攻击者采撷。

如今,数据要素在我国经济社会发展中的作用越来越重要,其安全性也不容忽视。因此,我们需要使用安全系数更高、自主能力更强的产品,来保障数据要素安全,尤其是CPU等关键部件。对于存在PACMAN漏洞隐患的CPU产品,需抓紧替换和升级,切不可将安全之门的钥匙寄于不可靠的技术之手。


作者:安全君

声明:本文来源于网络,仅代表作者个人观点,不代表"技术领导力"立场

相关推荐
satadriver21 小时前
Qemu arm操作系统开发环境
arm开发
待什么青丝2 天前
【TMS570LC4357】之相关驱动开发学习记录1
c语言·arm开发·驱动开发·学习
南玖yy3 天前
x86 汇编逻辑运算全解析:从【位操作】到实际应用(AND,OR,NOT,XOR,TEST)
开发语言·汇编·arm开发·后端·架构·策略模式
菜只因C4 天前
嵌入式系统:从技术原理到未来趋势(驱动程序篇)
arm开发
!chen6 天前
鲲鹏Arm+麒麟V10 K8s 离线部署教程
java·arm开发·kubernetes
ScilogyHunter6 天前
ARM P15协处理器指令详解:架构、编程与应用实践
arm开发·协处理器指令·cp15
apolloyhl7 天前
1-Wire 一线式总线:从原理到实战,玩转 DS18B20 温度采集
arm开发·stm32·单片机·嵌入式硬件
二进制coder7 天前
芯片:数字时代的算力引擎——鲲鹏、升腾、海光、Intel 全景解析
arm开发·架构·硬件架构
荆楚闲人8 天前
Keil MDK5.37或更高版本不再预装ARM Compiler Version5导致编译错误的解决方法
arm开发
MonKingWD8 天前
【Redis原理】四万字总结Redis网络模型的全部概念
网络·arm开发·redis