最新Android版本的Rowhammer攻击 了解一下

  • A+
所属分类:网络安全新闻

来自世界各地的大学研究人员组成的团队针对最新的Android操作系统设计了一系列基于DMA的Rowhammer攻击,并设计了一种轻量级防御措施,以防止对基于ARM的设备发起此类攻击。

最新Android版本的Rowhammer攻击 了解一下

Rowhammer是一个影响动态随机存取存储器(DRAM)芯片的漏洞,可以滥用它来获得Linux系统的内核特权。在2012年发现但仅在2014年记录,该错误也可以使用JavaScript或图形处理单元(GPU)远程利用。

去年,格拉茨技术大学,宾夕法尼亚大学(和马里兰大学)和阿德莱德大学的研究人员透露了一系列攻击手段,能够绕过对罗汉姆的现有防御。

现在,来自阿姆斯特丹Vrije大学,印度Amrita大学,加州大学圣塔芭芭拉分校和EURECOM的八位研究人员提出了RAMpage,这是一组针对最新Android版本的攻击,具有绕过所有防御措施的根漏洞和app-to-app攻击。

在一篇研究论文(PDF)中,他们还提出了GuardION,轻量级防御措施,通过将DRAM缓冲区与DRAM级别的防护行隔离,减轻了ARM系统对Rowhammer的开发。

此外,研究人员声称,为了防止攻击,重新启用高阶分配可以提高系统性能。

Rowhammer是一个硬件错误,“由密集封装的DRAM芯片上的相邻存储单元之间的电荷泄漏组成。”这意味着,当使用DRAM模块中的一行位时,相邻行受到轻微影响,并且攻击者可以滥用它来完全破坏系统的安全性。

安全研究人员认为,在无法进行硬件升级的移动设备上,这个问题尤其严重。他们还指出,现有的软件防御措施效果不佳,目前的攻击可以规避目前所有提出和实施的防御技术。

为了利用Rawhammer,攻击者需要将安全敏感的页面放置在易受攻击的物理内存位置,并且需要快速访问DRAM芯片,以在刷新之前触击相同的行。他们还必须确定映射到与受害者行相邻的两个物理行的虚拟地址。

为了降低风险,Google禁用了连续堆,但保留了系统堆可用。该公司还将内部系统堆池减少到两个,并强制系统堆只从highmem返回内存页面。

通过耗尽系统堆,研究人员能够获得连续的页面,并通过双面Rowhammer找到可利用的位翻转。研究人员然后欺骗系统释放预先分配的缓存内存,包括具有易受攻击页面的行,并开发了利用这种攻击技术的根漏洞。

研究人员还表示,有可能破坏属于另一个应用程序或进程的缓冲区,这种攻击方案可能会滥用特权应用程序以增加损害。他们还争辩说,攻击者可能会试图耗尽连续内存分配器(CMA)位图,或者从CMA分配的内存中损坏系统内存。专家承认,这种攻击在技术上具有挑战性。

Guardion是最新提出的针对移动设备上基于DMA的Rowhammer攻击的缓解措施,专注于限制攻击者未缓存分配的功能。昂贵的细粒度隔离可以应用于每个DMA分配,GuardION将缓冲区隔离为两个保护行:一个位于“顶部”,另一个位于“底部”。

“这强制执行严格的包含策略,其中通过读取未缓存的内存而触发的位翻转不会发生在该DMA缓冲区的边界之外。实际上,这种设计通过消除攻击者在敏感数据中注入位翻转的能力来防御Rowhammer,“研究人员声称。

然而,缓解是基于位置翻转不在物理位于距攻击者行多于一行的存储器页面中的情况。这种翻转过去从未有过报道,Rowhammer攻击本身使这种事件不可能发生。

根据研究报告,GuardION的性能影响不仅可以忽略不计,而且与当前Android代码库的集成相当容易。原型实现仅包含844行代码,并且只涉及Android源代码中的9个文件。研究人员正在向Google提交补丁以供采用。

CE安全网

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: