自2018年以来,一系列被称为“幽灵”(Spectre)的攻击几乎无休无止,让英特尔(Intel)和AMD忙于开发防御措施,以缓解恶意软件直接从硅材料中窃取密码和其他敏感信息的漏洞。现在,研究人员表示,他们已经设计出了一种新的攻击,可以破坏大部分(如果不是全部的话)芯片上的防御。
Spectre因其投机执行的滥用而得名,这是几乎所有现代cpu的一个特性,它可以预测cpu未来可能接收到的指令,然后沿着指令可能遵循的路径运行。通过使用强制CPU沿着错误路径执行指令的代码,Spectre可以提取出机密数据,如果CPU沿着错误路径继续执行,这些机密数据可能会被访问。这些漏洞被称为瞬态执行。“危险的含义”
自幽灵是首先在2018年描述,几乎每个月都有新的变种出现。在许多情况下,新变种要求芯片制造商开发新的或增强的防御来减轻攻击。
例如,称为LFENCE的密钥英特尔保护,可将更新的指令停止调度到之前的指令。基于硬件和软件的解决方案广泛称为“击剑”构建秘密数据中的数字栅栏,以防止允许未经授权访问的瞬态执行攻击。
弗吉尼亚大学的研究人员上周表示,他们发现了一种新的瞬态执行变量,几乎可以破坏英特尔和AMD迄今为止的所有片上防御。新技术通过针对片上缓冲区来实现缓存的“微ops”,这是源自复杂指令的简化命令。通过允许CPU在推测执行过程中快速和早期获取命令,微型操作缓存提高了处理器速度。
研究人员是第一个利用微操作缓存作为侧通道,或作为一种媒介,对存储在脆弱计算系统内的机密数据进行观察。通过测量目标系统的时间、功耗或其他物理属性,攻击者可以使用侧信道来推断那些不受限制的数据。
“作为侧面通道的微型op缓存有几个危险的含义,”研究人员写道学术论文。“首先,它绕过了所有将缓存作为副通道的技术。其次,这些攻击没有被任何现有的攻击或恶意软件配置文件检测到。第三,因为微操作缓存位于管道的前端,在执行之前,某些通过限制投机性缓存更新来缓解《Spectre》和其他短暂执行攻击的防御仍然很容易受到微操作缓存攻击。”
本文继续:
大多数现有的隐形猜测和基于围栏的解决方案侧重于隐藏在处理器管道后端发生的推测执行的意外弱势副作用,而不是抑制前端的猜测源。这使得它们容易受到我们描述的攻击,该攻击揭示了通过前端侧通道推出的秘密,在瞬态指令有机会被派遣以便执行之前。这阐述了一系列现有的防御。此外,由于微型op缓存的尺寸相对较小,我们的攻击明显比现有的幽灵变体更快,依赖于启动和探测几个缓存集来传输秘密信息,并且相当多的隐身,因为它使用了微观 -op缓存作为其唯一披露原语,介绍了较少的数据/指令缓存访问,更不用说未命中。
异议声音
自从研究人员发表了他们的论文以来,出现了一些阻力。英特尔不同意这种新技术打破了为防止短暂执行而设置的防御措施。在一份声明中,公司官员写道:
英特尔审查了该报告并告知研究人员,现有的缓解措施没有被绕过,我们的安全编码指南解决了这一问题。遵循我们指导的软件已经对附带通道(包括uop缓存附带通道)进行了保护。不需要新的缓解或指导。
瞬时执行使用恶意代码来利用投机执行。反过来,这些漏洞绕过了边界检查、授权检查和内置到应用程序中的其他安全措施。遵循英特尔安全编码准则的软件可以抵御此类攻击,包括上周推出的变种。
英特尔指导的关键是使用常量时间编程,这是一种编写代码是秘密独立的方法。英特尔一位发言人在后台说,研究人员上周引入的技术使用的是在CPU分支预测器中嵌入秘密的代码,因此,它没有遵循英特尔的建议。
AMD没有及时提供响应,以便包含在这篇文章中。
另一个拒绝来自于博客作者是乔恩·马斯特斯,一位计算机体系结构的独立研究者。他说,这篇论文,特别是它所描述的跨域攻击,是“有趣的阅读”和“潜在的担忧”,但有办法修复漏洞,可能是通过在跨越特权障碍时使微操作缓存无效。
“这个行业的手在幽灵上有一个巨大的问题,并且作为直接后果,投入了大量的努力,分离特权,隔离工作量和使用不同的背景,”大师写道。“根据这份最新的纸张,可能需要一些清洁剂,但有可用的减轻,虽然总是以某种性能成本。”
没那么简单
Ashish Venkat, a professor in the computer science department at the University of Virginia and a co-author of last week’s paper, agreed that constant-time programming is an effective means for writing apps that are invulnerable to side-channel attacks, including those described by last week’s paper. But he said that the vulnerability being exploited resides in the CPU and therefore should receive a microcode patch.
他还说,今天的很多软件仍然很脆弱,因为它不使用恒时编程,而且没有迹象表明这种情况何时会改变。他还赞同Masters的观点,即代码方法会减慢应用程序的速度。
他告诉我,“在实际的程序员努力方面,不仅是非常难的,而且还需要与曾经写的所有敏感软件进行修补的重大部署挑战。由于性能开销,它通常仅用于小型专用的安全惯例。“
Venkat说,这种新技术对2011年以来设计的所有英特尔芯片都有效。他告诉我,除了容易受到相同的跨域攻击外,AMD cpu也容易受到单独的攻击。它利用了同步多线程设计,因为AMD处理器中的微操作缓存是竞争性的共享。因此,攻击者可以创建一个跨线程隐蔽通道,以250 Kbps的带宽和5.6%的错误率传输秘密信息。
暂时执行带来了严重的风险,但目前,它们大多是理论上的,因为它们很少被积极利用。另一方面,软件工程师有更多的理由担心,而这种新技术只会增加他们的担忧。
140年读者评论
我们从担心操作系统安全性和传统操作系统安全性之上的应用程序,到现在的微代码,这对谷歌的人来说都是一个挑战,要准备好适当地评估....直到发现问题。
大多数覆盆子PI臂核心,直到PI 4,核心核心简单,他们提供了充足的可用性。您不会将它们误以为高端X86桌面,但它们完全可用于大量的东西。
我认为这是一个40nm工艺,所以你可以通过在一个新的工艺上实现A53或类似的东西来获得很多。添加一些相当可观的L1/L2缓存,你也会获得很多性能。
RISC-V芯片不做这种投机执行,他们显然工作得很好。
https://riscv.org/blog/2018/01/more-sec…isc-v-isa /
我真的很惊讶,我们还没有看到在死亡中添加小型非缓存、非超标量的加密核心。与处理器其余部分所使用的空间相比,这类漏洞是非常小的,并且可以让您在不抑制处理器其余部分的高性能功能的情况下绕过这么多漏洞。
现代处理器通过将大部分时间赢得的机器获得了巨大的单线性能。如果Microcharite无法弄清楚如何以新的方式进行泄漏频道信息的新方法,那么我们可能需要一点或模式,如果任何非值得信任代码是这样的,那么我们可能需要拨打一切方式才能回到慢速但时序不变/确定性执行。跑步。
这是更糟。
英特尔别人发现了才知道。
你可以将Meltdown/Spectre/等作为架构上正确的行为,即使它们真的很糟糕——这对英特尔来说是一个可怕的光学器件,但芯片的行为就像广告中说的那样,并没有声称能够真正缓解这种情况。
然而。
SGX环绕显式地都是为了减轻来自完全恶意操作系统的所有干扰或观察,但这两种说法都站不住脚。
L1终端故障(L1TF/伏兆)允许直接观察生产SGX包体的内部状态。缓解这一问题并不重要,只要在飞地退出时刷新L1即可。但英特尔是在别人告诉他们之前才这么做的,也就是说他们不知道。
掠夺性是另一个OS级攻击,将处理器折叠到一个复杂的操作(乘法和AES操作,IIRC?)故障在SGX中的故障下降,并生成无效结果。再次,不难缓解,但英特尔没有。
所以英特尔无法推断他们的芯片,即使是在他们新的旗舰安全功能的背景下。
谷歌无法访问英特尔的内部文档,因此他们在下游。
复杂性的堆已经回家栖息,每一个缓解都只是“哦,增添了更多的复杂性来解决复杂性造成的问题。”它不能永远如此。
你在说什么,被抛弃了吗?我在Commodore 64上写了这条评论,你这个麻木不仁的傻瓜!
你在说什么,被抛弃了吗?我在Commodore 64上写了这条评论,你这个麻木不仁的傻瓜!
看看这里的早期采用者!我的准将想和你谈谈。
你不是在6809吗?
[/ coco爱好者]
早期的原子核心已经就绪。小的ARM内核在某些情况下也是如此。性能相当差。
我们从担心操作系统安全性和传统操作系统安全性之上的应用程序,到现在的微代码,这对谷歌的人来说都是一个挑战,要准备好适当地评估....直到发现问题。
我想知道这是否是苹果,曾经安全意识的原因的一部分,他们搬到了他们设计自己的筹码。从干净的板岩开始,目标是防止这些新的攻击阶段。
他们当然是有安全意识的,但我怀疑性能和更低级别的控制才是真正的目标。其他的都很方便。
谷歌,亚马逊,他们还拥有一些自己的筹码,甚至为各种各样的白色盒子使用白色盒子。
我有机会谈谈一些使用企业网络产品的谷歌携手,他们自己的开发设备,这一切都是为了能够在不仅限于给定供应商的局限性的情况下做到他们想要的事情。
我们受到旧协议和其他客户配置和规格的限制……谷歌不需要在内部受到限制,因为它们控制一切,需要更多动态类型的访问/更改。
手机和其他筹码也是如此。
Broadcom或某人决定“Naw为这款旧调制解调器没有新的驱动程序”,你的手机几乎死了。
最后一次编辑50 me12在星期二5月4日,2021年2:46
我们从担心操作系统安全性和传统操作系统安全性之上的应用程序,到现在的微代码,这对谷歌的人来说都是一个挑战,要准备好适当地评估....直到发现问题。
我想知道这是否是苹果,曾经安全意识的原因的一部分,他们搬到了他们设计自己的筹码。从干净的板岩开始,目标是防止这些新的攻击阶段。
Apple的Arm Chips当时易受初始幽灵和崩溃袭击的影响。
虽然我的心中永远有一个6502的位置,但在我看来6809更好,如果不是68000
我从来没有在x86 asm上升起,但除了过去,其他系统肯定有方法刷新和/或关闭缓存(再次重新开始)并强制执行序列执行。我想象也有办法在现代处理器中做到这一点。
https://www.thesslstore.com/blog/what-i…ncryption /
https://www.microsoft.com/en-us/researc…软密封/
https://www.ibm.com/security/services/h ...加密
你知道这不是乱序执行的问题吧?
现代处理器的哪些特性是你想消除的?
——投机执行?
-无序执行?
——分支预测?
-一个或多个不同的缓存?
—指令预取/数据预取
——超?
- 管制?
可能的是,这些中的每一个都被用来了多年来的学术袭击。
我们从担心操作系统安全性和传统操作系统安全性之上的应用程序,到现在的微代码,这对谷歌的人来说都是一个挑战,要准备好适当地评估....直到发现问题。
我想知道这是否是苹果,曾经安全意识的原因的一部分,他们搬到了他们设计自己的筹码。从干净的板岩开始,目标是防止这些新的攻击阶段。
苹果是除了英特尔之外唯一一个容易受到Meltdown攻击的芯片?不要欺骗你自己。AMD和ARM是最安全的,英特尔和苹果最差。
你从哪里得到这种废话?
https://developer.arm.com/support/arm-s…ues-update
奇怪的是,如果他们的cpu没有受到攻击,ARM会把这个页面放在一起。♂️
最后一次编辑Joehrancho.在星期二5月4日,2021年3:59
最后一次编辑Madmax559.2021年5月4日星期二下午3:08
乱序执行与投机执行是正交的。它们不是同义词。您可以设计一个具有OOO执行而无需投机执行的CPU。
找到有帮助人们这样做的缺陷......
这是更糟。
英特尔不知道,直到别人发现…
复杂性的堆已经回家栖息,每一个缓解都只是“哦,增添了更多的复杂性来解决复杂性造成的问题。”它不能永远如此。
伟大的文章。从目前正在脱离英特尔芯片的主要组织的数量来看,这种情况似乎不会永远持续下去,无论英特尔是否改变他们的行为。
我猜是忽略了研究也显示了AMD芯片的缺陷这一事实?
是英特尔&amd实际上争先恐后地修复这个UOP缓存攻击?
是英特尔&amd实际上争先恐后地修复这个UOP缓存攻击?
我想他们一定是。
如果没有别的,那些发出第一个修复的人可以嘲笑和指向竞争对手。
“云”是一个主要问题,因为人们使用的许多vm通常运行在一台主机上。一个32核主机上可能有16-20个双核虚拟机,它们都运行互不信任的代码。
乱序执行与投机执行是正交的。它们不是同义词。您可以设计一个具有OOO执行而无需投机执行的CPU。
这两者都与缓存(所有形式)正交。
Jebus人们不要向下投票给某人提出问题......
不总是: https://en.wikipedia.org/wiki/spectre_(...... nerability ) # Remote_exploitation
对于那些因为Happy Medium用一种相当不错的方式问了一个合理的问题而立即投反对票的人来说:反对票并不等于说“你的问题的答案是否定的”。这实际上是一种粗鲁的行为。试试回复!
虽然我的心中永远有一个6502的位置,但在我看来6809更好,如果不是68000
在我心里,6502也有一席之地。不过,我绝不会碰低于65816的东西。最初的NMOS版本有许多恼人的bug。它和CMOS版本都有较弱的堆栈功能,使得高级语言更难实现。
6809和68000更强大,因为他们的行动更长。6500必须仅在一个字节中描述命令和寻址模式。
至少现在我知道了。另一方面,遗留代码....
你必须登录或创建一个帐户评论。