新的类似Spectre的CPU漏洞绕过了现有的防御
安全研究人员发现了一种新的方法来滥用现代CPU的推测执行机制来打破安全边界并泄漏内核内存的内容。这项新技术滥用了一个名为SWAPGS的系统指令,可以绕过针对之前的投机性执行漏洞(如Spectre)的缓解措施。
这个漏洞是由安全公司Bitdefender的研究人员发现的,几乎在一年前就报告给了英特尔。从那以后,它经历了漫长的协调过程,微软也在上个月的补丁周二发布了缓解措施。
当进程从用户模式转换到内核模式时,SWAPGS允许内核访问内部的每CPU数据结构。然而,Bitdefender的研究人员发现,指令在投机性执行时的行为记录很少,并且具有安全隐患。
有三种涉及SWAPGS的攻击情形。一个允许攻击者绕过KASLR(内核地址空间布局随机化),这是现代操作系统中的一种机制,旨在使漏洞利用更加困难。
第二个允许攻击者测试来自用户空间的给定内核内存地址是否存在某个值,第三个,最严重的一个,可以允许攻击者泄漏任意内核内存地址的内容。这类似于Spectre漏洞的影响,实际上新技术被编目为Spectre版本1的变体。
攻击的表现并不好; 研究人员估计,攻击者可以通过使用他们的概念验证漏洞每隔几分钟泄漏几个字节。但是,他们也相信将来可以显着改善泄漏率。
Windows最容易受到SWAPGS漏洞的攻击
这次攻击的有趣之处在于它绕过了所有现有的软件缓解措施,包括内核页表隔离(KPTI)机制,该机制应该将内核内存完全隔离在自己的虚拟地址空间中,使得类似Spectre和Meltdown的攻击变得更加困难。
研究人员将他们的测试重点放在Microsoft Windows上,因为它是操作系统使用SWAPGS的最简单的目标。已为此问题分配了CVE-2019-1125标识符。
微软发言人在一份电子邮件声明中说:“我们已经意识到这个行业范围的问题,并且一直与受影响的芯片制造商和行业合作伙伴密切合作,开发和测试缓解措施,以保护我们的客户。” “我们在7月发布了安全更新,启用了Windows Update并应用安全更新的客户将自动受到保护。”
虽然该漏洞的缓解措施已包含在7月份的Windows补丁中,但截至8月6日Bitdefender发布白皮书并且微软发布安全公告时,详细信息被扣留。
“对Linux内核的快速分析显示,虽然它包含可能用于攻击的小工具,但它位于非可屏蔽中断(NMI)处理程序中,”Bitdefender的研究人员在他们的论文中说。“因此,我们认为Linux很难(如果不是不可能的话)进行攻击。”
Red Hat证实其产品理论上容易受到攻击,但在一份公告中指出,目前还没有已知的方法可以在运行Linux内核的系统上成功利用它。即便如此,该公司已经发布了内核更新,并指出缓解措施对英特尔和AMD CPU的性能影响很小,这是唯一受此问题影响的CPU。
“对Hyper-V内核和Xen管理程序内核的快速分析显示,SWAPGS指令未被使用,因此无法进行利用,”Bitdefender的研究人员表示。“其他操作系统和虚拟机管理程序尚未经过调查,尽管微软在协调披露过程中向所有相关方通报了此漏洞。”
SWAPGS攻击在软件中得到缓解
与Spectre版本1一样,新的SWAPGS攻击可以直接在软件中缓解,不需要微码更新。这就是英特尔让微软带头协调漏洞披露的原因。
英特尔在一份电子邮件声明中说:“英特尔与行业合作伙伴一起确定该问题在软件层面得到了更好的解决,并将研究人员与微软联系起来。” “生态系统需要共同努力才能使产品和数据更加安全,而这个问题正在由微软协调。”
这是自2018年1月宣布Spectre和Meltdown缺陷以来已发现的一长串CPU漏洞和变种中的最新版本。随着安全研究界不断深入研究现代处理器和其他硬件组件的情况在较低的水平上工作,可能会发现更多的安全问题。