研究人员以RAMBleed攻击,窃取存在内存中的机密

有一群研究人员在本周披露了基于Rowhammer的新款攻击技术RAMBleed,相较于过去与Rowhammer相关的攻击行动都是变更或写入内存信息,RAMBleed则是用来读取内存信息,例如2048进制的RSA密钥。

Rowhammer被视为动态随机访问内存(DRAM)的设计漏洞,内存是由数列的记忆元(Cell)所组成,有鉴于记忆元的密度越来越高,当黑客锁定所要攻击的内存列时,只要重复访问隔壁列的记忆元,就会造成内存控制电路的电压波动,影响目标内存列,造成进制反转现象,例如将1变成0或0变成1,等于是允许黑客写入或变更内存进制,最终可造成权限扩张等各种漏洞。

由于Rowhammer所造成的进制反转具备数据依赖性,例如当某个进制上方及下方的进制电荷是相反时,该进制便更容易反转,这使得黑客能够推断附近的进制值,于是研究人员发展出新的内存通讯技术,以记录反转换制的上下进制值,发动RAMBleed攻击,而且这些进制可能属于不同的程序,打破了由操作系统强制执行的隔离边界。

RAMBleed攻击每秒大概可读取3到4个进制,研究人员先是花了4个小时取得了足够数量的2048进制RSA密钥,再以Heninger-Shacham算法恢复完整的RSA密钥,但理论上RAMBleed可读取存在于内存中的所有数据。

RAMBleed攻击是奠基在Rowhammer之上,因此所有受到Rowhammer影响的内存都难逃一劫,包括DDR3与激活TRR的DDR4。之前已证实Rowhammer漏洞波及移动设备及笔记本电脑,而这次研究人员则在桌面计算机及激活ECC的服务器上,成功示范了RAMBleed。

这群研究人员分别是来自密西根大学的Andrew Kwong与Daniel Genkin、奥地利格拉茨科技大学的Daniel Gruss,以及澳洲阿德莱德大学的Yuval Yarom,他们已通知了英特尔、AMD、OpenSSH、微软、英国及红帽,也已取得CVE-2019-0174漏洞编号。

研究人员建议,将内存升级到激活TRR的DDR4将可减轻该漏洞所带来的影响,尽管该配置仍有机会被开采,但难度较高。

不管是Rowhammer或RAMBleed攻击目前看来都仍处学术研究阶段,尚未发现实际的攻击行动,只是作者之一的Kwong向The Register表示,从历史来看,今日的学术研究很可能就会成为明天的问题。

该研究论文名称为《不必访问它们就能读取内存进制》(Reading Bits in Memory Without Accessing Them),研究人员准备在明年5月举行的IEEE安全暨隐私研讨会(41st IEEE Symposium on Security and Privacy)上正式发布。