連載
» 2014年09月03日 18時00分 公開

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

[高橋 正和(日本マイクロソフトチーフセキュリティアドバイザー),@IT]

ヒープ破壊の対策(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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。