Spamassasinでは、フィッシングメールを簡単なルールでスパムとしてマークしようとしています。しかし、残念ながら、それを実際にチェックすることはできません。
基本的に私たちが達成しようとしているのは、メールの送信者がドメイン@ example.orgのnotであるが、偽の表示名で書き込んでいる場合です。
次に例を示します。
From: "Firstname Lastname <[email protected]>" <[email protected]>
そこで、次のSAルールは機能しませんでした)を作成しました
header __FRAUD_HEADER From =~ /.*@(?!example\.org)/i
body __FRAUD_BODY /".*\@example\.org.*"(?!.*\@example\.org.*$)/i
meta COMPANY_FRAUD (__FRAUD_HEADER && __KFRAUD_BODY)
describe COMPANY_FRAUD Fake Sender - Phishing Attempt
score COMPANY_FRAUD 100
これがうまくいかなかった理由についてのアイデアはありますか?
regex101.comは、正規表現が正しいことを示しています。 Spamassasinもエラーについて不平を言っていません。
編集:私は彼らが送信者を偽造した方法が間違っていたと思います。これは、送信者アドレスを偽造/偽装したと私が思う方法の抜粋です。
# telnet mail.example.org 25
Trying 10.20.30.40...
Connected to mail.example.org.
Escape character is '^]'.
220 mail.example.org ESMTP
EHLO a.mailserver.com
250-mail.example.org
250-PIPELINING
250-SIZE
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
MAIL FROM:[email protected]
250 2.1.0 Ok
RCPT TO: [email protected]
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
TO: [email protected]
FROM: "Firstname Lastname" [email protected]
SUBJECT: Something
Spam/Phishing message text goes here
.
250 2.0.0 Ok: queued as 123456789
quit
221 2.0.0 Bye
Connection closed by foreign Host.
提案されたソリューションは機能しました!
あなたの元のルール:
header __FRAUD_HEADER From =~ /.*@(?!example\.org)/i
body __FRAUD_BODY /".*\@example\.org.*"(?!.*\@example\.org.*$)/i
meta COMPANY_FRAUD (__FRAUD_HEADER && __KFRAUD_BODY)
describe COMPANY_FRAUD Fake Sender - Phishing Attempt
score COMPANY_FRAUD 100
いくつかの批評:
__KFRAUD_BODY
ではなく__FRAUD_BODY
に依存していますどうですか:
header __DW_NONFRAUD_HEADER From:addr =~ /\bexample\.org$/i
body __DW_FRAUD_BODY /"[^"]{0,99}\@example\.org\b[^"]{0,99}"(?!.{0,99}\@example\.org\b)/i
meta DW_COMPANY_FRAUD (!__DW_NONFRAUD_HEADER && __DW_FRAUD_BODY)
describe DW_COMPANY_FRAUD Fake Sender - Phishing Attempt
score DW_COMPANY_FRAUD 3
最初のチェックを否定し、Fromヘッダーのアドレスのみに制限しました(meta
ルールの改訂を参照)。また、「myexample.org」や「example.org.in」などの奇妙なものを見つけないように、大量の単語境界(\b
)マーカーを配置しました。無制限の範囲は非常に高価であるため、0〜99文字に切り詰め、二重引用符と一致しないようにすることで、先を見過ぎないようにしました。 SpamAssassinはすべての空白を折りたたむので、$
も削除しました(行末は思った場所にない場合があります。\b
などを使用することをお勧めします)。
スコア3は非常に高いと思います。それ以外の場合は、SAのブラックリスト機能を検討することをお勧めします。
実際には、SpamAssassinのプラグインが [〜#〜] dkim [〜#〜] 、 [〜#〜] spf [〜#〜] 用に正しくインストールおよび構成されていることを確認する必要があります=、および [〜#〜] dmarc [〜#〜] (これは、実行しようとしていることの多くを実装するスプーフィング防止テクノロジです)。 [〜#〜] dnsbl [〜#〜] sおよび RI DNSBL sが適切に構成され、使用している(およびトレーニングしている!) ベイズ 。 Razor や Pyzor のようなサードパーティのファジールックアップは、見逃したスパムをキャッチするのにも役立ちます。
このルールは面倒で費用がかかり、拡張性がないため(ドメインごとに作成する必要があります)、ほとんどの場合、効果的ではないように見えるため(ターゲットの「署名」はそれほどスパムではなく、あなたは誤検知が発生します)。