变身毒苹果?全球首个DMP漏洞,仅A14M1等苹果芯片独有
近来的苹果,可以说是很好地诠释了一个词:树大招风。
前有各大监管机构查它垄断、命其开放,后有竞争公司不断挖角、窃取机密,甚至就在日前,还有研究人员在AppleSilicon中发现了世界首个数据内存依赖预取器(DataMemoryDependentPrefetcher,简称为DMP)安全漏洞该漏洞被称为Augury(意为占卜),目前只存在于AppleSilicon。
一直对DMP存有疑虑
发现Augury的研究团队成员来自不同高校,其中包括伊利诺伊大学厄巴纳香槟分校、特拉维夫大学和华盛顿大学,而该团队一直以来对DMP都存有疑虑。
DMP,即数据内存依赖预取器,可通过了解整个内存内容,预取数据来提高系统性能。一般来说,为了确保系统安全,内存访问会受到限制和划分,而著名科技评测网站Anandtech在苹果推出M1后,对A14测评的一段措辞引起了该研究团队的注意:
在微架构调查中,我们在苹果的芯片设计中看到了记忆魔法的迹象,我们推测苹果正在使用某种指针追踪预取机制。
对此,研究团队猜测:苹果芯片的DMP预取可能会超出内存指针集,即可以访问并尝试对不相关的内存地址进行预取,甚至深度预取。
出于这种担忧,该团队开始研究M1和A14,也果然发现了眉目:我们发现苹果处理器有一个DMP。我们发现这个DMP预取了一个指针数组解引用模式。我们发现可以通过此预取器来泄漏任何指令都不会读取的数据(指针),即使只是推测性的!
进一步解释:AppleSilicon的DMP功能存在漏洞Augury,如该漏洞被攻击者成功利用,系统将会被暴露于静态数据攻击,即被泄露的数据由于是静态的,不会以推测或非推测的方式被核心读取,因此难以被发现。
AppleSilicon独有的漏洞
具体来说,该研究团队发现AppleSilicon的确使用了DMP预取指针数组(AoP):for(i0;ilen(arr);i){arr〔i〕;}
研究人员对此解释道:一旦代码看到arr〔0〕arr〔2〕发生(甚至只是推测性的!),它就将开始预取arr〔3〕。也就是说,它是先预取arr的内容,然后才取消引用。但一般传统的预取器不会执行第二步取消引用的操作。
在AoP中,系统寻址、读取和缓存尚未访问过的内存,且这些数据可能永远不会被访问也就是说,目前AppleSilicon的DMP功能使系统过度读取和暴露数据,也就更容易受到攻击。
说到这里,可能会有人会由这次的Augury,联想到曾经在全球引起巨大轰动的Spectre和Meltdown漏洞(这两个漏洞可使攻击者通过利用并行运行进程的方式来破坏处理器的特权内存,窃取敏感数据),但该研究团队指出,Augury和SpectreMeltdown并不相同:Augury只利用DMP功能,并非瞬态执行;Spectre可被完全禁用,而Augury将仍然存在;适用于Augury的防御类型与其他微架构攻击也不同。任何依赖于跟踪被核心访问的数据防御都不能阻止Augury泄露数据,因为通过Augury泄露的数据永远不会被核心读取。
因此我们也可以理解为,Spectre和Meltdown漏洞泄漏的是正在使用的数据,而利用苹果的DMP,Augury可能会泄漏整个内存内容,即使这些数据没有被主动访问。
苹果已知情,但尚未打补丁
据研究团队公开的漏洞资料表明,Augury目前仅存于AppleSilicon,已确认受影响的芯片包括A14、M1和M1Max(都具有DMP功能)。他们也对最新几款英特尔和AMD处理器进行了测试,但均没有发现Augury漏洞的迹象。
此外,研究人员补充道:我们认为一些较旧的A系列芯片和最新的M1系列(M1Pro等)芯片也会受到影响,但目前只在M1Max上得到了证实。
值得庆幸的是,该研究团队指出,尽管听起来Augury存在不小的隐患,但他们还未展示任何借助Augury进行端到端的漏洞利用,因此至少现阶段,只有指针会被泄露。
至于该漏洞的补丁,研究团队表示已与苹果方面讨论过这个问题,苹果也已知晓漏洞的全部细节,但目前据他们的了解,苹果尚未推出相关补丁。
参考链接:
https:www。prefetchers。info
https:www。tomshardware。comnewsapplesiliconexclusivelyhitwithworldfirstaugurydmpvulnerability