近期,安全研究专家通过研究发现了一种root安卓手机的新方法,即通过Rowhammer漏洞来root安卓手机。除此之外,攻击者甚至还可以用这个漏洞配合目前已知的安卓系统漏洞(Bandroid和Stagefright)来对目标用户实施攻击。
在去年年初,Google公司ProjectZero项目组的安全研究专家发现,攻击者可以通过内存中的一个设计缺陷来劫持安装了linux系统的计算机,并获取到目标系统内核的高级权限。现在,攻击者又可以利用这个设计缺陷来root成千上万的安卓手机了。
在此之前,阿姆斯特丹自由大学VUSec安全实验室的研究人员发现了一种名为Rowhammer的攻击方式,攻击者或可通过这种攻击方法来攻击目标设备的动态随机存储器(DRAM)。虽然我们早就已经熟知Rowhammer攻击了,但是这却是安全研究专家第一次将该攻击应用到移动设备上。
针对动态随机存储器(DRAM)的Rowhammer攻击到底是什么?
针对移动设备的Rowhammer攻击杀伤力同样非常巨大,在Google开发出相应补丁之前,这个问题将会使数百万安卓手机中的重要数据陷于安全风险之中。
当攻击者尝试发起Rowhammer攻击时,他需要执行一款恶意软件,并通过这款恶意软件来重复访问内存芯片中的某一行晶体管,而攻击的第二步被称为“敲击”(Hammering)。当恶意软件对某一块内存区域进行“敲击”时会影响相邻的内存行,并引起电荷泄漏。而这种电磁干扰最终将会导致其他行的内存数据发生比特(bit)翻转。在这种情况下,内存中的数据将会被改变,而也这就成为了一种获取设备控制权的新方法。
简单来说,Rowhammer攻击指的是在新一代DRAM芯片上反复访问一行内存,而这种操作将有可能造成相邻内存行的数据发生比特翻转,这种攻击技术将允许任何人修改设备内存中保存的数据内容。
Project Zero项目组在其发表的研究报告中写到:
“现在DRAM的制造精度越来越高,部件在物理层面上越来越小。所以对于生产商而言,既要在一块芯片上集成更大的内存容量,又要让各个内存单元之间不发生电磁干扰,其实是非常难做到的。这一情况所产生的后果为:对内存单个区域进行的读写将有可能干扰到邻近的内存区域,导致电流流入或流出邻近的内存单元。如果反复进行大量的读写操作,将有可能改变邻近内存单元的内容,使得原始的比特数据0变成1,或者1变成0。”
你的安卓手机会受影响吗?
为了在安卓手机中测试Rowhammer攻击,安全研究专家构建出了一种全新的漏洞利用PoC,即DRAMMER。通过测试发现,这种新型的漏洞利用方法不仅可以成功地修改很多热门手机中的数据,而且还可以成功地root这些安卓手机。
研究人员成功root的安卓手机包括Google的Nexus 4和Nexus 5,LG的G4,三星GalaxyS4和GalaxyS5,摩托罗拉的MotoG(2013/2014),以及国产的一加手机。但不排除还有其他品牌的安卓手机也会受到DRAMMER攻击的影响。
安全研究专家在测试报告中写到【PDF】:
“我们所设计出的DRAMMER攻击足以证明,Rowhammer攻击对于数十亿的移动用户来说绝对是一个真正的安全威胁。不仅如此,我们的实验还表明,Rowhammer攻击不仅可以入侵x86平台,而且对于移动设备也同样适用。”
DRAMMER攻击的工作机制
为了利用这个漏洞,安全研究人员专门开发了一款恶意软件,其中包含有相应的漏洞利用代码(见文末链接)。为了避免被反病毒软件检测到,这款恶意软件不需要获取任何特殊的用户权限即可root目标手机。但是,为了成功执行DRAMMER攻击,我们还得让用户去下载这个包含漏洞利用代码的恶意软件。
为了实现攻击,研究人员还需要通过安卓系统中一个名为“ION内存分配/管理”的机制来获取到DRAM的直接访问权。除了可以为每一个应用程序提供DRAM的直接访问权之外,ION内存管理器还可以允许应用程序识别DRAM的相邻行内存空间,而这也是让内存数据发生比特翻转的重要前提。
了解到这些信息之后,研究人员就得想办法如何利用“比特翻转”来root目标设备了。在获取到目标手机的完整控制权之后,他们就可以从目标手机中提取出任何数据了。
安全研究人员表示:
“简而言之,我们的攻击方法主要通过耗尽不同大小的内存块来使物理内存分配程序进入一种工作状态,在这种状态下,它就会使用我们可以预测到的内存区域来填补被耗尽的那部分内存空间。接下来,我们就可以控制内存分配程序来将目标设备中的敏感数据(例如一张内存页表)转移至一块容易进行比特翻转的物理内存中。这样一来,我们就可以通过DRAMMER来进行攻击了。”
当目标设备下载并安装了我们的恶意软件之后,DRAMMER漏洞利用代码便会在几分钟之内接管目标手机(有时只需几秒钟),而且整个过程完全不需要任何的用户交互。即便是当你在使用其他应用或者将手机调成“睡眠”模式时,攻击过程仍然不会停止。
目前还没有可行的解决方案
安全研究专家已经在今年的七月份就已经将关于该漏洞的信息提交给了Google公司。Google公司已经将该漏洞归类为了“高危漏洞”,根据漏洞奖励计划的规定,Google为这些研究专家提供了四千美金的漏洞奖励。
Google表示,公司在获取到了关于该漏洞的详细信息之后便通知了相关的合作厂商。在十一月份的安全更新公告中,Google将会向广大用户提供能够缓解DRAMMER攻击的解决方案。
但是安全研究人员警告称,目前用户手中的安卓智能手机其内存芯片是否无法更换的,因此这个安全问题在短时间内将无法得到彻底的修复。除此之外,DRAMMER攻击还会利用操作系统中其他的一些基础功能,如果要移除或修改这些基本功能的话,用户的体验性将会大大降低。简而言之,下一代安卓智能手机是很难去修复这个问题的。
攻击演示+漏洞PoC
安全研究专家总共公布了两份PoC视频,并且在视频中演示了如何对LGNexus 5来进行DRAMMER攻击。
在第一份视频中,测试手机运行的是Android6.0.1,并且安装了Google在10月5日所发布的安全补丁。
在第二段视频中,研究人员演示了如何使用Stagefright漏洞配合DRAMMER攻击来入侵一些未打补丁的老款安卓手机。