No.144 2003/06/09
IPアドレスに基づくスパムメール防御策

 今回の話題は、ネットワーク管理者向けのやや専門的なものです。
 2003年5月6日から、私宛のスパムメールが急に増えました。ホームページにおとりのmailtoリンクを設けた(第142回参照)からではありません。ドメイン管理者として登録されている私のアドレスが悪用されたようです。
 本文中に書かれた、スパマーが誘導しようとするウェブサイトのURLを条件として受け取りを拒否するというやり方(第110回参照)に限界を感じました。同じ内容のスパムメールの2度目以降の受信は拒否できても、次々に来る新しい内容のスパムメールは防御できません。また、本文をBASE64符号化するという手口も現れてきました。これだと、わけのわからない英数字列に変換されているので、内容チェックによる防御は困難なのです。

 新たな作戦。スパムメールを送り込んでくるコンピュータのIPアドレスに着目しました。スパムメールをぱっぱらぱーと中継してしまうメールサーバが今では少なくなったので、スパマーはブロードバンド回線(ADSLやケーブルネットワーク)を使って自分のコンピュータから直接ばらまくことが多くなりました。そして、その発信元コンピュータのIPアドレスはDNS(ドメインネームシステム)で逆引きできないことが多いのです。
 逆引きとは、IPアドレスから「mail.example.jp」のようなホスト・ドメイン名を検索することです。逆引きができないとはすなわち、そのIPアドレスの管理元ドメインを堂々と明かすようにDNSが設定されてはいないということです。ネットワーク管理がしっかりしている組織やプロバイダのメールサーバならば、逆引きもきちんと設定されているものです。

 逆引きできないIPアドレスからのメールの送り込みを拒否するようにメールサーバを設定してみました。効果てきめん。9割以上のスパムメールをブロックできるようになりました。
 中には、プロバイダによって逆引きが正しく設定されたIPアドレスからスパムメールが送り込まれるケースもありました。たとえば
218-168-20-84.HINET-IP.hinet.net
dialup-171.75.4.163.Dial1.Phoenix1.Level3.net
(実例)のようなホスト・ドメイン名です。これらは、IPアドレスの十進表記をそのままホスト名に反映したもので、そのIPアドレスは、ダイヤルアップやADSLやケーブルネットワークのユーザーにDHCP(Dynamic Host Configuration Protocol:動的ホスト設定プロトコル)で動的に割り当てられたものと推定されます。すなわち、“責任をもって返信や差し戻しを受けるように固定IPアドレスを持ってスタンバイしているメールサーバ”ではないと考えられます。そこで、「ホスト・ドメイン名に、ハイフンまたはピリオドで区切られた四つの数字列が含まれる」という条件で「You don't seem to be a trusted mail exchanger.」(あなたは信頼されたメール交換機ではないようだ)というメッセージを返して接続を拒否するようにしました。これでさらに跳ね返しの打率が上がりました。
 逆引きできたホスト・ドメイン名が上記の条件を満たさないために通過してしまうスパムメールもありましたが、そういうケースに対しては、“そのプロバイダのDHCPユーザー用サブドメイン”と推測される階層のドメイン名を接続拒否条件に追加していくという方法で対抗するようにしました。
 なお、ブロードバンド回線を利用するスパマーに割り当てられたIPアドレスは、別の時にはほかの善良なユーザーに割り当てられることがありますが、私の防御策で善良なユーザーからのメールをブロックするおそれはほとんどありません。善良なユーザーは通常、プロバイダのメールサーバを経由してメールを送ってくるからです。

 しかし、副作用も起こりました。メールマガジンや、予約確認の自動メールの送信サーバの逆引きがまともに設定されていなくて、私のサーバがブロックしてしまうケースがあったのです(送信サーバが30分〜数時間ごとに再試行しているうちに許可条件を設定することにより、受信することはできました)。まっとうなサイトからのメールが、そこのDNSの設定不備によって受信できなくなるのも困るので、JPNICが管理するIPアドレス(国内で使われているIPアドレス)からの接続は、IPアドレスの逆引きができなくても許可するようにしました。国内からのスパムメールはさほど悪質でなく、内容チェックでブロックできるからでもあります。

 さて、私は第119回で、スパムメール撲滅活動をしているSpamCopのおせっかいを批判しました。久しぶりのそのサイトを見てみたら、インターネットユーザーが利用できるスパムフィルタ付きメールサービスの案内が載っていました。ユーザーは年額30米ドルでそのメールボックスを借りることができます。SpamCopは、スパマーが利用するメールサーバのデータベースを持っていて、そこからのメールは「スパムの疑いあり」として、別のメールボックス(中身は2週間で自動消去される)に入れられます。ユーザーは、そのメールボックスの中身をウェブインタフェースで見ることができ、「これは自分にとってスパムメールではない」と判断したら通常のメールボックスに移すことができて、以後、その条件のメールはスパムメールとして扱われなくなります。また、ウィルスメール除去サービスも付いています。
 メールアドレスを変えたくなければ、現在利用中のプロバイダのメールサーバから転送をかけてSpamCopのメールサーバで受信することもできるそうですが、その場合、現在利用中のプロバイダのサーバへメールを送り込んだ端末がスパマーなのか善良なユーザーなのかをどうやって判別するのかは、私にはよくわかりません(私の防御策では、「自分のメールサーバにメールを送り込んでよいのは、自ネットワーク内の端末と、外の固定IPアドレスの信頼できるメールサーバだけ」というポリシーで判別できます)。
 しかし、ともあれ、スパムメール取り締まり活動をインターネットユーザー向けのサービスへ発展させたSpamCopを高く評価したいと思います。

 SpamCopが採用しているスパムメール防御策は、どの程度確実なものかは使ってみないとわかりませんが、発信元IPアドレスを条件とするという点では、私の防御策との共通性があるようです。いずれ、世の中のスパムメール対策は、“逆引きできないIPアドレス”と“逆引きから、信頼できるメールサーバではないとわかるIPアドレス”からのメールを受けないという方向に進むであろうと思います。
 世のネットワーク管理者の皆さん、あなたのメールサーバの逆引きをきちんと設定してくださるようお願いします。さもないと受信してくれないメールサーバがこれから現れるかもしれず、あるいはもう現れ始めているかもしれませんから。



(2003/06/14追記) 逆引きが正しくできた結果から動的IPアドレスと推定されたら拒絶するという方法が副作用を生じることがわかりました。動的IPアドレスと動的DNSを利用して運用しているまっとうな個人サイトがあるからです。いやはや、困った。スパムメール防御策の研究に終わりはなさそうです。

目次 ホーム