新型内存攻击,专治制程提高的芯片

水木番 发自 凹非寺
量子位 报道 | 公众号 QbitAI

大家肯定都知道,最近芯片的制程可谓越来越棒了,当前全球半导体最先进的制程已经发展到5nm了。

但是随着芯片制程技术的提高,内存的漏电问题更加严重,这有可能导致比特翻转,数据泄露,会进一步影响整个器件和系统的性质。

很多原先只存在于理论上的攻击方法,如今在现实中也确确实实地发生了。

这不,最近,谷歌又发现了一个大bug。

研究人员发现了一种“半双工”的新型Rowhammer攻击技术(下文简称“R攻击”),它可以通过操纵计算机内存芯片DRAM (动态随机存取存储器)中的电荷来破坏或泄露数据。

提到这种R攻击的问题,还得从技术上说起。

R攻击技术原理

其实,2014年的一篇论文就在当时主流的DDR3内存中就首次讨论了R攻击的可能性。

第二年,Google的project zero便针对R攻击,发布了一个实质性的工作漏洞。

作为回应,DRAM的制造商在芯片中加入了新的逻辑,可以跟踪频繁访问的地址,并在必要时进行消除。

后来随着 DDR4 被广泛采用,因为这些器件都有内置的防御机制,所以R攻击的问题似乎已经解决了。

但在 2020 年,研究人员开发了一种名叫TRRespass工具,展示了如何通过分发访问,来攻破防御,证明了R攻击技术仍然可行。

今年,研究人员又开发了一种新的名叫SMASH的攻击,进一步演示了如何利用JavaScript进行攻击,而不需要调用缓存的原语句。

看来问题越来越大了。

既然R攻击技术如此神通广大,不容小觑,那让我们来看看它的原理具体是什么?

R攻击是一种针对DRAM漏洞的攻击技术。

通过它重复访问一个地址时,可能会篡改存储在其他地址上的数据,当一个DRAM行被反复访问时,在相邻的两行会发生“比特翻转”

具体来说就是:

在攻击时,黑客在DRAM晶体管的“行”上反复运行相同的程序,以攻击该行,直到它把电泄漏到相邻的行。

这种泄漏可以将下一排晶体管中的一个比特从1翻转为0,或者从0翻转为1。

由于被攻击的单元格的值发生了变化,它导致相邻行的数据也发生变化。

这意味着在理论上,攻击者可以改变内存中任何比特的值,通过翻转足够多的比特,攻击者甚至可以操纵目标系统。

那为什么今年这种技术又爆火了呢?这是因为又有了一些新变化:

目前的R攻击技术主要采用了“半双工”技术。

此前通过重复访问一个内存地址,只可以访问相邻行的 DRAM 地址。

但现在,谷歌已经证明:

R攻击已经可以成功传播到相邻行以外的行,虽然效率还不是很高。

这种情况说明,攻击某一行所产生的“涟漪效应”会特别大,最终会带来整个系统的崩溃。

说到“半双工”,再来看看“半双工”的过程是什么?

研究人员先是尝试多次访问地址“A”,然后顺利实现了对地址“B”的数十次访问,接着又向地址“C”发起了攻击。

这种技术在晶体管的“行”相距较远的旧一代DRAM中并无作用。

但是,由于摩尔定律将晶体管变得更加紧密,所以这种“半双工”的R攻击风险正在增加。

正是因为这一代的DRAM制程不断提高,所以内存行之间的距离也在减少,使其更容易发生漏洞,触发“比特翻转”。

网友:这种攻击到底现不现实?

有网友表示:

这种攻击利用了写入新数据时,DRAM单元中翻转的电磁特性。但是这种攻击仅在学术环境中有,从未在现实世界中使用过。

但也有网友表示这并不是只在学术环境里运行,并给出了实例。

看来这项攻击的确具有现实意义,不可不防啊!

谷歌:正在和JEDEC寻求解决

这并不是R攻击第一次似乎得到解决,然后又忽然跳水。

阿姆斯特丹自由大学的研究人员在过去的18个月中多次强调:

目前的芯片防御系统可以抵御传统的R攻击。

但是,存储芯片的制程提高可能会带来R攻击的新风险。

在最坏的情况下,恶意代码有可能通过这种攻击逃脱沙箱环境,甚至接管系统。

对此,谷歌表示:

谷歌正在和独立的半导体工程贸易组织JEDEC以及半导体行业的几家公司合作,寻找“R攻击的可能解决方案”,并鼓励其他专家加入一起努力,因为这个挑战对整个行业都有巨大影响。

的确啊,虽然现在这些黑客技术需要技巧,甚至一些运气才能实现有针对性的攻击。

但因为基本上现在所有计算设备都存在潜在的R攻击可能,所以寻求解决方案还是迫在眉睫的。

目前,JEDEC已经发布了两项权宜之计(JEP 300-1和JEP 301-1),向广大用户进行了提醒。

希望会有实实在在的效果吧。

不知道下次R攻击会不会再起风云呢?

版权所有,未经授权不得以任何形式转载及使用,违者必究。