本文经AI新媒体量子位(公众号ID: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攻击会不会再起风云呢?