同時に、XP SP2以降、Windowsブラウザーとそのプラグインで利用可能なデータ実行防止テクノロジーのサポートを含めることにより、このような脆弱性のかなりの部分(つまり、 バッファーオーバーフローに関連する脆弱性)をブロックできます。
要するに、このテクノロジーは、「非実行可能」とマークされた、つまりプロセッサーによる実行を意図していないデータを含むメモリーの領域からのコードの実行を禁止します。 したがって、バッファオーバーフローを使用して任意のコードを実行しようとすると、例外が生成され、脆弱性に対して脆弱なプログラムが閉じられます。
残念ながら、すべてのプログラムがDEPモードで完全に機能できるわけではなく、一般的なブラウザーも例外ではありません。 最新のブラウザのDEP機能の概要を以下に示します。
インターネットエクスプローラー
IE7では、プラグインの問題により、DEPモードはデフォルトで強制的に無効にされていました。 IE8はデフォルトでIE8がブラウザと子プロセス(プラグイン、activexなど)の両方に対してDEPサポートを含むことをmsdnに書き込みますが 、IEBlogはDEPの使用時に人気のあるプラグインに問題はないと主張コメント内のリンク)。
クロム
ChromeはDEPモードをサポートするだけでなく、主なブラウザプロセスのセキュリティを強化することもできます(ただし、プラグインの場合、DEPは限定互換モードで有効になります)。
Firefox
mozillaフォーラムは、FFの最近のバージョンを含む、DEPに関連するFirefoxの「クラッシュ」 について 活発に 議論しています。 同時に、最新のブラウザーバージョンに関するbugsillaでDEPに関連する確認済みのバグを見つけることができませんでした(XP / SP3 / FF3.6でDEPに関連する未確認のバグをすべて確認しました-確認されていません)。 コメントは、DEPを有効にするとFFの問題は有効にならなかったと主張しています。
オペラ
Opera開発者によると、 Operaはバージョン9.64からDEPモードで実行できます(DEPモードでのこのブラウザの通常の動作は、バージョン10.50rc3からのみ開始されるようです。DEPに関連する重要なバグを修正しました)。 プラグインがDEPモードで機能するかどうかは不明です。
サファリ
Safari for WindowsのDEPサポートの有無に関する信頼できる情報を見つけることができませんでした。
PS:「DEPをサポートする」(つまり、デフォルトでシステム内のすべてのアプリケーションに対してDEPが有効になっている場合は正常に動作する)と「DEPを特に有効にする」(つまり、プロセスのDEPモードを設定する)を混同しないでくださいDEPはシステムレベルで無効になっています)。
PPS:もちろん、システム管理者は DEPが万能薬ではない ことに留意する必要があります。 Vista / SevenにASLRを含め 、XPにWehnTrustをインストールすることにより、より深刻な保護を提供できます(実際、XPにはネイティブASLRサポートがないという同じトリックです)。 しかし、これはまったく別の話ですが、トピックに興味がある場合は、別のメモを作成します。
UPD: ChromeでのDEPサポートの実装の詳細( 翻訳#1 、 翻訳#2 )。 著者は、このブラウザーの開発者がXPでのプロセスのDEPモードを変更する方法を理解するために、ウィンドウを逆アセンブルする必要があったと考えています(Vistaでは、文書化されたAPIを使用してこれを実行できます)。