事关数据安全,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产品,需抓紧替换和升级,切不可将安全之门的钥匙寄于不可靠的技术之手。


作者:安全君

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

相关推荐
深圳信迈科技DSP+ARM+FPGA1 小时前
基于ARM+FPGA+DSP的储能协调控制器解决方案,支持国产化
arm开发·fpga开发·信号处理
承接电子控制相关项目3 小时前
STM32F103 单片机(基于 ARM Cortex-M3 内核)的启动过程涉及硬件初始化、固件配置和程序执行流程。
arm开发·stm32·单片机·cortex-m3内核启动
完成大叔20 小时前
嵌入式:ARM公司发展史与核心技术演进
arm开发·嵌入式硬件
木木不迷茫(˵¯͒¯͒˵)1 天前
Keil MDK‑5 中使用 GNU ARM GCC 的 -Wno-* 选项屏蔽编译警告
arm开发·gnu·keil
迷路的小灰仔1 天前
ESP32 搭建IDF+Vscode环境(详细教程)
c语言·arm开发·单片机·mcu·物联网·visual studio·iot
辣个蓝人QEX2 天前
【ZYNQ MP开发】Linux下使用bootgen命令生成BOOT.bin报错架构不对问题探究
linux·arm开发·xilinx·zynq·mpsoc·bootgen·u-boot移植
救救可怜孩子吧3 天前
麒麟系统服务器版本x86架构&arm架构部署过程
服务器·arm开发·架构
宁静致远20216 天前
深入理解Qt状态机的应用
arm开发·qt·状态机
技术干货贩卖机6 天前
0基础 | 开发环境 |51单片机编译环境 Keil C251和C51,STM32的编译环境Keil 5 MDK-ARM
arm开发·stm32·嵌入式硬件