Intel CPU 爆出安全漏洞:Windows / macOS / Linux 皆中招

14,892 阅读4分钟

漏洞提要

一句话解释:不修复该漏洞会导致低权限应用访问你的密码等私密数据,修补这个漏洞会导致设备性能 5% - 30% 的下降,IO 性能下降50%,编译性能下降30%。

据 TheReg 报道,Intel 处理器的一项设计 BUG 近日披露,涉及从数据中心应用程序到 JavaScript 支撑的 Web 浏览器,操作系统则有 Windows、Linux、macOS等。

TPU称,亚马逊、微软和谷歌是三个受影响最深的云计算厂商,如果漏洞被利用,那么在同一物理空间的虚拟用户A可以任意访问到另一个虚拟用户B的数据,包括受保护的密码、应用程序密匙等。

漏洞来源:lkml.org/lkml/2017/1…

漏洞影响

  • 漏洞会导致低权限应用访问到任意内存区域,包括内核内存。

  • 漏洞是硬件设计导致的,无法使用microcode修复,只能进行OS级的修复。

  • OS级的修复会导致严重的性能问题,将会导致5%-30%的性能下降。

  • 目前 phoronix 已对此进行了测试,IO 性能近乎下降了50%,编译性能下降了接近30%,postgresql 和 redis 也有差不多20%的性能下跌。

  • AMD不受此漏洞影响,应该股票会涨一波。

如何修复

  • 芯片微码更新不足以修复漏洞,必须修改系统或者购买新设计的 CPU
  • 目前 Linux 解决漏洞的方案是重新设计页表(KAISER 技术)。之前普通程序和内核程序共用页表,靠 CPU 来阻止普通程序的越权访问。补丁的方案是让内核使用另外一个页表,而普通程序的页表中只保留一些必要的内核信息(例如调用内核的地址)。这个方案会导致每次普通程序和内核程序之间的切换(例如系统内核调用或者硬件中断)都需要切换页表,引起 CPU 的 TLB 缓存刷新。TLB 缓存刷新相对正常指令来说是非常耗时的,因此会降低系统的效率。
  • KAISER 技术对系统性能的影响一般是 5%,最高可达 30%。一些高级的芯片功能(例如 PCID)可以支持其他的修补方式,从而减少性能影响。Linux 已经在 4.14 版本的开发过程中添加了对 PCID 的支持。
  • 在 Linux 系统中,KAISER 只有在受到影响的 CPU 型号上才会启用,因此 AMD 芯片不受影响,且用户可以通过手动修改补丁开关的方式关闭 KAISER。

修复进展

  • Linux 社区的开发者们因此修改了 Linux 的虚拟内存系统,但是代码注释被缩减,以隐藏漏洞的详细信息。
  • Windows 预计在本周四发布相关补丁,且补丁已经在去年十一月、十二月的 Windows Insider 版本中发布给了测试用户。
  • macOS 也需要进行升级。

漏洞影响

  • 根据 AMD 在 Linux 内核邮件列表里发送的邮件,AMD 芯片没有发现这样的漏洞
  • 漏洞导致普通程序可以获得受保护的内核页表信息,进而导致一些内核保护机制(例如 KASLR,即内核地址空间布局随机化)可能被攻破
  • 微软 Azure 云服务将在 1 月 10 日进行维护并重启,人们猜测可能是为了修复这个漏洞。
  • Amazon Web Services 通过邮件通知客户,本周五会有一次重要的安全更新。

漏洞后续

安全人员强调这是一个x86-64处理器的设计缺陷,已经存在了逾十年。不过,AMD不受影响。

性能测试

IO 性能下降了50%

SSD 测试性能下降 15%

编译性能下降了近30%

Postgresql 性能下降20%

Redis 性能下降20%

原文参考