Twilight of The Godsトップへ


フリートーク > 2005年7月19日バックナンバー

SPAM格闘列伝

 あの手この手を使って、迷惑千万なメールを無断で送り続けてくるSPAM業者に対抗するために、みなさんさまざまな手段で格闘されていることと思います。かくいうワタクシも個人で受けるメールの実に15〜20%くらいはSPAMフィルタにひっかかるという、かなり熱い状況。手を変え品を変えて向こうが送り続けてくるなら、こっちもそれ相応の覚悟で臨んでやるさ!とがんばっていたのですが、本日致命的なミスが発覚し、意気消沈しているところです。
 実は、どうも必要なメールまでサーバー側で自動消去してしまっていた(らしい)ことが判明したんです。この悲しみを誰かに伝えたくて、珍しく連日フリートーク更新なんぞやってみるわけでございます。(;´Д`)

 私は頻繁にメールを受け取る生きているアドレス(アカウント)を、自宅で5つ利用しています。ひとつはISPから支給されているもの、ふたつめはこのstudio-mercury.orgドメインのもの、みっつめは個人事業用の独自ドメインのもの、よっつめが会社で、さいごのひとつがフリーメールサービスのものです。ISPから支給されているアドレスは、Webサイトを実に5年以上も放置プレイングということもあってか、とにかく激しくSPAMが送られてきています。独自ドメインのものには英語のものが大半を占めており(とはいえ決して英語圏の国から送られてきているものではない)、日本語もぼちぼち。ただし、ISPのものに比べれば格段に少ないほうです。
 ISPのほうは、もうとにかくなんでもござれ状態で、あまりにもひどかったのでISP側の無料サービスを使って、ある特定の条件に合致したもの(=SPAMとみなすに等しい条件)はすべて自動でサーバーからヘッダもなにも残さずに削除するフィルターをこつこつ作っていたんですね。漏れるもの(あまり連続性や規則性のないもの)に関しては、メールソフト側のフィルタではじいたり、独自ドメインについては、間借りしているサーバーが今年のはじめに高性能なSPAMキラーを導入したので、ほぼそちらにまかせっきり。これでほぼ毎日が心穏やかに暮らせると思っていた矢先のできごとです。
 最近また新手のSPAMの猛攻撃があったため、少々きつめにISP側のフィルタを設定してみたら、あら不思議。ISPのメールアカウントにほとんどなにもメールが届かないという状態に。ま、三連休もはさんでいたことだし、静かなのは当たり前か……と思っていたのですが、相方の会社から受けていた仕事のメールが「さっき送ったんだけど」なんて言われて確認するも、受信した形跡すらなかったんです。もしやと思って別アカウントに送ってもらったところ、Recievedに入っていた特定の文字列をSPAMとみなすルールに突っ込んでいたため、あとかたもなく消滅していたというわけです。
 きつすぎるフィルターも時には諸刃の剣になるってわけですね……トホホ。仕事用に独自ドメインを取るまでは、ISP側のメールアカウントで依頼を受けていたもんですから、この1週間のうちにもしかしたら重要なメールがあったのかもしれないと思うと((((;゚Д゚)))ガクガクガクブルブルブルです。(;´Д`)
 そういうわけでさきほどフィルターを作り直したのですが、いやはや、ただのメールの振り分けでも条件が矛盾を起こしてうまくフォルダに振り分けされないこともあるわけですから、気をつけたいものです。ガックシ。
 今回は反省をふまえ、SPAMメールに対抗するためのノウハウを、珍しくまじめに書いてみようと思います。

フィルターとフォルダ分けを使いこなそう

 まずは基本ですが、メールソフトの迷惑メールフィルタや振り分け機能をうまく使いこなすことが重要。よく、メールをベタなフォルダ、例えば[受信箱]などといったデフォルトの受け皿にそのまんま受信している人がいますが、めんどうでもいくつか受信箱をつくり、来たメールのfrom(差出人)やto(受取人)、Subject(件名)などのヘッダ情報をもとに、さまざまな条件の振り分けフィルターを作りましょう。
 その前に、メールのヘッダ情報について少し知っておくといいかもしれません。これは一般的に言われているSPAM対策だけでなく、いやがらせなどの不快なメールの証拠保全にも役立ちます。インターネットは自衛が基本ですから、ある程度の知識は知っておいて損はないでしょう。

◆特集:メールヘッダ入門
◆メールヘッダ一覧

 自宅ではさほど多くの種類のものを受け取っているわけではないので、わりとフォルダを少なめにしていますが、会社ではとにかく連絡事項はすべてメーリングリストということもあって、メーリングリストでSubjectにつく文字列や送信者、クライアントやSubjectごとなどで50近いフォルダを作って振り分けをしています。数が多ければ埋もれてしまうことももちろんありますが、少なくとも目的や内容に沿った振り分けをすることで業務の円滑化がはかれるわけです。こうすれば、必要なメールか否かも判断がつきやすいので、後々のSPAM対策にもすぐにも乗り出せると思います。

ISPの迷惑フィルターやお使いのメールソフトの迷惑メールフィルターを使い倒す

 SPAM洪水の昨今、ISP側でもデフォルトで迷惑メールフィルターサービスを無料で提供するということも多くなってきました。ISPのアカウントをお使いの方は、まずこちらのサービスを利用することをおすすめします。なぜなら、ほとんどの場合まず第一段階としてSPAMに近いものはISPのサーバー側で排除してくれるばかりか、自分で設定したフィルターを組み合わせることで、わざわざメールソフトにダウンロードせずとも、自動でサーバーから削除することが可能だからです。私の場合は、自分で組み合わせたフィルターがまずかったわけですけれども(笑)。
 ISPから漏れたものに関しては、同様の条件でメールソフトのほうでもフィルターを作っておくといいでしょう。特に複数アカウントを別サーバーで利用しているなんて人は、すべてのサーバーでフィルターが導入されているわけではありませんから、二重三重に編み目をきつくしていくことをおすすめします。
 以下は私が使っている迷惑メール撃退条件のほんの一部です。なにかのご参考にどうぞ。


「未承諾広告」は問答無用で削除
 不特定多数の、ユーザーから許可を得ていないメールを業者が送信する場合には、件名に必ず「未承諾広告※」と入れるように定められていますが、基本はここからブロックしていきましょう。この文字列が入っている場合を削除することはもちろん、「末承諾広告※」などひと文字変えて送ってくる大バカ野郎もたまにいますので、似たような、推測のできる範囲の文字列をシャットアウトするといいでしょう。
Subjectに「=?gb2312?」や「=?big5?」が含まれるものを削除
 インターネットメールにはルールがあって、英文以外の言語でメールを送受信する場合は、特定の文字列で始まる符号のようなものに変換されます。日本語のメールもしかり。メールが届く際には符号化されたものが復元されるわけですが、そのとき特定の文字列が入った文字コードの規則によって、例えば「=?gb2312?」「=?big5?」は中国語の文字コードを示す文字列ですので、これが件名に入っていた場合に削除するようにフィルターを設定できます。
 文字化けする意味不明な迷惑メールでお困りの方は、かなりの確率で撃退できますので一度おためしあれ。ただし、友人に中国の方がいないことが前提です。
特定の文字コードで送られてきたものを排除する
 日本語のメールは、基本的にiso-2022-jpという文字コードが利用されています。この文字コードはメールヘッダの中のContent-Typeという項目で設定されていますが、SPAMの多くがこれに準じていない文字コードで送ってくることが多いようです。したがって、Content-Type: text/plain; charset=iso-2022-jp以外のものをはじくか、あるいはEUC、Shift-JIS(どちらも日本語の文字コードですが、インターネットメールでは使用しません)、さらにはUTF-8(Unicode)、Big5(前述の件名と同様、繁体字中国語で書かれたもの)、GB2312(簡体字中国語)など、特定の文字コードで書かれたメールを指定してはじくことが可能です。
 ただし、ご友人に該当の文字コードを日常的に使用する国の方がいないことが前提です。
送られてくるメールソフトの種類でブロック
 メールヘッダには、どういったメールソフトで送信したかを記すX-Mailerという項目があります。ほとんど必要のない項目と思われがちですが、なにかメールの送受信でトラブルがあったときの解決策を考えるのに役立ちますし、私のようなインターネットヲタにとっては、X-Mailerをデフォルトで表示して、自分と同じような、あるいはとても珍しいメールソフトを使っている同好の人間を見つけてはニヤニヤするのに重宝します。
 冗談はさておき、SPAMは不特定多数に大量のメールを配信するため、通常私たちが使っているようなクライアント向けソフトは使用しません。ある種の配信エンジンを利用していることが常です(もちろんヘッダの偽装もあり、この限りではありません)。そしてその配信エンジンも、クライアント向けメールソフトと同様、メールヘッダ内にX-Mailerという足跡を残していますので、必要に応じて設定するといいでしょう。
 ただし、私なんかも仕事で利用していますが、まっとうな配信エンジンを排除することでメールマガジンが届かないといったこともありますので要注意。また、そのメール配信ソフトが必ずしもSPAM配信を目的としたものではないので、作者に苦情をいうなんて馬鹿な真似はよしましょう。
 ちなみに私は、5種類くらいのまったくメジャーでない海外のソフトをはじくことで、かなり安泰です。
途中経由するサーバーでブロック
 インターネットメールは、ピアツーピア、つまりメールを送りたい人と送られる人が1本で結ばれていて届くものではありません。ISPなどのメールサーバーを、ときには何台も経由して送られてきます。その、メールがどのサーバーで受理されたかという足跡を記したのが、メールヘッダ内のRecievedの項目。メールヘッダは前述のヘッダ入門にも記されているとおり、下から上に読んで、下から上に時間が経過していくものを記します。従って、もしあまりひどいようであれば、特定のメールサーバーのドメインやIPアドレスをブロックする条件に入れておくだけでもかなりの効果が発揮されます。ただし、インターネットメールは不特定多数のさまざまなメールサーバーを経由し、さまざまな人から送られてくるもの。知り合いに該当するメールサーバーを保持するISP利用者がいないか、よくよく検討してください。
 ちなみに私は、ISP側のメールで送受信する相手に海外の特定のサーバーを使う人間がいないこと、国内でも特定のサーバーを使う人間がいないことを確認したうえで、この対処法を組み合わせて利用しています。かなりの暴挙&最終手段でもあるので、ご利用は慎重に。

SPAMキラー系ソフトウェアの導入

 ISPのフィルター、メールソフトのフィルターに加え、私はローカルで動くメールプロキシソフトを利用しています。メールプロキシといわれると「はぁ?」という感じでしょうが、メールに含まれる文字列などを解析して振り分けを行う、高性能フィルターサーバーといったほうがいいでしょう。
 ちょっと高度な知識が必要かとも思われますが、自分のマシンでWebサーバーが動く環境の方なら、けっこう簡単に導入が可能です。

◆POPFile

 Webブラウザベースで操作するだけなので、かなり簡単。最初はどのメールがどんな内容のものかPOPFileは知りませんから、とにかくメールを受信しまくり、これはどこに分類されるものかどうか根気よく教育してあげます。
 使い倒すうちに精度が上がり、ほぼ90%以上の確率で分類が可能です。ここで分類したものをメールソフトなどのフォルダに振り分けるなどの二重の振り分けが可能ですから、不愉快なエロメールなども見ることなく排除できます。
 ちなみに、文字を解析していくので受信通数が多くなればその判断のもととなる辞書ファイルのようなものが肥大化していきます。たまにリセットしてあげないと私のMacintoshが死亡することもあり、けっこう重宝するわりに手のかかる子だなぁという感じです(笑)→参考までに、私宛のメールの振り分け精度と割合はこちら
 またこのほか、独自ドメインのほうでは、SpamAssassinというサーバー側にインストールするタイプの高機能フィルタリングソフトが導入されており、かなり重宝します。こちらも、メールを受け取るたびに教育が必要ですが、インターネット上のSPAM DBに格納されているデータを元に判断を行うので、かなり効果が高いです。

国内SPAMは該当ISPに直訴する!

 とにかく困っているのは、大手ISPの外部サーバーを使ってSPAMを垂れ流しにする業者がいること。ヘッダ解析を行えば通ってきたメールがどこのサーバーを経由しているかがわかるので、わかったら該当のISPに迷惑メールが送られてきたことを通報していくという手段に訴えましょう。すぐに対応してくれるところもあるのですが、中には自動応答メールで受け付けた旨だけよこし、それでもまだ業者に対してなんの手段もとらないダメダメなところも多いです。こまめに通報はしていたのですが改善しないところについては、強硬手段ではありましたがメールの受け取りを前述の方法によって拒否することにしました。かなり大手のISPでしたが、友人も利用していないですし、特に困ることもなかろうと思ってますハイ。
 苦情の宛先を探るのに、有志が非常に便利なツールを提供してくれています。下記のようなツールを使ってみるのも手です。ただし、単独で報復攻撃なんて馬鹿なことはやらないように! いつだったかSPAM排斥運動をしていたサイトが、悪質な業者からアタックを受けたなんてこともありますんでね。

◆迷惑メール(spam)対策用メールヘッダ解析 hdpar (GeekTools対応版)
◆迷惑広告メール(spam)苦情先探索ツール集
◆す〜ぱ〜もの Ver.2.5(スパム苦情先検索半自動化システム)