SQLインジェクションの影響調査Tips
Published: 2008/04/18
最近、SQLインジェクション攻撃の増加による影響がニュースで騒がれています。Web サーバの管理者なら、一度は不審なログを見たことがあるでしょう。しかし今回は影響がなかったとしても、過去に攻撃で侵入されたことがあるか、確認する方法についての情報が少ない気がします。
今回は攻撃による影響についてまとめてみました。特に最近の攻撃では IIS 宛の攻撃が多いようなので、主な対象はWindows環境を想定しています。
テーブルの作成
攻撃ツールなどでは攻撃成功時、テーブルを作成するクエリを投げたりします。下記は攻撃ツールなどに利用されているテーブル名ですが、これらの名称のテーブルが作成されていた場合、攻撃により侵入されている可能性が高いようです。あくまで一例ですが、SQLサーバ上にこのような名前のテーブルがないか確認してみてください。
- D99_CMD
- D99_REG
- D99_Tmp
- DIY_TEMPCOMMAND_TABLE
- DIY_TEMPTABLE
- NB_Commander_Tmp
- xiaolu
- jiaozhu
- t_jiaozhu
- X_####(X_ で始まり数字4文字が並ぶテーブル)
およびこれらに類似した、作成した覚えのないテーブル
IISのログ
攻撃が行われた場合、攻撃者(および使用されたツール)は情報収集を行うことが多いようです。その際に使用されるSQLに含まれる文字列を抜粋してみました。
これらを含む要求に対して、"200 OK" や "500 Internal Server Error" が返っている場合、攻撃が成功した可能性が高そうです。このようなものがないか確認してみてください。(エンコードの状況により @ が %40 だったりと記録内容が変わることがあります)
- SELECT%20*%20FROM
- SELECT%20Top%201
- DROP%20FROM
- @@version (%40%40version)
- UNION%20SELECT
- xp_cmdshell
- OPENROWSET
※調査時は大文字・小文字を区別しない case-insensitive にてご対応ください。
不審なファイルの存在や設定変更確認
攻撃が行われた場合、攻撃者(および使用されたツール)により特定の場所にファイルが作成されることがあります。下記のようなものがないか確認してみてください。
- cドライブ直下(c:\)に不審な .asp .exe .txt .vbs などがないか
- Webルート直下(c:\inetpub\wwwroot)に不審な .asp .exe .txt .vbs などがないか
また攻撃成功時にユーザの追加を試みることがあります。Windows のコントロールパネルから、意図しないユーザが追加されていないか確認してください。
外部へのリンクの確認
SQL インジェクション攻撃が成功した場合された場合、Web ページ自体のみならずSQL 上のデータが書き換えられることによりリンクが挿入されることがあります。そのため、検索結果など SQL を使用したページにて不審なリンクなどが含まれていないか確認してください。
以上、要点だけ記載しました。これらが複数存在する場合などは、攻撃が成功し情報漏えいや改ざんの被害にあっている可能性が高いようです。
By Mudrock