[論文レビュー] ARMageddon: Cache Attacks on Mobile Devices
この論文は、ARMプロセッサ搭載の変更なし、root権限なしのAndroidスマートフォンを対象とした、初めての実用的でクロスコアかつクロスCPUキャッシュ攻撃—Prime+Probe、Flush+Reload、Evict+Reload、Flush+Flush—を実証した。非インクルーシブな最後段キャッシュ、フラッシュ命令の欠如、擬似ランダム置換ポリシーといった課題を克服することで、キーボード入力やタッチイベントの監視、さらにはAndroid TrustZoneにおけるJavaベースのAES実装から暗号鍵の抽出にまで至る高精度なタイミング攻撃を達成した。
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スマートフォンに対し、高精度なキャッシュサイドチャnel攻撃を可能にすること。
- タイピングやスワイプといったユーザーの微細な行動がキャッシュタイミングから推定可能であることを示し、Javaで実装された暗号実装が脆弱であることを明らかにすること。
- 通常世界からARM TrustZone内のキャッシュ活動を監視できることを示し、攻撃表面をユーザースペースアプリケーションを超えて拡大すること。
提案手法
- キャッシュ一貫性プロトコルとL1からL2へのキャッシュライン転送を活用した技術を開発し、非インクルーシブな最後段キャッシュ環境下でのクロスコア攻撃を可能にした。
- 非ARMv8-Aプロセッサではフラッシュ命令が存在しないため、Rowhammer風の高速エバクエーション戦略を用いてその欠如を補った。
- 擬似ランダム置換ポリシーに起因するノイズを軽減するため、キャッシュエバクエーション戦略と連携する再アクセスループを設計した。
- Android上で高精度なタイミングソースを評価・選定し、rootアクセスなしでサイクル単位の正確な測定が可能であることを実証した。
- Prime+Probeと並列監視を組み合わせ、隔離メカニズムが存在する状態でも、通常世界からARM TrustZone内のキャッシュ活動を検出可能にした。
- 既知のキャッシュ攻撃プリミティブ(Flush+Reload、Evict+Reload、Flush+Flush)をAndroidのデフォルトのAES Tテーブル実装(Java)に適用し、鍵回復を実証した。
実験結果
リサーチクエスチョン
- RQ1Flush+Reload や Prime+Probe といったクロスコアキャッシュ攻撃が、root権限なしで変更なしのARMベースAndroidスマートフォンでも成功するか?
- RQ2フラッシュ命令がなく、非インクルーシブな最後段キャッシュを備えたARMプロセッサ上で、キャッシュ攻撃をどのように適合可能にするか?
- RQ3キャッシュサイドチャネル攻撃は、キーボード入力やスワイプといった微細なユーザー入力イベントをどの程度まで推定可能にするか?
- RQ4ユーザースペースアクセスのみで、通常世界からARM TrustZone内のキャッシュ活動を監視することは可能か?
- RQ5既存のキャッシュ攻撃技術は、モバイルプラットフォームにおける高レベル言語(例:Java)で実装された暗号実装にも適用可能か?
主な発見
- 著者らは、標準的なAndroid権限のみを用いて、非rootのAndroidスマートフォンに対してFlush+Reload、Prime+Probe、Evict+Reload、Flush+Flush攻撃を成功させた。
- 攻撃は1マイクロ秒未塔の分解能を達成し、個々のキーストロークやキーストローク間隔パターンの検出が可能になった。
- JavaのBouncy Castleプロバイダーにおける暗号処理中のキャッシュアクセスパターンを測定し、AES Tテーブルからの完全な鍵回復を実証した。
- TrustZoneがエントリ/エグジット時にキャッシュをフラッシュしても、通常世界からPrime+Probeを用いてキャッシュ活動を監視可能であった。
- キャッシュ一貫性プロトコルのおかげで、異なるCPUコア間、さらにはマルチコアモバイルデバイス内の異なるCPU間でも攻撃が有効に機能した。
- Androidの /proc/pid/pagemap および /proc/pid/maps が特権なしアプリケーションからもアクセス可能であることが判明し、アドレス変換と攻撃ベクトルの特定が可能になった。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。