Skip to main content
QUICK REVIEW

[论文解读] ARMageddon: Cache Attacks on Mobile Devices

Moritz Lipp, Daniel Gruss|arXiv (Cornell University)|Nov 16, 2015
Security and Verification in Computing参考文献 48被引用 125
一句话总结

本论文首次在未经修改、非Root的Android智能手机上实现了基于ARM处理器的跨核心与跨CPU缓存攻击——Prime+Probe、Flush+Reload、Evict+Reload和Flush+Flush。通过克服非包含式最后一级缓存、缺乏缓存刷新指令以及伪随机替换策略等挑战,作者实现了高精度的计时攻击,能够监控击键、触摸事件,甚至从Android TrustZone中的Java实现的AES算法中提取加密密钥。

ABSTRACT

In the last 10 years, cache attacks on Intel x86 CPUs have gained increasing attention among the scientific community and powerful techniques to exploit cache side channels have been developed. However, modern smartphones use one or more multi-core ARM CPUs that have a different cache organization and instruction set than Intel x86 CPUs. So far, no cross-core cache attacks have been demonstrated on non-rooted Android smartphones. In this work, we demonstrate how to solve key challenges to perform the most powerful cross-core cache attacks Prime+Probe, Flush+Reload, Evict+Reload, and Flush+Flush on non-rooted ARM-based devices without any privileges. Based on our techniques, we demonstrate covert channels that outperform state-of-the-art covert channels on Android by several orders of magnitude. Moreover, we present attacks to monitor tap and swipe events as well as keystrokes, and even derive the lengths of words entered on the touchscreen. Eventually, we are the first to attack cryptographic primitives implemented in Java. Our attacks work across CPUs and can even monitor cache activity in the ARM TrustZone from the normal world. The techniques we present can be used to attack hundreds of millions of Android devices.

研究动机与目标

  • 证明此前仅限于x86系统的强大跨核心缓存攻击在ARM架构移动设备上是可行的。
  • 克服ARM移动架构中的硬件特异性挑战,如非包含式最后一级缓存和缺少缓存刷新指令。
  • 在无需任何权限的未经修改、市售的Android智能手机上实现高精度缓存侧信道攻击。
  • 展示通过缓存计时可推断出细粒度的用户操作行为(如敲击和滑动),并证明Java实现的密码学算法存在漏洞。
  • 展示可从普通世界监控ARM TrustZone内的缓存活动,从而将攻击面扩展至用户空间应用之外。

提出的方法

  • 开发了一种利用缓存一致性协议和L1到L2缓存行传输的技术,以实现在非包含式最后一级缓存上的跨核心攻击。
  • 采用基于Rowhammer技术的快速驱逐策略,以绕过非ARMv8-A处理器上缺乏缓存刷新指令的问题。
  • 设计了与缓存驱逐策略相互锁定的重访问循环,以减轻ARM缓存中伪随机替换策略带来的噪声影响。
  • 评估并选择了Android平台上的高精度计时源,证明在无Root权限下也可实现周期级精确测量。
  • 将Prime+Probe与并行监控相结合,成功从普通世界检测到ARM TrustZone内的缓存活动,即使存在隔离机制。
  • 将已知的缓存攻击原 primitive(Flush+Reload、Evict+Reload、Flush+Flush)应用于Android默认的Java T-table实现AES算法,成功演示了密钥恢复。

实验结果

研究问题

  • RQ1能否在非Root、未经修改的ARM架构Android智能手机上成功实施Flush+Reload和Prime+Probe等跨核心缓存攻击?
  • RQ2如何使缓存攻击适配于缺乏缓存刷新指令且使用非包含式最后一级缓存的ARM处理器?
  • RQ3缓存侧信道攻击在多大程度上可用于推断移动触摸屏上的细粒度用户输入事件(如击键和滑动)?
  • RQ4是否可能仅通过用户空间访问从普通世界监控ARM TrustZone内的缓存活动?
  • RQ5现有缓存攻击技术能否应用于移动平台上高级语言(如Java)实现的密码学算法?

主要发现

  • 作者成功在仅使用标准Android权限的非Root Android智能手机上实现了Flush+Reload、Prime+Probe、Evict+Reload和Flush+Flush攻击。
  • 攻击实现了亚微秒级分辨率,能够检测单个击键及击键间隔的时间模式。
  • 团队测量了Java Bouncy Castle提供者在加密操作期间的缓存访问模式,成功从AES T-table中恢复了完整密钥。
  • 即使TrustZone在进入/退出时刷新缓存,仍可通过Prime+Probe从普通世界监控到ARM TrustZone内的缓存活动。
  • 由于缓存一致性协议的存在,攻击在不同CPU核心之间,甚至在多核移动设备的不同CPU之间均有效。
  • 研究发现,Android的 /proc/pid/pagemap 和 /proc/pid/maps 对无特权应用依然可访问,从而可实现地址转换和攻击向量发现。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。