モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

whois情報を参照するスパムフィルタはどうだろ?

現在、Postfixのフィルタだけで98%強のスパムが排除されているのですが、それでもやっぱり抜けてくるスパムがあります。(2次フィルタのSpamAssassinでよりわけられてるんですが)
で、そういうのは気になるんで(抜けてくるのが少なくなったせいで、逆に気になってしまう…)ヘッダからwhoisドメイン情報引いてNS見てとやるんですが、NSのブラックリストでは対応出来ない(スパマーのみが利用しているNSでないため)ので、誤検出の可能性が無いフィルタを書くことができません。


んでそうやってwhoisを引いてると、ああまたこいつか、ということが結構あって、つまりwhoisドメイン登録情報から特定できる場合が結構あるんですよね。
だから、どうしても怪しいドメインからのメールについてはwhoisの情報を引いてフィルタしたらどうかな?と思っています。
NSでのrejectドメイン情報版、みたいなイメージです。


むろん、全メールに対してそんなことやってたら追っつかないしwhoisサーバに迷惑なので、だいぶ絞り込んだ条件、具体的な例をあげるとすると

  • それまでのフィルタを抜けてきたもので
  • S25Rに引っかかり
  • エンベロープfromが「apache@〜.com」
  • NSが「dns[1-9].name-services.com」

という場合にのみ、このwhoisフィルタを掛けて、whoisの内容が「ikada hideki (kurikurichan01@hotmail.co.jp)」にマッチしたら拒否、とかしたらよいかなあと。
フィルタは単にperlwhois引いて、whoisブラックリストとマッチングさせるだけなので、超簡単。
もちろん、そうやってマッチしたドメインは、ブラックリストDBにつっこんどいて次からは引かなくても良いようにします。


whoisの負荷が(モラル的に)問題視されるなら、これ専用のDNSBLとかを立ち上げたほうがよいのかとも思いました。
つまり、whoisフィルタを掛ける条件と、whois内容ブラックリストを配布して、利用してもらってるサーバからのみ、自動でブラックリストドメインを専用DNSBLに投げてもらうと。
そのフィルタを掛けることに同意してるなら、自分で独自に拒否するのも、その専用DNSBLを使うのも、意味的に同じになるから、そう言う意味でこのDNSBLでの誤検出は無いはずです。


どうでしょう?
うちだけじゃやるの荷が重いから、ハートコンピュータさんとことに提案してみようかな :)