インジェクション攻撃
読み:インジェクションこうげき
外語:injection attack

 主にCGIプログラムを標的とした攻撃で、不正なパラメータープログラムに送信して行なう攻撃の総称。
目次

概要

手法
 外部から入力されるパラメーターに、SQLコマンド、OSコマンド、ファイル名HTMLJavaScriptXMLなどを紛れ込ませ、(想定外の方法で)それがサーバーやユーザークライアントで実行ないし展開されることを狙った攻撃。

攻撃方法
 具体的な攻撃例と攻撃回避方法はディレクトリトラバーサルの項目を参照のこと。

被害
 攻撃を受けたときの被害としては、他愛の無いものから深刻なものまで、様々である。

特徴

攻撃の種類
 インジェクション攻撃には、その攻撃対象によって以下のように分けられる。

対策

プログラム側の対応
 プログラムが受け取るパラメーターの値は信頼できないものとして、その値を念入りに確認して不正な文字や値を除外すれば、インジェクション攻撃を防ぐことができる(汚染除去)。
 一部のプログラミング言語(例:Perl)には外部入力データの汚染除去を行なわないと強制終了する動作モードがあり(Taintモード)、これを使う方法もある。

ネットワーク側の対応
 この攻撃手法は通信ログに特徴的な内容を残す。それゆえに、自動的に攻撃を検出するファイアウォールIDSも存在する。
 しかし、攻撃パターンは日々増えていて、この方法で対応するのは泥縄と言える。

現状
 Webプログラミング黎明期には知られていなかった攻撃手法であるため、現在もなお、この攻撃を簡単に受けてしまうCGIプログラムがたくさんあると考えられている。
 最近ではインジェクション攻撃を自動化するツールも出回っていて、この攻撃の脅威は非常に高い。

再検索