赶快更新修复,龙芯处理器存在架构层面漏洞
本文关键看点:
1、国外研究人员通过模糊测试发现,龙芯处理器存在架构级别的漏洞,可导致操作系统及其他应用的数据泄露。研究人员将其命名为"LoongLeak"。利用该漏洞甚至可以越过虚拟机边界,从虚拟机内部泄露主机数据。
2、研究人员已经实现了在内核中提取全盘AES加密密钥、在用户态获取部分root密码哈希值、绕过地址空间布局随机化(ASLR)与栈溢出保护(stack canaries)这类传统软件防御机制,所有操作均可在数秒内完成。
3、LoongLeak属于架构层面的漏洞,并且在软件导致无法实施缓解措施。龙芯已在更新3A6000处理器时修复了这一缺陷。
▍以下正文内容基于英文原文编译,可能存在语义偏差,请以原文为准。
德国亥姆霍兹信息安全研究中心(Helmholtz Center for Information Security)的四位研究人员发现,中国龙芯制造的处理器存在缓存数据泄露问题——攻击者可借此窃取特定数据,即便从客户虚拟机内部发起攻击也能得手。
龙芯自研了自家的LoongArch指令集架构(ISA),融合了MIPS和RISC-V两套体系的设计思路。
研究人员解释了他们的发现过程:先用模糊测试工具(fuzzer)发现了这条存在"漏数据"问题的缓存路径,随后注意到LoongArch ISA手册中有一条指令,会让一个32位的内存寄存器处于"不确定(uncertain)"状态。
四位研究人员在论文中写道:"我们的分析表明,在某些情况下,那段'不确定'的数据其实来自L1数据缓存。由于该缓存在不同应用程序之间并未做隔离,LoongLeak可以泄露其他应用程序以及操作系统的数据。更糟的是,攻击者可以主动塑造CPU的内部状态,把泄露精确地引导到某个特定的缓存集合(cache set)。"
在详细阐述研究的一份论文中,作者Lorenz Hetterich、Tristan Hornetz、Fabian Thomas和Michael Schwarz给出了若干案例研究,"包括在内核中恢复全盘AES密钥、在用户态提取部分root密码哈希,以及绕过ASLR和栈canary等传统软件防御机制——全部在数秒内完成。"
如果这还不够让人紧张,他们还特别指出:"LoongLeak可以从非特权用户态、容器乃至虚拟机中发起利用。"这意味着"LoongLeak可以跨越虚拟机边界,从虚拟机内部泄露宿主机数据"。
"由于这种泄露是架构层面的,它既不需要高精度计时器,也不需要传统的侧信道放大手段,并且能让攻击者对缓存集合与行偏移实现精确控制,"他们补充道。
最致命的一点在于:软件层面的缓解措施根本无法实现。受影响芯片的用户只能选择更换硬件,或者确保不让任何敏感数据进入L1缓存、留在L1缓存。要做到后者,往往意味着要关闭每个核心的一个线程——也就是禁用超线程。

好消息是,龙芯在3A6000处理器的一次更新中已经修复了这个缺陷;通过驱逐缓存数据来做缓解,最坏情况下只会让性能下降1.4%。
该漏洞的爆炸半径或许也有限——龙芯的芯片在中国以外几乎见不到踪影。
