検索
連載

ヒープに対する攻撃とその対策Beyond Zero-day Attacks(3)(2/3 ページ)

攻撃手法を技術的に理解するための連載、今回はスタックと並んでよく耳にする「ヒープ破壊」を取り上げます。

Share
Tweet
LINE
Hatena

ヒープ破壊の対策(Windows XP SP2、Windows Server 2003)

 Windows XP SP2以降では、ヒープ破壊に対してさまざまな対策を実施しています。Windows XP SP2、Windows Server 2003では、「Safe Unlinking」と、「Heap entry header cookie」の二つの手法が導入されています。

 Safe Unlinkingは、ヒープの解放時に、解放するヒープのflink、blinkに矛盾がないことを確認する手法です。例えば、解放するヒープをEとすると、 Eがヒープ領域の中にあり、E->flink->blink == E->blink->flink == E であることを確認します。

 Heap entry header cookieは、ヒープ管理情報(chunk)にCookieとしてランダムな値を書き込み、解放時に値に変更がないことを確認するものです。これにより、ヒープ管理情報の書き換えを検出します。


図6 Windows XP SP2, Windows Server 2003のヒープ対策

ヒープオーバーフローの対策(Windows Vista、Windows 7、Windows Server 2003)

 Windows XP SP2, Windows Server 2003で実装された対策に対して、ヒープ領域の管理方法の一つで、単方向リストで管理されるLookaside Listを使った攻撃、Cookieを予測した書き換え、SafeUnlinkの操作などの回避策が公表され、実際の攻撃でも悪用されました。このため、Windows Vista以降のシステムでは、これを防ぐために以下の対策が追加されています。

  • 攻撃の対象となっていた、Lookaside Listを廃止し、Low Fragmentation Heap(LFH)を導入
  • Cookieをランダムな値とのXOR(排他的論理和)に変更し、Cookieの予測を防止
  • オーバーフローを検知するためのChecksumを強化
  • ASLRによるベースアドレスのランダマイズ
  • ヒープを管理する_HEAP構造体中の関数ポインターの乱数によるエンコード

図7 Windows Vista以降のヒープ対策

 ここまで記載した、ヒープに関する対策とその回避策を、マイクロソフトのブログに掲載された「Preventing the exploitation of user mode heap corruption vulnerabilities」からご紹介します(表1)。具体的な攻撃手法については、ブログ中にリファレンスとして記載されていますので、ご興味のある方はそちらをご覧ください。

Exploitation technique Targeting Windows Vista, Windows Server 2008, or Windows 7
Feasible Difficulty Applicable exploit mitigations
Coalesce unlink overwrite No N/A ・Safe unlinking
Critical section unlink overwrite No N/A ・Safe unlinking
Lookaside list overwrites No N/A ・Lookaside lists were removed, replaced by LFH
FreeLists[] attacks
Heap cache attacks
No N/A ・Array-based FreeLists were removed
 ・Invalidates most techniques as stated
・Safe unlinking
・Heap entry metadata randomization
・Heap entry cookie check
・DEP & ASLR
LFH bucket overwrite Yes High ・DEP & ASLR
HEAP data structure overwrite Yes High ・DEP & ASLR
App-specific data corruption[10,13] Yes Variable ・If heap entry header corruption is required
 ・Heap entry metadata randomization
 ・Heap entry cookie check
・DEP & ASLR
表1 Heap exploitation techniques

Copyright © ITmedia, Inc. All Rights Reserved.

Security & Trust 記事ランキング

  1. InfoStealerにクッキーを盗まれるとログイン不要の正規侵入が起こる――「セキュリティのアレ」の3人が明かす、認証認可を狙う新たな手口の現状とは
  2. 誰もが避けられない“認証”操作が攻撃ポイントに? ESETが偽CAPTCHAの脅威と対策を解説
  3. 「Microsoft SQL Server」利用者は要注意 Microsoftが2025年7月の月例セキュリティ更新プログラムを公開
  4. 日本企業の92%が「AIを悪用した攻撃への対策ができていない」と回答 アクセンチュアが調査結果を発表
  5. VPNから侵入したランサムウェア攻撃、内部不正による情報漏えいなど、皆がよく知るインシデントについて大阪大学 猪俣教授が語り続ける意味
  6. 年齢確認にプライバシーを 「ゼロ知識証明」技術をオープンソースで公開するGoogleの狙い
  7. Fortinet、「FortiGate」用OS「FortiOS 7.6.3」からSSL VPNトンネルモードのサポートを終了へ
  8. セキュリティ運用「自動化やAI活用が不可欠」言うは易し――現状プロセスを分析する4つの方法、AIも働きやすくする3つの環境整備ポイント
  9. ドラマでは描かれないセキュリティ対策の現実――ハッカー描写の監修もする上野宣氏が示す「ゼロトラスト」の有効性と移行への3フェーズ
  10. 対象はWindows Server 2025、2022、2019、2016 リモートでのコード実行が可能な脆弱性を修正した更新プログラムをMicrosoftが配布