アドレス収集ロボットの捕捉

(クロスサイトスクリプティングの改修済み)

ウエブ上に掲載されているメールアドレスはアドレス収集ロボット(ソフトウエア)によって自動的に採取されspamを送るメールアドレスとして使われるためspamが来る割合が非常に高いことが知られています。そうであればわざとおとり専用のメールアドレスをロボットに採取させればそこに来たメールは100% spamと判定できるので拒絶リストを作るときに楽になります。

今回はそのトラップアドレスにアドレスと時刻の情報を含ませたものを作りウエブサイトに掲載してアドレス収集ロボットに喰わせ、それがいつ頃どのアドレスから採取されたかを調べてみることにします。

基本的にはトラップアドレスはウエブページ上に以下のように埋め込みます。
<a href="mailto:tad3@tp.rbl.jp"></a>
こうるすと人間の目には見えないのですがアドレス収集エンジンには見えるので収集されます。そしてそこに来たメールは間違いなくspamということになります。

準備

(以下はsendmailを使った説明です。postfix, qmailなどは別の設定になります)

1)トラップアドレス用のアカウントを作ります。ここでは tad ということにします。

2)トラップ専用にサブドメインを用意します。ここではサブドメイン tp.rbl.jp を使うことにします。

3) /etc/mail/virtusertable を以下のようにします。

@tp.rbl.jp tad

この意味は @tp.rbl.jp の前のアカウントの部分がたとえば afdasfdasfdsaf@tp.rbl.jp のように何であってもtp.rbl.jpあてに来たメールはすべて tad すなわち tad@tp.rbl.jp というアカウントに届くという設定です。

設定が終わったら
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
としてdbファイルを作ります。

4)このサブドメインのメールを受信できるよう 
/etc/mail/local-host-names に tp.rbl.jpを追加しsendmailを再起動します。

5)DNSにもtp.rbl.jpの項目を作ります。当然そのIPアドレスはtp.rbl.jpのメールを受けようとしているメールサーバーのアドレスです。

ここまで行ったらテストメールを送って届くかどうか確認してください。

無限にトラップアドレスが必要なだけでしたらここで終わりです。あなたのウエブサイト内に上で説明した記述を埋め込んでください。サーバー毎やページ毎に異なるメールアドレスとするとどこから拾われたかを知ることができます。公開してから1週間くらいするとspamが来始めることでしょう。

トラップアドレスの生成

いよいよトラップアドレスの生成です。

SSI やphpなどで日付やアドレス収集エンジンのIPアドレスを埋め込んだアカウントを生成し上で説明したようにロボットだけが見える形でページ内に作ります。

ここではphpで作ったソースと例を示します。これをクリックしてページを表示したあとブラウザの「ページのソース」を見るを選択すると先頭のところに仕掛けたアドレスを見ることができます。ドットで区切られていて前半がIPアドレス、後半が時刻です。文字列を短くするため時刻にはオフセットがつけてあります。

このソースをphpのページのいろいろなところに仕掛けます。

例題で示したメールアドレスにテストメールを送らないようにしてください。既にトラップアドレスとしてセットしたのであなたのメールアドレスは拒絶リストに追加されてしまいます。

バリエーションとして先頭に a- とか b- とかサーバーを識別する文字を入れておけば複数のサーバーがあってもどのサーバーに来たのかも区別することができます。

デコードは以下のフォームから行えます。メールアドレスを入れるとアドレス収集ロボットが動いていたアドレスと採取された時刻が表示されます。上で説明したサーバーを識別する文字を入れたメールアドレスであった場合にはそれを除いたメールアドレスを入れてください。

Enter mail: ソースはこちらです

spamの分析

spamは全部 tad@tp.rbl.jp に届くようになっていますからメーラはtadを読み出すアカウントだけを設定しそれだけを見ればいいことになります。

1) メールのReturn-Path: にあるメールアドレスを /etc/mail/access に追加します。ちなみに最近のspamではこれは偽装されていることがほとんどですからそこに返事を書いたりいやがらせメールを送っても意味はありません。また偽装ですから永遠に持っていると本当の持ち主からのメールも拒絶するので古い順に消去してください。 それがspammerのメールアドレスであっても次回は別のアドレスで送ってくるので古いものは消去しても大丈夫です。 メールアドレスに使っているドメインがspammerのドメインと判定された場合そのドメインも /etc/mail/access に追加します。

2) メールのヘッダから spammerが送ってきたホストを特定しそれをshort.rbl.jpに登録します。最近はほとんどがダイアルアップやADSL回線なので別の人がつないで来た場合に永久に拒絶してあると問題なのですがshort.rbl.jpは2日過ぎると自動的にリストから消してくれるので気兼ねなく登録できます。送ってきたホストのドメインが spammer のドメインと判定された場合そのドメインは /etc/mail/access に追加します。

3) メール本文にあるspammerが宣伝するサイトのうちspammerに関連しているドメインをurl.rbl.jpに登録します。

4)デコードソフトで宛先のメールアドレスを解読しアドレスアドレス収集ロボットのアドレスと採取された時刻を調べます。そのアドレスがどこかの会社の回線の固定アドレスであると特定できれば .htaccess にアドレスを追加しウエブサイトのアクセスを拒否することができます。ADSL回線であった場合には時刻が秒単位で記録されていますからプロバイダと協力すれば犯人を特定できます。

当社はこれらの一連の処理をソフトで半自動で処理しています。皆様もパワーがありましたらそのソフトを書いてみてください。

送られてきたメールがspamであってもウイルスに感染したパソコンからその人のアドレス帳を使われて送られることもあることに注意してください。spamはプロバイダのメールサーバーを使って送ってくることもあるのでそのサーバーを拒絶することの無いようにしましょう。

Nikki Top