金曜日, 2月 13, 2009

日本語のスパムをbody_checksでブロック

 「洗練された英文ライティングを実現!」という文で始まる日本語のスパムが2通着信した。2通目の着信は2月10日11時13分。前回述べた、多数のボットからの連続するスパムアクセスと時を同じくしていた。それらの連続するスパムアクセスの送信者アドレスのユーザー名は、「Sakuma.Mako」、「gotou.masato」など日本人の名前だったので、着信したのと同じ文面の日本語のスパムを送り込もうとしたものと思われた。
 この調子では、多数のスパムアクセスが来るうちにまたS25Rがすり抜けられそうだと思ったので、body_checksでブロックすることにした。
 着信した2通のスパムは、送信者アドレスはもちろん、サブジェクトも異なっていた。また、HTMLパートが付いていたが、そこに含まれるURLも異なっていた。変わらないのは本文の文章だった。サーバに残したままのメールを、サーバにログインしてmailコマンドで見てみたら、最初の「洗練された英文ライティングを実現!」という文が次のようにquoted-printableエンコーディングで符号化されていることがわかった。

=1B$B@vN}$5$l$?1QJ8%i%$%F%#%s%0$r<B8=3D=1B(B!

 main.cfファイルには

body_checks = regexp:/etc/postfix/body_checks

と書いておき、body_checksファイルに次のように書き込む。正規表現で特別な意味を持つ記号の前に「\」(JISローマ文字セットでは円記号)を挿入すればよい。

/=1B\$B@vN\}\$5\$l\$\?1QJ8%i%\$%F%#%s%0\$r<B8=3D=1B\(B!/ REJECT

 quoted-printableエンコーディングはあまりメジャーではなく、たいていのメーラーでは7bitエンコーディングで送信される。だから、誰かがこのスパムを引用して「こんなメールを受けたんですけど」と問い合わせるメールを送ってきたとしても、上記の拒否条件にマッチするおそれはあまりない。
 この作戦は見事成功。S25Rに引っかからないホストからのスパムを2通ブロックした。

Feb 12 02:04:11 reject: body            =1B$B@vN}$5$l$?1QJ8%i%$%F%#%s%0$r<B8=3D=1B(B! from wireless.netibr.com.br[200.195.40.69]; from=<MeshizukaHimiko@***.info> to=<deo@gabacho-net.jp> proto=SMTP helo=<[200.195.40.69]>: 5.7.1 message content rejected

Feb 12 02:13:01 reject: body            =1B$B@vN}$5$l$?1QJ8%i%$%F%#%s%0$r<B8=3D=1B(B! from cmi.milacron.com[216.68.248.2]; from=<Sugita.Anna@***.org.ua> to=<deo@gabacho-net.jp> proto=SMTP helo=<cmi.milacron.com>: 5.7.1 message content rejected

0 件のコメント: