データ実行防止 データ実行防止の概要

データ実行防止

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/22 17:05 UTC 版)

ナビゲーションに移動 検索に移動
Windows > Windowsのセキュリティ機能 > データ実行防止

DEPはWindows XP Service Pack 2で導入され、Windows XP Tablet PC Edition 2005、Windows Server 2003 Service Pack 1以降[1]Windows VistaWindows Server 2008、およびそれ以降のすべてのバージョンのWindowsに含まれている。

モード

ハードウェアDEP

ハードウェアDEPは互換性のあるCPU上でNXビットを有効にする。このために32ビットWindowsではPAEカーネルが自動的に使われる。64ビットカーネルではネイティブサポートされる。Windows VistaのDEPはメモリの特定の部分がデータの保持のみを目的にしているとマークし、NXもしくはXDビットの有効なプロセッサがその領域を実行不可能であると認識することによって機能する[1]。これはバッファオーバーフロー攻撃の成功を妨げる。Windows Vistaでは、プロセスのDEPの状態、すなわち、DEPがある特定のプロセスで有効か無効かはWindows タスク マネージャープロセスタブに表示できる。

場合によっては、データ実行防止は正当なソフトウェアの実行を妨げるという意図しない結果をもたらすことがある。この場合、影響を受けるソフトウェアはそのメモリの一部からコードの実行を許すようフラグを立てる必要があるが、もしアプリケーションが実行可能であるとマークされたメモリ領域に渡されたデータの検証を厳密に行わないと、これ自身が攻撃の可能性につながる。

もしx86プロセッサがこの機能をハードウェアでサポートし、またシステムのBIOSがこの機能をサポートし、かつ製造業者もしくはユーザーのどちらかが機能を有効にしたなら[2]、NXの機能はWindowsで、限られた「オプトイン」に基づいて有効にされる[3]。この設定はWindowsシステムとバイナリファイルの限られた一部にのみ保護を提供する。完全な保護を達成するには、ユーザーは、「オプトアウト」を選んで特別に免除されていないすべてのプログラムとプロセスを対象にするか、「常に有効 (AlwaysOn)」を選んでそのような例外なしですべてを対象にする必要がある。これらは「システムのプロパティ」のインターフェースを通して構成可能である[4]。もし機能がx86プロセッサによってサポートされていないなら、保護は提供されない。x86アーキテクチャ以外では、NXと同様のものがインテルのIA-64アーキテクチャにも存在し、Windowsによってサポートされている。

ソフトウェアDEP

ソフトウェアDEPはNXビットとは関係ないが、マイクロソフトが「安全な構造化例外処理 (SafeSEH)」と呼んでいるものである。ソフトウェアDEP/SafeSEHは単純に例外が投げられたときチェックを行い、例外がアプリケーションの関数テーブルに登録されていることを確認する。このためプログラムは関数テーブルを含めてビルドされる必要がある。しかしながら、ソフトウェアDEPはデータページからのコードの実行を防止することと関連があるという印象を与えはするものの、それは別種の保護である[1]

問題点

限界

他のオペレーティングシステムで利用可能な類似の保護機構と異なり、DEPはアドレス空間配置のランダム化 (ASLR、Windows Vistaで利用可能になった新機能) を提供しない。このため攻撃中にDEPを無効にするために使える可能性のあるreturn-to-libc攻撃を許すかもしれない。 この可能性は、以下のUninformed[1]の記事"skape & Skywing"の著者によって、すでにWindowsのハードウェアDEPに対してデモンストレーションされた。これはreturn-to-libc型の攻撃に依存している。この技術は、OptIn/OptOut機構を適用する既知のサービスパック依存の位置をEIPレジスタが直接指すことに依存している。またOptOut/OptInを利用可能にするブート時オプションに依存している。もしすべてのページが厳密にDEPを適用されていれば、攻撃は成功しないであろう。PaXの文書は、なぜASLRが必要なのかさらに詳しく解説している。DEPは、コードを実行時に書き込んで実行する必要がある場合にも役に立たない。JITコンパイラがよく知られた例である。JITコンパイラは(たとえばJIT Sprayの使用により)攻撃コードの生成に使われる可能性がある。生成されたコードは実行可能であるとフラグが立てられており、そのためDEPによってトラップされない。

互換性

DEPは(通常古いソフトウェアで)ソフトウェアの問題の原因となることがある。しかし、エイジ オブ ミソロジーのような一部のアプリケーションについては問題を解決することもある[疑問点]。DEPはプロセス全体に適用されるので、アプリケーションがまったく問題なくDEP有効で動作したとしても、DEP非互換の拡張機能が追加されるとDEPを無効にしなければならないことがある。

ユーザーは、VistaとWindows Server 2003 R2の一部として含まれている、マイクロソフトのServices for Unixの一部である各種コマンドラインコマンドで問題に遭遇することがある。

ほとんどの場合、これらの問題はDEPの機能を無効にすることによって解決できる。DEPはアプリケーションごとに無効にすることもできるし、重要なWindowsのプログラムとサービスを除いてすべてで無効にすることもできる[5]。マイクロソフトはアプリケーションがDEPのエラーでクラッシュしたときに、DEPをシステム全体で無効にしないよう推奨している。代わりに、問題を起こしたソフトウェアの作者やベンダーにまず連絡して、DEPに違反しない更新バージョンを確認し、それに失敗したら、DEPを問題の起きたアプリケーションでのみ無効にすべきであるとしている[6]

「COMサロゲートが動作を停止しました」というエラーがときどきWindows Vistaでメディアフォルダを見ているときに発生し、dllhost.exeでDEPを無効にすることで解決する場合がある。Windows Vistaでこのエラーが起きる原因は、多くのサードパーティー製の映像や音声のコーデックがDEP互換ではないことにある。この問題は一般に、すべてのインストールされているコーデックを最新バージョンに更新することによっても解決する場合がある。

DEPの問題は、Windows ExplorerInternet ExplorerおよびWindows Installerのような、DEP互換の中核的なオペレーティングシステムコンポーネントでも発生しうる。これらは、DEP互換ではないかもしれないサードパーティー製のプロセス内拡張やプラグインをサポートするからである[7]




  1. ^ a b c d e A detailed description of the Data Execution Prevention (DEP) feature in Windows XP Service Pack 2, Windows XP Tablet PC Edition 2005, and Windows Server 2003”. マイクロソフト (2006年9月26日). 2008年7月11日閲覧。
  2. ^ Microsoft Knowledge Base kb912923” (2007年10月7日). 2009年3月14日閲覧。
  3. ^ Microsoft Knowledge Base kb875352” (2006年9月26日). 2009年3月14日閲覧。
  4. ^ System-wide configuration of DEP” (2006年9月26日). 2009年3月14日閲覧。
  5. ^ Marc Liron. “Adding Software Exceptions In Data Execution Prevention (DEP)”. Windows XP Update. 2006年6月8日閲覧。
  6. ^ Data Execution Prevention: frequently asked questions”. マイクロソフト. 2008年9月15日閲覧。
  7. ^ Windows Installer custom action code must be compatible with Data Execution Prevention in Windows Vista”. マイクロソフト (2007年3月15日). 2008年7月10日閲覧。
  8. ^ a b SetProcessDEPPolicy Function”. Microsoft Developer Network. Microsoft Corporation (2009年12月3日). 2009年12月5日閲覧。
  9. ^ /NXCOMPAT (データ実行防止との互換性)
  10. ^ Robert Hensing. “DEP on Vista exposed!”. 2009年2月26日閲覧。
  11. ^ a b Hensing, Robert (2009年6月12日). “Understanding DEP as a mitigation technology (Part 1)”. Microsoft Security Research & Defense Blog. Microsoft TechNet Blog. 2009年12月5日閲覧。
  12. ^ /noexecute (Windows Driver Kit)”. 2010年8月15日閲覧。


「データ実行防止」の続きの解説一覧




固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「データ実行防止」の関連用語

データ実行防止のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



データ実行防止のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのデータ実行防止 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS