BLOGTIMES
::
Home > 本文がBase64エンコードされたspamへの対策
2007/09/17
[ by hsur at 05:23]

本文がBase64エンコードされたspamへの対策

  

一部のspamメールをthunderbirdのspamフィルタがちゃんと認識してくれないので理由を探ってみたら本文がbase64エンコードされていたというオチでした。base64のデコード機能を持たないベイジアンフィルタへのささやかな対抗策なのでしょうね。まったく小賢しいことです。

ヘッダはこんな感じになっていました。

Content-Type: text/plain;
        charset="iso-2022-jp"
Content-Transfer-Encoding: base64

通常のメーラーからはこんな不届きなメールがくることは無いはずなので、このヘッダをみつけたら無条件でゴミ箱行きでもいいんですが、中身を学習用のデータとして使いたいので、とりあえずこれを何とかデコードしたい。

何かいいものはないかといろいろ探してみたら、昔壊れたmimeの修正に使っていたdelegateに含まれているmimekitのenMime/deMimeがあったことを思い出したのでこれをまた引っ張り出してみることにしました。試しに手元にあったspamに対してdeMime < spammail.txt | enMimeとやってみるとうまく本文がデコードされていました。

コンパイルに一苦労

なぜか最新版(9.7系)のmimekitはうまくコンパイルできなかったので、delegate8系の最新版でコンパイルすることにしました。
まぁ、mimekit自体はそんなにアップデートされているわけじゃないので問題ないでしょう。

コンパイル手順はこんな感じ

$ wget --user= --password= http://www.delegate.org/anonftp/DeleGate/old/delegate8.11.6.tar.gz
$ tar zxvf delegate8.11.6.tar.gz
$ cd delegate8.11.6/mimekit/
$ vi Makefile
$ CFLAGS=-O2 CC=gcc make
$ su -
# make install

途中でMakefileを編集してますが、これはなぜか../mkcppを探しに行ってこけるのでその部分を削除したためです。

--- Makefile.org        2007-09-17 05:14:04.498730431 +0900
+++ Makefile    2007-09-17 05:14:15.582863520 +0900
@@ -62,12 +62,6 @@
 RM =           rm -f
 DGDIR =                ../src/
 #endif #############
-#ifdef NONC99 #####################################################
-CCINX =                .cc
-CCINOUT =      $*$(CCINX)
-MKCPP =                ../mkcpp $*.c $*$(CCINX)
-MKMKCPP =      ../mkcpp
-#endif #############

これで/usr/local/binにenMimeとdeMimeがインストールされました。

後はmaildropから呼び出すだけ

後は配送時にmaildrop経由でフィルタをかけることにします。確かenMime/deMimeはむやみにかけると危なかったような気がするので、あくまで必要なときだけフィルタします。ついでに変換したことがわかるようにX-Maildrop: base64 encodedというヘッダがつくようにしました。

if (/^Content-Type:.*text/:h && /^Content-Transfer-Encoding:.*base64/:h )
{
    xfilter "/usr/local/bin/reformail -I'X-Maildrop: base64 encoded'"
    xfilter "/usr/local/bin/deMime"
    xfilter "/usr/local/bin/enMime"
}

これでうまくフィルタできるようになってくれるといいんですけど。

このエントリは役に立ちましたか?
こんな記事もあります 「enMime mimekit CCINX
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→http://blog.cles.jp/item/2195
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン

Web Services by Yahoo! JAPANPowered by NP_SpamBayesJP
★下記に2つの英単語をスペースで区切って入力してください
::
Home > 本文がBase64エンコードされたspamへの対策