AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

Meltdown 和 Spectre 是什么以及如何应对

  • 2018-01-14
  • 本文字数:1823 字

    阅读完需:约 6 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

本文讨论最新的 CPU 漏洞,Meltdown 和 Spectre,以及当下的解决方案。

Google Project Zero 以及一些研究人员发现了两个硬件漏洞并提供了详细信息,这两个漏洞会对大部分的桌面和移动设备造成安全影响。这两个漏洞被称为 Meltdown Spectre ,它们会利用 CPU 的“预测执行(speculative execution)”使得非相关进程也能访问虚拟内存,从而导致数据可能被并无访问权限的进程读取。这是一个影响Intel、AMD 和ARM 众多CPU 型号的底层硬件问题。Google 于去年6 月向各处理器制造商报告了这个问题。

Meltdown 使得一个进程可以访问操作系统的部分内核内存,从而暴露敏感数据。Spectre 使得一个进程能够访问另一个进程的内存空间,造成数据泄露。Meltdown 会影响支持乱序执行(out-of-order execution)的 Intel 处理器,这可能包括自 1995 年以来的各种 CPU 型号。研究人员在 2011 年以来的几种 Intel 处理器上运行了测试。ARM 的一些处理器会受到这种漏洞的变体的影响,使得一些 CPU 注册表能被其他非相关进程访问。AMD 处理器似乎并不受 Meltdown 影响。但是 Spectre 影响所有的主流 CPU,包括 AMD、ARM 和 Intel。如果想了解更多关于这些漏洞的详细信息以及如何利用这些漏洞,我们建议你去阅读 Google Project Zero 的这篇文章,以及Meltdown( PDF )和 Spectre( PDF )研究论文。

这些漏洞相当严重。大多数市面上的操作系统都受到了影响,包括 Linux、MacOS 和 Windows。Android 以及 Apple 的 iOS 系统和 tvOS(但是没有 watchOS)也受到了影响。 CERT 提到,真正的解决方案是将系统的 CPU 替换为没有漏洞的 CPU。鉴于这个方案不具备实际可操作性,软件解决方案已经就位甚至已经生效。不过问题是,这种修复似乎有性能问题,有的造成的性能下降甚至高达30% 。Intel 声称性能下降“取决于工作负载”,“对于普通的电脑用户,应该没有什么大影响并且会随着时间改善。”

Intel 还提到,它已经向操作系统制造商提供了软件和固件修复。AMD 则发布了安全公告,概述了这些漏洞,哪些漏洞会对使用它们处理器的系统造成什么样的影响,会向操作系统供应商提供哪些修复,以及性能会受到一些影响。ARM 也发布了自己的公告,介绍了哪些处理器会被影响以及如何处理。

Microsoft 将在下周通过标准更新机制发布更新。Linux 已经发布了可用的内核补丁(32-bit),针对 64-bit/ARM 的补丁仍在开发中。Apple 则在声明中表示,已经为 iOS 11.2、macOS 10.13.2 以及 tvOS 11.2 发布了针对 Meltdown 的更新,以及:

我们做了一些公开的基准测试,不管是 GeekBench 4 的基准测试还是像 Speedometer、JetStream 和 ARES-6 一类通用的 Web 浏览器基准测试都表明,2017 年 12 月的更新并没有给 macOS 和 iOS 带来多少性能损失。

至于 Spectre,Apple 则表示:

关于这些技术的分析表明,即使是在 Mac 或 iOS 设备上本地运行的应用程序,这些漏洞也极难被利用,但是却可能通过运行在 Web 浏览器上的 JavaScript 利用这些漏洞。Apple 将在未来几天发布针对 macOS 和 iOS 上 Safari 浏览器的更新,以应对这些漏洞利用技术。我们对即将发布的 Safari 优化做了一些测试,Speedometer 和 ARES-6 测试结果显示并没有多少性能影响,而 JetStream 基准测试则显示有 2.5% 的性能降低。我们将继续在操作系统中针对 Spectre 技术开发和测试更多的优化,并在之后的 iOS、macOS、tvOS 和 watchOS 更新中发布。

再来说云供应商。 Amazon 宣称运行在他们系统里的大多数实例都得到了保护,另一些则会很快得到处理。Microsoft 也声称 Azure 上的大多数客户都受到了保护,其中有一些还收到了通知,他们的实例会在 1 月 10 号重启。 Google 则表示,他们已经对他们的云系统打了补丁,只有那些使用自己的镜像的客户才需要更新。Xen 为它们的系统管理程序发布了补丁。在应用程序层面上,Google 建议用户使用 Chrome 里的网站隔离功能 Firefox 也有这个功能。Microsoft 则发布了一个补丁( KB4056890 ),帮助在 Edge 和 IE 11 上避开漏洞。 2018 年 1 月的 Android 安全公告则提供了 Google 准备如何在它们的移动操作系统上处理这个问题的细节。他们声称合作方已经在一个月之前就得到了通知,AOSP 将会在近期打补丁。

Google 还提到,他们还没有发现任何相关的漏洞利用存在,但是未经验证的代码可能会利用这些漏洞。

查看英文原文: Meltdown and Spectre: What They Are and How to Deal with Them

2018-01-14 18:002237

评论

发布
暂无评论
发现更多内容

Kubernetes 为何称为 K8s?

Ethereal

Kubernetes k8s 运维工程师

微信朋友圈高性能分析

swallowluo

架构训练营 架构实战营 「架构实战营」

RocksDB 相关资料

Joseph295

存储 RocksDB LSM树 KV存储引擎

IM会话阅读回执

superman

IM 已读未读 阅读回执

情绪价值

搬砖的周狮傅

情绪

跟着动画学Go数据结构之冒泡排序

宇宙之一粟

golang 数据结构 算法 12月日更

JVM学习笔记

Changing Lin

12月日更

家具电商

张老蔫

DDD领域驱动设计实战(四)-值对象

JavaEdge

12月日更

[Pulsar] 设置认证和鉴权

Zike Yang

Apache Pulsar 12月日更

避免创建不必要的对象

李子捌

28天写作 12月日更

营销思维:新消费品牌如何做营销

石云升

营销 28天写作 新消费 12月日更

网络安全2.0主动防御体系有哪些新思路?

喀拉峻

网络安全 安全 渗透测试 渗透

48 K8S之Ingress控制器部署

穿过生命散发芬芳

k8s 28天写作 12月日更

C#中如何使用Dapper

喵叔

28天写作 12月日更

如何在 Linux 中使用 apt 命令管理包

Ethereal

Linux 运维 apt 网络技术联盟站

☕【Java深层系列】「技术盲区」让我们一起去挑战一下如何读取一个较大或者超大的文件数据!

码界西柚

Mmap 12月日更 MappedByteBuffer FileChannel

kubernetes APIServer是如何限流的?

xcbeyond

Kubernetes 限流 28天写作 12月日更

前端开发:关于Vue组件中的data属性值是函数而不是对象的详解

三掌柜

28t 28天写作 12月日更

微信朋友圈高性能架构分析与设计

皓月

架构实战 #架构实战营 「架构实战营」

2021学习总结

将军-技术演讲力教练

下班之后的生活

卢卡多多

28天写作 12月日更

Git 报错:fatal: destination path ‘.‘ already exists and is not an empty directory.

liuzhen007

28天写作 12月日更

语音信号处理4:语音信号的产生之语音的发音器官

轻口味

28天写作 12月日更

CSS之选择器(十)<label> 和 <input>

Augus

CSS 12月日更

架构实战 模块二作业

mj4ever

架构实战

元宇宙100讲-0x006

hackstoic

元宇宙

【docker 总结】第六篇 - DockerCompose

Brave

Docker 12月日更

模块二课程作业

李晓笛

架构实战营

围棋

圣迪

AI 数学 围棋 中国象棋 解空间

反序列化漏洞原理详解

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

Meltdown和Spectre是什么以及如何应对_安全_Abel Avram_InfoQ精选文章