几名安全研究人员发表了一篇论文,介绍了一种基于位翻转漏洞 Rowhammer,并且将其威胁从内存完整性缺失扩展到内存信息泄露领域的技术 RAMBleed,表明位翻转的利用能力远超出当前人们的想象。
RAMBleed 是一种侧信道攻击,攻击者可以读取其它进程中的物理内存。研究者介绍,这一技术利用了几年前就出现的位翻转漏洞 Rowhammer,这是一种故障攻击,攻击者使用特定的存储器访问序列,使得内存出现位翻转,也就是 bit 值(0/1)改变。由于攻击者不直接访问更改的内存位置,因此 CPU 或操作系统一般不会察觉到问题。虽然这种位翻转技术不太好控制,但是其能力已被应用于沙箱逃逸、对操作系统和虚拟机管理程序的提权攻击、DoS 与加密协议故障注入等攻击。
过去人们认为 Rowhammer 攻击都是只能够破坏内存的完整性,也就是说,攻击者使用 Rowhammer 将有限的写入原语获取到其它无法访问的内存中,然后修改该内存的内容,而只要通过内存完整性检查就可以缓解这种攻击,比如使用以保护内存完整性为目标的内存或者带有纠错码(ECC)的内存。特别是纠错码技术,一直被认为是防止 Rowhammer 的有效手段,它可以在检测到位翻转时将其纠正。虽然近期有证据表明攻击者可以绕过 ECC 机制,使得在纠错后仍可观察到的位翻转,但成功纠正翻转仍然被认为是良性的,没有任何安全隐患。
但是研究者认为这样的想法不可靠,于是论文提出两个问题:
- Rowhammer 构成的威胁是否仅限于内存完整性缺失?
- 纠正位翻转的安全隐患是什么?即使 ECC 内存纠正了所有翻转位,攻击者是否可以使用 Rowhammer 来破坏机密性?
结果表明位翻转的利用能力远超出当前人们的想象,位翻转漏洞 Rowhammer 的威胁不仅仅是内存完整性缺失,它还可以用于获取内存信息。
研究人员研究出了一种 RAMBleed 攻击方法,这是一种侧信道攻击,通过观察 Rowhammer 引发的位翻转,可以推断出附近 DRAM 行中的值,因此可以读出属于其它进程的物理内存,论文中他们还演示了使用 RAMBleed 对 OpenSSH 的攻击,并成功获取了泄漏的 2048 位 RSA 密钥。
此外,与 Rowhammer 不同,RAMBleed 不需要持久的位翻转,因此服务器机器常用的 ECC 内存对于缓解该攻击是无效的。
研究人员将在 2020 年 5 月举行的第 41 届 IEEE 安全和隐私研讨会上发表题为“RAMBleed:在没有访问它们的情况下读取内存位”(RAMBleed: Reading Bits in Memory Without Accessing Them)的论文,进一步介绍该攻击手法。
论文地址:https://rambleed.com
(稿源:开源中国,封面源自网络。)
请登录后发表评论
注册