除了 Meltdown 和 Spectre 之外,是否还有其他处理器漏洞?

雷克斯索尔斯

我阅读了这两个漏洞,也阅读了一些 CPU 和处理器的历史。我想知道之前是否还有硬件(尤其是处理器的)。

彼得·科德斯

所有 CPU 设计至少都有一些微妙的设计缺陷。我们称这些为“勘误表”。

存在一些与安全相关的 CPU 错误。不过,通常“只是”DOS 攻击。

奔腾F00F的错误影响了B2步进(其中固定它)之前,所有的英特尔微体系结构P5。lock cmpxchg8b eax(带寄存器操作数,而不是记忆,因而无效)锁定CPU,直到硬重启,给无特权用户运行DOS攻击。(维基百科说它使用locked 总线周期获取非法指令 IDT 条目,因此系统保持锁定状态,等待从未出现的相应写入)。可以在软件中通过在尝试处理异常时强制 CPU 进行页面错误来解决。

该维基百科条目将其与类似时代的 Cyrix CPU 上Cyrix“昏迷错误”进行了比较


从那时起,英特尔的设计和验证技术取得了进步:奔腾之后的 CPU 具有可更新的微代码,它们通过向其抛出随机指令序列来模拟 CPU 的门级软件模型,即使在奇怪的微体系结构状态下也能捕获意外行为。

但是错误仍然可能发生。Skylake 需要一个微码更新来禁用其循环缓冲区,因为在启用超线程的情况下,AH 合并 uops 并不总是正确处理,导致在运行 OCaml 编译器生成的代码时意外崩溃(勘误 SKL150)。(我的理解是 Coffee Lake 有一个工作循环缓冲区,但 SKL 和 KBL 只从 uop 缓存中运行,即使是紧循环。)我认为这充其量只是一个锁定错误;很难获得任何特定的东西来读取机密或获得特权。

类似地,Skylakemfence在微代码更新(完全阻止乱序执行,如lfence中变得更加强大,以修复错误 SKL079可能您无法利用movntdqaWC 内存(例如视频 RAM)弱排序加载的重新排序,但至少有可能某些东西的安全性/正确性可能取决于它。

有关Skylake 的完整列表,请参阅https://www3.intel.com/content/dam/www/public/us/en/documents/specification-updates/desktop-6th-gen-core-family-spec-update.pdf勘误。

AMD 当然也为他们的 CPU 发布了勘误表。


Meltdown 和 Spectre 的不同之处在于 CPU 架构师知道 CPU 以这种方式工作,但没有意识到有一种方法可以利用它。这是非常微妙的,将秘密数据转换为微架构状态,然后将该微架构状态读回架构状态(寄存器中的实际值在正确路径上,而不是在错误预测的阴影中)。

就我们所知,我们还需要重新设计 CPU 以有效缓解其他令人讨厌的意外(新类别的微架构攻击)。

(Meltdown 很容易通过新设计以廉价的方式缓解,只需将低特权的 TLB+L1d 命中屏蔽为 0,而不是返回实际数据。根据这篇测试了许多微架构的StuffedCow 博客文章一些 CPU 已经这样做了。不过,Spectre 很难做到便宜。)

超线程(以及通常的任何 SMT)已经暴露了共享物理内核的线程之间的微架构时序旁道。由于这个和其他原因,加密算法通常被仔细编写,因此它们的性能不依赖于数据。这意味着避免可能在缓存中丢失的查找表。不过,定时侧信道是一种已知的攻击。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

除了使用Spring的setter和@JsonProperty反序列化之外,还有其他方法吗?

导入Dart库时使用“显示”是否除了意图和编译器速度之外还有其他好处?

Spectre / Meltdown补丁导致COM方法返回E_ACCESSDENIED

Windows上Spectre和Meltdown缓解措施的R基准测试

除了使用BeautifulSoup和Scrapy之外,还有其他方法无法刮掉不可刮擦的网站吗?

为什么Meltdown和Spectre错误这么长时间没有被发现?

在Informatica Powercenter中进行表达式转换中的语句时,除了Decode和IIF之外,是否还有其他功能可以实现大小写?

除了dict,list,set和tuple之外,是否还有其他内置容器?

除了.id和.arn之外,还有哪些其他地形资源属性?

除了移情和拼音之外,还有其他支持Google Talk的IM客户端吗?

除了防火墙和RSA密钥,还有其他保护SSH连接的方法吗?

Ubuntu在Meltdown和Spectre漏洞上的状态如何?

除了NTFS之外,还有其他更好的选择可以在Ubuntu和Windows 7之间共享HD吗?

除了SELinux和AppArmor之外,还有其他LSM(Linux安全模块)吗?

除了MVP和MVC之外,还有其他模式吗?

除了smplayer和umplayer以外,mplayer还有哪些其他方面?

如何缓解Linux系统上的Spectre和Meltdown漏洞?

除了传统的“ rwx”和POSIX ACL之外,是否还有更高级的文件系统ACL?

VIA x86 CPU是否受Meltdown和Spectre影响?

使用Meltdown和Spectre v1 / v2可以访问哪个内存?

KB4056759是Meltdown和Spectre更新的一部分吗?

通过Red Hat分析Spectre和Meltdown检查脚本

Spectre / Meltdown的AIX / Power安全吗?

除了全局,系统和本地之外,git配置设置还有其他地方吗?

禁用Spectre和Meltdown缓解措施

自从针对Spectre,Meltdown漏洞的16.04的新更新以来,Nautilus和nemo不会在主目录中显示目录。

除了与 SQL Server 2000 和 2005 兼容之外,使用 datetime2 是否还有其他问题

除了在 dynamo db 中进行扫描和查询之外,还有其他操作吗?

除了使用 try & 除了遍历具有 str 和 float 值而没有错误的列表之外,还有其他方法吗?