アドレス収集ロボットを捕獲する


sorry no english version

アドレス収集ロボット

spammerが送信に用いるメールアドレスの入手方法のひとつとして、 検索エンジンの巡回ロボットのようにリンクをたどって メールアドレスを収集する専用のソフトウェアがあります。 たとえばGoogleで"アドレス収集 ソフト"と入れてみれば、いろいろ出まわっていることがわかります。
国外ではaddress harvesting programとかspambotと呼ばれているものです。

アクセス元の特定

まともにUSER_AGENTなどを渡すわけがないspambotのアクセスをhttpdのログから見つけ出すことは困難です。 また、どのメールがspambotにより収集されたものなのかも区別がしにくいものです。
そこで、spambot用にわざとエサを置いておいて食べてもらい、 送られてきたメールでspambotがどこから来たのかを調べます。
もともとはここで見たアイデアなのですが、 エサのメールアドレスにアクセス元の情報を含ませます。

たとえば:

hirobo-127.0.0.1@example.com

というようにアクセス元のIPアドレス(httpアクセスまで特定したければ、さらに日時)をメールアドレスにまぎれこませます。 qmailのように拡張アドレスが使えるMTAなら簡単にできます。 MTAでできない場合はspam gourmetのように、必要なだけ必要な時に使い捨てできる転送アドレスを作成できるサービスを利用すれば可能になります。

spam gourmetなら:

特定できる文字列.1.アカウント@spamgourmet.com

というようなアドレスを渡してあげれば良いわけです。
CGIかSSIの使えるサーバならHello world!レベルですよね。:-)

設置

通常のページに埋め込んでも良いわけですが、 Googleなどに拾われてキャッシュされてしまうとややこしいことになるので、 別のページにしてrobot.txtかmetaタグでキャッシュが行なわれないように指定します。

<meta name="robots" content="noindex, nofollow">

そして通常のページに、人間によるアクセスが来にくいようにリンクを張ります。

<a href="http://example.com/honeypot.cgi"></a>

あとは釣れるのを待つだけです。:-)

メールアドレスから取りだしたIPアドレスを使って webのアクセス制限など二度とアドレスを持っていかれないように イジワルをするのも良いでしょうし、 送られてきたメールを元に受信拒否をするのも良いでしょう。 アイデアしだいです。

それでは、良いのが釣れますように!

おまけ

○ honeypotサンプル(CGI:djblib+build)


Cソース(tarball:"package/compile"後コピーしてください)→ 動作例

○ ついでにゴミのメールアドレスを食べさせてspambotにいじわるする版 Cソース (上のtarballに含まれます)→ 動作例
(clib+Apache版はこれでいいのかな?)

ちょっとナチュラルな感じ(?)バージョン
Cソース動作例

○ 釣果の研究に役立つ(?)USER_AGENT,REFERER,VIAの環境変数を取るためのpatch

publicfile用  shttpd(cgi-httpd)用  skahttpd用

さらにおまけ

賢くないspambotには拾えないようにwebに置くメールアドレスのタグをエンコードしてしまいましょう。

例:
使用前 hirobo-web@h1r.org
使用後 &#104;&#105;&#114;&#111;&#98;&#111;&#45;&#119;&#101;&#98;&#64;&#104;&#49;&#114;&#46;&#111;&#114;&#103;

エンコードしたmailtoタグを発生します。
mail address:

お持ち帰り用のほぼ同機能のjavaアプレット (Hideaddr.zip 約4000byte)
古いjavaプラグインだと動作しないと思うので動作確認してからお持ち帰りください

関連情報


INDEX
Hiroshi Tsukamoto
Last modified: Fri Aug 9 20:15:43 2002