Cache side-channel attacks have been extensively studied on x86 architectures, but much less so on ARM processors. The technical challenges to conduct side-channel attacks on ARM, presumably, stem from the poorly documented ARM cache implementations, such as cache coherence protocols and cache flush operations, and also the lack of understanding of how different cache implementations will affect sidechannel attacks. This paper presents a systematic exploration of vectors for Flush-Reload attacks on ARM processors. Flush-Reload attacks are among the most wellknown cache side-channel attacks on x86. It has been shown in previous work that they are capable of exfiltrating sensitive information with high fidelity. We demonstrate in this work a novel construction of flush-reload side channels on last-level caches of ARM processors, which, particularly, exploits return-oriented programming techniques to reload instructions. We also demonstrate several attacks on Android OS (e.g., detecting hardware events and tracing software execution paths) to highlight the implications of such attacks for Android devices.
Zhang et al., REF design and implement a return-oriented flush+reload attack on ARM.
Return-Oriented Flush-Reload Side Channels on ARM and Their Implications for Android Devices
CCS '16
Computer Science