
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をサポートしていないシステムでも、同様の保護を提供するために使用されます。
種類 | 動作 | 保護レベル |
---|---|---|
ハードウェアDEP | NX/XDビットを使用 | 高い |
ソフトウェアDEP | OSによるエミュレーション | 中程度 |
例外処理 | 不正なコード実行を停止 | – |
メモリ保護 | データ領域の実行を禁止 | – |
DEPの設定方法(WindowsOS)
Windowsオペレーティングシステムでは、DEPは通常、デフォルトで有効になっていますが、必要に応じて設定を変更できます。DEPの設定は、システムプロパティの「パフォーマンスオプション」からアクセスできます。コマンドプロンプトを使用して、DEPの設定を構成することも可能です。ただし、DEPを無効にすると、システムがセキュリティ上の脅威にさらされる可能性があるため、注意が必要です。
DEPの設定には、常に有効にするオプションと、Windowsの必須プログラムおよびサービスに対してのみ有効にするオプションがあります。後者のオプションを選択すると、互換性の問題が発生する可能性のあるプログラムに対してのみDEPが適用されます。DEPの設定を変更した後は、変更を有効にするためにコンピュータを再起動する必要があります。
設定項目 | 説明 | 推奨設定 |
---|---|---|
DEPの有効/無効 | DEP機能のオン/オフ | 有効 |
適用範囲 | 全プログラムまたはOSのみ | OSのみ |
設定変更 | システムプロパティから変更 | – |
再起動 | 設定反映に必要な操作 | 必須 |