文書番号: 875352 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

データ実行防止 (DEP) は、メモリの追加チェックを実行して悪質なコードがシステム上で実行されるのを防ぐ、ハードウェアとソフトウェアの一連のテクノロジです。Microsoft Windows XP Service Pack 2 (SP2) および Microsoft Windows XP Tablet PC Edition 2005 では、ハードウェアおよびソフトウェアによって DEP が適用されます。

DEP の主な利点は、データ ページからのコード実行を防止できることです。通常、コードはデフォルト ヒープやスタックからは実行されません。ハードウェア DEP では、これらの場所から実行されようとしているコードを検出し、実行された場合は例外を生成します。ソフトウェア DEP は、悪質なコードによる Windows の例外処理メカニズムの利用を防止するのに役立ちます。

はじめに

この資料では、Windows XP SP2 および Microsoft Windows Server 2003 Service Pack 1 (SP1) の DEP 機能について説明します。内容は以下のとおりです。

詳細

ハードウェア DEP

ハードウェア DEP では、実行可能コードが明確に含まれている場合を除き、プロセス内のメモリ ロケーションのすべてに "実行不能" のマークを付けます。実行不能なメモリ ロケーションにコードを挿入し、そこからコードを実行しようとする攻撃の手法がありますが、DEP では、このような攻撃を遮断し、例外を生成することによって、攻撃を防止します。

ハードウェア DEP では、メモリの特定の場所に、その場所からのコードの実行を禁止する属性を設定します。この処理はプロセッサのハードウェアに依存して行われます。この属性は仮想メモリ ページ単位で設定され、この属性を設定するために、通常はページ テーブル エントリ (PTE) のビットの 1 つが変更されます。

DEP のハードウェアでの実装方法や仮想メモリ ページの属性の設定方法は、プロセッサのアーキテクチャによって異なります。ハードウェア DEP をサポートするプロセッサでは、適切な属性が設定されているページからコードが実行されるときにも例外が生成される場合があります。

Advanced Micro Devices (AMD) および Intel は、DEP と互換性のある Windows 互換のアーキテクチャを定義、出荷済みです。

Windows XP SP2 以降、32 ビット版の Windows では、以下のいずれかが使用されます。
  • AMD が定義した非実行ページ保護 (NX) プロセッサ機能
  • Intel が定義した Execute Disable Bit (XD) 機能
これらのプロセッサ機能を使用するには、プロセッサを PAE (Physical Address Extension) モードで実行する必要があります。ただし、Windows では、DEP をサポートするために、PAE モードが自動的に有効になります。ユーザーが /PAE ブート スイッチを使用して PAE を有効にする必要はありません。

: 64 ビット カーネルは AWE (Address Windowing Extensions) を使用しているため、64 ビット版の Windows に個別の PAE カーネルは存在しません。
Windows Server 2003 における PAE および AWE の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
283037 Windows Server 2003 および Windows 2000 では大容量メモリのサポートが使用できる

ソフトウェア DEP

Windows XP SP2 には、データ実行防止のためのセキュリティ チェックが追加されています。これらのチェックは、ソフトウェア DEP と呼ばれ、Windows の例外処理メカニズムを利用する悪質なコードをブロックすることを目的としています。ソフトウェア DEP は、Windows XP SP2 を実行可能なすべてのプロセッサで機能します。デフォルトでは、プロセッサが持つハードウェア DEP の能力に関係なく、ソフトウェア DEP で保護できるシステム バイナリは限られます。

利点

DEP の主な利点は、デフォルト ヒープ ページ、さまざまなスタック ページ、メモリ プール ページなど、データ ページからのコードの実行を防止できることです。通常、コードはデフォルト ヒープやスタックからは実行されません。ハードウェア DEP では、これらの場所から実行されようとしているコードを検出し、実行された場合は例外を生成します。例外が処理されない場合、プロセスは停止します。カーネル モードで保護されているメモリからコードが実行されると、Stop エラーが発生します。

DEP は、特定の種類のセキュリティ侵害をブロックするうえで役立ちます。具体的には、ウイルスなどの攻撃でプロセスに追加のコードを挿入し、挿入したコードを実行しようとする悪質なプログラムをブロックできます。DEP に対応したシステムでは、挿入されたコードが実行されると、例外が発生します。ソフトウェア DEP では、Windows の例外処理メカニズムを利用するプログラムをブロックできます。

システム全体の DEP 構成

システム全体に適用する DEP の構成は、Boot.ini ファイル内のスイッチで制御されます。管理者としてログオンしている場合は、コントロール パネルの [システム] ダイアログ ボックスを使用して、DEP を簡単に構成できます。

Windows では、ハードウェア DEP とソフトウェア DEP の両方に関して、以下の 4 種類のいずれかの構成をシステム全体に適用することができます。
元に戻す全体を表示する
構成説明
OptIn デフォルトの構成です。ハードウェア DEP を実装可能なプロセッサが搭載されているシステムでは、選択 ("opt-in") された、限られたシステム バイナリおよびプログラムに関して、DEP がデフォルトで有効になります。このオプションを有効にすると、デフォルトでは Windows システム バイナリのみが DEP の保護対象となります。
OptOut DEP がデフォルトで全プロセスに関して有効になります。コントロール パネルの [システム] を使用して、DEP を適用しないプログラムの一覧を手動で作成できます。IT プロフェッショナルは、Application Compatibility Toolkit を使用して、1 つまたは複数のプログラムを DEP の保護から除外 ("opt-out") できます。DEP 用のシステム互換性の修正 (shim) が有効になります。
AlwaysOn システム全体に DEP が完全に適用されます。すべてのプロセスが、常に DEP が適用された状態で実行されます。例外の一覧を使用して、特定のプログラムを DEP の保護から除外することはできません。DEP 用のシステム互換性の修正は有効になりません。Application Compatibility Toolkit を使用して除外されたプログラムも、DEP が適用された状態で実行されます。
AlwaysOff ハードウェア DEP がサポートされているかどうかに関係なく、システムのどの部分にも、DEP はまったく適用されません。Boot.ini ファイルで /PAE オプションを指定しない限り、プロセッサは PAE モードで実行されません。
ハードウェア DEP とソフトウェア DEP は同じ方法で構成されます。システム全体の DEP ポリシーが OptIn に設定されている場合、同じ Windows コア バイナリおよびプログラムがハードウェア DEP とソフトウェア DEP の両方によって保護されます。ハードウェア DEP を使用できないシステムでは、Windows コア バイナリおよびプログラムがソフトウェア DEP によってのみ保護されます。

同様に、システム全体の DEP ポリシーが OptOut に設定されている場合は、DEP 保護から除外されたプログラムがハードウェア DEP とソフトウェア DEP の両方から除外されます。

Boot.ini ファイルの設定は次のとおりです。
/noexecute=policy_level
: policy_level には、AlwaysOn、AlwaysOff、OptIn、OptOut のいずれかを指定します。

Boot.ini ファイル内の既存の /noexecute 設定は、Windows XP SP2 がインストールされている場合は変更されません。ハードウェア DEP がサポートされているかどうかにかかわらず、Windows オペレーティング システムのイメージが別のコンピュータに移動された場合にも、/noexecute 設定は変更されません。

Windows XP SP2 および Windows Server 2003 SP1 以降のインストール中は、無人インストールで別のポリシー レベルを指定しない限り、OptIn ポリシー レベルがデフォルトで有効になります。DEP をサポートする Windows の Boot.ini ファイル内に /noexecute=policy_level が存在しない場合は、/noexecute=OptIn が含まれている場合と同じ動作になります。

管理者としてログオンしている場合は、[システムのプロパティ] の [データ実行防止] タブを使用して DEP を手動で構成し、OptIn ポリシーと OptOut ポリシーの切り替えを行うことができます。コンピュータの DEP を手動で構成するには、以下の手順を実行します。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に、sysdm.cpl と入力し、[OK] をクリックします。
  2. [詳細設定] タブで、[パフォーマンス] の下の [設定] をクリックします。
  3. [データ実行防止] タブで、次のいずれかの手順を実行します。
    • [重要な Windows のプログラムおよびサービスについてのみ有効にする] をクリックします。これにより、OptIn ポリシーが適用されます。
    • [次に選択するのものを除くすべてのプログラムおよびサービスについて DEP を有効にする] をクリックします。これにより、OptOut ポリシーが適用されます。[追加] をクリックし、DEP を適用しないプログラムを指定します。
  4. [OK] を 2 回クリックします。
IT プロフェッショナルは、さまざまな方法を使用してシステム全体の DEP 構成を制御できます。Boot.ini ファイルは、スクリプト メカニズムを使用して直接変更することも、Windows XP SP2 に含まれている Bootcfg.exe ツールを使用して変更することもできます。

Boot.ini ファイルを使用して AlwaysOn ポリシーに切り替えるように DEP を構成するには、以下の手順を実行します。
  1. [スタート] ボタンをクリックし、[マイ コンピュータ] を右クリックし、[プロパティ] をクリックします。
  2. [詳細設定] タブをクリックし、[起動と回復] の [設定] をクリックします。
  3. [起動システム] で、[編集] をクリックします。メモ帳に Boot.ini ファイルが表示されます。
  4. メモ帳で、[編集] メニューの [検索] をクリックします。
  5. [検索する文字列] ボックスに /noexecute と入力し、[次を検索] をクリックします。
  6. [検索] ダイアログ ボックスで、[キャンセル] をクリックします。
  7. policy_level を AlwaysOn に置き換えます。

    警告 : 文字列が正しく入力されていることを確認してください。Boot.ini ファイルのスイッチは次のようになっている必要があります。
    /noexecute=AlwaysOn
  8. メモ帳で、[ファイル] メニューの [上書き保存] をクリックします。
  9. [OK] を 2 回クリックします。
  10. コンピュータを再起動します。
Windows XP SP2 以降の無人インストールでは、Unattend.txt ファイルを使用して、特定の DEP 構成を事前に指定できます。Unattend.txt ファイルの [Data] セクションにある OSLoadOptionsVar エントリを使用すると、システム全体の DEP 構成を指定できます。

プログラムごとの DEP 構成

プログラムの互換性を維持するために、DEP のポリシー レベルが OptOut に設定されているときに、個々の 32 ビット プログラムに関して DEP を無効にすることができます。これを行うには、[システムのプロパティ] ダイアログ ボックスの [データ実行防止] タブを使用して、プログラムごとに DEP を無効にします。IT プロフェッショナル用に、DisableNX という新しいプログラム互換用修正プログラムが Windows XP SP2 に含まれています。DisableNX を適用すると、適用先プログラムのデータ実行防止機能が無効になります。

DisableNX は、Application Compatibility Toolkit を使用して、各プログラムに適用できます。Windows アプリケーションの互換性の詳細については、次のマイクロソフト Web サイトの「Windows アプリケーションの互換性」を参照してください。
http://www.microsoft.com/japan/technet/prodtechnol/windows/appcompatibility/default.mspx
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
912923 コンピュータでハードウェア DEP が利用可能なことおよび構成されていることを確認する方法

関連情報

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
899298 Windows Server 2003 Service Pack 1 でヘルプ トピック「データ実行防止について」に DEP のデフォルト設定が正しく表示されない

プロパティ

文書番号: 875352 - 最終更新日: 2006年12月14日 - リビジョン: 14.1
この資料は以下の製品について記述したものです。
  • Microsoft Windows Server 2003 Service Pack 1?を以下の環境でお使いの場合
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows XP Professional Service Pack 2 (SP2)
  • Microsoft Windows XP Home Edition Service Pack 2 (SP2)
  • Microsoft Windows XP Media Center Edition Service Pack 2 (SP2)
  • Microsoft Windows XP Tablet PC Edition 2005
キーワード:?
kbinfo kbtshoot KB875352
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com