Rowhammer会攻击ECC内存,包括DDR3内存,但是研究人员认为DDR4也会受到影响。
泽兰德大学的学者今天发表了一篇研究报告,描述了Rowhammer攻击的一种新变体。
对于不熟悉这个术语的读者来说,Rowhammer是一类漏洞,利用的是现代内存卡中硬件设计缺陷。
默认情况下,存储卡会将临时数据存储在存储单元中,这些单元以网格的形式排列在多列的物理芯片上。
研究人员在2014年发现,通过重复读取存储在一列上的数据,他们能够创建一个电场,可以改变存储在附近内存列上的数据,导致数据损坏或者以恶意方式操控数据。
在最初发现Rowhammer攻击后的几年中,学者延伸了方法和开发场景,这表明硬件制造商无法忽略他们最初的研究发现,因为从理论上来说,攻击者可以通过多种方法来使用这一漏洞:
●他们展示了Rowhammer攻击会如何改变存储在DDR3和DDR4(或者类似)存储卡上的数据;
●他们展示了Rowhammer如何通过JavaScript和网络来发动攻击,而不一定是通过访问计算机、物理接触、或者通过本地恶意软件;
●他们演示了一个通过Microsoft Edge浏览器来控制Windows系统电脑的Rowhammer攻击;
●他们展示了一个Rowhammer攻击,即控制安装在云托管环境中基于Linux的虚拟机;
●他们使用Rowhammer攻击来获取Android智能手机的Root权限;
●在公开了第一次攻击后,他们绕开了对Rowhammer的保护措施;
●他们展示了一名攻击者如何通过依靠本地GPU来提高Rowhammer攻击的效率;
●他们开发出了一种方法,即通过网络数据包来发动Rowhammer攻击;
●他们开发了一种针对名为ION的Android内存子系统的Rowhammer攻击,这个攻击破坏了操作系统和本地应用程序之间的隔离,能够让数据被盗取和控制整个设备。
在今天发表的研究报告中(名为ECCploit),学者通过另一种变体扩展了之前的Rowhammer攻击方式。他们表示,这种方法会绕过ECC内存。(硬件制造商表示这是内存保护方式之一,能够监测和防止之前的Rowhammer攻击。)
ECC指的是纠错码(Error-Correcting Code),它是一种存储装置,也是高端RAM上的一种控制机制,通常部署在昂贵的或者任务关键型的系统中。
ECC内存的工作原理是防止比特翻转,因为Rowhammer攻击也会导致比特翻转。令人惊讶的是,开发ECC内存并不是为了应对Rowhammer。ECC内存最初在20世纪90年代被开发出来,以保护由α粒子、中子、或者其它宇宙射线导致的比特翻转;但是当Rowhammer出现时,通过验证,ECC内存也能够有效地防止Rowhammer。
但是,在花费数月通过逆向工程来设计ECC内存后,泽兰德大学团队发现这种保护机制也有局限性。
研究人员表示,他们发现ECC内存一次只能监测和纠正内存段中的比特翻转。
当在同一内存段中同时发生两个比特翻转时,ECC内存就会不堪重负。在这些不常见的情况下,ECC内存会使底层应用程序崩溃,以避免数据或者安全性受损。
然而,泽兰德大学研究人员表示,他们已经发现,如果一次Rowhammer攻击导致了三个同时的比特翻转,ECC并不会崩溃,取而代之的是它不会有任何反应,这就导致攻击会完全绕过ECC保护。
好消息是,这并不会让人们对此感到担忧。自从2014年被发现以来,Rowhammer攻击从来都不是学术界所要探索的理论攻击。
Rowhammer攻击类似于Meltdown和Spectre CPU的缺陷,这些都是理论攻击,从未被广泛使用。但是它揭示了硬件中的主要设计缺陷,这些缺陷是我们大多数现代技术的基础。
目前,研究人员认为公司不应该因为他们的研究而避免使用ECC内存,这是因为一次ECCploit攻击需要花费32分钟到一周的时间才能执行,这意味着它并没有听起来那么危险。
Rowhammer ECCploit攻击是一种研究类型,研究员希望这种攻击会影响未来供应商设计和运输硬件的方式,专家并不希望在未来看到恶意软件使用这种攻击方式。
原文作者:Catalin Cimpanu