Skip to main content
QUICK REVIEW

[논문 리뷰] ARMageddon: Cache Attacks on Mobile Devices

Moritz Lipp, Daniel Gruss|arXiv (Cornell University)|2015. 11. 16.
Security and Verification in Computing참고 문헌 48인용 수 125
한 줄 요약

이 논문은 ARM 프로세서를 탑재한 수정되지 않은, 루트 권한이 없는 안드로이드 스마트폰에서 사용자 권한이 없는 상태에서도 실용적인 코어 간 및 CPU 캐시 공격—Prime+Probe, Flush+Reload, Evict+Reload, Flush+Flush—을 처음으로 구현한다. 비포함형 최종 레벨 캐시, 플러시 명령어 부재, 의사난수 치환 정책 등의 과제를 극복함으로써, 사용자 키보드 입력, 터치 이벤트를 모니터링하고, 안드로이드 트러스트존 내 자바 기반 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 모바일 아키텍처의 하드웨어 특수 과제를 극복하는 것.
  • 특권 권한 없이 수정되지 않은, 일반 유통되는 안드로이드 스마트폰에서 고정밀 캐시 사이드채널 공격를 가능하게 하는 것.
  • 타이핑 및 스와이프와 같은 민감한 사용자 활동이 캐시 타이밍을 통해 추론 가능하다는 것을 보여주고, 자바 기반 암호화 구현체가 취약하다는 것을 입증하는 것.
  • 일반 월드에서 트러스트존 내 캐시 활동을 모니터링할 수 있음을 보여주어, 사용자 애플리케이션을 넘어서 공격 표면을 확장하는 것.

제안 방법

  • 캐시 일관성 프로토콜과 L1에서 L2로의 캐시 라인 이동을 활용하여 비포함형 최종 레벨 캐시에서의 코어 간 공격를 가능하게 하는 기법을 개발하였다.
  • 플러시 명령어가 없는 비-ARMv8-A 프로세서에서 작동하는 Rowhammer 기반의 빠른 캐시 제거 전략을 활용하여 플러시 명령어 부재 문제를 해결하였다.
  • 캐시 제거 전략과 상호작용하는 재접근 루프를 설계하여, ARM 캐시의 의사난수 치환 정책으로 인한 노이즈를 최소화하였다.
  • 안드로이드에서 고정밀 타이밍 소스를 평가하고 선택하여, 루트 권한 없이도 사이클 정밀 측정이 가능하다는 것을 입증하였다.
  • Prime+Probe를 병렬 모니터링과 결합하여, 고립 메커니즘에도 불구하고 일반 월드에서 트러스트존 내 캐시 활동을 감지하는 데 성공하였다.
  • 기존의 캐시 공격 프리미티브(Fetch+Reload, Evict+Reload, Flush+Flush)를 안드로이드의 기본 Java T-테이블 기반 AES 구현체에 적용하여 암호키 복구를 성공적으로 시연하였다.

실험 결과

연구 질문

  • RQ1루트 권한이 없고 수정되지 않은 ARM 기반 안드로이드 스마트폰에서도 Flush+Reload 및 Prime+Probe와 같은 코어 간 캐시 공격가 성공적으로 수행될 수 있는가?
  • RQ2플러시 명령어가 없고 비포함형 최종 레벨 캐시를 사용하는 ARM 프로세서에서 캐시 공격를 어떻게 적응시킬 수 있는가?
  • RQ3캐시 사이드채널 공격는 모바일 터치스크린에서 키보드 입력 및 스와이프와 같은 세밀한 사용자 입력 이벤트를 얼마나 정밀하게 추론하는 데 사용될 수 있는가?
  • RQ4사용자 공간 접근만으로도 일반 월드에서 ARM 트러스트존 내 캐시 활동을 모니터링할 수 있는가?
  • RQ5기존의 캐시 공격 기법은 고수준 프로그래밍 언어인 자바에서 모바일 플랫폼의 암호화 구현체에 적용될 수 있는가?

주요 결과

  • 저자들은 표준 안드로이드 권한만으로도 루트 권한이 없는 안드로이드 스마트폰에서 Flush+Reload, Prime+Probe, Evict+Reload, Flush+Flush 공격를 성공적으로 시연하였다.
  • 공격는 마이크로초 이내의 해상도를 확보하여 개별 키보드 입력과 키보드 간 간격 패턴을 감지할 수 있었다.
  • 팀은 자바의 Bouncy Castle 제공자에서 암호 연산 중 캐시 접근 패턴을 측정하여 AES T-테이블에서 암호키를 완전히 복구하는 데 성공하였다.
  • 트러스트존이 진입/퇴출 시 캐시를 플러시하더라도, 일반 월드에서 Prime+Probe를 사용하여 트러스트존 내 캐시 활동을 모니터링할 수 있었다.
  • 캐시 일관성 프로토콜 덕분에 공격는 다양한 CPU 코어 간, 심지어 멀티코어 모바일 기기의 다른 CPU 간에도 효과적으로 작동하였다.
  • 연구에서 안드로이드의 /proc/pid/pagemap 및 /proc/pid/maps가 비특권 앱에게도 접근 가능하다는 것이 드러났으며, 이는 주소 변환 및 공격 벡터 탐색을 가능하게 하였다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.