spamassassin

PYZOR_CHECKを無効にする

投稿日:2019年4月19日 更新日:

zipやrarファイルが添付されたメールを警戒して、ルールを作りました。

ところが、他にも危険なファイルがたくさんあります。

ダブルクリックで実行されるファイルの拡張子

.exe .com .bat .cmd .pif .scr .vbs .html .vbe .js .jse .wsf .wsh

アーカイブファイル

.lzh .cab

マクロウィルスが含まれている可能性のあるファイルの拡張子

.doc .xlx .mdb .ppt

これらの危険性のある拡張子も警戒するルールを下記のように設定してみました。

# ####### js file ######################################################## START #
mimeheader __JS_ATTACHED_CT Content-Type =~ /\.js|\.jse/i
mimeheader __JS_ATTACHED_CD Content-Disposition =~ /\.js|\.jse/i

meta     JS_ATTACHED_1     __JS_ATTACHED_CT || __JS_ATTACHED_CD
score    JS_ATTACHED_1     10.0
describe JS_ATTACHED_1     Attached js file
# ####### js file ######################################################## END   #

# ####### xls or xlsx file ############################################### START #
mimeheader __XLS_ATTACHED_CT Content-Type =~ /\.xls|\.xlsx/i
mimeheader __XLS_ATTACHED_CD Content-Disposition =~ /\.xls|\.xlsx/i

meta     XLS_ATTACHED_1     __XLS_ATTACHED_CT || __XLS_ATTACHED_CD
score    XLS_ATTACHED_1     3.5
describe XLS_ATTACHED_1     Attached xls or xlsx file
# ####### xls or xlsx file ############################################### END   #

# ####### zip or rar archive ############################################# START #
mimeheader __ZIP_ATTACHED_CT Content-Type =~ /\.zip|\.rar|\.lzh|\.cab/i
mimeheader __ZIP_ATTACHED_CD Content-Disposition =~ /\.zip|\.rar|\.lzh|\.cab/i

meta     ZIP_ATTACHED_1     __ZIP_ATTACHED_CT || __ZIP_ATTACHED_CD
score    ZIP_ATTACHED_1     3.5
describe ZIP_ATTACHED_1     Attached zip or rar files
# ####### zip or rar archive ############################################# END   #

# ####### vbe file ######################################################## START #
mimeheader __VBE_ATTACHED_CT Content-Type =~ /\.COM|\.BAT|\.CMD|\.PIF|\.SCR|\.VBS|\.HTML|\.VBE|\.WSF|\.WSH/i
mimeheader __VBE_ATTACHED_CD Content-Disposition =~ /\.COM|\.BAT|\.CMD|\.PIF|\.SCR|\.VBS|\.HTML|\.VBE|\.WSF|\.WSH/i

meta     VBE_ATTACHED_1     __VBE_ATTACHED_CT || __VBE_ATTACHED_CD
score    VBE_ATTACHED_1     3.0
describe VBE_ATTACHED_1     Attached vbe file
# ####### vbe file ######################################################## END   #

# ####### doc or docx file ############################################### START #
mimeheader __DOC_ATTACHED_CT Content-Type =~ /\.DOC|\.DOCX|\.MDB|\.PPT/i
mimeheader __DOC_ATTACHED_CD Content-Disposition =~ /\.DOC|\.DOCX|\.MDB|\.PPT/i

meta     DOC_ATTACHED_1     __DOC_ATTACHED_CT || __DOC_ATTACHED_CD
score    DOC_ATTACHED_1     2.5
describe DOC_ATTACHED_1     Attached doc or docx file
# ####### doc or docx file ############################################### END   #

ナマのjsファイルを添付して確認してみたところ、無事にスパム判定されました。

ところが、重要な資料が添付されたメールがスパムとして誤判定されてしまいました。

添付されていたのはマイクロソフトWORDのファイルファイルです。拡張子は.docxでした。

警戒のため.docxもルールに追加したのですが、スパム判定されるほど高いスコアを設定していません。

設定した.docxへのスコアは2.5です。

メールヘッダのレポートは次のとおりです。

Content analysis details:   (6.8 points, 5.0 required)

 pts rule name              description
---- ---------------------- --------------------------------------------------
-0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 HTML_MESSAGE           BODY: HTML included in message
 1.2 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in
                            bl.spamcop.net
            [Blocked - see <https://www.spamcop.net/bl.shtml?nnn.nnn.nnn.nnn>]
 2.0 PYZOR_CHECK            Listed in Pyzor
                            (https://pyzor.readthedocs.io/en/latest/)
 2.5 DOC_ATTACHED_1         Attached doc or docx file
 1.0 FSL_BULK_SIG           Bulk signature with no Unsubscribe

スコア2.5が加算されているのがわかります。

この送信元メールサーバーのipアドレスnnn.nnn.nnn.nnnはDNSブラックリストに登録されているようです。
それでスコア1.2が加算されています。

FSL_BULK_SIGでスコア1.0を加算されているようですが、これは何でしょう?

ルールのありかを調べてみますと、PYZOR_CHECKが関係しているようです。

grep -r FSL_BULK_SIG /var/lib/spamassassin/3.004002/
省略/72_scores.cf:score FSL_BULK_SIG                          0.001 1.042 0.001 1.042
省略/72_active.cf:##{ FSL_BULK_SIG
省略/72_active.cf:meta     FSL_BULK_SIG          (DCC_CHECK || RAZOR2_CHECK || PYZOR_CHECK) && !__FSL_HAS_LIST_UNSUB && !__UNSUB_LINK && !__RCVD_IN_DNSWL && !__JM_REACTOR_DATE && !__RCD_RDNS_SMTP_MESSY
省略/72_active.cf:describe FSL_BULK_SIG          Bulk signature with no Unsubscribe
省略/72_active.cf:#score    FSL_BULK_SIG          3.000	# limit
省略/72_active.cf:tflags   FSL_BULK_SIG          net publish
省略/72_active.cf:##} FSL_BULK_SIG

PYZOR_CHECKもスコア2.0です。

PYZOR_CHECKとFSL_BULK_SIGで予期せずスコア3.0を加算させています。

PYZOR_CHECKとは何でしょうか?

マニュアルがありました。
https://pyzor.readthedocs.io/en/latest/index.html

スパムメールの情報を共有するシステムのようです。

スパムメールを受信した人が、報告
(そのメールをダイジェストして、サーバーにアップロード)

メールを受信するたびに、
受信するメールと同じダイジェストがサーバーにあるか確認。

あったらスコアをつける。

このようなスキームのようです。

スパム報告とスパム問い合わせは標準でpublic.pyzor.orgサーバーに対して行います。
また、ローカルにPYZORサーバーを立てることもできるようです。

メールヘッダのスパムレポートに

Listed in Pyzor

とあるので、対象のメールファイルで確認してみました。

結果は次の通りです。

pyzor check < /var/spool/sa-exim/SApermreject/new/spamdatta@taisyounomeiru.co.jp;echo $?
public.pyzor.org:24441	(200, 'OK')	0	0
1

マニュアルによると

Checks the message read from stdin and prints the number of times it has been reported and the number of time it has been whitelisted. If multiple servers are listed in the configuration file each server is checked:
The exit code will be:
1 if the report count is 0 or the whitelist count is > 0
0 if the report count is > 0 and the whitelist count is 0
Note that you can configure this behaviour by changing the report/whitelist thresholds from the configuration file or the command-line options. See client configuration.
stdinから読み込まれたメッセージをチェックし、報告された回数とホワイトリストに登録された回数を表示します。構成ファイルに複数のサーバーがリストされている場合は、各サーバーが検査されます。
終了コードは次のようになります。
レポート数が0、またはホワイトリスト数が> 0の場合は1
レポート数が> 0 かつホワイトリスト数が0の場合は0
設定ファイルまたはコマンドラインオプションからレポート/ホワイトリストのしきい値を変更することで、この動作を設定できます。クライアント構成を参照してください。

実際の結果は
報告された回数は0回で
ホワイトリストに登録された回数が0回
だから終了ステータスが1

マニュアル通りですね。

これがどうして
Listed in Pyzor
になるのかいまのところわかりません。

マニュアルにある、”レポート/ホワイトリストのしきい値”をまだ設定していません。それでPyzorが迷っているのかもしれません。

SPAMASSASSIN_JPの松田 陽一さんがメンテナンスされているspamassassin_user_prefs_for_japaneseの中に、

# Pyzor sometimes fails to recognize ham as spam.
# Pyzorはたまにハムとスパムを間違える。

とあるんですね。

とりあえず無効にしておきます。

どうやって無効にするか?

PYZOR_CHECKのスコアを0で上書きして無効にする。

score PYZOR_CHECK                0

しかし、正体が判明するまでPYZORのプラグイン自体を無効にするほうが無難です。

PYZOR_CHECKのプラグインはどこに設定があるのか探してみます。

sudo sh -c "find /etc/spamassassin/ -type f -print | xargs grep -i 'PYZOR'"
/etc/spamassassin/v310.pre:# Pyzor - perform Pyzor message checks.
/etc/spamassassin/v310.pre:loadplugin Mail::SpamAssassin::Plugin::Pyzor

/etc/spamassassin/v310.preの中にありました。

# Pyzor - perform Pyzor message checks.
#
loadplugin Mail::SpamAssassin::Plugin::Pyzor

これをコメント化します。

#loadplugin Mail::SpamAssassin::Plugin::Pyzor

念の為
/var/lib/spamassassin/3.004002/
のなかも探してみましょう。

sudo sh -c "find /var/lib/spamassassin/3.004002/ -type f -print | xargs grep -i 'PYZOR'"
ifplugin Mail::SpamAssassin::Plugin::Pyzor

”プラグインがあれば”という設定しかありませんでした。

これで様子を見てみましょう。

このサイトについて


検索

このサイトについて


検索

-spamassassin

執筆者:


  1. […] SpamAssassinのルールは前回設定したもので、対象部分を抜き出すと、次のようになっています。 […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

BODY_SINGLE_WORD with SpamAssassin

地方バス会社のお知らせメールがスパム判定されてしまいました。 SpamAssassinの誤判定を解消する方法を考えてみます。 うちでは5.0以上でスパムなので、スパム扱いで、件名に ***** SPA …

Trojanメール対策

 鉄壁の防御をしているつもりでも、やっぱりウイルスメールはやってきます。 送られてくるウイルスはいつも最新です。 商用のウイルスソフトでもすべてトラップできないでしょう。 ましてフリーのウイルスソフト …

SpamAssassinのルールをひとまとめにする

またも誤判定が発生しました。 メールヘッダのレポートは、次のとおりです。 Content analysis details: (6.0 points, 5.0 required) pts rule n …

詐欺メールをブロックする(apple)

Appleの詐欺メイル対策レシピです。 まずは、Apple IDを考えてみます。 正規のメールヘッダを見てみます(nkf出力)。 Received: from mdn-txn-msbadger0901 …

alias転送されるメールをブロックする

aliasで転送されてくる、 スパムや犯罪被害につながるメールをブロックするレシピです。 以前役員を努めていた団体宛のメールが転送されてくるのです。 現在、その転送は必要なくなったのですが、設定変更が …