欢迎光临
我们一直在努力

再现位翻转漏洞!新型DRAM侧信道攻击,可成功获取OpenSSH 2048位密钥

据外媒报道,安全研究人员发现一种新型的动态随机存取存储器(DRAM)侧通道攻击RAMBleed,被追踪为CVE-2019-0174,允许黑客获取设备存储器中的潜在敏感数据,影响使用DDR3和DDR4内存模块的设备。

据悉,该攻击基于几年前就出现的位翻转漏洞Rowhammer,这是一种故障攻击,攻击者使用特定的存储器访问序列,使得内存出现位翻转,也就是 bit值(0/1)改变。由于攻击者不直接访问更改的内存位置,因此 CPU或操作系统一般不会察觉到问题。

它可绕过ECC机制,允许黑客使用普通用户权限从OpenSSH服务器中提取签名密钥。黑客通过观察Rowhammer引发的位翻转,可推断出附近DRAM行中的值,进而读取其它进程中的物理内存。

什么是Rowhammer?

DRAM芯片包含数以百万计排的电容,包括充电或放电两种类型,这两种状态代表了比特位的值,即0和1。要访问DRAM芯片中存在的值,系统需要给整排电容进行同时加压,并读出所有的值,由于性能的原因使得要一次只读取其中某位比特的信息是不现实的。

事实上,DRAM的读取操作实际上是一个读取和更新的操作。读取一行的值需要其电容放电,电容也就丢掉了它存的值。这意味着数据必须通过给电容充电的方式立即写回。这种读取和更新过程实际上发生在DRAM定期给电容放电来稳定自己,这就是术语中是动态RAM(Dynamic RAM),而不是静态RAM的原因。

随着电容越来越小,排列越来越近,要防止相邻电容之间相互影响干扰已经变得越来越难。快速和反复地访问一排电容,会在相邻行的电容间产生干扰错误和比特位翻转。比特位翻转很少发生在正常操作期间,因为缓存会限制DRAM读取和更新循环需要发生的次数。

然而,卡内基梅隆大学的研究人员在2014年发表的一篇题为《无访问情况下的内存比特位翻转——DRAM干扰性错误的试验研究》的论文表明,重复性使用机器码指令CLFLUSH或Cache Line Flush,能够清除缓存并强制进行读取和更新。研究人员发现,利用这一技术迫使内存反复读取并给一排电容充电的话,将引起大量的比特位翻转——产生所谓的Rowhammering现象。

RAMBleed

Rowhammer 构成的威胁是否仅限于内存完整性缺失?

纠正位翻转的安全隐患是什么?即使 ECC内存纠正了所有翻转位,攻击者是否可以使用Rowhammer 来破坏机密性?

结果表明位翻转的利用能力远超出当前人们的想象,位翻转漏洞 Rowhammer 的威胁不仅仅是内存完整性缺失,它还可以用于获取内存信息。

通过观察 Rowhammer引发的位翻转,可以推断出附近 DRAM行中的值,因此可以读出属于其它进程的物理内存,论文中研究人员还演示了使用 RAMBleed 对 OpenSSH的攻击,并成功获取了泄漏的 2048位 RSA密钥。

但是与 Rowhammer不同,RAMBleed不需要持久的位翻转,因此服务器机器常用的 ECC内存对于缓解该攻击是无效的。

研究者表示,虽然这种位翻转技术不太好控制,但是其能力已被应用于沙箱逃逸、对操作系统和虚拟机管理程序的提权攻击、DoS与加密协议故障注入等攻击。

专家表示商业安全软件检测到该类攻击的可能性较小,建议用户在启用目标行刷新(TRR)的情况下将内存模块升级到DDR4以保护设备,内存制造商可通过更严格测试有故障的DIMM来缓解此问题。

截至目前,RAMBleed未被野外开发利用,研究人员已向英特尔、AMD、OpenSSH、微软、苹果和红帽通报了调查结果。此外,研究人员将在2020年5月举行的第41届IEEE安全和隐私研讨会上发表论文,进一步介绍该攻击手法。

来源:安胜ANSCEN、cnbeta、TechTarget中国

赞(0)
转载请注明出处:常识SEO知识回头是家归来分享 » 再现位翻转漏洞!新型DRAM侧信道攻击,可成功获取OpenSSH 2048位密钥

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址