今天在BlackHat上,Bitdefender披露了Spectre 1推测执行端通道漏洞的新变种,该漏洞可能允许恶意程序访问和读取操作系统中特权内存的内容。
此SWAPGS漏洞允许本地程序(如恶意软件)从通常无法访问的内存中读取数据,例如Windows或Linux内核内存。
Bitdefender的Andrei Vlad Lutas在对CPU内部进行研究时发现了这个漏洞,并于2018年8月向英特尔报告。
在英特尔的一份声明中,BleepingComputer被告知在向他们披露漏洞后,他们决定在软件层面上解决这个问题,并且微软接管了漏洞的协调。
“英特尔与行业合作伙伴一起确定该问题在软件层面得到了更好的解决,并将研究人员与微软联系起来。这需要生态系统协同工作,共同保护产品和数据更加安全,而这个问题正在由微软协调。”
从那时起,微软接管了通知其他供应商,确保发布补丁,并计划今天在BlackHat进行协调披露。
SWAPGS漏洞
SWAPGS漏洞是一种推测性执行的旁道漏洞,允许不良角色从特权内存中读取数据。
为了提高CPU的性能,一个称为推测执行的功能将在它知道是否需要它们之前执行指令。针对此功能的漏洞称为旁道攻击。
在Bitdefender发现的新的旁道攻击中,攻击者“打破了CPU提供的内存隔离,允许无特权的攻击者访问特权内核内存。”
这是通过64位CPU中的SWAPGS指令完成的,当成功操作时,即使恶意进程以低用户权限运行,也可以用来从内核内存泄漏敏感信息。
这可能允许攻击者窃取存储在内存中的任何类型的信息,包括聊天消息,电子邮件,登录凭据,支付信息,密码,加密密钥,令牌或访问凭据。
归结为,没有任何信息可以保密。
虽然微软,英特尔和红帽都声称这个漏洞存在于所有现代CPU中,但Bitdefender表示他们只能成功利用英特尔CPU上的漏洞。
“我们测试了两个AMD CPU:AMD64系列16型号2步进3 AuthenticAMD~3211 Mhz和AMD64系列15型号6步进1 AuthenticAMD~2100 Mhz,并且都没有表现出SWAPGS指令的推测行为。
由于SWAPGS指令仅出现在x86-64上,因此我们不希望其他CPU架构(如ARM,MIPS,POWER,SPARC或RISC-V)容易受到攻击。但是,我们不排除存在可能以推测方式执行的其他类似敏感指令。“
此外,由于所需的WRGSBASE指令仅存在于以Ivy Bridge开头的CPU中,因此Bitdefender期望较旧的CPUS“即使不是无法开发也会更加困难”。
有关SWAPGS漏洞的更多详细信息,您可以访问Bitdefender的专用SWAPGS页面。您还可以观看Bitdefender分享的关于如何保护自己免受SWAPGS攻击的视频。
供应商响应SWAPGS漏洞
在协调的披露中,包括微软,红帽,英特尔和谷歌在内的众多供应商已经发布了有关此漏洞的建议。
下面我们提供了有关供应商发布的减少此问题的建议和更新的更多信息。
微软秘密修复了7月更新中的漏洞
在2019年7月的补丁周二安全更新期间,微软使用软件缓解措施秘密修补了新的SWAPGS推测漏洞。如果您安装Windows安全更新,那么您已经在Windows中受到此漏洞的保护。
今天发布的微软咨询报告标题为“Windows内核信息泄露漏洞”,并且作为协调行业披露的一部分,一直持续到今天发布。
根据微软的说法,Bitdefender的Andrei Vlad Lutas在一些现代CPU中发现了这个新的漏洞,它允许恶意用户模式程序访问和读取Windows内核内存的内容。
“为了利用此漏洞,攻击者必须登录受影响的系统并运行经特殊设计的应用程序,”微软在他们的公告中解释道。“该漏洞不允许攻击者直接提升用户权限,但可以用来获取可能用于进一步危害受影响系统的信息。”
为解决此漏洞,于2019年7月9日发布了Windows安全更新,该更新通过软件更改修复了漏洞,从而减轻了CPU推测性访问内存的方式。Microsoft进一步声明,不需要安装微代码更新来解决此漏洞。
“已启用Windows Update且已应用2019年7月9日发布的安全更新的客户将自动受到保护。无需进一步配置。”
目前尚不清楚这些软件更改是否会像之前的缓解一样对Windows性能产生任何影响。
Microsoft已与BleepingComputer就此漏洞共享以下声明:
“我们已经意识到这个行业范围内的问题,并且一直与受影响的芯片制造商和行业合作伙伴密切合作,开发和测试缓解措施以保护我们的客户。我们在7月发布了安全更新,并且启用了Windows Update并且应用了安全性的客户更新会自动受到保护。“
Red Hat发布了更新的内核
Red Hat还发布了一份关于这款名为“CVE-2019-1125:幽灵SWAPGS小工具漏洞”的最新Spectre变种的咨询。
红帽用户可以通过更新内核并安装最新的微代码更新来修复此漏洞。
“Red Hat已经意识到了一个额外的幽灵-V1攻击向量,需要更新Linux内核以及微代码更新。这个额外的攻击向量建立在先前内核和微代码更新中提供的现有软件修复程序的基础上。此漏洞仅适用于此使用Intel或AMD处理器的x86-64系统。“
英特尔发布咨询
英特尔发布了有关SWAPGS漏洞的咨询。这基本上与其他供应商所说的相同。
在与行业合作伙伴评估此问题后,我们确定最佳缓解措施将在软件层进行。微软同意与研究人员和其他行业合作伙伴一起协调补救工作。微软于2019年7月发布了他们的软件更新以解决这个问题,今天 发布了他们的安全建议, 作为CVD过程的一部分。
某些Linux * OS供应商可能会选择发布其产品的更新。有关详细信息,请咨询您的Linux OS供应商。
Google为ChromeOS 4.19和Android 4.19添加了SWAPGS修复程序
谷歌已将此漏洞的修复程序添加到ChromeOS 4.19,预计很快就会发布。
Gustavo A. R. Silva (1): IB/hfi1: Fix Spectre v1 vulnerabilityJosh Poimboeuf (7): x86/speculation: Prepare entry code for Spectre v1 swapgs mitigations x86/speculation: Enable Spectre v1 swapgs mitigations x86/entry/64: Use JMP instead of JMPQ Documentation: Add swapgs description to the Spectre v1 documentation
在BleepingComputer发现的错误报告中,Google 已将SWAPGS补丁合并到ChromeOS 4.19中,并更新了他们的幽灵管理指南,以包含有关此漏洞的信息。
“攻击者可以训练分支预测器以推测性地跳过交换路径以获得中断或异常。如果他们将GS寄存器初始化为用户空间值,如果推测性地跳过交换标记,则在推测窗口中随后与GS相关的percpu访问将使用攻击者控制的GS值来完成。这可能会导致特权内存被访问和泄露。“
根据BleepingComputer在Android Gerrit上找到的提交,Android 4.19也添加了同样的修复程序。
x86/speculation: Prepare entry code for Spectre v1 swapgs mitigationsx86/speculation: Enable Spectre v1 swapgs mitigationsx86/entry/64: Use JMP instead of JMPQx86/speculation/swapgs: Exclude ATOMs from speculation through SWAPGSDocumentation: Add swapgs description to the Spectre v1 documentation
AMD认为他们不会受到影响
在AMD产品安全页面的更新中,AMD表示他们不相信他们受到影响。
“AMD意识到新的研究声称可能允许访问特权内核数据的新推测性执行攻击。基于外部和内部分析,AMD认为它不容易受到SWAPGS变体攻击,因为AMD产品的设计不是为了推测新的推测SWAPGS之后的GS值。对于不是SWAPGS变体的攻击,缓解是为了实现我们对Spectre变体1的现有建议。“
Linux内核打了补丁
一个Linux内核补丁--https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=18ec54fdd6d18d92025af097cd042a75cf0ea24c的漏洞SWAPGS也已经由Red Hat工程师乔希Poimboeuf共享。
“幽灵v1不仅仅是关于数组边界检查。它可以影响任何条件检查。内核条目代码中断,异常和NMI处理程序都有条件交换检查。这些可能在Specter v1的上下文中有问题,因为内核代码可以推测性地与用户GS一起运行。“
随着越来越多的供应商发布建议,我们将更新这个故事。