- blogs:
- cles::blog

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

一部のspamメールをthunderbirdのspamフィルタがちゃんと認識してくれないので理由を探ってみたら本文がbase64エンコードされていたというオチでした。base64のデコード機能を持たないベイジアンフィルタへのささやかな対抗策なのでしょうね。まったく小賢しいことです。
ヘッダはこんな感じになっていました。
通常のメーラーからはこんな不届きなメールがくることは無いはずなので、このヘッダをみつけたら無条件でゴミ箱行きでもいいんですが、中身を学習用のデータとして使いたいので、とりあえずこれを何とかデコードしたい。
何かいいものはないかといろいろ探してみたら、昔壊れたmimeの修正に使っていたdelegateに含まれているmimekitのenMime/deMimeがあったことを思い出したのでこれをまた引っ張り出してみることにしました。試しに手元にあったspamに対してdeMime < spammail.txt | enMimeとやってみるとうまく本文がデコードされていました。
† コンパイルに一苦労
なぜか最新版(9.7系)のmimekitはうまくコンパイルできなかったので、delegate8系の最新版でコンパイルすることにしました。
まぁ、mimekit自体はそんなにアップデートされているわけじゃないので問題ないでしょう。
コンパイル手順はこんな感じ
途中でMakefileを編集してますが、これはなぜか../mkcppを探しに行ってこけるのでその部分を削除したためです。
これで/usr/local/binにenMimeとdeMimeがインストールされました。
† 後はmaildropから呼び出すだけ
後は配送時にmaildrop経由でフィルタをかけることにします。確かenMime/deMimeはむやみにかけると危なかったような気がするので、あくまで必要なときだけフィルタします。ついでに変換したことがわかるようにX-Maildrop: base64 encodedというヘッダがつくようにしました。
これでうまくフィルタできるようになってくれるといいんですけど。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2195
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(111953)
3 . 年次の人間ドックへ(111461)
4 . 2023 年分の確定申告完了!(1つめ)(111051)
5 . 三菱鉛筆がラミーを買収(110942)