スパムボット

こないだ、著作表記の2010を2011に直していたら、ウチのメールフォームのCGIが壊れていたことに気づいた。Perlスクリプトの半分より下がごっそりなくなって500エラーを吐いていた。もしかするとだいぶ前からメールが送れなくなっていたかもしれない。

で、壊れた原因に思い当たるフシがある。数ヶ月前から20分毎に2つのIPアドレスが代わる代わるウチのメールフォームにアクセスしてはエラーを吐いていたのだ。IPからドメインを逆引きするとオランダのレンタルサーバのものだ。POST送信のためアクセス解析ではどういったデータを送信しているかまではわからなかったが、同時に大量のデータを送ってスクリプトを改変するバッファオーバーランの手法を使っていると思われる。恐らくサーバ上であちこちのメールフォームに悪意のあるコードを送り込むボット(ロボット=自動巡回スクリプト)を動かしている利用者がいるのだろう。

今は自作のプログラムで対策を施しているが、以前から設置している掲示板などには毎日大量のスパムが送信されている。掲示板を立ち上げると必ず現れるのがBBSスパム。手動でいちいち書き込むのではなく、検索エンジンやリンクをたどるところまで大抵はボットがやっている。ウィルスにしてもスパムボットにしても、大体悪意のある奴がコードを書いているわけで、予防策を敷いても手を変え品を変えてくる。一度BBS上に書き込みを許してしまえばそこを足がかりにして色々な悪さをするわけだ。

今回はスクリプトを壊されただけで悪意のあるコードを埋め込まれなかったから良かったものの、サーバが脆弱性のある古いOSやデーモン、スクリプトを動かしていたら改変されていたかもしれない。そうなると知らず知らずに自分のサーバやサイト上のスクリプトが他のサーバや閲覧者に被害を与えてしまう。いきなり警察が来て自宅のPCを押収されたという笑えない実話もあるのでサイト管理者には注意が必要だ。

今回はメールフォームを狙われたのが盲点だった。最近のボットは多数のサーバを乗っ取って総攻撃をしかける。だが各々タイミングを計ってブルートフォースアタックとわかる動きをしないから、鯖缶(サーバ管理者)もそういった動きを見つけるのが難しい。だいぶ前から .htaccess でその発信元のサーバ全部をアクセス禁止にしていたが、相変わらず無意味な攻撃が続いてウザイ。たまりかねて新年早々そこの糞サーバ管理者に以下のようなメールを送った。

  Dear webmaster,

  Your IP **.***.93.5/**.***.93.197 access my mail form on my site frequency.
  They visit and send unjust data 3 or 4 times in a hour.
  I denied your ip but they never stop it for a few month.
  Please stop your illegal users.

  *********(本名): webmaster of mezzo.jp

辞書も使わずに適当に書いた文なので、英語として正しいかどうかわからないがまあ通じるだろう。と思って送信したら1日半で返答が来た。詳しいアクセス内容を聞かせてくれという内容ぽいメールだったが、アクセス解析を見たらちゃんと対策してくれたらしく、そのオランダ鯖からのアクセスはぱったり止んでいた。とりあえず「あなたのIPアドレスで検索したらいっぱいBBSスパムを見つけた」と、要約すれば「ぐぐれカス」という内容の英文を書いて返信しておいた。

もし掲示板を持っていて、スパムに荒らされてそのまま放置している人がいたらとっととスプリプトごと削除して欲しい。意味不明のキーワードであっても、それがスパムの足がかりや温床になっているかもしれないんだから。以前も掲示板のリファラを見たら他の掲示板からのものだった。その掲示板にスパムボットが私の掲示板へのリンクを貼っていたのだ。だがその掲示板はトップからのリンクが外されているだけで、それ自体は書き込める状態で放置状態。そこの管理者に「迷惑だから消せ」的な内容を丁寧な文章にして送ったが、恐らく理解できていないのか返信もなかった。つうかその程度の知識しかないんならCGIなんか設置するなッ、この○○○ッ(←好きな罵倒の言葉を入れてね)。

ていうか私も自作のメールフォームのPerlスクリプトもちゃんと作り直しておかないとなぁ…とりあえずバッファに溜める前にPOSTデータのサイズを判定して弾くようにしておかなくちゃ。