随着芯片安全性日益受到关注,研究人员发现苹果新的 M1 和 A14 芯片中存在潜在的安全漏洞,即微架构侧通道攻击。
在当今高度数字化的时代,安全性是任何电子系统设计中最重要的方面之一。从电气工程师的角度来看,目标是开发在芯片、电路板和系统级别上尽可能安全的硬件。
尽管有这些意图,但不可避免的是,没有任何系统是 100% 安全的。越来越多的安全威胁(例如侧信道攻击)似乎渗透到每个领域,并在硬件和软件层面影响系统。
计算领域的传统瓶颈之一是内存瓶颈——从内存中获取数据所花费的时间比对数据执行实际计算所花费的时间要重要得多。
出于这个原因,计算机架构师提出了缓存和预取器的概念。
高速缓存是空间上靠近处理器的较小子内存,用于更快的内存访问和检索。在缓存中,系统根据空间和时间局部性原则 存储极有可能被程序再次使用的数据。
预取器通过主动预测程序将在需要之前访问内存的内容来进一步缓存。
一般来说,经典的预取器分为三个步骤:
训练:预取器记录来自内核的地址序列是否与特定模式匹配。
预取:如果一个模式被可靠地识别,预取器会自动用预期的数据填充缓存。
除了经典的预取器之外,计算机体系结构领域对所谓的数据存储器相关预取器(DMP)也很感兴趣。
DMP 类似于经典的预取器,但旨在预取不规则的地址模式,例如指针追逐。如果不了解地址模式和物理内存内容之间的依赖关系,就无法预测这些指针追逐。
DMP 遵循类似的三步流程;然而,与经典预取器不同,DMP 预取阶段要求 DMP 直接读取遵循预测模式的内存内容。
例如,如果 DMP 正在搜索一个指针,则预取器必须访问它认为拥有它的缓存行,然后取消引用该指针。
牢记这两个一般概念,研究人员发表了一篇新论文,描述了一种声称会影响苹果 A14和M1芯片的微架构侧信道攻击。
这种名为 Augury 的新攻击利用了这些 Apple 芯片使用 DMP预取指针数组 (AoP) 的事实。在 AoP 中,系统寻址、读取和缓存尚未访问过的内存,并且可能永远不会被访问。
例如,在下面显示的代码片段中,当代码仅访问 *arr[0] 时,DMP 会主动和推测性地加载和取消引用 *arr[3]。
这种方法的漏洞在于系统现在过度读取和暴露数据,使其容易受到攻击者的攻击。此漏洞可以使系统暴露于静态数据攻击,其中目标数据永远不会以推测或非推测的方式读入核心,但仍会泄漏。
值得庆幸的是,研究人员在任何对手能够并且及时向 Apple 报告他们的发现之前就发现了这个漏洞。据研究人员称,目前攻击的范围非常小,只有指针被泄露。
但是,总是存在基于此漏洞开发更成熟攻击的威胁。希望 Apple 能够在此漏洞成为合法威胁之前修补此漏洞。