TOPE-NEWS平成17年1月4日号

情報化支援アドバイザーの独り言…



「Windws XP SP2の全貌」 第4回


データ実行防止!!


 Windows XP SP2では、長年ユーザーを悩ませてきた「バッファ・オーバーフロー攻撃」に根本的な対策が実施されています。「データ実行防止(DEP)機能」と呼ばれる新機能が搭載されています。これは、セキュリティーホールを放置したままでも、被害を最小限に食い止める機能です。日々発見されるセキュリティーホール、それを狙うウィルス、そして引き起こされる事件と被害。この悪循環を断ち切る『切り札』として大きな期待が寄せられている機能です。

 DEPが保護するのは「バッファ・オーバーフロー」と呼ぶホール。これはもっとも危険で、過去に大きな被害をもたらしたウィルスや不正プログラムの多くが悪用したホールです。ウィルスの場合、バッファ・オーバーフローを突いてパソコンに感染します。DEPはこのホールが悪用されることを検知し、それを阻止します。つまり、ウィルスに狙われても、感染は防げるようになるのです。

 DEPには「ハードウエアDEP」と「ソフトウエアDEP」の2種類があります。ハードウエアDEPは、バッファ・オーバーフローの悪用を検知・阻止するNX(No Excute)と呼ばれる機能を実装したCPUと組み合わせて動く。現在のところ、AMDのAthlon64とインテルのItaniumくらいだが、今後はほとんどのCPUが標準で装備しだします。

 もう一つは、「ソフトウエアDEP」。NX機構をソフトウエアで実現した機能です。Athlon64やItaniumを搭載したマシンなら、ハードウエアとソフトウエアの両方のDEPが初期設定で有効。それ以外のマシンならソフトウエアのDEPだけが有効となります。


バッファ・オーバーフローって何??

 プログラムを使うメモリー領域には、大きく2つに分かれています。一つは、実行するプログラムコードを収める領域。もう一つは、ユーザーが入力したデータなどを納める領域です。
 バッファ・オーバーフローとは、後者のデータ格納領域において、巨大なデータの記録を許してしまうバグ。例えば、データ格納領域として1KBを用意したとします。正常なプログラムなら、ユーザーが1KBを超えるデータを入力しようとするとエラーを起こします。ところが、バッファ・オーバーフローを抱えたプログラムは、それを許してしまいます。チェック機構が働かず、データ領域(バッファ)があふれること(オーバーフロー)を許すのです。このバグを抱えていると、データ格納領域に不正なプログラムを埋め込まれ、それを実行される危険が生じます。結果、ウィルス感染などの被害が起こるのです。
 DEPは、データ記録領域でのコードの実行を検知・阻止する機能。これにより、バッファをオーバーフローされても、不正なプログラムが動くことは阻止できます。




佐賀商工会議所・情報化支援アドバイザー
松 隈 清 志