用户注册 登录
珍珠湾全球网 返回首页

岳东晓 -- 珍珠湾全球网 ... http://ydx.zzwave.com [收藏] [复制] [分享] [RSS] 岳东晓 -- 珍珠湾全球网

日志

INTEL处理器被爆致命设计缺陷

热度 2已有 913 次阅读2018-1-4 12:44 |个人分类:计算机|系统分类:科技

最近两天,英特尔(INTEL)处理器被曝存在极大的安全隐患,波及INTEL过去20年几乎所有的产品。这个称为Meltdown(熔断) 的攻击使普通用户程序能够阅读全部系统内存的信息,包括操作系统核心的信息。即使用户程序是在虚拟机(VM)下运行,利用 INTEL CPU的这个漏洞,它能跨越所有安全防护,阅读其他虚拟系统的内存。如果一个用户在云服务上租用一个 VM ,利用这个漏洞就可以读取其他客户虚拟机的任何信息。相关的演示程序表明,Meltdown 攻击程序每秒钟通过 INTEL的漏洞可以读取100K内存,几乎能够实时截获密码等信息,而且不留任何痕迹。相关的论文以及相关代码参见文末链接。


Untitled - 1.jpg
(上图:Meltdown 密码截获测试程序)

由于这个缺陷是在 INTEL 芯片指令执行的固定逻辑部分,无法通过更新microcode 等方式解决,而更新操作系统将导致10%-35%的性能损失。整个美国IT业界发生大震荡。

现代CPU与操作系统在理论上能够防止一个程序读取另一个程序的内存信息,尤其是能够防止用户程序读取操作系统的内存信息。当用户程序试图进行非法内存读取的时候,处理器硬件会制止这种操作的发生,并中断用户程序。但INTEL的指令执行引擎允许猜测性执行(speculative execution)未经检测的指令,事后才进行读取合法性检查,如果发现读取非法,则将结果清零。这样做的目的是加快运行速度,而且最终的结果也没有问题。在友善的环境下,访问都是合法的,INTEL的这一设计似乎是聪颖的技巧。不幸的是,在残酷的现实中,这一幼稚的捷径产生了一个极大的漏洞。

Meltdown 攻击的工作原理是,用一个指令读取目标物理内存的字节,并在下一个指令访问基于这个字节数据的地址。由于这一非法指令的猜测性执行导致 处理器高速缓存 Cache 的变化,虽然这个指令的结果最终被清除,但是其运行改变了相关数据的读取速度。根据读取速度变化的蛛丝马迹,可以推导出目标内存的内容。这一系列操作看似复杂,但写成代码只是一个很小的程序。

注意上述攻击不是基于任何软件漏洞,而是INTEL处理器最核心的执行机制。为防堵这个漏洞,LINUX操作系统不得不对系统内核进行大规模改动,将操作系统的虚拟内存空间与用户内存完全分开。但这一称为 KPTI (内核页表隔离)的修补使系统调用变得非常昂贵,导致可能高达 35%的性能损失。而英特尔的官方声明似乎在推卸责任,LINUX创始人 Linus Torvalds 因此极为震怒

INTEL的竞争对手AMD 宣布 “Zero AMD vulnerability due to AMD architecture differences.” AMD的处理器在执行前事先进行合法性检测,不允许类似的非法猜想执行,因此AMD处理器不受 Meltdown 攻击的影响AMD开发人员 Tom Lendacky <thomas.lendacky@amd.com> 在 LINUX的内核中插入了下列代码
+if (c->x86_vendor != X86_VENDOR_AMD)
+setup_force_cpu_bug(X86_BUG_CPU_INSECURE);
也就是说,如果处理器厂商不是AMD,才启用漏洞修补机制。这一代码已经被审核接受
另据报道,INTEL首席执行官 Krzanich 在数日前抛售了其所持几乎全部 INTEL股票
由于Meltdown 属于可以避免的设计缺陷(design defect),根据美国法律,INTEL可能对由此造成的损失负有严格责任 (strict liability)。

Meltdown论文链接: https://meltdownattack.com/meltdown.pdf

1

路过

鸡蛋
1

鲜花

支持

雷人

难过

搞笑

刚表态过的朋友 (2 人)

 

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 用户注册

Archiver|手机版|珍珠湾全球网

GMT+8, 2018-4-24 03:32 , Processed in 0.027707 second(s), 8 queries , Apc On.

Powered by Discuz! X2.5

回顶部