検索
連載

ヒープに対する攻撃とその対策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. 「SMSは認証に使わないで」 米CISA、モバイル通信を保護する8つのベストプラクティスを公開
  2. 2025年に押さえるべきセキュリティの重要論点をガートナーが発表 新しいリスク、脅威、環境の変化、法規制などの動きを把握する指標に使える
  3. 終わらせましょう。複雑過ぎるKubernetes/クラウドネイティブが生む心理的安全性の低下を――無料でクラウドセキュリティの勘所が分かる130ページの電子書籍
  4. “ゼロトラスト”とトラスト(信頼性)ゼロを分かつものとは――情報セキュリティ啓発アニメ「こうしす!」監督が中小企業目線で語る
  5. よく聞く「複雑化するサイバー攻撃」は具体的にどう複雑なのか? 一例を医療系企業のランサム事例とともに解説
  6. 3割程度のSaaS事業者が標準的なセキュリティ対策をしていない アシュアードがSaaS事業者を調査
  7. MicrosoftがAD認証情報を盗むサイバー攻撃「Kerberoasting」を警告 検知/防御方法は?
  8. 中小企業の20%の経営層は「自社はサイバー攻撃に遭わない」と信じている バラクーダネットワークス調査
  9. NIST、3つのポスト量子暗号(PQC)標準(FIPS 203〜205)を発表 量子コンピュータ悪用に耐える暗号化アルゴリズム、どう決めた?
  10. ChatGPTやClaudeのAPIアクセスをかたってマルウェアを配布するPython用パッケージ確認 Kasperskyが注意喚起
ページトップに戻る