微软谷歌再曝CPU新漏洞,Intel、AMD、Arm全部遭殃

618 阅读9分钟
编译 | Debra
编辑 | Natalie
AI 前线导读: 近日,微软和谷歌的研究人员又发现了现代处理器中存在数据泄漏风险的 Meltdown-Spectre 安全漏洞第四种变种。

在安全系数较低的电脑或设备上,这些推测性执行设计缺陷可能会被恶意软件攻击并利用,或通过非正常登录系统,从内核或应用程序内存慢慢提取隐私信息,如密码等。

现代处理器被发现的安全漏洞变体 1 和变体 2 被称为 Spectre(CVE-2017-5753,CVE-2017-5715),变体 3 则被称为 Meltdown(CVE-2017-5754),这几个安全漏洞前段时间在业界引起了一阵不小的恐慌。一波未平一波又起,今天,微软和谷歌研究人员又披露了新漏洞变体 4(CVE-2018-3639)。

更多优质内容请关注微信公众号“AI 前线”,(ID:ai-front)
新漏洞有何影响?

变体 4 影响英特尔、AMD 和 Arm 的无序执行处理器内核,以及 IBM 的 Power 8、Power 9 和 System z CPU。 要知道,ARM 内核可是广泛应用于全球各地的智能手机、平板电脑和嵌入式电子产品中。

第四种变体可能会被程序运行的脚本文件(例如浏览器标签中的网页 JavaScript)利用,从应用程序的其他部分提取窃取敏感信息,例如从另一个标签中获得个人详细信息。

根据英特尔的说法,其已经向公众发布针对变体 1 的缓解措施,这是最难解决的问题,因此利用变体 4 进行攻击要困难得多。换句话说,修补变体 1 漏洞会使变体 4 攻击网页浏览器,以及即时执行脚本和其他语言的类似程序变得困难。

到目前为止,没有已知针对变体 4 的代码扩散。

另外,研究人员还披露了一个漏洞 CVE-2018-3640:这是一个流氓系统寄存器读取,允许普通程序查看寄存器中的硬件状态标志等,这些标志本应只有操作系统内核、驱动程序以及管理程序访问。

漏洞工作原理

变体 4 被称为推测性存储旁路(speculative store bypass)。这是在无序执行工程界的另一个“等等,为什么我没有想到?”式设计。这个漏洞是 Google Project Zero 的 Jann Horn 发现的,他还是最早发现早期的 Spectre 和 Meltdown 漏洞的人。

这个漏洞的工作原理基于一个事实,即当面对大量将数据存储到内存的软件指令时,CPU 会在存储完成时预计是否可以进行任何其他无序执行。与其他指令相比,写入内存通常较慢。一个现代化的 CPU 不会被存储阻碍了进程,因此它会与此同时寻找有没有其他可以同时进行的任务。

如果处理器内核在程序推测时发现一条从内存中加载数据的指令,它将预测这个加载操作是否受到之前存储的影响。例如,如果存储正在写入内存,稍后从内存中提取,则需要先完成存储。如果预测可以安全加载,处理器会推测性地执行该操作,而芯片的其他部分则忙于存储操作和其他代码。

这种推测行为涉及将数据从内存拉入一级数据缓存。如果事实证明程序不应该在存储之前运行加载,那么放弃指令并重新启动已经为时已晚:基于取回的数据,缓存数据会被接触到,这留给恶意程序足够的机会接触提取数据。一遍又一遍地重复这个过程,你可以从应用程序的其他部分复制这些数据。例如,在一个浏览器标签中运行的 JavaScript 可以窥探其他标签中的网页。

Specter 这个名字的选择是有深意的:它就像一个在机器中时时观察的幽灵一样。通过观察由处理器的推测执行引擎更新的缓存,就可以识别隐私数据。通过尽可能地减少闲置的处理单元,这种推测对于尽可能快地运行芯片至关重要,但缺点是 CPU 可能被欺骗,从而向本应被禁止的应用程序和脚本泄露内存内容。

下面一段视频由 Linux 发行巨头 Red Hat 制作的视频展示了此缺陷的原理:

v.qq.com/x/page/v066…

英特尔、Arm 等做出回应

英特尔产品安全执行官 Leslie Culbertson 表示:“变体 4 利用的推测性执行是大多数现代处理器体系结构的共同特征,它可能通过侧通道暴露某些类型的数据。”

“在这种情况下,研究人员在基于语言的运行时环境中演示了变体 4,目前我们并没有发现通过浏览器窃取信息的案例,浏览器是最常用的运行时如在 Web 浏览器中运行的 JavaScript。“

“从 1 月份开始,大多数领先的浏览器提供商在其管理的运行时中为变体 1 部署了缓解措施。这些缓解措施大大增加了在 Web 浏览器中利用旁道的难度,同样也适用于变体 4,现在可供消费者使用。”

根据 Culbertson 的说法,英特尔和其他公司将发布新的微码和软件调整,以更全面地应对利用第四种变体的恶意软件。据悉,计算机和设备制造商正在对这些补丁进行测试。有趣的是,这些补丁会被默认禁用,大概是因为漏洞成功进攻的风险太低。这个漏洞修复很棘手,但也很难被利用。被默认禁用的另一个原因可能是,英特尔过去一直在努力推出稳定的 Spectre 更新。

“为确保我们提供的缓解措施全面并能有效防止其他方式的进攻,我们和行业合作伙伴正在为变体 4 提供额外的缓解措施,这是一个微码和软件更新组合,”英特尔执行官表示。

“我们已经向 OEM 系统制造商和系统软件供应商提供了测试版的变体 4 微码更新,预计将在未来几周内发布到生产 BIOS 和软件更新中。”

“这种缓解措施将被设置为默认情况下,让客户选择是否启用它。我们预计大多数行业软件合作伙伴也会使用默认关闭选项。在此配置中,我们没有观察到性能受到影响的现象。启用缓解措施后,我们观察到客户和服务器测试系统基于 SYSmark 2014 SE 和 SPEC 等基准测试的总体评分 会受到 2-8%的影响。”

Arm 的一位发言人在一份声明中称:

最新的 Specter 变体对一小部分 Arm Cortex-A 内核会产生影响,用户可通过 Arm 开发的固件更新进行补救,该更新可在 www.arm.com/security-update 上找到。与之前的 Specter 变体一样,这个变体只有在用户设备上运行特定恶意软件时才能进行攻击。Arm 强烈建议个人用户遵循安全措施,以防止恶意软件攻击,并确保软件更新到最新版本。

此外,今年 7 月,Arm 将向系统芯片设计人员提供针对 Specter 版本 2 的 Cortex-A72,Cortex-A73 和 Cortex-A75 内核的更新版本,Cortex- A75 将可以抵制 Meltdown,也就是变种 3。

AMD 的发言人称:

AMD 推荐的 SSB 推测性存储旁路] 缓解措施需要将操作系统更新到 Family 15 处理器(“Bulldozer” 产品)。有关技术细节,请参阅 AMD 白皮书(https://developer.amd.com/wp-content/resources/124441_AMD64_SpeculativeStoreBypassDisable_Whitepaper_final.pdf)。微软即将完成针对 Windows 客户端和服务器操作系统的 AMD 特定更新的最终测试和验证,这些操作系统预计将通过其标准更新流程发布。同样,Linux 发行商正在为 SSB 开发操作系统更新。AMD 建议您与操作系统提供商取得联系,以获取具体指导。

基于开发漏洞的难度,AMD 和我们的生态系统合作伙伴目前推荐使用默认设置来支持内存消歧

漏洞应对措施

Red Hat 今天发布了应对第四个变体的详细指南,解释了漏洞的影响以及工作原理,请参阅:

https://www.redhat.com/en/blog/speculative-store-bypass-explained-what-it-how-it-works

VMware 也提供了建议和更新:

https://blogs.vmware.com/security/2018/05/vmsa-2018-0012.html#

而 Xen Project 做出解释并提供了一个修复方法:

https://xenbits.xen.org/xsa/advisory-263.html

IBM 的发言人目前还没有表态。

小结

我们注意到,到目前为止,并没有发现恶意软件攻击芯片中的任何 Spectre 和 Meltdown 漏洞,更不用说这个最新的变体,这或许是因为广泛采取缓解措施让攻击者无从下手,或者这样做根本不值得,因为还有很多特权升级漏洞可以被利用进入内核和其他应用程序。

除此之外,还有各种尝试利用 Specter 系列设计缺陷的技术出现,例如本月早些时候(https://www.theregister.co.uk/2018/05/03/just_your_monthly_reminder_that_the_spectre_bug_is_still_out_there/ ),以及三月份两次披露的设计缺陷(https://www.theregister.co.uk/2018/03/01/us_researchers_apply_spectrestyle_tricks_to_break_intels_sgx/ )。

此外,为了利用这些缺陷,恶意软件必须在设备上运行,这并不是一件容易的事情,因为你得欺骗用户安装一些不好的代码。英特尔建议用户可以在闲暇时使用图形处理器扫描内存以检查软件缺陷,如利用幽灵进行攻击的恶意软件。

对于我们来说,这些芯片级的安全漏洞是洞察半导体设计的一次机会,在此案例中,对速度的一味追求导致存储器保护机制被遗忘在角落。而在操作系统和编译器设计的世界中,程序员们在保护内核和用户模式代码的安全上,还有很长的路要走。

原文链接:

https://www.theregister.co.uk/2018/05/21/spectre_meltdown_v4_microsoft_google/