return-to-libc攻撃とは? わかりやすく解説

Return-to-libc攻撃

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2015/10/10 16:18 UTC 版)

Return-to-libc攻撃とは、バッファオーバーランによってコールスタック上のリターンアドレスを別のサブルーチンへのアドレスへ書き換え、さらにスタック上の引数に当たる位置も書き換えることで、サブルーチンを呼び出させるコンピュータセキュリティの攻撃手法である。攻撃者は、悪意あるコードをプログラムに注入することなく、単に既存の関数を呼び出すだけで攻撃を行う。

Unix系システムでは、C言語ランタイムとして "libc" という共有ライブラリが使われる(Windows でも該当するライブラリが存在する)。バッファオーバーランでは攻撃者は任意のコードに戻るように細工できるが、常にリンクされていて攻撃に使い易い機能が多く存在する libc をターゲットとすることが多い(例えば、system() は引数さえ正しく指定すれば、任意のプログラムを実行できる)。このため、全く別の場所を呼び出すようになっていても総称として "return-to-libc" と呼ぶ。

防御方法

スタックに実行コードを書き込むようなバッファオーバーランを利用した攻撃の場合と異なり、NXビットでスタック上のコード実行を防御しても、return-to-libc攻撃ではスタック上のコードを実行するわけではないので、防ぐことができない。Stack smashing protection は、スタック内容の破壊を検出したり、可能であれば破壊されたセグメントを復旧することで、この種の攻撃を防御できる。

ASLR (Address Space Layout Randomization) は、実行プログラムの各モジュールのコードが配置される位置をランダム化することで、狙い撃ちでコードを実行されることを防ぐ。ASLRは、特に64ビットシステム上での攻撃成功確率を劇的に低下させる。32ビットシステムでは、一般的には16ビット分のランダム化しか提供しないため(すなわち65536通り)、総当たり攻撃により分単位で攻撃を成功されてしまう可能性がある。

関連項目

参考文献

外部リンク


Return-to-libc攻撃

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

バッファオーバーラン」の記事における「Return-to-libc攻撃」の解説

詳細は「Return-to-libc攻撃」を参照 既に述べたように、典型的なスタックベースのオーバーフロー攻撃では、本来データ格納すべき箇所シェルコードNOP命令のようなコードを置き、リターンアドレス書き換えてこれらのコードジャンプして、これらのコード実行する必要があった。しかしW ⊕ {\displaystyle \oplus } Xが実装された実行環境ではデータ格納すべき箇所におけるコード実行不許可としているので、こうしたオーバーフロー攻撃仕掛ける事はできない。 そこでW ⊕ {\displaystyle \oplus } Xを回避する為に考案されたのがReturn-to-libc攻撃である。この攻撃では、リターンアドレスジャンプ先をデータ格納箇所書き換えるではなく標準Cライブラリ(libc)のような共有ライブラリDLLジャンプするよう書き換えるこうしたライブラリデータ格納箇所以外に置かれているので(W ⊕ {\displaystyle \oplus } Xが実装された環境においても)実行許可がある。そこで攻撃者ライブラリ内の関数悪用して、攻撃仕掛ける事ができる。 実行環境ASLR実装ていればlibc等のライブラリ仮想アドレスランダムに変わるので、攻撃者ジャンプ先をライブラリ落ちるようリターンアドレス書き換えるのは困難になる

※この「Return-to-libc攻撃」の解説は、「バッファオーバーラン」の解説の一部です。
「Return-to-libc攻撃」を含む「バッファオーバーラン」の記事については、「バッファオーバーラン」の概要を参照ください。

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



固有名詞の分類


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

辞書ショートカット

すべての辞書の索引

return-to-libc攻撃のお隣キーワード
検索ランキング

   

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



return-to-libc攻撃のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのReturn-to-libc攻撃 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのバッファオーバーラン (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS