9月2日に公開されたWindows XP Service Pack 2(SP2)には,バッファ・オーバーフロー攻撃からシステムを保護する「データ実行防止(Data Execution Prevention:DEP)」機能が搭載されている。このDEPにはハードウエアDEPとソフトウエアDEPの2種類があるが,これまであまり報道されてこなかったソフトウエアDEPの詳細が明らかになってきた。

 ハードウエアDEPは,プロセッサの「NXビット(実行不許可ビット)」機能を利用したもので,Athlon 64などを搭載するマシン以外では有効にならない。一方,ソフトウエアDEPはすべてのプロセッサにおいて有効になり,バッファオーバー・フローを利用した一部の攻撃を防げるという。

 ソフトウエアDEPは,Windowsの「例外ハンドリング・メカニズム」を監視し,プログラムにおいて例外処理が発生した際に不正なプログラムが実行されることを防ぐという仕組みだ。

 なおハードウエアDEP,ソフトウエアDEPとも,Windows XP SP2の標準設定ではWindowsの主要なプログラムについてのみ有効である。DEPの対象となるプログラムのリストは,内部に記録されており,Windowsのシステム・ディレクトリ(%WinDir%)にある実行ファイルはほぼ網羅されているという。

 また以下の手順で操作することで,DEPの対象をWindows上の全プログラムに広げることも可能だ。
(1)[コントロールパネル]-[システム]を選択して[詳細設定]タブを表示する
(2)[パフォーマンス]の[設定]ボタンをクリックして[パフォーマンスオプション]を表示する
(3)[データ実行防止]タブを表示して[次に選択するものを除くすべてのプログラムおよびサービスについてDEPを有効にする]を選択する――である。

 ハードウエアDEPに関する情報は,マイクロソフトやAMDによって詳細に公開されている。ところが,ソフトウエアDEPに関する情報は非常に少ない。ソフトウエアDEPの詳細に関しては,現時点でも不明なことが多い。詳細が分かり次第,続報を掲載したい。

(中田 敦=日経Windowsプロ

【IT Pro-Windows Reviewメール】を好評配信中。申し込みはこちら