mmap() ベースのランダム化とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > mmap() ベースのランダム化の意味・解説 

mmap() ベースのランダム化

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

PaX」の記事における「mmap() ベースのランダム化」の解説

POSIXでは、mmap() システムコールプロセス指定したオフセットカーネル選択したオフセットメモリ配置する無名メモリ使えば中身のないメモリマッピングされ、ファイル指定すればその中身マッピングされる。ダイナミックリンクライブラリmmap()使ってロードされコード部とライブラリデータ部それぞれマッピングされる。データ部書き込みがあれば、コピーオンライト要領無名メモリへのコピーが行われる。 mmap() では、仮想空間上のマッピングすべきオフセット指定することもある。オフセット指定されないと、OS自動的に選択するLinuxオフセット計算方法予測可能であり、事前に定義された「mmap()ベース」を始点として計算されるこのためプロセス起動したときに必ずロードされる標準Cライブラリ(あるいは libc)は常に同じアドレスロードされる。 mmap()ベースのランダム化を行う場合PaXmmap()ベースランダムにシフトさせ、全てのライブラリおよび他のmmap()コールでのマッピング位置変えてしまう。このためダイナミックリンクされるコード共有オブジェクト)は毎回ランダムに異な位置マッピングされる。攻撃者特定のライブラリ特定のアドレスロードされていることを当てにしていることが多い。従って、この機能によってreturn-to-libc攻撃が困難となる。ただし、シェルコード使った攻撃では GOTglobal offset table)を参照することで任意の関数アドレス参照可能である。 PaXライブラリロード順序変化させない。従って、1つライブラリアドレスわかれば、他の全てのライブラリ位置わかってしまう。しかし、もっと重大な問題として、いったんライブラリ位置わかってしまうと、他のランダム化をしていても意味がないという問題がある(シェルコードライブラリ内の関数アドレスさえ分かれば攻撃可能)。 ET_DYN 型の実行ファイルPIC化されライブラリ)をロードするとき、そのベースアドレスランダム化される(mmap() を使うので通常の共有オブジェクトと同じである)。 スタック実行不可にする機能mmap()ランダム化組み合わせると、return-to-libc攻撃成功確率激減する32ビットシステムでは、本来の確率16分の1になる。さらにスタックベースのランダム化加えると、もっと攻撃困難になる

※この「mmap() ベースのランダム化」の解説は、「PaX」の解説の一部です。
「mmap() ベースのランダム化」を含む「PaX」の記事については、「PaX」の概要を参照ください。

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



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

辞書ショートカット

すべての辞書の索引

「mmap() ベースのランダム化」の関連用語

1
18% |||||

mmap() ベースのランダム化のお隣キーワード
検索ランキング

   

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



mmap() ベースのランダム化のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS