自動化されたSQL Injectionの攻撃対象

WASCのWeb Security MLの少し前の投稿より。

Tactical Web Application Security: Mass SQL Injection Attacks Now Targeting PHP Sites

自動化されたSQL Injection攻撃が、現在はPHPサイトをターゲットにしているとの内容の記事です。

確かに、SQL Injectionによって埋め込まれるJSファイルのURLをキーワードにしてGoogle検索すると、拡張子がphpのページもヒットします。

"1000mg.cn/csrss/w.js" - Google Search

個人的に一番気がかりなのは、これまで狙われていたSQL Server以外のデータベースが新たに攻撃対象になっているのか(あるいはそうではないのか)ということです。

そこにも関わりそうな話なので、可能な範囲で調べてみました。


まず、検索結果の上位100位程度を抽出して、SQL Injection攻撃について書かれたBlogなどを除去した上で、集計したものが以下のグラフです。

拡張子

OS/Webサーバ*1

拡張子がphpのもの(全体の11%)だけを対象にOSを調べると、WindowsUnix/Linuxが半々という結果になりました。

この情報だけから何かを断定的にいうのは難しいですが、以下のようなことは見て取れます。

  1. 拡張子をみるとasp/aspx以外にも割と満遍なく改竄されている
  2. 特にPHPだけが狙われているという訳ではない
  3. WebサーバのOSはやはりWindowsが多い

Google検索+αの範囲では、残念ながらこれくらいの情報しか得られていません。


自動化されたSQL Injectionの攻撃では、複文が利用できるデータベースの調査: SQL Serverが狙われるには理由がある - 徳丸浩の日記(2008-05-02)に書かれているように、SQLの複文(stacked query、multiple query)の利用が(恐らくは)必須で、複文はMS SQL Server以外にもpostgresでサポートされています。

複文以外にもうひとつ現在の攻撃に利用されているのは、動的SQLのテクニックです。デフォルトインストール状態のpostgresでは動的SQLは利用できないようなのですが、動的SQLは攻撃に絶対必要という訳ではありません(動的SQLが使えないと、攻撃の効率が大きく下がりますが)。

という訳で、理屈の上ではpostgresを利用したアプリケーションも自動化された攻撃の対象になりうると考えています。

このあたりのことが以前からうっすらと気になっていたところに、WASC MLの記事を発見したので、今回少し調べてみたというわけです。

しかし、得られる情報が少ないこともあり、案の定というか明確な結論は得られませんでした。今のところ言えるのは、SQL Server以外のデータベースが攻撃対象になっていることを示す、明確な兆候なり証拠は見つけられていない(少なくとも私は)ということです。

*1:OS/WebサーバはレスポンスのServerヘッダを集計しています。