过去十年间的Intel处理器都有重大安全漏洞
Freez Sun @ 2018.01.05 , 11:00 上午把事情搞砸了也是要分大小的。这就是个把特别重大的事儿搞砸了的例子:看起来,所有过去十年间生产的Intel处理器都有一个重大的安全漏洞,能够允许“正常的用户程序——从数据库软件到网页浏览器中的JavaScript脚本——在某种程度上获取受保护的内核内存中的内容和布局”the Register在周二的报道中写到。
换句话说,所有的“现代”Intel处理器都有一个设计缺陷,能够让恶意软件读取受设备内核内存(内存中专门用于操作系统核心部件与系统硬件交互的部分)中受保护的区域。这个漏洞可能让类似密码这样的机密信息暴露给恶意程序。但是由于这个错误深植于Intel的x86-64硬件中,所以必须要由一个操作系统级别的补丁来修复——所有的主流操作系统都逃不掉,不管是Windows、Linux还是macOS。
这个设计缺陷的详细情况,以及到底什么样的情况容易收到攻击的相关信息仍然没有被披露,但是根据各种报道中开发者们在未来几周里疯狂地给操作系统打补丁的状况来看,情况应该非常糟糕。在最坏的情况下,简单到一段网页上的JavaScript脚本或者托管在云上的某个恶意软件就能够在那些Intel设备上获取最敏感的信息。
credit:锐景创意
由于修复这个漏洞需要把内核内存和用户的进程完全隔绝,打过补丁的操作系统可能会有重大的性能下降,“根据任务和进程的类型不同,会慢上5%-30%”。
这些KTPI(Kernel Page Table Isolation,内核页面表隔离)补丁把内核挪到了一个完全分离的地址空间,所以对于那些运行中的进程来说,内核不仅仅是不可见了,而是根本就不在原来的地方了。本来这完全是不必要的,但是Intel硅片上的设计缺陷能够让其他对内核的防护措施都以某种方式被绕过,所以还有什么办法呢?
这种隔离措施的缺点在于,从时间上讲它太昂贵了。每一次系统请求或者有来自硬件的中断请求,操作系统都必须在两个不同的地址空间中切来切去。这种切换是有时间成本的,让处理器不得不丢弃缓存内容并重新从内存中读取信息。这大大增加了内核的开销,最终会拖慢整个计算机。
结果就是,你那些贴着Intel Inside的机器会跑的比原来慢上不少。
5%-30%的性能下降是个令人瞪目结舌的数字,但是由于许多细节都没有披露,所以也不好说对于普通的用户来说这种影响到底有多大——而影响最大的可能会是云计算这种企业级应用。对于普通用户来说,有可能影响会小到可以忽略不计。也有可能在未来的补丁中会有更好的解决方案来减小这种性能下降。
“最近,Linux的开发者都在进行一项紧急的软件更新,并且在最近把更新合并进了Linux内核。”Python Sweetness blog在周一的一篇文章中写到,“去年十一月,NT内核也进行了类似的内核修复工作。”“在最坏的情况下,这些软件更新可能在日常的工作负载中造成巨大的性能下降……最近的一些动向暗示这个漏洞可能影响了一些常见的虚拟化环境,比如Google Compute Engine和亚马逊的EC2。”
还有一个问题在于,人们花了十年才找到了这个Bug,那么是不是在之前会有人发现了它但是秘而不宣呢?至少,那些用着AMD处理器的小众分子们终于可以难得的得意一把了。
本文译自 GIZMODO,由 Freez Sun 编辑发布。
PREV : 为何我们会下新年决心
NEXT : 跟年轻人换血,能不能返老还童?