Windows XP Service Pack 2 (パート 7) : バッファ オーバーフロー対策

文書翻訳 文書翻訳
文書番号: 889741 - 対象製品
重要 : この資料には、コンピュータのセキュリティ設定を低くする方法、またはコンピュータのセキュリティ機能を無効にする方法が記載されています。これらの変更によって特定の問題を回避できますが、これらの変更を行う前に、記載された回避策を現在の環境に使用した場合の危険性を評価することをお勧めします。この資料の回避策を適用する場合は、記載されている手順以外にも、システムを保護するための適切な手順を実行してください。
すべて展開する | すべて折りたたむ

目次

概要

この資料は、Windows XP Service Pack 2 - ステップ バイ ステップ ガイドのパート 7 です。パート 7 では、Microsoft Windows XP Service Pack 2 (SP2) におけるバッファ オーバーフロー対策の方法について説明します。

Windows XP Service Pack 2 - ステップ バイ ステップ ガイドの他の資料を参照するには、「関連情報」に記載されている「サポート技術情報」 (Microsoft Knowledge Base) の資料を参照してください。

Windows XP Service Pack 2 - ステップ バイ ステップ ガイドには、以下のトピックが含まれています。
パート 1 : Service Pack 2 の導入によるセキュリティの強化


パート 2 : Service Pack 2 のインストール

パート 3 : 新しいセキュリティ センター

パート 4 : 自動更新

パート 5 : ウイルス対策


パート 6 : Windows ファイアウォール

パート 7 : バッファ オーバーフロー対策


パート 8 : Internet Explorer および Outlook Express の機能強化


パート 9 : Service Pack 2 のアンインストール

詳細

パート 7 : バッファ オーバーフロー対策

バッファ オーバーフローは、最もよく知られたインターネットからの攻撃方法の 1 つです。バッファ オーバーフローは、変数用にディスク領域を予約するときにプログラマがミスをすることがあるという、単純な事実に依存しています。

これは、たとえばユーザーが本来指定されているよりも文字数の多いデータを入力する可能性があるということです。その変数とは関係のない、隣接するメモリにも影響を与える可能性があります。ほとんどの場合、プログラムは応答を停止しますが、攻撃者がこの脆弱性を悪用してコンピュータを制御する可能性があります。
元に戻す画像を拡大する
バッファ オーバーフロー

バッファ オーバーフローのしくみ

バッファ オーバーフローのしくみを正しく理解するには、技術的な知識が必要です。

コンピュータには、すべてのプログラムで共有する RAM (Random Access Memory) があります。メモリの管理を容易にするために、Windows XP SP2 には、RAM のどのセグメントが現在使用中であるかを管理する機能があります。プログラムが起動されると、空きメモリがそのプログラムに割り当てられます。

このメモリは、3 つのセグメントに分かれています。
  • コード セグメント
    プログラム固有の実行可能コマンドが格納されます。
  • データ セグメント
    プログラム固有のデータが格納されます。
  • スタック (データ セグメントの一部)
    プログラム関数に関連するすべてのデータを格納します。これには、パラメータ、ローカル変数を格納するバッファ、およびリターン アドレスが含まれます。リターン アドレスは最も重要なデータで、関数の処理終了後にプログラムが後続の処理を実行する位置を指定します。
    元に戻す画像を拡大する
    リターン アドレス
    ユーザーが入力した情報も変数として登録されるため、ユーザーが入力したすべてがスタックに送られます。一般に、この動作により問題が発生することはありません。しかし、プログラミングのミスによりバッファの制限を超えた場合、スタックは制御されやすくなります。たとえば、攻撃者が攻撃に適合するエントリを選択した場合、ローカル変数用に指定されたセグメント全体が命令で上書きされる可能性があります。また、以降のリターン アドレスが有害なコードをポイントするように変更されることがあります。これにより、プログラムは正常に機能しなくなり、指示されるままに攻撃者のコマンドを実行します。
    元に戻す画像を拡大する
    有害なコードにリダイレクトされる変数 X

データ実行防止 (DEP) の機能

データ実行防止 (DEP) はプログラムを監視し、プログラムがシステム メモリを安全に使用しているかどうかを確認します。これを実行するために、単体で、あるいは互換性のあるマイクロプロセッサと共に使用される DEP ソフトウェアにより、メモリ ロケーションが "非実行可能" としてマークされます。プログラムがこれらの保護された領域からコードを実行しようとすると、コードが有害であるかないかにかかわらず、DEP はプログラムを終了し、警告メッセージを送信してユーザーに通知します。

Windows XP SP2 のインストール後、必要なオペレーティング システム プログラムおよびサービスに対してのみ、DEP が有効になります。これは、一部のソフトウェア プログラムは DEP と共に使用する場合に正常に動作しない場合があるためです。セキュリティを強化するために、すべてのプログラムに対して DEP を有効にしてから、それぞれのプログラムおよびサービスについて例外を定義することができます。

すべてのプログラムに対して DEP を有効にする方法

  1. [スタート] ボタンをクリックし、[コントロール パネル] をポイントして [システム] をダブルクリックします。
    元に戻す画像を拡大する
    [システム] アイコン (コントロール パネル)
  2. [詳細設定] タブをクリックし、[パフォーマンス] の [設定] をクリックします。
    元に戻す画像を拡大する
    [システムのプロパティ] - [詳細設定] タブ
  3. [データ実行防止] タブをクリックし、[次に選択するのものを除くすべてのプログラムおよびサービスについて DEP を有効にする] をクリックし、[OK] をクリックします。
    元に戻す画像を拡大する
    [パフォーマンス オプション] - [DEP] タブ - [次に選択するのものを除くすべてのプログラムおよびサービスについて DEP を有効にする]
  4. この変更を有効にするには、コンピュータを再起動する必要があります。[OK] を 2 回クリックして変更を確認してから、コンピュータを再起動します。
例外の定義
特定のプログラムが問題の原因となる場合、以下の手順を実行して、該当するプログラムを例外として定義します。
  1. [データ実行防止] タブで、[追加] をクリックします。
  2. 例外に追加するプログラム ファイルを探して選択し、[開く] をクリックし、[OK] をクリックします。
  3. [OK] を 2 回クリックし、コンピュータを再起動します。

DEP を無効にする方法

警告 : この資料に記載された回避策を適用することにより、悪意のあるユーザーやウイルスなど悪質なソフトウェアによる攻撃をコンピュータまたはネットワークが受けやすくなる場合があります。この資料の情報は、ユーザーが記載されている回避策を自己の判断で使用することを前提に提供されているものであり、この回避策をお勧めするものではありません。この回避策は、自己の責任においてご使用ください。

DEP を使用するとコンピュータで問題が発生する場合は、この機能を無効にできます。これを行うには、以下の手順を実行して Boot.ini ファイルを変更する必要があります。
  1. 最初にフォルダ オプションを確認します。[スタート] ボタンをクリックし、[コントロール パネル] をクリックし、[フォルダ オプション] をダブルクリックします。
    元に戻す画像を拡大する
    [フォルダ オプション] アイコン (コントロール パネル)
  2. すべてのフォルダとシステム ファイルが表示されることを確認します。
    元に戻す画像を拡大する
    [フォルダ オプション] ウィンドウ - [すべてのファイルとフォルダを表示する]
  3. コンピュータをセーフ モードで起動します。これを実行するには、Power On Self Test (POST) が完了したら F8 キーを押します。
  4. 方向キーを使用して [セーフ モード] を選択し、Enter キーを押します。
  5. 起動するオペレーティング システムを選択し、Enter キーを押します。
  6. [マイ コンピュータ] を開き、[ドライブ C:\] をクリックして、Boot.ini ファイルを見つけます。
  7. 念のため、Boot.ini ファイルのバックアップ コピーを作成します。これを行うには、Boot.ini ファイルを右クリックし、[コピー] をクリックし、空白の領域を右クリックし、[貼り付け] をクリックします。
  8. Boot.ini ファイルを右クリックし、[プロパティ] をクリックします。
    元に戻す画像を拡大する
    C:\boot.ini - コンテキスト メニューのプロパティ
  9. [読み取り専用] チェック ボックスをオフにし、[OK] をクリックします。
    元に戻す画像を拡大する
    [読み取り専用] チェック ボックス オフ
  10. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。notepad c:\boot.ini と入力し、[OK] をクリックします。
    元に戻す画像を拡大する
    [ファイル名を指定して実行] - notepad c:\boot.ini
  11. NoExecute=xxxxxNoExecute=AlwaysOff に変更します。
    元に戻す画像を拡大する
    Boot.ini の編集 - NoExecute=OptIn
    元に戻す画像を拡大する
    Boot.ini の編集 - NoExecute=AllwaysOff
  12. Boot.ini ファイルを保存し、属性を "読み取り専用" に戻してから、コンピュータを再起動します。

関連情報

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
875352 Windows XP Service Pack 2、Windows XP Tablet PC Edition 2005、および Windows Server 2003 のデータ実行防止 (DEP) 機能の詳細
Windows XP Service Pack 2 - ステップ バイ ステップ ガイドの他のトピックを参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
889735 Windows XP Service Pack 2 (パート 1) : Service Pack 2 の導入によるセキュリティの強化

889736 Windows XP Service Pack 2 (パート 2) : Service Pack 2 のインストール

889737 Windows XP Service Pack 2 (パート 3) : 新しいセキュリティ センター

889738 Windows XP Service Pack 2 (パート 4) : 自動更新

889739 Windows XP Service Pack 2 (パート 5) : ウイルス対策

889740 Windows XP Service Pack 2 (パート 6) : Windows ファイアウォール

889742 Windows XP Service Pack 2 (パート 8) : Internet Explorer および Outlook Express の機能強化

889743 Windows XP Service Pack 2 (パート 9) : Service Pack 2 のアンインストール
この資料はドイツ語からの翻訳です。元のドイツ語の資料に対するその後の変更や追加は、この翻訳には反映されていない場合があります。この資料に含まれる情報はこの製品のドイツ語版に基づいています。この製品の他の言語版に関連するこの情報の正確性は、この翻訳の枠組みの中ではテストされていません。公開されているこの情報の正確性や機能について、および翻訳の完全性や正確性について、マイクロソフトはいかなる責任も負わないものとします。

プロパティ

文書番号: 889741 - 最終更新日: 2007年9月7日 - リビジョン: 1.4
この資料は以下の製品について記述したものです。
  • Microsoft Windows XP Service Pack 2?を以下の環境でお使いの場合
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional
キーワード:?
kbhowto KB889741
"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