Black Hat Asia 2019 | PC安全机制又招“重锤”,百度安全发现新型Rowhammer攻击方法

作者:   深圳市网安计算机安全检测技术有限公司 2019/04/11 09:51:07 243次阅读 国际
文章来源:http://www.itbear.com.cn/html/2019-04/344321.html

        自从Rowhammer漏洞首次出现以来,研究者与防御者之间可以说从此上演了一场军备竞赛,一招一式之间彰显各方技术实力。就在最近,百度安全实验室资深研究员Yueqiang Cheng博士和新南威尔士大学的Zhi Zhang博士就祭出大招,他们发现了一种新型Rowhammer攻击方法,可以有效攻破目前PC上的各种防御机制,从而使得整个PC安全机制面临崩塌的风险。

  凭借此项研究,百度安全成功入选了本届Black Hat Asia,成为本届大会“连中三元”的赢家。3月26日,Yueqiang Cheng博士和Zhi Zhang博士受邀出席大会并在演讲中详细介绍了Rowhammer新型攻击方法和防御思路。

  Black Hat是国际安全工业界的顶级会议之一,具有广泛的影响力。每年分别在美国、欧洲、亚洲各举办一次安全信息技术峰会,会议聚焦于先进安全研究、发展和趋势,并以其强技术性、权威性、客观性引领未来安全思想和技术的走向。为保证会议内容的技术先进性和客观性,Black Hat对报告内容有严苛的评审机制,报告入选率不足20%。近年来,百度安全多次登上Black Hat的舞台,分享在AI安全、移动安全等领域的研究与实践成果。

  百度安全发现最全新Rowhammer攻击方法

  这几年,硬件内存容量正在大幅度上涨,这直接要求着每个单独DRAM芯片上的存储容量也要提升,存储单元的密度显著增加。当频繁轰炸多个DRAM内存单元时,其相邻行的电荷将会发生相互干扰,触发DRAM单元极间的相互作用,造成DRAM中比特位数值的永久翻转,这意味着攻击者可以在不访问目标内存区域的前提下使目标内存区域产生数据错误。这就是Rowhammer比特翻转攻击。

alt

  攻击者可以利用它破坏MMU强制执行的内存保护,从而获得权限提升。值得关注的是,在这个过程中攻击者不需要借助任何软件漏洞,便能打破沙盒,攻击内核甚至虚拟机监控器,从而获得非法提权,造成用户隐私泄漏或者帐号资产被盗等严重损失。

  这一存在设备硬件端的漏洞,已然超越了传统安全软件的对于解决方案的认识,无法仅仅通过升级操作系统软件来解决。但为了抵御该攻击,业界还是提出了不少防护措施。基于硬件的防护措施需要硬件厂商修改硬件标准,对硬件进行升级,对现有的硬件无法进行防护。因此,具有实用性的软件防护机制是目前主流的防御办法。

  在这些软件防御中,基于内核的memory isolation是最有效和实用的解决方案(CATT Usenix Security 2017)。该方案将物理内存分割成若干隔离的物理分区,并确保每一个分区只能被一个软件域使用,由任意软件域发起的内存访问只能由它所分配的物理分区完成,因此,任何软件域所触发的位翻转只能发生在该域所在的分区,从而防止软件域逃逸而引起权限提升。

  此次演讲中,来自百度安全的Yueqiang Cheng博士展示了一种全新的攻击方法,可以有效攻破上述目前最先进的memory isolation机制,从而使得Rowhammer攻击内核变得可能。该方法证明在现代操作系统中,物理隔离也表现的回天乏术。

  具体来说,之前基于内核的memory isolation机制基于静态ownership来决定所有权的归属。比如内核申请的内存属于内核域,用户申请的内存属于用户域。但是Yueqiang Cheng博士发现,在现代的内核里面,内存的归属权往往是动态变动的,而且会有多个所有者的情况,比如大量mmap的内核内存,都同时有两个拥有者。通过这样的内存,攻击者就有机会发起Rowhammer,获得内核权限。该攻击分为以下几个步骤:

  1.寻找到符合要求的内存。此次攻击里面使用了SCSI驱动的内存和Video驱动的内存。这样的内存都具有两个所有者。

  2.百度安全提出了全新的memory ambush技术,将其隐蔽的放置页表页面在目标周围。相比以往的Rowhammer技术往往需要申请大量的内存,甚至有些时候会引起系统的崩溃等不稳定情况出现。而memory ambush技术巧妙的搭建在Linux Buddy Alloctor的基础上,可以有效且准确的控制目标内存。在实验环境下面,仅仅使用88MB内存就可以发起攻击。

  3.使用side-sided Rowhammaer技术对目标内存(比如页表页面)进行攻击,使其发生bit翻转

  4.控制页表去任意修改内核数据和其他程序的代码和数据

  5.修改uid,或者root提权。

  注意这里的memory ambush技术和另外文章another flip (S&P2018)里面用的memory waylaying有着类似的优点(占用内存很小,不会导致系统内存耗尽),但是两者的技术有很大不同。memory ambush技术建立在Linux Buddy Alloctor基础上,而memory waylaying建立在page cache的基础上。另外该another flip文章是从一个non-root process攻击了在同一个user隔离域里面的root process,memory ambush则是从根本上攻击了完全隔离的另外一个域(从user隔离域攻击kernel隔离域)。如果CATT进行了细粒度的隔离域分割,比如把user隔离域分为root-user隔离域和non-root-user隔离域,another flip的攻击就不能成功,但此次百度安全在Black Hat Asia上所展示的攻击依然有效。

  此次新型攻击程序允许普通用户隐蔽地获取Linux系统(Linux 4.x)的root/kernel权限。这对整个系统的完整性和隐私性都会形成重大威胁。获得提权之后,攻击者可以任意获取用户隐私,篡改重要数据,监控用户行为等等种种恶意攻击。

alt

  任重而道远,防御Rowhammer的路还很长

  Rowhammer还活着,比特翻转的风险依然存在。针对此次公布的新型攻击手法,百度安全也介绍了一些防御方案建议,希望这些研究成果能够给内存芯片厂商带来新的思路,提高芯片对于Rowhammer的防御能力。

  第一,将软件域之间的共享内存区域归入低权限的软件域中,因此将该共享内存和高权限的物理分区隔离,阻断Rowahmmer,这需要大量修改系统内核的内存分配子系统,确保共享内存区域不再用于安全敏感数据结构的分配,因此此方案可行性较低;

  第二,将所有数据(包括代码)所在的DRAM单元行进行上下隔离,即数据单元行之间相隔一个无效单元行,因此确保位翻转只会发生在无效行上,避免数据行被影响。此方法的问题在于没有考虑位翻转可以发生在连续多个单元行上,即一个数据单元行可引发相邻的无效单元行以及更远的数据单元行发生翻转,导致权限提升;

  第三,将所有的页表页放在DRAM模块的true cells上,且只有页表页均位于物理地址区域的最高区域,因此确保当页表页发生翻转时只会指向低段的物理地址区域(比特位只会由1到0进行翻转),而不会指向位于高端的页表页,从而防止攻击者获得可写页表页。该方案只保护以页表页可写为目标的Rowhammr攻击,保护范围受限,即当攻击者将页表页翻转指向一个非页表页,如当前进程的cred结构体或者root进程的权限检查代码页,该方案就会失效。最后,它依赖于一个大概率事件,即true cells的位翻转方向是1到0,但该翻转方向的概率是随DRAM模块变化的,并不是恒定的翻转方向,一旦true cells发生从0到1的翻转,那么该方案也会失效。

  总的来说,现有的软件防护只能一定程度地减弱Rowhammer攻击,我们还需要新的软件防护机制来保卫现有的计算机系统,提高黑客的攻击成本。

  在万物互联的趋势下,只有敢于直面问题才能解决问题。百度安全始终倡导通过新一代技术研发与开源,实现对安全问题的快速响应和有效对抗。在在本届Black Hat Asia中,百度安全对于深度神经网络(DNN)模型算法安全性、Rowhammer新型攻击方法、Meltdown新变种三大创新性研究报告成功入选,彰显了百度安全在AI安全、系统安全、软件安全等重要安全领域方面具有世界领先的技术储备。未来,百度安全还将继续联手学界、业界和监管机构一道,协作共赢,打造AI时代的安全生态。


指导单位
广东省公安厅网络警察总队 广东省信息安全等级保护协调小组办公室