[論文レビュー] Rowhammer.Js: A Remote Software-Induced Fault Attack In Javascript
Rowhammer.js は、JavaScript を介してリモートでソフトウェアによって引き起こされるハードウェア障害攻撃の初の実例を提示する。高速なキャッシュエイビジョンを利用して、特権命令を必要とせずに Rowhammer ビットフィップを引き起こす。この攻撃により、脆弱なシステムではウェブサイトを通じてリモートで特権昇格が可能となり、従来の攻撃前提条件を回避し、既存の対策が無効化される。
A fundamental assumption in software security is that a memory location can only be modified by processes that may write to this memory location. However, a recent study has shown that parasitic effects in DRAM can change the content of a memory cell without accessing it, but by accessing other memory locations in a high frequency. This so-called Rowhammer bug occurs in most of today's memory modules and has fatal consequences for the security of all affected systems, e.g., privilege escalation attacks. All studies and attacks related to Rowhammer so far rely on the availability of a cache flush instruction in order to cause accesses to DRAM modules at a sufficiently high frequency. We overcome this limitation by defeating complex cache replacement policies. We show that caches can be forced into fast cache eviction to trigger the Rowhammer bug with only regular memory accesses. This allows to trigger the Rowhammer bug in highly restricted and even scripting environments. We demonstrate a fully automated attack that requires nothing but a website with JavaScript to trigger faults on remote hardware. Thereby we can gain unrestricted access to systems of website visitors. We show that the attack works on off-the-shelf systems. Existing countermeasures fail to protect against this new Rowhammer attack.
研究の動機と目的
- 特権命令やネイティブコードを必要とせずに、JavaScript のみで Rowhammer 故障をリモートで引き起こすことが可能であることを示すこと。
- 複雑な置換ポリシーを有する最新の Intel CPU においても有効な一般化されたキャッシュエイビジョン戦略を開発し、clflush のようなキャッシュフラッシュ命令に依存しないこと。
- 直接メモリアクセスが制限されている Web ブラウザのようなサンドボックス環境でも、Rowhammer のリモート利用を可能にすること。
- DDR3 および DDR4 メモリモジュールを含む多様な最新ハードウェアプラットフォームにおいて、攻撃の実現可能性と有効性を評価すること。
- この新しいタイプのリモートでブラウザベースの Rowhammer 攻撃に対して、既存のソフトウェアおよびハードウェア対策の限界を明らかにすること。
提案手法
- OS のメモリ割り当てヒューリスティクスを活用し、巨大ページ上に割り当てられた大きな配列を用いて、JavaScript 内で物理メモリレイアウトを推定し、物理アドレスを取得すること。
- 最新の Intel CPU における高いエイビジョン率と低遅延を達成する最適な設定を同定するため、キャッシュエイビジョン戦略のパラメータ空間を探索する新規で汎用的な手法を開発すること。
- 未知のハードウェア構成に動的に適応できる二段階のオンライン攻撃戦略を採用し、多様なシステム間で一貫したパフォーマンスを確保すること。
- clflush の必要性を、キャッシュラインを高周波でアクセスすることで排除し、純正 JavaScript 環境でも Rowhammer の利用が可能になるようにすること。
- 市販のハードウェアを用いて、Sandy Bridge から Skylake までの複数のプラットフォームで攻撃を検証し、脆弱な DRAM モジュールで一貫した障害誘発を確認すること。
- 既存のエクスプロイトプリミティブ(例:ページテーブル操作)を統合し、ビットフィップ検出後にリモートコード実行を達成することで、完全な攻撃チェーンを完成させること。
実験結果
リサーチクエスチョン
- RQ1特権命令や直接メモリアクセスが不要な JavaScript 環境で、Rowhammer ビットフィップを信頼性高く引き起こすことは可能か?
- RQ2最近の Intel CPU における複雑で非公開のキャッシュ置換ポリシーに対抗するための一般化されたキャッシュエイビジョン戦略は、どの程度効果的か?
- RQ3OS レベルのメモリ割り当てパターンを通じて、JavaScript 内で物理メモリアドレスをどの程度正確に推定できるか?
- RQ4ウェブサイトを通じた完全に自動化されたリモート Rowhammer 攻撃が、多様な最新ハードウェアプラットフォームで実現可能でスケーラブルであるか?
- RQ5なぜ既存のソフトウェアおよびハードウェア対策は、このリモートでブラウザベースの Rowhammer 攻撃に対して効果を発揮しないのか?
主な発見
- Rowhammer.js は、特権命令や直接メモリアクセスを必要とせずに、すべてのテスト済みの最新ブラウザ(Firefox および Chrome)で JavaScript 環境でビットフィップを正常に引き起こした。
- 攻撃は 85% のテスト済み DDR3 モジュールで高い障害率を達成し、DDR4 モジュールに対してもエクスプロイタブルであることが確認され、広範な脆弱性が裏付けられた。
- 提案されたキャッシュエイビジョン戦略は、最新のすべての Intel アーキテクチャで、先行手法を上回る性能を発揮し、最小限の遅延で高いエイビジョン率を達成した。
- 攻撃は完全に自動化されており、リモートで実行可能であり、1つの悪意あるウェブサイトから数百万台の被害マシンを同時に侵害できる。
- clflush の削除、ECC メモリの有効化、パフォーマンスカウンタ検出などの既存の対策は、この攻撃に対して効果を発揮しない。なぜなら、標準的なメモリ操作に依存しているためである。
- システムのリフレッシュレートを増加させても攻撃は依然として有効であるため、標準的な緩和策ではこの攻撃ベクトルに対処できないことが示された。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。