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攻撃」を含む「バッファオーバーラン」の記事については、「バッファオーバーラン」の概要を参照ください。
固有名詞の分類
標準Cライブラリ |
Strcpy Strlen Return-to-libc攻撃 GNU Cライブラリ Memset |
Weblioに収録されているすべての辞書からReturn-to-libc攻撃を検索する場合は、下記のリンクをクリックしてください。

- Return-to-libc攻撃のページへのリンク