インジェクション攻撃
読み:インジェクションこうげき
外語:injection attack
主に
CGI
プログラムを標的とした攻撃で、不正な
パラメーター
を
プログラム
に送信して行なう攻撃の総称。
目次
概要
手法
攻撃方法
被害
特徴
攻撃の種類
対策
プログラム側の対応
ネットワーク側の対応
現状
概要
手法
外部から入力されるパラメーターに、
SQL
コマンド、OSコマンド、
ファイル名
、
HTML
、
JavaScript
、
XML
などを紛れ込ませ、(想定外の方法で)それが
サーバー
やユーザークライアントで実行ないし展開されることを狙った攻撃。
攻撃方法
具体的な攻撃例と攻撃回避方法は
ディレクトリトラバーサル
の項目を参照のこと。
被害
攻撃を受けたときの被害としては、他愛の無いものから深刻なものまで、様々である。
画面表示を狂わされる
認証
をすり抜けて
ログイン
できてしまう
Webサーバー
上のファイルの内容や
データベース
の内容が表示されてしまう (例えば本来アクセスされるべきでないファイル(
/etc/passwd
など))
何らかのコマンドが動作してしまう
root
を奪取できる
特徴
攻撃の種類
インジェクション攻撃には、その攻撃対象によって以下のように分けられる。
ディレクトリトラバーサル
SQLインジェクション攻撃
OSコマンドインジェクション攻撃
XPathインジェクション攻撃
LDAPインジェクション攻撃
クロスサイトスクリプティング
フォーマット攻撃
対策
プログラム側の対応
プログラムが受け取るパラメーターの値は信頼できないものとして、その値を念入りに確認して不正な文字や値を除外すれば、インジェクション攻撃を防ぐことができる(汚染除去)。
一部の
プログラミング言語
(例:
Perl
)には外部入力データの汚染除去を行なわないと
強制終了
する動作モードがあり(Taintモード)、これを使う方法もある。
ネットワーク側の対応
この攻撃手法は通信
ログ
に特徴的な内容を残す。それゆえに、自動的に攻撃を検出する
ファイアウォール
や
IDS
も存在する。
しかし、攻撃パターンは日々増えていて、この方法で対応するのは泥縄と言える。
現状
Webプログラミング黎明期には知られていなかった攻撃手法であるため、現在もなお、この攻撃を簡単に受けてしまうCGIプログラムがたくさんあると考えられている。
最近ではインジェクション攻撃を自動化するツールも出回っていて、この攻撃の脅威は非常に高い。
再検索