[1938] Meltdown and Spectre

Title Text:New zero-day vulnerability: In addition to rowhammer, it turns out lots of servers are vulnerable to regular hammers, too.<

Origin:https://xkcd.com/1938/

https://www.explainxkcd.com/wiki/index.php/1938:_Meltdown_and_Spectre

这部漫画的灵感来自某些处理器中发现的Meltdown和Spectre漏洞。这些漏洞在本漫画的一周内向公众披露。这些错误源于投机执行的有缺陷的实施,并且因为它们打破了在同一台计算机上同时执行的程序之间的“墙”,在某些情况下允许恶意软件窃取正常的,无错误的程序的秘密。

推测执行是一种用于加速计算机程序执行的技术。处理器通过一系列步骤处理指令,例如装配线。处理器处理几个连续的指令,每个指令在装配线的不同阶段。在执行完成该决定的逻辑之前,它可以开始推测性地执行遵循特定决策结果的指令。做出决定后,它会保留所选路径的结果,并丢弃不必要的结果。这允许它在做出一些较慢的决定时继续做有用的工作。

在Meltdown和Spectre错误中,推测执行指令的结果不会被完全丢弃,从而允许它们影响程序逻辑应该阻止的事情。

马尾辫一般使用手推车问题和小车(电车)轨道,作为程序中指令流的类比。小车问题是一个思想实验,一个失控的小车正驶向你控制的开关。让开关保持原样将导致它杀死卡在轨道上的多个人(通常是5个),但是切换轨道将导致它只杀死一个人,如果交换机保持不动,他们就不会死亡。这造成了被动地造成多重死亡的道德困境,而非积极造成死亡。手推车问题获得了显着的模因牵引力,这在很大程度上得益于其经常包含在“哲学引入”类课程中。随着自动驾驶汽车的出现,这个问题已经引起了人们的兴趣,而自动驾驶汽车在紧急情况下可能会面临这样的选择。

作为同时执行多个互斥路径的类比,马尾辫引用了量子力学的某些解释,其中量子能级粒子可以被视为一次采取每条可能的路径,结果是所有路径的总和。这是由薛定谔猫的共同解释所推广的想法,其中猫既死又活,直到一些事件导致其中一个州被选中。

通过墙壁驱动的幻象小车是类似于计算机指令能够访问应该受到保护的存储区域。这也可以是量子隧穿的参考。

在许多情况下,与漫画所暗示的相反,在推测性执行期间不会同时采用这两条路径。可以使用分支预测器来选择最可能的路径,并且如果预测的路径不正确则应该完全擦除效果。分支预测和采用两条路径(称为急切评估)都被视为推测性执行,并受这些错误的影响。

在这部漫画出版之前,Row锤问题已经有很多年了。一种常见形式的计算机存储器由以行和列的二维网格组织的微小电容器构成。电容器存储电荷以表示信息。通过应用快速更改一排电容的存储器访问模式,可能会导致电荷溢出到附近的行并错误地更改其状态。

马尾辫提到我们特别厌倦建立“共享计算机”,因为Row hammer,Spectre和Meltdown都打破了程序之间和用户之间建立的安全部门。在单独的帐户中运行单独程序的黑客不应该能够访问您的数据或更改程序的行为,但这些问题允许他们这样做。这对于分时,服务器和云来说尤其危险,因为不同的程序,网站甚至公司可以共享相同的硬件。

Cueball从字面上理解了她的解释,并得出结论,云“充满了带锤子的幻影手推车”,并且马尾辫不能打扰纠正他。 Cueball的最后一句讽刺意味着可以通过简单的软件更新来修复这些漏洞。这似乎是在模仿软件可以弥补有缺陷硬件的天真误解。然而,这个漫画中讨论的漏洞并不是简单的疏忽,而是反映了现代处理器设计中的基本问题。零日漏洞是利用尚未发布的漏洞的攻击,因此不会在任何易受攻击的系统中进行修补。标题文本表明,在这里“披露”之前,没有人知道除了Row锤之外,计算机服务器也可能受到常规锤子的伤害。实际上,这对大多数人来说是显而易见的[引证需要]。人们可以通过用更强的金属电镀来“修补”服务器以抵御这种攻击。

Leave a Reply

Your email address will not be published.

Categories