検索
連載

ヒープに対する攻撃とその対策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. 増える標的型ランサムウェア被害、現場支援から見えてきた実態と、脆弱性対応が「限界」の理由
  2. 日本人の約半数が「1年前より危険」と考えるオンライン詐欺とは マカフィーがホリデーショッピング詐欺に関して調査
  3. Google Cloudがサイバーフィジカルシステムのレジリエンスを高める10の指標を解説 最初にすべきことは?
  4. ランサムウェア攻撃を受けた企業、約6割が「サプライチェーンのパートナー経由で影響を受けた」 OpenText調査
  5. セキュリティ担当者の54%が「脅威検知ツールのせいで仕事が増える」と回答、懸念の正体とは? Vectra AI調査
  6. 「このままゼロトラストへ進んでいいの?」と迷う企業やこれから入門する企業も必見、ゼロトラストの本質、始め方/進め方が分かる無料の電子書籍
  7. 米国/英国政府が勧告する25の脆弱性、活発に悪用されている9件のCVEとは、その対処法は? GreyNoise Intelligence調査
  8. 長続きする高度セキュリティ人材育成の秘訣を「第19回情報危機管理コンテスト」から探る
  9. セキュリティ専門家も「何かがおかしいけれど、攻撃とは言い切れない」と判断に迷う現象が急増 EGセキュアソリューションズ
  10. MicrosoftがAD認証情報を盗むサイバー攻撃「Kerberoasting」を警告 検知/防御方法は?
ページトップに戻る