DEP(Data Execution Prevention)とは?意味をわかりやすく簡単に解説

DEP(Data Execution Prevention)とは?意味をわかりやすく簡単に解説

DEP(Data Execution Prevention)とは

DEP(Data Execution Prevention)は、Data Execution Preventionの略称であり、日本語ではデータ実行防止と呼ばれています。このセキュリティ機能は、メモリの特定の領域を、コードが実行されないようにマークすることによって、悪意のあるコードの実行を阻止することを目的としています。

DEPは、コンピュータのメモリ管理方法を改善し、バッファオーバーフロー攻撃などのセキュリティ上の脅威からシステムを保護するために設計されました。バッファオーバーフロー攻撃は、プログラムが意図したよりも多くのデータをバッファに書き込むことによって発生し、それによって隣接するメモリ領域を上書きし、悪意のあるコードを実行する可能性があります。

DEPはハードウェアDEPとソフトウェアDEPの2種類に大別され、ハードウェアDEPはプロセッサのNX(No eXecute)ビットまたはXD(eXecute Disable)ビットを利用して、メモリ領域を実行不可能としてマークします。ソフトウェアDEPは、ハードウェアDEPをサポートしていないシステムで使用され、オペレーティングシステムによって提供されるソフトウェアエミュレーションを通じて同様の保護を提供します。

DEPの仕組みと設定

「DEPの仕組みと設定」に関して、以下を解説していきます。

  • DEPの動作の仕組み
  • DEPの設定方法(WindowsOS)

DEPの動作の仕組み

DEPは、メモリの特定の領域(通常はデータが格納される領域)を、実行不可能としてマークすることによって動作します。プログラムがこれらの領域からコードを実行しようとすると、DEPは例外を発生させ、プログラムの実行を停止させます。この仕組みによって、攻撃者がバッファオーバーフローなどの脆弱性を利用して、メモリに悪意のあるコードを注入し、それを実行することを防ぎます。

DEPは、ハードウェアDEPとソフトウェアDEPの組み合わせによって、より効果的な保護を提供します。ハードウェアDEPは、プロセッサレベルで実行不可能ビットをサポートしているため、より強力な保護を提供できます。ソフトウェアDEPは、ハードウェアDEPをサポートしていないシステムでも、同様の保護を提供するために使用されます。

種類動作保護レベル
ハードウェアDEPNX/XDビットを使用高い
ソフトウェアDEPOSによるエミュレーション中程度
例外処理不正なコード実行を停止
メモリ保護データ領域の実行を禁止

DEPの設定方法(WindowsOS)

Windowsオペレーティングシステムでは、DEPは通常、デフォルトで有効になっていますが、必要に応じて設定を変更できます。DEPの設定は、システムプロパティの「パフォーマンスオプション」からアクセスできます。コマンドプロンプトを使用して、DEPの設定を構成することも可能です。ただし、DEPを無効にすると、システムがセキュリティ上の脅威にさらされる可能性があるため、注意が必要です。

DEPの設定には、常に有効にするオプションと、Windowsの必須プログラムおよびサービスに対してのみ有効にするオプションがあります。後者のオプションを選択すると、互換性の問題が発生する可能性のあるプログラムに対してのみDEPが適用されます。DEPの設定を変更した後は、変更を有効にするためにコンピュータを再起動する必要があります。

設定項目説明推奨設定
DEPの有効/無効DEP機能のオン/オフ有効
適用範囲全プログラムまたはOSのみOSのみ
設定変更システムプロパティから変更
再起動設定反映に必要な操作必須

関連タグ