幽灵漏洞

✍ dations ◷ 2025-10-22 17:52:08 #电脑安全,硬件漏洞,旁路攻击,X86架构,X86内存管理,程序错误,Intel x86处理器

幽灵(英语:Spectre)是一个存在于分支预测实现中的硬件缺陷及安全漏洞,含有预测执行功能的现代微处理器均受其影响,漏洞利用是基于时间的旁路攻击,允许恶意进程获得其他程序在映射内存中的数据内容。Spectre是一系列的漏洞,基于攻击行为类型,赋予了两个通用漏洞披露ID,分别是CVE-2017-5753(bounds check bypass,边界检查绕过)和CVE-2017-5715(branch target injection,分支目标注入),于2018年1月随同另一个也基于推测运行机制的、属于重量级信息安全漏洞的硬件缺陷“Meltdown”(熔毁)一同公布。由于该缺陷是推测运行机制导致的,加上不同处理器架构对推测运行又有不同的实现方式,因此这个缺陷无法获得根源上的修复而只能采取“见招拆招”式的方法防范,而且因机制所致,各种解决方案还有不可预料的性能下降。

CVE-2017-5753依赖于运行中的即时编译(JIT)系统,用于Javascript的JIT引擎已被发现存在此漏洞。网站可以读取浏览器中存储的另一个网站的数据,或者浏览器本身的内存。对此Firefox 57.0.4(部分)及Chrome 64通过为每个网站分配专用的浏览器进程来阻挡此类攻击;操作系统则是通过改写的编译器重新编译以阻挡利用该漏洞进行攻击的行为。

针对CVE-2017-5715,除了软件层面上进行修改以外,处理器也需要通过微码更新来阻挡这类攻击。

随着幽灵缺陷派生的安全漏洞(攻击手段变体,包括CVE-2018-3693、CVE-2018-3640、CVE-2018-3639等)被逐一发现,英特尔等CPU开发商不得不在修复既有缺陷的同时资助第三方信息安全团队继续发掘潜在的缺陷以破财消灾。

Spectre由Google Project Zero的Jann Horn独立发现,Paul Kocher(英语:Paul Kocher)协同Daniel Genkin、Mike Hamburg、Moritz Lipp和Yuval Yarom也合作发现了此问题。微软漏洞研究(Microsoft Vulnerability Research)则将此问题的波及范围扩展到了浏览器JavaScript的JIT引擎。2017年6月1日,受影响的硬件供应商知悉此问题。2018年1月3日,此漏洞与另一安全漏洞熔毁(英语:Meltdown)被一同公布。

Spectre是一个可以迫使用户操作系统上的其他程序访问其程序电脑存储器空间中任意位置的漏洞。

Spectre不是单个易于修复的漏洞,而是一类潜在漏洞的总和。它们都利用了一种现代微处理器为降低内存延迟、加快执行速度的常用方法“预测执行”的副作用。具体而言,Spectre着重于分支预测,这是预测执行的一部分。与同时披露的相关漏洞“熔毁”不同,Spectre不依赖单个处理器上存储器管理及系统保护的特定功能,而是一个更为通用的漏洞。

白皮书的出发点是,对分支预测机制进行边信道定时攻击,它是现代微处理器乱序执行的一部分。虽然,处理器的文档保证在架构级别,预测错误所导致的任何后果都会在得到正确结果之后取消,然而预测执行仍然有可能留下副作用,例如已加载的缓存线。这些所谓的非功能性方面随后便可影响计算环境。如果这种副作用(包括但不限于内存访问时间)对恶意程序可见,并且能设法与受害行程所保存的敏感数据产生关系,则这些副作用可能会使敏感数据可被识别。即使在架构级别,正式的安全设计能正常工作,这种情况仍然会发生;这种情况下,用于代码执行的、较低级的微架构优化仍然有可能泄漏对正常程序正确执行不是非常重要的某些信息。

Spectre论文展示了完成攻击的四个基本步骤:

Spectre和Meltdown之间的根本区别在于,后者依赖于现代英特尔处理器的特定功能:CPU可能会被诱使预测执行到受保护的系统数据中,被迫进入并处理相关的安全异常。Spectre中的统计学特征更为明显:尽最大努力以某种方式调教处理器的分支预测机制,并使用现有库中可用(或不可用)的代码来实现基本相同的事。

或者换句话说,正如Meltdown论文所说的那样:“Meltdown在几个方面与Spectre攻击有所不同,其中值得注意的是,Spectre需要定制受害者进程的软件环境,但适用的CPU更加广泛,并且KAISER对其无效。”

截至2018年,几乎所有的计算机系统都受到Spectre的影响,包括台式机、笔记本电脑和移动设备。具体而言,Spectre已证明可以在主要的Intel、部分ARM的处理器上工作,特定情况下则在AMD架构下能运作。英特尔正式回应了所报告的安全漏洞。根据AMD的一份声明,Spectre第二个变种没有发生在AMD处理器上,且由于AMD架构之间存在差异,“风险接近于零”。

目前,Spectre只会造成用户级别的程序互相影响,但似乎这种攻击方式可以进一步开发。虽然比熔毁更难正确使用,但由于它的一般性,Spectre可能会更加难以抵御。原来的白皮书甚至推测,为了完全处理这个问题,可能需要对微处理器体系结构进行重大改变。

而且,对于云提供商而言,Spectre比Meltdown影响更大。Meltdown可使未经授权的应用程序读取特权内存,并获取运行在同一云服务器上进程的敏感数据,而Spectre可让恶意程序诱使虚拟机管理程序将数据传输到在其上运行的客户系统。

由于Spectre是一整类的攻击,所以一个补丁很可能无法完全解决。虽然这个漏洞的一些特殊案例已经在处理,但专门介绍“Spectre”和“Meltdown”的网站也说:“Spectre不易修复,所以会长期困扰我们。”微软 Windows 系列操作系统于2018年初发布了系统补丁,英特尔公司于事件发生阶段反复表示修复漏洞对性能影响不大,但微软测试表明若安装Windows 7、Windows 8操作系统、并使用2015年或更早出厂的英特尔芯片,更新后会降低性能,也有说法是性能约下降30%,尤其是较旧的Haswell架构及之前芯片。但若是安装Windows 10并使用Skylake、Kaby Lake等之后更新版英特尔芯片,则性能下降状况并不明显。

尽管如此,已有几个程序帮助保护家庭计算机和相关设备免于“Meltdown”和“Spectre”漏洞的攻击。

嵌入在网站中的JavaScript也可用于攻击。Chrome 64将默认包含针对此攻击的缓解措施,Chrome 63用户可以通过启用站点隔离功能(chrome://flags#enable-site-per-process)手动缓解攻击。在Firefox 57.0.4中,Mozilla正在降低JavaScript计时器的精度,以帮助防止计时攻击,同时计划用于将来版本的时间模糊技术也在工作中。此外,基于浏览器的漏洞利用可以通过禁用JavaScript(例如NoScript)防止。

2018年1月4日,Google在其安全博客上详细介绍了新技术“Retpoline”,该技术能够以微不足道的处理器开销克服Spectre漏洞。它涉及在编译器编译时让间接分支跳转到不同的目标,减少易受攻击的乱序执行发生。虽然这项技术面向x86指令集开发,Google工程师认为该技术也可以用于其他处理器。2019年2月,Google研究人员发表论文认为光靠软件不能完全避开Spectre漏洞,必须对CPU设计进行修改才能避免。

也有人提出,在有选择性刷新转译后备缓冲器(TLB)功能的处理器上,可以减少修补漏洞造成的性能损失。该特性在Intel 64架构下称为进程上下文标识符(PCID),而在Alpha下称为地址空间号码(ASN)。这是因为,选择性刷新可隔离进程,及对漏洞至关重要的转译后备缓冲器(TLB)行为,而不会不断刷新整个TLB,这是性能损失的主要原因。

对于幽灵的变体2——分支目标注入,除了软件的规避阻挡措施外,还至少需要受影响的处理器获得微码更新或固件修复程序。受缺陷影响最大的英特尔已经为新近出货和一些较老的处理器推出微码更新,但是该措施通常需要主板厂商的配合,以便将处理器厂商提供的微码更新集成至其主板的BIOS/UEFI固件上,因此会出现一些较老的、早已不享有保固服务的主板没有获得微码更新的情况;而部分较老的处理器,也是未能获得微码更新。对于一些主板厂商未有发布带微码更新固件,但处理器厂商已经推出微码更新修复程序的,有的用户会尝试以更改主板固件的方式安装微码更新。

如果BIOS固件得不到更新,微码更新也可以由Windows/Linux等操作系统进行。

英特尔在其新出货的处理器上内置了对于阻挡利用该类缺陷进行攻击的微码更新,并在2018年下半年推出硬件层级上带特权隔离措施和行程隔离的处理器产品;ARM则是发布了针对受影响处理器核心的固件修复程序;AMD尽管宣称未受CVE-2017-5715的影响,但仍旧发布了相应的微码更新。

在Windows平台上有软件可侦测电脑硬件受Spectre、Meltdown影响的程度和修补状态。

相关

  • 首都之星首都客运股份有限公司,简称:首都客运。创立于1976年7月1日,前身为“三重市公车”,现为台北首都客运集团旗下之公司,主要经营新北市公车、台北市联营公车、宜兰县市区公车、花莲县
  • 铜人铜仁市是中华人民共和国贵州省下辖的地级市,位于贵州省东北部。市境南邻黔东南州,西接遵义市,北与重庆市毗邻,东与湖南省湘西州、怀化市相接。地处黔、湘、渝三省市交界之武陵山
  • Achatina fulica非洲大蜗牛(学名:Achatina fulica)是腹足纲动物,为陆栖蜗牛。俗名褐云玛瑙螺、菜螺。非洲大蜗牛也被列入世界百大外来入侵种之一。成体壳长一般为7-8公分,最大则可长到超过20公分
  • 黑暗观光黑暗观光(dark tourism),又称黑色旅游(black tourism)或悲情旅游(grief tourism),意指参访的地点曾经发生过死亡、灾难、邪恶、残暴、屠杀等黑暗事件的旅游活动。731部队关东军防疫
  • 新兴技术列表新兴技术列表,泛指当科技日新月异,在未来可能实用化或对人类造成重大影响的新兴技术。
  • 御鹿御鹿干邑(Hine),法国知名干邑白兰地品牌,1763年创立,其总部位于法国夏朗德省的雅尔奈克,因标志为一头栖息的雄鹿,故中文得名“御鹿”。御鹿干邑自1962年起,受英国女王伊丽莎白二世钦
  • FERTFERT,是萨伏依王朝使用的格言,亦是萨丁尼亚王国和意大利王国的国家格言,在维托里奥·阿梅迪奥二世(1666–1732)统治时期启用。FERT的真实意义不明,但是有多种解释,下面是其中的四个
  • 娘日归泥“娘日归泥”为章太炎提出,完成钱大昕于中古音上未成之理论。古汉语语音中,中古音是承上古音,开启下近古现代音的。中古音可分为两个时期,分别是“隋唐之际”的中古前期与“唐末
  • 东风街道 (保定市)东风街道,是中华人民共和国河北省保定市竞秀区下辖的一个乡镇级行政单位。东风街道下辖以下地区:公交社区、铁塔社区、周家花园社区、勘察社区、物探社区、西大园北街社区、邮
  • 张改平张改平(1960年12月26日-),河南内黄人,中国动物免疫学和免疫膜层析快速检测技术专家,河南省农业科学院副院长、河南农业大学校长、中国畜牧兽医学会理事、英国生物工程学会会员,河南