关于2018年1月的规范性问题披露了熔毁和幽灵攻击。其他相同或明显相似的问题也应作为该问题的副本予以解决。


主要问题


什么是投机执行及其作用
Meltdown和Spectre有什么区别?


Meltdown如何工作?
Spectre如何工作?


如何保护自己?
KPTI / KAISER补丁程序足以保护我的计算机吗?
该补丁程序声称会导致性能损失;是真的吗这意味着什么?
如果我担心性能下降,可以/应该禁用新补丁吗?有什么风险?
哪些平台和CPU容易受到攻击?
我正在运行虚拟机/容器;我在多大程度上容易受到攻击?
我可以在计算机上检测到Meltdown / Spectre攻击吗?
这些攻击是否是远程执行代码漏洞?
我是否需要修补软件/网站?
访问网站时会受到影响吗?
能用图片解释吗?

参考文献:


融化研究论文
Spectre研究论文
CERT公告
CERT崩溃和Spectre侧通道漏洞指南


评论

此外,还有两个(可能很容易回答)问题:SPARC v7和v8 CPU(32位)是否安全,独立于OS? (我是这样认为的,但我对SPARC并不十分了解。)英特尔80486级和P5级CPU(以及有序的Atom)是否也可以从Spectre或仅从Meltdown中获得保护?

@mirabilos我已经读过SPARC系统容易受Spectre攻击,但不容易崩溃,而且许多人怀疑Oracle是否会修补SPARC或Solaris,因为他们不再雇用这些团队了。根据我所读的内容,所有使用推测执行的处理器都容易受到Spectre的攻击,其中包括Intel,SPARC,ARM和AMD。崩溃只会影响英特尔。

@ToddWilcox我了解Meltdown,但是我仍在尝试收集有关Speculatius(即Eh Spectre)的足够信息。我所说的SPARC系统主要是由Sun / TI / Fujitsu / Ross / Cypress在1990年代生产的32位SPARC v7和v8,而不是Sun / Oracle等生产的“ UltraSPARC” v9 SPARC64。在网上绝对找不到有关哪些CPU具有推测执行力的信息;虽然这篇文章很有帮助,但是我认为许多较老的都不会受到影响。

不仅有趣:xkcd.com/1938

@ F.Hauri:现在很清楚,基本安全实践的重要性:xkcd.com/1200。

#1 楼

这个答案只是试图解决主要问题。这里的细节可能不是示例性的准确或完整的。我会尽可能地链接到更详细的说明。

什么是推测执行,它有什么作用?

推测执行是现代处理器的一个特性,它随着优化。为了允许将指令并行处理到处理器流水线中,可以使用诸如分支预测,值预测或内存预取之类的技术提前处理指令。然后可以无序执行指令。

这是一种通过正确预测接下来发生的事情而不是保持处理器空闲来获取时间的方法。当预测失败时,指令将回滚。

Meltdown和Spectre有什么区别?

Meltdown漏洞在全球范围内比Spectre易于实现。

融化利用乱序指令中的内存读取优势,Spectre作用于分支预测机制。

Spectre允许跨进程/进程内公开内存,Meltdown允许向用户空间进程公开内核内存(通常不可访问)。

Meltdown具有已知的缓解措施。

两者都依赖于缓存侧通道攻击,这是对访问某些内存块以推断原本未知的信息时时序差异的一种度量。

Meltdown如何进行简而言之,Meltdown的工作方式是要求处理器加载用户空间程序不应该访问的内存。内存以乱序方式读取并放入缓存。在缓存上使用旁道攻击(执行时间测量),可以推断该内存位置的值。

Spectre如何工作?

Spectre在不同级别上工作,并且不允许从用户空间访问内核空间数据。在这种攻击中,攻击者欺骗了投机执行以预测性地错误执行指令。简而言之,预测器被强制预测特定的分支结果(如果-> true),这将导致请求超出受害者进程通常不会请求的内存访问范围,从而导致错误的推测执行。然后通过辅助通道检索此存储器的值。这样,属于受害进程的内存就会泄漏给恶意进程。

如何保护自己?

更新操作系统和/或管理程序。

主要的操作系统发行商已经发布了补丁,以实现KPTI / KAISER行为。这是一种通过删除内核的用户内存映射来减少攻击面的方法,该用户内存映射对于处理器正常运行不是严格必需的。

微代码(固件)更新可能会在某个时候发布。

KPTI / KAISER补丁足以保护我的计算机吗?

否。而且它仅涉及Meltdown。

问题在于处理器的体系结构设计。为了完全解决问题(对于Spectre,甚至部分解决),至少需要更新固件。没有这种设计缺陷的处理器也有可能必须被更新的型号所取代。

该补丁声称会导致性能损失,是真的吗?是什么意思?

是的,但是造成的损失取决于软件工作流程。据称损失可能介于5%到30%之间,具体取决于系统调用对软件的依赖程度。据报道,具有较高的内核到用户空间转换的基准(例如数据库)受到的影响最大。

这仍在调查中,已经进行了初步报告(请参阅链接)。
但是,由于影响因应用程序而异,因此您应该测试环境中的性能影响,而不要依赖于通用基准。

初步结果(独立于??):


Phononix 1
Phoronix 2
RedHat

官方公告:


微软公告
英特尔公告
Apple

如果我担心性能下降,可以/应该禁用新补丁吗?有什么风险?

否。您可以,但是绝对不建议这样做。

首先,如果您要管理其他人的数据,则会使客户容易受到数据盗窃的影响。

然后,性能损失仍然必须正确评估,并且在很大程度上取决于您的特定工作流程。这并不是30%的性能下降。

应该禁用KPTI,冒着泄露机密数据的风险。

哪个平台以及哪个CPU容易受到攻击?

大多数Intel CPU都容易受到这两种攻击的攻击。 AMD CPU似乎仅受Spectre影响。某些ARM Cortex处理器会受到影响,而所有其他ARM处理器均不会受到影响。

(请参阅链接以获取详细信息)。

我正在运行Virtual机器/容器,我在多大程度上容易受到攻击?

根据Steffen Ullrich的回答


Meltdown攻击不会穿越虚拟机,只会将内核内存泄漏到本地进程。
Spectre可以跨虚拟机工作。

再次,从Steffen来看,Meltdown和Spectre可以与容器一起工作,因为容器依赖于主机内核。

我可以吗?是否检测到我计算机上的Meltdown / Spectre攻击?

即使可能,也很难。

Meltdown和Spectre都使用CPU的设计属性,该属性始终由无害程序触发,因此除了良性程序之外,很难区分恶意程序。

这些攻击是否是远程执行代码漏洞?

不是。

为了能够应用此攻击,攻击者需要能够在目标主机上执行代码。但是请注意,如果将这些与其他攻击媒介(例如文件上传或跨站点脚本利用)结合使用,则可以远程执行它们。

我是否需要修补软件/网站?

在理想世界中,没有。

实际上,一些浏览器供应商已经实施了降低时间精度的措施,以缓解侧通道攻击。 KPTI应该已经为使用本机系统调用的程序提供了足够公平的修复。

访问网站是否会受到影响?

是的,已经有一个Spectre的Javascript利用概念证明(仅)。

您可以用图片解释吗?

否,但是Randall Munroe可以:



[来源XKCD:https:// xkcd .com / 1938 /]

评论


@ scohe001:简化了解释。问题在于,CPU无法正确验证对以推测方式无序执行的代码的访问限制。请记住,推测性执行意味着执行代码的结果很有可能被丢弃,因此延迟昂贵的访问限制检查似乎很有意义。结果是,在CPU丢弃推测性执行的代码时,内存访问已经发生。第二个问题是CPU仅清除直接...

–Jörg W Mittag
18年1月5日在20:29

可观察到的,当它回滚推测执行的代码时。研究人员现在发现的是一种间接观察英特尔(可能还有许多其他厂商)的工程师认为无法观察到的东西的方法。特别是,从缓存访问数据要比从内存访问数据快,因此,通过测量访问特定数据所花的时间,攻击者可以知道哪些地址在缓存中,哪些地址不在缓存中。

–Jörg W Mittag
18年1月5日在20:31

漏洞利用的工作方式是,推测代码将其非法读取的数据编码到一个地址中,该地址将被缓存,然后漏洞利用代码可以通过计时找出缓存了哪个地址。让我们看一下如何窃取一位数据:推测性代码从内核读取一位数据,并根据该位是什么,它加载地址0xdeadbeef或地址0xc00ffee。现在,所有内容都会按原样回滚,只是缓存了访问“读取器”代码的任何内存。现在,漏洞利用程序只需要读取这两个地址,然后查看哪个……

–Jörg W Mittag
18年1月5日在20:34

回来更快。因此,诀窍在于,以推测方式执行的代码1)从其不应访问的地址中读取一些值,2)将值编码为其有权访问的地址,3)读取该地址以便将其缓存。然后,“普通”代码读取所有可能的地址(如果我们要通信1个字节,则为256个地址),然后查看哪个返回比另一个更快,然后知道该地址处的字节是什么。重复一遍又一遍,您最终可以读取整个内存空间。

–Jörg W Mittag
18年1月5日在20:37

@aroth这将是规范的“问题”。如果您可以针对每种攻击提供非常详细的说明,建议您添加一个新答案。我的答案是尝试使此漏洞更清楚地传达给所有人,包括不懂安全的人。

– M'vy
18年1月6日在10:44

#2 楼

简单提示

除了M'vy的出色答案,我还想回答这个问题:

为了安全起见我该怎么办?


Spectre,Meltdown和Rowhammer是CPU概念性错误,因此无法通过软件更新正确地进行修补。这意味着:实际的软件补丁程序实际上会降低任何系统(Windows,MacOS的Linux)的整体性能。

这些错误还涉及隔离。知道:


现在,所有隔离功能(sandbox, containers, virtual hostusers privileges)都应加注意!


是正确的思维方式! />
现在有用的旧安全习惯,例如:


所有敏感应用程序都位于物理专用主机上,
每个敏感客户都拥有一个物理主机(针对提供商),
在单独的(专用)主机上存储重要数据(如备份)和敏感数据(如密码或任何机密)。
浏览专用主机上的网络,并在完全重启台式机或更好后进行银行业务:




如果使用不同的硬件主机进行隔离,则可以安全地使用推测性执行和所有其他不错的功能(即使使用其他功能,现代CPU提供的已知错误)。

(如果这样,升级可能不是更好的方法... ;-)

为什么我认为硬件分离/专用

看看这次旅行,发表于2013年4月17日! (不到五年前;)

来源:xkcd.com/1200



评论


您能否详细说明您的最后声明?我不确定这是否是正确的,我倾向于不同意/投反对票。

–汤姆·K。
18年1月12日在13:27

@Tom如果您的安装被硬件正确隔离,那么通过升级软件,您只会降低性能。因此,对于这种情况(仅在这种情况下),不使用补丁程序可能会使您的系统快速运行……当然,如果您打算将同一桌面用于网络冲浪和银行业务,则您的配置不符合此要求!

– F. Hauri
18年1月12日在14:40

@Tom ...并且:由于错误是硬件,因此更改软件是错误的答案。 (计划要求您的提供者更换CPU,而这必须是“更高的保修”!;-)

– F. Hauri
18年1月12日在14:42

“每个明智的海关(对于提供商)都有一个物理主机”-嗯,什么?

–通配符
18年1月16日在1:44

我认为他表示对所有情况下的“明智”都敏感,而“海关”应该是客户。

–JDługosz
18年1月16日在15:02

#3 楼

此答案特定于Spectre Next Generation攻击,将在有新信息时尽快进行更新。

5月22日更新:

第一个补丁程序即将发布,以此类推。以下是有关新漏洞的更多信息:

英特尔于2018年5月21日发布了此声明,它将使您对Spectre变体3a和4有了一个很好的概述。
各自的CVE是:



CVE-2018-3639-推测存储旁路(SSB)–也称为变体4

CVE-2018-3640-恶意系统寄存器读取( RSRE)-也称为变体3a

过去10年中制造的几乎所有英特尔处理器都受到这两个漏洞的影响。微码更新已提供给OS供应商,因此应尽快向客户提供。如果Linux用户最近更新了他们的内核,并且他们的发行版使用retpolines,则应该是安全的。[如果需要了解更多技术细节,请参阅英特尔白皮书,该白皮书分析了推测性执行方面的渠道-该版本在Spectre和Meltdown攻击曝光后发布-现已扩展至涵盖变体3a和4。这本涵盖缓解措施的白皮书也是如此。

进一步阅读:Jann Horn的原始披露mailAMD说他们的产品都不易受SSBARM博客帖子Debian安全跟踪器英特尔博客
微软对SSBRed HAT CVE DBRed Hat漏洞响应的分析SUSE安全博客Ubuntu安全声明美国CERT漏洞noteVMWare Knowdlege基础文章


5月7日更新:

技术细节的计划发布已推迟到至少5月21日,甚至可能更长,因为英特尔无法完成所需产品的开发微码更新。
但是今天发布了一些新信息,列出了可能受到八个新漏洞中的至少两个漏洞影响的处理器:


自2010年以来的所有iX处理器和各自的Xeon衍生产品(也受“ 6”中描述的漏洞的影响)
自2013年以来基于Atom的奔腾,赛扬和Atom处理器

这些首批处理器类型通常在台式机,笔记本电脑中使用和服务器。第二种用于平板电脑,智能手机和嵌入式设备。
还没有CVE,也没有醒目的名称。


5月3日,德国杂志-专门从事IT领域的研究人员-据报道,研究人员在Intel CPU中发现了另外8个漏洞,所有这些漏洞均会导致类似Spectre的攻击。所有这些新漏洞都基于与Spectre V1和V2利用的漏洞相同的设计缺陷。

第一份涵盖这些缺陷的技术性深入报告可能会在5月7日由Google Project Zero发布。但是,其他研究人员或独立团体有可能会更早发布报告。

到目前为止我们知道的信息:


有八个新漏洞。
/>每个人都会获得自己的CVE。
每个人都需要自己的补丁。到目前为止,关于补丁开发进度的知识很少。根据c't的说法,英特尔计划进行两次补丁程序更新:一次在5月,另一次在8月。
尚无受影响的处理器的列表。英特尔处理器可能在很大程度上受到影响。一些ARM CPU似乎也受到影响。到目前为止,尚不清楚AMD CPU是否受到影响。
英特尔将八个漏洞中的四个分类为“高风险”,另外四个分类为“中等风险”。
据称,其中一个新的外伤使跨系统攻击非常容易。攻击者可能能够从源VM攻击主机系统或其他VM。对于云提供商而言,这尤其危险。以前可能会发生这样的攻击,但它非常复杂。新漏洞似乎更容易利用。所有其他攻击媒介似乎都与Spectre V1和V2非常相似。

结论:到目前为止,我们所知甚少,我们所知道的仅仅是新漏洞的抽象描述。 Spectre和Meltdown是非常复杂的攻击,潜在的漏洞也同样复杂。在接下来的几周内,所有技术细节都将慢慢渗入到讨论中。但是CPU供应商知道了,他们和内核开发人员似乎已经在研究解决方案。有耐心。

来源:https://www.heise.de/ct/artikel/Super-GAU-fuer-Intel-Weitere-Spectre-Luecken-im-Anflug-4039134.html