“风水逆转”:获取云端虚拟机的完整控制权其实很容易

安全 黑客攻防
Rowhammer攻击,具备了“高准确性”和“可控”的特点,可从其他虚拟机盗取加密密钥。

 我们先前介绍过一种名为Bitsquatting的攻击手法,这是一种超高端的钓鱼攻击:我们假定内存、CPU缓存由于环境,或者制造缺陷,产生内存的比特位翻转,就可能导致原本我们要访问某家网站,最终由于这种硬件错误,却访问了与这家网站域名相近的钓鱼站点。

这种听起来很玄幻的攻击其实不算新鲜,虽然看起来具有很强的不可控性,但实际还是可以人为触发其中的“硬件”漏洞。这个漏洞名为Rowhammer,前两年就有人提出了,可能是有史以来最理想化的漏洞。由于其不可控性,很多人认为Rowhammer停留在理论阶段。

不过最近有安全研究人员提出一种名为“风水翻转”的攻击技术,主要针对同处一个云环境下的其他虚拟机。其本质也是Rowhammer攻击,据说具备了“高准确性”和“可控”的特点,可从其他虚拟机盗取加密密钥。

[[171284]]

颠覆攻击逻辑的Rowhammer技术

去网上查资料,会发现Rowhammer的描绘极为晦涩。但Rowhammer漏洞其实很容易理解,这是个特别针对内存的攻击技术,但不是内存破坏或溢出攻击。计算机内存中,每个存储单元(晶体管+电容器)存放1bit数据,这个比特位要么是0,要么是1——存储单元中充满电子表示1,清空表示0。内存就是由上亿这样的存储单元构成的,数据也因此得以存储。

不过电容器会泄露,一个电容器充满电子后,只需要几毫秒就会泄露殆尽。这就要求CPU(内存控制器)对电容进行充电,让“1”这个值能够保持住。整个过程是由内存控制器先读取电容器中的值,然后再把数据写回去。这种刷新操作,每秒会执行几千次。

这几年的内存容量正在大幅度上涨,所以存储比特位的电容器也就越来越小,排列越来越近。要防止相邻的电容之间相互干扰,难度也就变得更大。如果能够快速、反复访问一排电容,相邻行的电容更容易产生干扰错误和所谓的“比特位翻转”,也就是0变成1。

[[171285]]

其实正常的数据读写一般是不会发生比特位翻转的,可是如果对某些行进行反复读写,问题就有可能产生。2014年卡内基梅陇大学的研究人员层发表过一篇论文,题为《无访问情况下的内存比特位翻转——DRAM干扰行错误的试验研究》,其本质是通过机器码指令CLFUSH或Cache Line Flush,强制进行这种比特位的读取和更新。据说利用这种方式,可引起大量比特位翻转。

利用比特位翻转,很多事情都可以做,比如说执行未经授权的代码。这就是所谓的Rowhammer。这是一种颠覆人类对安全认知的攻击技术,软件层面几乎解决无望。先前已经有研究人员演示,如何用Rowhammer来进行提权,以及打破安全沙盒。

不过看原理就知道,这种攻击实在有够理想化,存在诸多不确定性,因为攻击者根本无法精准控制比特位如何翻转。比如说,这种攻击对数据所在的内存位置首先就有要求,这样才能实施内存翻转:但敏感数据存储在这些位置的几率可能并不算高。

[[171286]]

实现内存“风水逆转”

针对Rowhammer的内存位置限制,最近有人开发出一种名为Flip Feng Shui(风水翻转)的攻击技术,这本质上也是Rowhammer。这种攻击就是篡改deduplication操作——deduplication在云端主机中应用得很常见,这种技术可让两个或者更多虚拟主机共享特定的数据块,起到节约内存资源的作用。

Flip Feng Shui在物理内存上做手脚,可致加密密钥和其他敏感数据存储到内存特定的位置——这些位置就很容易受Rowhammer的影响了。所以才叫风水翻转,就是让数据在内存中的“风水”位置变更好,Rowhammer攻击变得更可靠。

这种技术是由阿姆斯特丹自由大学的一名研究人员Ben Gras提出的(居然不是中国人!!!)。他说:“先前就已经有攻击方法表明,共同主机的虚拟机彼此间是可以相互攻击的,比如说获取对方的加密密钥。不过这次的攻击更具破坏性,也是此类攻击的第一例。”

“我们可以相当高的精度和可控性,针对目标虚拟机的内存进行篡改。针对这种软件堆栈中看似随机化的数据破坏方式,我们首次以极高的准确性和可控的方式,对其进行了展示。”这里Gras所谓的“看似随机化的数据破坏方式”也就是Rowhammer攻击。

研究团队演示了攻击者如何利用Flip Feng Shui攻击,获取另一台VM虚拟机上的RSA加密密钥——当然这要求被攻击的虚拟主机与攻击者处在相同的云环境中。在他们进行的某一例实验中,进行攻击的虚拟机获取到可用于授权安全shell访问的密钥,这样一来,这台虚拟机就可以获取目标虚拟机的未授权访问了。

研究人员在报告中提到,进行攻击的虚拟机获取到GPG密钥——该密钥是Ubuntu系统开发者用来确认更新可靠性的。有了这个GPG密钥,攻击者就能迫使目标虚拟机下载和安装恶意更新。

其实整个攻击过程描述起来还是比较复杂的,首先需要获取目标公钥。发起攻击的虚拟机通过Flip Feng Shui,针对公钥的某个特定部分进行比特位翻转,也就是我们上面提到的Rowhammer攻击方式——这里实际上还利用了云环境的deduplication技术。就像前文提到的,这种技术在云端主机中很常见,这是一种相较数据压缩粒度更大、节约存储资源的技术。基于此,物理页才会在多个虚拟机用户间共享,针对共享数据块的比特位翻转才显得有意义。

在公钥的比特位发生翻转之后,就构造出了一个全新的公钥,这个公钥会非常简单(足以进行因式分解)。也就是说,Rowhammer攻击欺骗目标虚拟机,接受新的公钥;攻击者随后也就能够得到相对应的私钥,并进行未经授权的SSH访问,签署恶意Ubuntu更新了。

[[171287]]

鉴于篇幅关系,我们没法细致详述每一环技术细节,有兴趣的同学可以前往翻阅研究人员发表的论文,题为《Flip Feng Shui: Hammering a Needle in the Software Stack》。Gras表示,这次的实验虽然只针对RSA密钥,但他预期未来这种攻击方式还能针对数字签名算法、Diffie-Hellman加密算法、ECC等等。这样一来,攻击者就不仅能够进行未授权访问量了,还能窃听合法会话。

另外,这种攻击也需要一些条件才能发起,比如说像前文提到的,要求虚拟机开启Deduplication;而且本次实验依赖于基于内核的虚拟机,以及Linux中的Kernel SamePage Merging特性。还有,内存芯片本身也需要具备比特位翻转的基础,先前有人做过相应的测试,129款DDR3内存中,110款存在攻击可行性,还有12款DDR4内存有8款也存在Rowhammer漏洞。

最后,研究人员还列出了一些可抵御Flip Feng Shui攻击的手段,硬件层面要求DRAM芯片制造商进行相应的Rowhammer测试,还有比如针对某些DDR4芯片实施的直接行刷新机制等;至于软件层面,包括禁用内存的deduplication,开发者和工程师也应该考虑加入额外的措施,比如检查安全敏感信息完整性。

“这种攻击不需要攻击者进行什么复杂的操作,就能完全控制共用主机的云虚拟机。同时,我们认为Flip Feng Shui还能通过更多的形式发起攻击,这就需要系统安全社区能够对这样的威胁引起足够的重视。”

责任编辑:武晓燕 来源: FreeBuf
相关推荐

2013-09-26 10:34:49

亚马逊虚拟化

2013-09-24 09:21:22

虚拟私有云VPCVPN

2011-06-09 10:32:16

虚拟化安全安全虚拟机

2012-10-17 09:39:44

编程语言PHP学习学习编程

2012-07-31 13:47:49

2012-05-18 10:11:10

虚拟机VM

2015-04-24 09:06:43

云存储故障切换虚拟化

2015-04-09 09:24:27

IT管理云计算管理

2013-01-30 09:16:39

云标准云服务

2015-06-24 16:54:00

WiFi

2013-04-28 09:01:41

2012-04-27 09:23:32

虚拟化虚拟机桌面虚拟化

2010-05-26 09:33:29

2011-05-27 07:07:30

趋势科技

2012-05-16 19:12:55

Google

2018-07-10 15:10:50

OpenStack虚拟机metadata

2010-08-30 10:51:38

2010-03-17 15:54:42

Java线程控制权

2010-03-24 16:49:26

Python安装

2009-02-20 12:06:04

Vista完全控制权限安全性
点赞
收藏

51CTO技术栈公众号