Meltdown漏洞利用解读(Part 1):基础篇

阅读量263747

|评论2

|

发布时间 : 2018-06-21 17:00:01

x
译文声明

本文是翻译文章,文章来源:https://www.sec-consult.com/

原文地址:https://www.sec-consult.com/en/blog/2018/04/the-meltdown-exploit-explained-part-1-the-basics/

译文仅供参考,具体内容表达以及含义原文为准。

 

前言

自“Meltdown”和“Spectre”这两个名词出现以来,已经有一段时间了。许多人认为这两个术语是过去几年最严重的两个安全问题。媒体和信息技术(IT)安全社区的各个部门称这是他们近期遇到的最严重和最危险的两个安全问题。

对于大多数人来说 – 特别是不在IT部门工作的人,Meltdown和Specter的原理仍然是一个谜。对于专业从事IT行业的其他人来说,有些问题仍未得到解答。
本文主要关注一个问题:
如何在技术层面实施Meltdown攻击?
我们将解释如何不去了解现代CPU架构中所有令人讨厌的细节,而达成攻击。
这里,我们将以一家普通的储蓄银行为例 – 这是每个人都熟悉的概念。

本文不会涵盖以下主题,它们已在其他文章中进行了广泛讨论:

1.Specter:这将是本系列中另一篇文章的一部分。
2.应该采取什么对策来保护受影响的系统?
3.攻击者如何利用企业或个人环境中的漏洞?
4.现有的对策怎样对系统更新造成影响?

 

万恶之源 – 问题源于何处?

首先,重要的是要指出,Meltdown是基于硬件(准确来说是处理器或CPU)而不是软件的缺陷。这基本上是一个设计缺陷,一直存在于自1995年制造商生产的处理器中。它没有影响到任何人直到今天。

那么究竟是哪里出了问题?
让我们从最基础的开始。为了理解Meltdown攻击,需要在更高的层次上理解以下看似不相关的问题:
1.多任务处理
2.CPU和内存之间的性能差距
3.优化技术
4.侧信道攻击

 

多任务处理 – 为什么在现代计算机上一次可以处理多件事情?

大多数现代操作系统(OS)都在多任务模式下运行。这是什么意思呢?根据定义,CPU一次只能执行一个命令。但是,用户期望计算机能够并行执行各种任务(或进程)。这在目前的操作系统架构中是不可能的。它由CPU“模拟”,在毫秒内不断地在多个任务之间切换。这造成了多个进程同时并行运行的错觉。

这种多任务功能的安全性完全依赖于处理器保证每个正在运行的进程完全隔离的假设。如果这种假设不成立,即在最坏的情况下,任何进程都可以访问其他进程正在处理的任何数据。这会导致巨大的安全问题。这样的隔离中断将允许未经授权的进程读取,修改或删除敏感数据,如密码,加密密钥或私有文件。

举一个更生动的例子:假设我的网页浏览器使用不可信的HTML和JavaScript代码,它可能会突然读取我正在“并行”处理的文本文件中高度机密的内容。在过去的二十年中,处理器制造商完全依靠这种隔离假设并进行处理器的生产。

 

CPU与内存之间的性能差距 – CPU速度超过了内存的速度

需要引入的另一个看似不相关的主题是CPU和内存之间的速度差距。让我们看看它们在现代计算机系统中的功能:
CPU用于处理基本指令和当前的数据。
存储器(RAM)用于保存当前进程的所有指令和数据。
随着时间的推移,现代CPU进行了巨大的性能优化。在这些优化以后,处理器的工作频率比存储器的操作频率快很多。CPU处理数据比内存管理读取和存储数据要快得多 。这直接导致了性能上的瓶颈问题。
下图显示了这个问题。
这样的性能瓶颈迫使CPU制造商研发各种不同的优化技术,导致CPU和内存之间附加层的出现。
最后引入了两个新概念:

无序执行块 —— 一种智能CPU优化技术,用于进行智能猜测并预测下一步该做什么。
处理器缓存(或只是缓存)—— 非常快速的内存,其存储容量非常小,只用于数据存储。

无序执行块自行假设正在运行的进程在不久的将来需要哪些数据。根据这些预测,数据会从内存中提前获取并由CPU存储在缓存中:

1.如果假设结果是正确的,并且运行进程有权访问提取的数据,则会处理数据。
2.否则,它将被处理器丢弃。

这项行为对应用程序和操作系统完全没有任何影响。它全部硬编码在硬件中。

 

侧信道攻击介绍

这是Meltdown漏洞被攻击者滥用的根本原因

到目前为止,上述内容似乎构不成安全问题。但是,有两个关键的问题出现:

问题1:从内存获取缓存而不先检查权限。
将数据从内存中提取到缓存后,才检查有关进程访问数据的权限。
问题2:不从缓存中删除数据。
存储在缓存中的数据在检查权限后不会立即清除,即使权限检查失败。

这就导致了所谓的侧信道攻击,成为向攻击者泄漏有价值信息的地方。根据定义,侧信道是潜在的信息来源,可以被攻击者用来窃取敏感数据。侧信道攻击对IT安全领域来说并不陌生。过去成功的常见攻击是基于功耗,电磁辐射或系统性能时序波动的变化。

例如,2008年3月,KeeLoq系统的加密过程被通过高精度功耗测量设备破解。KeeLoq是Microchip公司的硬件专用密码模块,用于各种远程汽车和楼宇控制系统。结果这一攻击直接影响了该系统的锁机制被破坏。

 

后记

如果你想要一个更为实战的分析,那么请继续关注下一篇关于Meltdown机制的文章,以及如何用一个简单的银行机构的比喻来说明攻击:Meltdown – 利用分析(part 2):银行抢劫。敬请关注!

 

审核人:yiwang   编辑:边边

本文翻译自https://www.sec-consult.com/ 原文链接。如若转载请注明出处。
分享到:微信
+12赞
收藏
一叶飘零
分享到:微信

发表评论

内容需知
  • 投稿须知
  • 转载须知
  • 官网QQ群8:819797106
  • 官网QQ群3:830462644(已满)
  • 官网QQ群2:814450983(已满)
  • 官网QQ群1:702511263(已满)
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 360网络攻防实验室 安全客 All Rights Reserved 京ICP备08010314号-66