[論文レビュー] Automatic Techniques to Systematically Discover New Heap Exploitation Primitives
ArcHeap は、現代のヒープアロケータにおける一般的な設計パターン(ボイニング、インラインメタデータ、基数データ)をモデル化し、ヒープ操作のシーケンスを探索することで、fuzzerに似た自動的かつ体系的な方法で、未知のヒープ利用脆弱性プリミティブを発見するツールである。ptmallocでは5つの以前に未知のプリミティブを発見し、他のアロケータに対しても複数のプリミティブを同定した。その結果、動作する概念実証(PoC)のエクスプロイトが生成され、根拠として提示された。
Heap exploitation techniques to abuse the metadata of allocators have been widely studied since they are application independent and can be used in restricted environments that corrupt only metadata. Although prior work has found several interesting exploitation techniques, they are ad-hoc and manual, which cannot effectively handle changes or a variety of allocators. In this paper, we present a new naming scheme for heap exploitation techniques that systematically organizes them to discover the unexplored space in finding the techniques and ArcHeap, the tool that finds heap exploitation techniques automatically and systematically regardless of their underlying implementations. For that, ArcHeap generates a set of heap actions (e.g. allocation or deallocation) by leveraging fuzzing, which exploits common designs of modern heap allocators. Then, ArcHeap checks whether the actions result in impact of exploitations such as arbitrary write or overlapped chunks that efficiently determine if the actions can be converted into the exploitation technique. Finally, from these actions, ArcHeap generates Proof-of-Concept code automatically for an exploitation technique. We evaluated ArcHeap with real-world allocators --- ptmalloc, jemalloc, and tcmalloc --- and custom allocators from the DARPA Cyber Grand Challenge. ArcHeap successfully found 14 out of 16 known exploitation techniques and found five new exploitation techniques in ptmalloc. Moreover, ArcHeap found several exploitation techniques for jemalloc, tcmalloc, and even for the custom allocators. Further, ArcHeap can automatically show changes in exploitation techniques along with version change in ptmalloc using differential testing.
研究の動機と目的
- ヒープ利用脆弱性プリミティブの発見が、手作業的かつアロケータ固有の方法に依存していることによる、時間的・システム的隔たりを克服する。
- 基礎となるアロケータ実装に依存しない、体系的かつ自動的な新しいヒープ利用脆弱性プリミティブの発見を可能にする。
- 現代のヒープアロケータにおける共通する設計のイディオムを抽象化することで、脆弱性プリミティブ発見の探索空間を縮小する。
- 各発見されたプリミティブに対して、形式的証明として最小限で動作する概念実証(PoC)エクスプロイトを生成する。
- 脆弱性研究と対策開発を支援するため、セキュリティチェックやレグレッションテスト用のテストケースを提供する。
提案手法
- ArcHeap は、探索空間を削減するために、3つのコア抽象化(ボイニング、インラインメタデータ、基数データ)を用いて現代のヒープアロケータをモデル化する。
- ヒープ操作(例:malloc、free、チャンク操作)および攻撃能力のシーケンスを生成・変異させることで、fuzzerに似た探索を実行する。
- テストケースが任意の書き込みや重複チャンクといった、利用可能な結果に到達できるかどうかを評価する、新規の「インパクト」評価メカニズムを採用する。
- 発見されたテストケースを最小化・簡略化するため、デルタデバッグを用いて、証明と再現性に適した最小限の同等のPoCに縮小する。
- 実世界のアロケータ(ptmalloc、tcmalloc、jemalloc)およびDARPA Cyber Grand Challengeから得たカスタムアロケータを対象に、フレームワークを評価する。
- 新しいモデルを定義することで、非伝統的なアロケータに対しても拡張可能であるように設計されている。
実験結果
リサーチクエスチョン
- RQ1手作業による逆アセンブルなしに、多様なヒープアロケータ実装において、自動的かつ体系的に新しいヒープ利用脆弱性プリミティブを発見できるか?
- RQ2未知の利用可能な挙動をカバーしつつ、ヒープ利用脆弱性プリミティブ発見の探索空間を効果的に縮小する方法は何か?
- RQ3ボイニング、インラインメタデータ、基数データといった一般的なアロケータ設計パターンの抽象モデルは、これまでに未知のプリミティブの発見にどの程度寄与できるか?
- RQ4フレームワークは、発見されたプリミティブを検証する最小限で動作する概念実証(PoC)エクスプロイトを生成できるか?
- RQ5tcache を備えたアロケータにおいて、このアプローチは利用可能なプリミティブを効果的に同定できるか?
主な発見
- ArcHeap は、広く使われているアロケータである ptmalloc において、5つの以前に未知のヒープ利用脆弱性プリミティブを発見し、自動的発見の可能性を実証した。
- jemalloc や tcmalloc においても、複数の利用可能な攻撃手法、特に以前に未知の攻撃ベクトルを同定した。
- 発見された各プリミティブに対して、実際に動作する概念実証(PoC)エクスプロイトを生成し、その実用性を確認した。
- ArcHeap は、特定の攻撃手法が ptmalloc の複数のバージョンにわたり有効であることを明らかにした。これは、セキュリティ強化が施されても依然として有効であることを示し、その持続性を示している。
- フレームワークは、ptmalloc の tcache が従来のセキュリティチェックを回避できることを明らかにした。これにより、多くのレガシー攻撃手法が陳腐化し、新たな攻撃表面が露呈された。
- このアプローチにより、セキュリティ機能の進化とその利用可能性への影響を体系的に分析できるようになった。これにより、対策開発やレグレッションテストの支援が可能になった。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。