脆弱性が見つかっても、影響を最小限に抑える機能の実装も進んでいる。その1つが「データ実行防止(DEP(デップ))」だ。Part2で解説した、危険な脆弱性の代表例であるバッファーオーバーフローを悪用する攻撃を防ぐ。例えばWindowsでは、Windows XP SP2から実装されている。

 Part2で説明したように、バッファーオーバーフロー攻撃では、データ領域に送り込んだウイルスを実行させる。本来、データ領域中のデータはプログラムに参照されるだけで、実行されることはない。だが、プログラムに脆弱性があると、データ領域に読み込ませたウイルスを、実行中のプログラムの一部だと誤解して実行してしまう。

 そこでDEPでは、データ領域に「実行不能」マークを付ける(図6-1)。プログラムの処理がデータ領域に及んだ場合には、CPUは処理を中止する。このためデータ領域にウイルスを送り込まれても、実行を阻止できる。Visual Studio(ビジュアル スタジオ)などのプログラム開発ツールは、オプションを指定するだけで、プログラムにDEPを組み込めるようにしている。

図6-1●バッファーオーバーフロー攻撃を防ぐ「データ実行防止(DEP)」の仕組み
図6-1●バッファーオーバーフロー攻撃を防ぐ「データ実行防止(DEP)」の仕組み
Windowsなどが備えるデータ実行防止(DEP)というセキュリティ機能では、OSとCPUが連携して、データ領域に注入されたウイルスの実行を阻止する。これにより、バッファーオーバーフロー脆弱性などを悪用する攻撃を防ぐ。
[画像のクリックで拡大表示]

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。