BLOGTIMES
2007/09/17

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

  antispam 
このエントリーをはてなブックマークに追加

一部の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" }

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


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

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

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

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