[論文レビュー] Still Hammerable and Exploitable: on the Effectiveness of Software-only Physical Kernel Isolation.
この論文は、CATT、最新のソフトウェアオンリー物理的カーネル隔離手法の1つである、カーネルとユーザードメインの間で共有される二重所有権を持つカーネルバッファを悪用することで、CATTを回避する新しいRowhammerベースの攻撃を提示している。メモリアントラスト技術と効率的なサイドチャネル誘導型ハンマリングアルゴリズムを用いることで、システムメモリを枯渇させず、仮想から物理アドレスマッピングに依存せず、わずか128MBのメモリで1〜36分のうちにルートおよびカーネル権限を取得できる。
All the state-of-the-art rowhammer attacks can break the MMU-enforced inter-domain isolation based on the fact that the physical memory owned by each domain is adjacent to each other. To mitigate such attacks, CATT as the first generic and practical technique, essentially separates each domain physically. It divides the physical memory into multiple partitions and keeps each partition occupied by only one domain, called the single ownership invariant. Hence, all existing rowhammer attacks are effectively defeated. In this paper, we develop a novel practical exploit, which could effectively defeat CATT and gain both root and kernel privileges, without exhausting page cache and system memory, or relying on any virtual-to-physical mapping information. Specifically, our key observation is that on the modern OSes there exist double-ownership kernel buffers (e.g., video buffers) owned concurrently by the kernel and user domains, invalidating the singleownership invariant enforced by CATT and making the rowhammer-based attack become possible again. In contrast to existing conspicuous rowhammer exploits that exhaust page cache or even the whole system memory, we propose a new attack technique, named memory ambush, which is able to place the hammerable kernel buffers physically adjacent to the target objects (e.g., page tables) with only a small amount of memory, making our exploit stealthier and fewer memory fingerprints. We also replace the inefficient rowhammer algorithm that blindly picks up addresses for hammering with an efficient one, which probes suitable addresses using a side channel. We implement our exploit on the Linux kernel 4.10.0-generic. Our experiment results indicate that our exploit is able to gain the root and kernel privileges within roughly 1 to 36 minutes. The occupied memory could be reduced to 128MB.
研究の動機と目的
- 現代のOSがCATTによる物理的メモリパーティショニングを採用しているにもかかわらず、Rowhammer攻撃が依然として成立するかどうかを調査すること。
- CATTの単一所有権インヴァリアントに反する二重所有権を持つカーネルバッファの存在を同定し、それを悪用すること。
- ページキャッシュの枯渇や仮想から物理アドレスマッピングに依存しない、より静かでメモリ効率の良いRowhammer攻撃を設計すること。
- 現実的なLinux環境において、実用的な特権昇格攻撃を実証すること、その結果、ルートおよびカーネルアクセスを達成すること。
提案手法
- カーネルとユーザードメインの間で共有される、例えばビデオバッファのような二重所有権を持つカーネルバッファを特定し、CATTの単一所有権インヴァリアントに違反するものとする。
- わずかなメモリフットプリントで、ハンマブルなカーネルバッファをターゲットオブジェクト(例:ページテーブル)に物理的に隣接させるためのメモリアンバッシュ技術を開発する。
- ブラuteフォースなアドレス選択に代わって、サイドチャネルを用いて最適なアドレスをプローブおよび選択する効率的なRowhammerアルゴリズムを実装する。
- システムメモリを枯渇させず、仮想から物理アドレスマッピングに依存しないようにして、攻撃のステルス性と実用性を高める。
- Linuxカーネル4.10.0-genericに技術を統合し、実世界環境での攻撃の妥当性を検証する。
- メモリ使用量を最適化し、必要最小限のフットプリントを128MBまで削減する。
実験結果
リサーチクエスチョン
- RQ1CATTがドメインごとに物理的メモリ所有権を単一に保証するにもかかわらず、Rowhammer攻撃は依然として成功するのか?
- RQ2二重所有権カーネルバッファのような、CATTの隔離保証を損なうシステムレベルのメカニズムは何か?
- RQ3メモリ消費量を最小限に抑え、ページキャッシュの枯渇を回避することで、どのようにRowhammer攻撃をより静かにできるか?
- RQ4サイドチャネル技術は、Rowhammerのアドレス選択の効率をどの程度向上させられるか?
- RQ5このような攻撃は、実際のLinuxカーネル環境において実用的で、性能的にも妥当なのか?
主な発見
- 攻撃は、単一所有権インヴァリアントに違反する二重所有権を持つカーネルバッファを悪用することで、CATTを効果的に回避した。
- メモリアンバッシュ技術により、わずか128MBのメモリでハンマブルなバッファとターゲットオブジェクトの物理的隣接を実現した。
- サイドチャネル誘導型ハンマリングアルゴリズムは、盲目的なアドレス選択に比べて著しく効率が向上した。
- 攻撃はLinuxカーネル4.10.0-generic上で1〜36分のうちにルートおよびカーネル権限を取得した。
- 攻撃は最小限のメモリの痕跡を残し、システムメモリを枯渇させる従来のRowhammer攻撃よりもはるかに静かだった。
- 結果として、CATTのようなソフトウェアオンリーの物理的隔離メカニズムだけでは、洗練されたRowhammerベースの特権昇格攻撃を完全に防げないことが示された。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。