飞天发布时刻:2024年 Forrester 公有云平台Wave™评估报告解读 了解详情
写点什么

深入了解 Spectre 和 Meltdown

  • 2018-01-10
  • 本文字数:2363 字

    阅读完需:约 8 分钟

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

本文是“ Meltdown 和 Spectre 是什么及如何应对”的后续报道,将深入介绍:这两个漏洞的特点和潜在攻击,为什么在云服务提供商已经应用补丁的情况下还是要为云虚拟机打补丁,对性能及真实世界应用程序到底有什么影响,威胁建模的必要性,防病毒软件的作用,硬件如何受到影响以及长远看可能会带来什么变化。

Spectre Meltdown 是典型的旁路攻击 Zero 项目的博客上提供了详尽但复杂的说明。Raspberry Pi 创始人 Eben Upton 在博文中进行了简单明了的解释,说明为什么 Pi 不会受到影响,“我们在那种抽象环境里进行安全推断时会遇到抽象与现实之间存在轻微差别的情况,Meltdown 和 Spectre 就是这样的例子”。Graham Sutherland 在推特上说明了问题的本质:

副效应回滚有两个重要的例外:缓存和分支预测历史。这些通常都是无法回滚的,因为预测执行是一个性能特性,回滚缓存和 BHB 内容通常会损害性能。

这也就说明了为什么采用各种补丁处理这些问题会影响性能,因为它们的本质是确保缓存和分支预测历史在可能出现旁路攻击的地方可以回滚。Joe Fitz 将其比作图书馆里的图书,提供了一个完全非技术的解释。

Daniel Miessler 在文章“ Meltdown 和 Spectre 差异简介”中提供了一个有用的图表:

在名称选择上,针对Spectre 线索的补丁更细致多元。Meltdown 的处理相对简单(即使会有性能影响),而Spectre 是可能会在某个时候困扰我们的一类问题(可能发现更多)。

Google AWS Azure 都已经发表了声明,“我们的云(基本上)已经打好了补丁,现在轮到你们为虚拟机操作系统打补丁了”。遗憾的是,对于为什么要同时对虚拟机管理程序和虚拟机操作系统打补丁,他们没有提供多少细节。安全研究人员 Katie Moussouris 援引了 Robert O’Callahan博文中的一段话:“对于CPU 供应商和云供应商而言,重要的是准确地说明他们采取了什么防范措施,什么攻击他们无法防范以及他们期望下游客户负责解决哪些问题”。AWS 在声明中明确表示,“我们会保障客户的实例不会受到来自其他实例的威胁”。这意味着,VM 操作系统仍然需要打补丁来防止App 之间的攻击或者对特定VM 内核的攻击,来自 Amazon 的 Richard Harvey 对此进行了确认。

当应用程序进行系统调用让 OS 内核帮它们做某事时,这些问题补丁的性能影响就会显现出来。为此,Loopback 测试可以呈现最坏的情况。Intel汇总了来自Apple、Microsoft、Amazon 和Google 的公告,他们普遍对这些补丁的影响轻描淡写。Cloudflare 的CTO John Graham-Cumming 表示,“我们会继续测试#meltdown 和#spectre 的各种补丁,但对@Cloudflare 基础设施的影响似乎可以忽略”。同时,Aeron 创建者 Martin Thompson 指出,“在Windows 上打好Intel 的漏洞补丁后,Aeron 的良好表现让人意外。系统调用开销增加似乎会导致Aeron 批处理增加,进而提高了吞吐量。”,虽然这种情况会影响延时。然而,有人报告了更为严重的性能影响。Syslog_NG 布道师Peter Czanik发现,在Fedora 上,编译时间从4 分钟涨到了21 分钟(虽然还不如在OpenSUSE 上糟糕)。工程部门主管Ian Chan表示,“在我们生产环境的部分Kafka 代理[d2.xlarge] 上,其底层的AWS EC2 虚拟机管理程序(大概)已经应用了#Meltdown 补丁。CPU 增长在5% 到25% 之间。”

来自微软的 Jess Frazelle 表达了对于威胁建模的一个重要观点,“在以为天要塌下来之前先考虑一下威胁建模。这些Bug 需要访问机器。想一下,如果你运行着自己无法控制的代码……总而言之,那是你要关心的”。即使这些Bug 没有直接提供权限提升(如果可以找到root 密码,那可能就不严重)的方法,Spectre 或Meltdown 也可能被以其他的方式利用,而大多数服务器系统已经受到了影响。终端用户设备风险更大,因为几乎无处不在的Web 浏览器、广告中的JavaScript 等提供了一个攻击路径,这就是为什么除了升级虚拟机管理程序和操作系统外还要升级浏览器。

防病毒(AV)软件也有自己的工作要做。目前,微软正在进行检查,确保AV 供应商设置了注册表项,指明应用补丁是安全的,否则,AV 可能会试图访问与补丁冲突的内存,导致Windows 崩溃。一段时间以后,主机入侵防护系统( HIPS )(与 AV 有大量重叠)可能就可以发现利用 Spectre 的尝试。

Intel 已经向 OEM 厂商提供了固件升级包,包括CPU 微指令修复,不过显然,软件补丁的推出说明这些升级包本身并不够。那些升级包传播到终端用户还需要时间,而微软通过升级他们的Surface 硬件做了早期示范。 AMD 的公告对其 CPU 漏洞进行了低调处理,并指出这些升级包的性能影响几乎可以忽略。ARM提供了一个受影响的架构列表,其白皮书得到了广泛的补充,简明详尽,其中多半是与厂商无关的问题解释及补救措施。奇怪的是,用在iPhone 和iPad 中的基于ARM 的 Apple A 系列 CPU 受到了Meltdown 的影响,说明他们借用了x86 处理预测执行的方法。ARM 还介绍了可以针对他们的部分核心设计发起的“Variant 3a” Meltdown 攻击,并提供了验证性攻击代码。白皮书中描述的可以缓解攻击的CSDB barrier 操作已经在ARM CPU 中提供,这说明已经可以防范可能出现的此类攻击,但是只有真正出现了攻击,才能知道这一措施的开销。

长远来看,有两个关键点。第一,Spectre 的风险可能还会存在一段时间——至少要等到现有的硬件被替换掉,对于嵌入式系统而言可能还要数十年。修复下一代CPU 可能也为时已晚,至少会严重推迟他们的发布周期。这一系列的事件凸显出CPU保护环其实只是另一种抽象——是油漆线,是吹哨子的裁判,而不是水泥墙。也许,解决这些问题的CPU 不得不设计“硬墙(hard wall)”来达到防护目的。正如Joe Fitz 所言,“我们可能需要从头再来了”。

查看英文原文 A Deeper Dive into Spectre and Meltdown

2018-01-10 18:003614
用户头像

发布了 1008 篇内容, 共 406.8 次阅读, 收获喜欢 345 次。

关注

评论

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

如何制作网站的在线帮助中心

小炮

帮助中心

JavaScript class类的基本使用方法你知道吗

CRMEB

购买自助洗车机时都要注意哪些

共享电单车厂家

自助洗车机多少钱 自助洗车机价格 自助洗车加盟 购买自助洗车机

开家自助洗车房需要投资多少钱

共享电单车厂家

自助洗车加盟 开自助洗车店多少钱 开家自助洗车房

开发板上新抢先知!居然可以用来跑游戏?

HarmonyOS开发者

开发板 HarmonyOS

解决方案| 阿里云数据库MongoDB版助力餐道显著提升运维效率,打造卓越餐饮/零售服务

MongoDB中文社区

mongodb

服务器运维省钱省事省心安全就用行云管家!

行云管家

服务器 行云管家 服务器运维

自助洗车加盟都要注意哪些事项

共享电单车厂家

自助洗车加盟 自助洗车机厂家 自助洗车品牌

python好用的函数或库

AIWeker

Python 人工智能 5月月更

揭秘百度智能测试在测试自动生成领域的探索

百度Geek说

测试

用上这个 Mock 神器,让你的开发爽上天!

Liam

前端 前端开发 Postman Mock Mock 服务

一个小操作,SQL查询速度翻了1000倍。

TiDB 社区干货传送门

中国联通改造 Apache DolphinScheduler 资源中心,实现计费环境跨集群调用与数据脚本一站式访问

白鲸开源

大数据 开源 Apache DolphinScheduler workflow apache 社区

第1章-Spring的模块与应用场景

码匠

Java Spring Framework

【国产免费】分布式作业批处理ETL平台TASKCTL变量属性设置

敏捷调度TASKCTL

大数据 DevOps 分布式 自动化运维 TASKCTL

手把手带你用Zabbix进行操作系统监控

博文视点Broadview

网站开发进阶(三十三)中文字符编码问题解决总结

No Silver Bullet

异常 5月月更 中文编码

Consul的基本使用与集群搭建

神农写代码

龙蜥正式开源 SysOM:百万级实战经验打造!一站式运维管理平台 | 龙蜥技术

OpenAnolis小助手

开源 操作系统 龙蜥社区 SysOM 系统运维SIG

实践GoF的23种设计模式:建造者模式

华为云开发者联盟

Go 设计模式 GoF 建造者模式

行业案例| MongoDB在腾讯零售优码中的应用

MongoDB中文社区

mongodb

全球云服务支出持续攀升,中国云安全市场进入黄金期

行云管家

云计算 网络安全 公有云 云服务 云平台

给大家科普下如何加盟自助洗车

共享电单车厂家

自助洗车加盟 自助洗车怎么加盟 如何加盟自助洗车

墨天轮最受DBA欢迎的数据库技术文档-SQL优化篇

墨天轮

MySQL 数据库 oracle postgresql

加盟自助洗车需要营业执照吗

共享电单车厂家

自助洗车加盟 加盟自助洗车

网站开发进阶(三十六)String.getBytes()方法中的中文编码问题解决总结

No Silver Bullet

编码 5月月更 getBytes

文章插图汇总

武师叔

疫情时代如何提高办公效率?

小炮

Redis命令HSCAN踩坑指南

Qunar技术沙龙

dba

区块链系统开发,交易所交易平台搭建

Geek_56201b

Github首次开放,一天遭狂转 50w 次,大厂内部不外传的 100 万字 Java 面试手册

爱好编程进阶

Java 程序员 后端开发

深入了解Spectre和Meltdown_安全_Chris Swan_InfoQ精选文章