RAMBleed攻击可以窃取计算机内存中的敏感数据
研究人员发现了一个新的漏洞,它会影响存储在计算机内存中的数据的机密性。利用该漏洞,他们成功地仅凭普通用户权限从OpenSSH服务器中提取了签名密钥。
自从Rowhammer漏洞首次出现以来,研究者与防御者之间可以说从此上演了一场军备竞赛。来自美国、奥地利和澳大利亚的学者团队昨天发表了一项新研究成果,详细介绍了Rowhammer漏洞攻击活动的另一个变种,研究团队已将其命名为RAMBleed。这个新攻击方法的独特之处在于它可用于从目标设备窃取信息,而不改变现有数据或提升攻击者的特权。
Rowhammer攻击概览
Rowhammer是利用现代存储卡(也称为RAM)中硬件设计缺陷漏洞的攻击方式的统称。硬件厂商为了追求更大容量的内存和更小尺寸的部件,把太多的内存单元一起塞入到同样的板卡上。默认情况下,存储卡将数据存储在存储单元内,存储单元以网格的形式排列在RAM的实质硅芯片上。
早在2014年,就有研究人员发现,攻击者可以用不断的读写操作“轰炸”(即反复访问)一排排RAM内存单元,引起内存单元改变电荷,这本身会将存储的数据比特由1改成0或由0改成1,从而改变存储在计算机内存中的信息。
攻击者可利用这种攻击来传播改变操作系统正常行为的恶意代码,从而提升攻击者的权限、破解设备,或者对关键服务(比如安全软件)实施拒绝服务攻击。通过协调这些重复读取工作,在名为“row hammering”的操作中,可能导致数据损坏或以恶意方式操纵数据。
多年来,学者们极大地发展了该技术,进行了大量实验并展示了如何在现实世界中使用该技术:
展示Rowhammer攻击是如何改变存储在诸如DDR3和DDR4存储卡上的数据;
展示Rowhammer攻击是如何通过JavaScript、网络进行,而不一定是通过物理访问PC,或借助本地恶意软件;
演示Rowhammer攻击通过Microsoft Edge浏览器接管Windows计算机;
演示Rowhammer攻击接管安装在云托管环境中的基于Linux的虚拟机;
使用Rowhammer攻击获取Android智能手机的root权限;
展示攻击者如何依靠本地GPU卡来提高Rowhammer攻击效率;
开发一种通过网络数据包发起Rowhammer攻击的技术;
开发一种针对ION的Android内存子系统的Rowhammer攻击方式,打破了操作系统和本地应用程序之间的隔离,允许数据窃取和设备完全控制;
开发名为ECCploit的Rowhammer攻击方式,甚至可以对使用纠错码(ECC)的现代RAM卡进行攻击。
新RAMBleed攻击
在昨天发表的一篇研究论文中,学者们联合公布了RAMBleed攻击技术——这是第一个可以主动从RAM卡中推断和窃取数据的Rowhammer攻击变体。
为此,研究人员必须综合使用不同的攻击技术,包括:
研究人员发现了一种滥用Linux伙伴分配器(buddy allocator)来分配大量连续物理地址内存的方法,他们可以在此内存上编排攻击;
研究人员设计了一种新的机制,他们称之为“Frame Feng Shui”,用于将受害者程序页面放置在物理内存上的理想位置;
研究人员开发了一种新的方法,在内存中排列数据并锤击(hammer)存储行,以此来推断附近存储单元中的数据,而不是仅仅产生从0到1的位翻转,反之亦然。
通过结合这些新技术,研究人员表示他们能够在演示在Linux环境中从OpenSSH服务器窃取RSA密钥。
研究人员进一步指出,使用ECC保护的现代RAM卡无法阻止RAMBleed攻击。ECC内存不能保护数据完整性,而仅对其进行更正。
该研究团队表示,已向英特尔、AMD、OpenSSH、微软、苹果和Red Hat通报了他们的调查结果。关于RAMBleed攻击(跟踪为CVE-2019-0174)的更多细节可在题为“RAMBleed: Reading Bits in Memory WithoutAccessing Them”的研究论文中发现。
链接:https://rambleed.com/docs/20190603-rambleed-web.pdf