英特尔CPU被爆存在重大设计缺陷,几乎所有现代CPU,均不能幸免。而修正这一缺陷的补丁软件会影响到芯片性能,消息传出后,英特尔股票在周三开市前下跌2%,老对手AMD的股票则在开市前大涨7%,目前,英特尔回应称下周推送软件和固件解决问题,媒体报道不正确。
1月2日,Google Project Zero 在博客发文公布了一系列CPU漏洞信息,其中就包括在外网及云计算供应商中引起轩然大波的 Meltdown:该漏洞由硬件设计引发,在同一物理空间的虚拟用户A可以任意访问到另一个虚拟用户B的数据,包括受保护的密码、应用程序密匙等,该漏洞需要进行OS级别修复,同时将导致严重的性能下降。。。
漏洞详情
Meltdown 技术可以读取Linux、Mac OS 的整个物理内存和 Windows 的大部分物理内存。Linux 内核 2.6.32 ~ 4.13.0 的版本以及最新的 Windows 10 均受到影响。
可以读取其他进程的物理内存。即使在使用内核共享技术(例如 Docker, LXC)或者用 Xen 芯片的 paravirtualization 功能制作的沙箱中,也可以读取内核或 hypervisor 内存。
影响了大部分从 2010 年开始生产的Intel 芯片。在 ARM 和 AMD 芯片上的实验没有成功。
漏洞根本原因是“预测执行”技术的设计缺陷。
漏洞原理
为了提高处理效率,当代处理器内嵌有预测技术:通过预测下一条指令,处理器可以填满内部流水线,充分发挥运作效率。Intel的推测执行(Speculative Execution)技术是业界标杆水平,行业内所有公司都在向Intel靠拢,但是这个漏洞说明Intel的推测性执行在芯片内部的访存执行单元Load/Store Unit和重排序缓冲区ROB上存在安全检查漏洞,导致操作系统核心的安全保护出现问题,使得用户程序可以窥测内核数据,包括系统访问历史记录,密码等等隐私,同时会造成KASLR(Kernel Address Space LayoutRandomization,内核位址空间布局随机化)的无效化,导致攻击者可以推断出内核地址,进而发动攻击控制控制整个系统,造成严重的安全风险。受影响用户包括服务器环境、PC环境和移动环境。
该漏洞使得攻击者可以通过构造一段代码完成如下的利用过程:
使得一句需要访问受保护内存的指令本来永远无法达到,但是可能因为“预测执行”而提前执行。
该代码根据受保护的数据内容不同而访问内存中的不同位置。(例如如果 data 是想破译的数据,那么 prob_array[data*4096] 会根据 data 的不同而访问不同的内存页)。
芯片发现权限不足,因此回滚之前的操作,将状态恢复到那条指令执行之前的情况。然而,CPU中的内存缓存没有回滚。
攻击程序检测 prob_array 中的每个内存页取回数据的时间。如果某内存页的取回时间很短,说明该页在缓存中,是之前刚刚访问过的页面。从这个页面的下标就可以推断出 data 是什么。
如何修复
目前该漏洞的解决方案方案只有两个:进行OS级别修复或者购买重新设计的CPU。至关重要的一点是,OS级别的修补措施会对 Linux 和 Windows 系统在Intel 处理器上的运行性能造成影响。
目前 Linux 系统已经修复该漏洞,采用的方案被称为内核页表分离。主要功能是通过KPTI(Kernel Page Table Isolation)完全分离系统内核与用户内存,让系统使用另外一个分区表,使得用户程序无法访问系统内核。
漏洞具体影响
1、性能影响:
KPTI会导致CPU频繁地从内核模式切换到用户模式,引发耗时的TLB缓存刷新,拉低系统效能。根据初步测试,Intel CPU效能会降低5%-30%,相当于回退1~2代。举例来说,第八代的酷睿CPU打上补丁后的效能可能低于同档次的第七代的酷睿CPU。
目前phoronix已对此进行了测试,IO性能几乎下降了50%,编译性能下降了接近30%,postgresql和redis也有差不多20%的性能下跌。
2、个人用户:
对于个人用户来说,本次漏洞在大部分使用场景下的影响并不严重, CPU 性能下降带来的换机需求除外......
3、云计算服务商:
本次的漏洞会影响所有的云厂商,包括但是不限于Amazon、Microsoft、Google等巨头。
如果漏洞被利用,那么在同一物理空间的虚拟用户A可以任意访问到另一个虚拟用户B的数据,包括受保护的密码、应用程序密匙等。让人担心的是,已经有迹象表明有黑客在利用本漏洞攻击云系统。短期来看,云厂商的服务成本或有较大提升。
由于云平台应用了大量的虚拟化技术,这些补丁比针对个人电脑的补丁更为复杂,由于云厂商的服务器拥有极高的数据吞吐,补丁对服务器系统效能的影响会比对PC更为严重。
目前他们是如何应对的?
英特尔CEO科再奇(Brian Krzanich)日前表示,谷歌是第一家向英特尔发出漏洞警告的公司,谷歌随后会发布完整的报告,目前,受影响的各家已经行动起来。
微软公司在声明中表示:“我们了解到这个影响整个行业的问题,而且与芯片厂商展开了密切合作,开发和测试各种方法来保护我们的用户,我们正在向云服务中部署解决方案,还发布了安全更新,这一漏洞会对英特尔、ARM和AMD等公司的硬件产生影响,我们尚未收到任何关于利用该漏洞攻击用户的消息。”
此外,亚马逊宣布,旗下云服务中的弹性计算云系统(EC2)已修补相关漏洞,剩余的部分将在几小时内被修复,并提醒用户需要为操作系统打补丁。
还有业内人物表示,苹果系统尚不会受到影响,他们早在去年12月的macOS 10.13.2中就已经从一定程度上解决了这个问题。
4、运维工程师:
对于运维工程师而言,当务之急是将Linux系统内核升级至最新版,防止即将到来的一大波攻击。
未来一段时间服务器性能下降不可避免,运维工程师需要提前做好准备。
最后,附上英特尔的声明全文:
英特尔和其他科技公司已经了解了新的安全研究结果,其中描述了一些软件分析方法。一旦遭到恶意使用,这些方法就有可能地从正常运转的计算设备中不当收集敏感数据。英特尔认为这些漏洞不会破坏、修改或删除数据。
最近有报道称,这些漏洞是由专属于英特尔产品的“漏洞”或“缺陷”造成的。这种说法并不正确。从目前为止的分析来看,许多类型的计算设备(包括采用许多不同供应商提供的处理器和操作系统的设备)都很容易受到这些问题的影响。
英特尔致力于提升产品和客户的安全,并与包括AMD、ARM和多家操作系统供应商在内的许多其他科技公司密切合作,以开发一种全行业的方法来迅速而有建设性地解决这个问题。英特尔已经开始提供软件和固件升级,以减轻这些漏洞的影响。与一些报告相反,任何性能影响都取决于工作负载,对于普通的计算机用户来说,感受应该并不明显,而且会随着时间的推移而减轻。
英特尔致力于以业内最负责任的做法来披露潜在安全问题,这也是英特尔与其他供应商计划在下周公布更多的软件和固件更新的原因。然而,由于目前的媒体报道不够准确,所以英特尔公司选择在今天发表这一声明。
请与您的操作系统供应商或系统制造商联系,并尽快使用任何可用的更新。遵循良好的安全习惯,全面防范恶意软件,也有助于在获得更新之前防止可能出现的问题。
英特尔相信,我们的产品是世界上最安全的产品,而在合作伙伴的支持下,目前针对该问题出台的解决方案也为客户提供了最好的安全保障。