実行空間保護とは? わかりやすく解説

実行空間保護

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/02/17 14:43 UTC 版)

PaX」の記事における「実行空間保護」の解説

PaX主要機能は実行空間保護である。一部プロセッサにあるNXビット機能用いて任意のコード実行を防ぐ。それによって、コード注入シェルコードといった攻撃を防ぐ。NXビット持たないIA-32CPUでは、PaX はその機能様々な手段でエミュレートできる。 Linuxを含む多くOSでは、ハードウェアNXビット機能利用してメモリアクセス権適切に設定する。図1は、1つロードされライブラリのあるプログラムのメモリセグメント群を簡単に図示したのである。緑のセグメントデータで、青のセグメントコードである。一般にAMD64なども含めたプロセッサでのアドレス空間は、デフォルトでは図1のように明確にデータ部コード部が定義されている。しかし、Linux ではデフォルトではアプリケーション自身メモリ保護設定変更することを防ぐことができず、コード部を書き込み可能にしたり、データ部コードとして実行することが可能となっている。PaXそのような変更を防ぐとともに典型的な操作最適な最も制限のきつい保護設定保証する。 実行空間保護が起動しているとき、mprotect() 制限含まれPaX は本来コード部でなかった領域実行可能にするような操作不可能にする。これにより、書き込み可能だったことのある領域存在するコード実行不能となり、悪意があるかどうかとは関係なく、コードを後から注入することが不可能となる。 すると、Javaジャストインタイムコンパイル方式のように、実行時コード生成して実行する必要のあるアプリケーション動作できなくなる。しかし多く場合そのような機能を必要としているプログラムは、それに依存しないように書き換えることが可能である。根本的に実行時コード生成必要なものについては、システムアドミニストレータその実ファイルに印を付けその実ファイルについて制限課せられないようにすることができる。 PaX チームmmap() システムコールをどう扱うかを決定する必要に迫られた。mmap共有メモリマッピング共有ライブラリロード使われる。そのため、使われている状況によっては書き込み可能なページ実行可能なページ生成できるようにしなければならないPaX現在の実装では、デフォルト書き込み可能な無名メモリページマッピングが可能となっている。ファイルマッピングmmap() コール書き込みパーミッション指定している場合のみ書き込み可能にできる。mmap()書き込み実行同時に可能なマッピング生成しない。これは引数明示的に指示されている場合でもエラーとなる。

※この「実行空間保護」の解説は、「PaX」の解説の一部です。
「実行空間保護」を含む「PaX」の記事については、「PaX」の概要を参照ください。

ウィキペディア小見出し辞書の「実行空間保護」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



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

辞書ショートカット

すべての辞書の索引

「実行空間保護」の関連用語

1
6% |||||

実行空間保護のお隣キーワード
検索ランキング

   

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



実行空間保護のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのPaX (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS