CacheOut攻击困扰Intel:发现更多泄露数据的 CPU 设计缺陷

当心CacheOut(缓存逐出)攻击!


CacheOut攻击困扰Intel:发现更多泄露数据的 CPU 设计缺陷


英特尔近日发布了一份处理器数据泄露安全公告,描述了两个芯片架构缺陷,其中一个它之前试图修复了两次。


备忘录INTEL-SA-00329介绍了两个安全漏洞:CVE-2020-0548(名为向量寄存器采样)等级为2.8,严重级别低,和CVE-2020-0549(名为L1D逐出采样,L1Des)泄露,等级为6.5,严重级别中。


这些缺陷会导致特权信息可能被泄露,这个问题在多租户云环境中尤为严峻。比如说,服务器托管公司DigitalOcean的服务器之前警告:该问题“意味着不怀好意的人理论上可以使用Droplet来推断同一个物理主机上另一个Droplet使用的部分数据。”


简而言之,非授权用户或系统上的恶意软件可以利用设计缺陷来窥视应禁止访问的私密数据,比如密码和密钥。与Meltdown和Spectre一样,我们还没有看到外面任何大规模恶意利用这些漏洞的情况,不过这不是说就可以忽视这些漏洞。


这些最新漏洞中较严重的漏洞CVE-2020-0549被研究人员命名为CacheOut,他们在该论文(https://cacheoutattack.com/CacheOut.pdf)中详细介绍了这个安全问题。


CacheOut攻击困扰Intel:发现更多泄露数据的 CPU 设计缺陷

这些研究人员是美国密歇根大学的Stephan van Schaik、Marina Minkin、Andrew Kwong和Daniel Genkin以及美国阿德莱德大学、Oz和Data61的Yuval Yarom。荷兰阿姆斯特丹大学的一组研究人员也研究了这个问题:Alyssa Milburn、Sebastian Österlund、Pietro Frigo、Kaveh Razavi、Herbert Bos和Cristiano Giuffrida。


另一组计算机科学研究人员:奥地利格拉茨技术大学的Moritz Lipp、Michael Schwarz、Daniel Gruss以及比利时鲁汶大学的Jo Van Bulck另行发现了CVE-2020-0549(即CacheOut),因为该漏洞与他们及其他人在去年5月披露的一系列旁道攻击有关。


该类漏洞对于Intel而言名为微架构数据采样(MDS),对于研究人员而言名为ZombieLoad和cpu.fail。


MDS让本地系统上的攻击者可以推断保存在处理器内部结构中的敏感数据,比如存储缓冲区、填充缓冲区和加载缓冲区。英特尔的微码修复程序使用VERW指令和L1D_FLUSH命令来覆盖存储缓冲区里面的值,以防止缓冲区数据被读取。


但英特尔在5月份发布的初始修复程序失败了。去年11月有媒体报道,暗中窃听的ZombieLoad变种利用了英特尔的事务同步扩展(TSX)异步中止(TAA)机制。面对因Meltdown和Foreshadow接受修复的英特尔芯片,该漏洞甚至照样可以钻空子。11月份推出了另一版修复程序,现在该修复程序本身也需要修复,因为它对该类漏洞只能起到部分缓解的作用。


Daniel Gruss称:“问题在于,基于VERW的缓解措施尚不完整。攻击者仍可以对从L1D缓存中被逐出的数据发动MDS攻击。”


CacheOut论文详细介绍了“一种瞬态执行攻击,能够绕过英特尔的缓冲区覆盖对策,还让攻击者可以选择从CPU的L1数据缓存中读取哪些缓存集。”


覆盖对策不起作用的原因是,CacheOut在受害者可以读取其数据之前从L1缓存中逐出了受害者的数据。


van Schaik、Minkin、Kwong、Genkin和Yuval在其论文中声称,他们可以利用自己的攻击手法来破坏进程隔离,并使用OpenSSL从受害者处恢复AES密钥和明文,从而对Linux内核的地址空间布局随机化(ASLR)进行非随机化处理,并从内核恢复秘密的栈金丝雀值(stack canary),并且破坏在同一个物理核心上运行的两个虚拟机之间的隔离。他们还声称,这种攻击手法在打有最新Meltdown补丁的一些CPU上有效。


易受攻击的英特尔CPU数量众多。研究人员表示,英特尔客户可能会受到影响,除非他们使用的是2018年第四季度之后发布的CPU,但这纯属偶然。2019年及以后发布的一些处理器内置了部分缓解措施。


他们在CacheOut网站上提到这个TSX漏洞时声称:“对于2018年第四季度之后发布的一定数量的处理器而言,英特尔在解决名为TSX异步中止(TAA)的前一个问题时无意中设法部分缓解了这个问题。”


研究人员表示,AMD不受CacheOut的影响。虽然Arm和IBM的芯片都有类似英特尔TSX的功能,但这些研究人员不知道这些公司的任何芯片是否易受攻击。


与此同时,为了应对CVE-2020-0548和CVE-2020-0549,英特尔认为它会“向我们的客户和合作伙伴发布英特尔处理器微码更新,这是我们常规的英特尔平台更新流程的一部分。英特尔建议使用受影响的英特尔处理器的用户与系统制造商和系统软件供应商联系,并第一时间更新到最新版本的微码更新。”


因此,记得检查更新。禁用TSX也有所帮助(请参阅CacheOut论文的第9节)。


分享到:


相關文章: