web-dev-qa-db-ja.com

特定のMXIPにフラグを立てるSpamassassinルール

同じ範囲のIPに関連するスパムの洪水に気づきました。

すべてのスパムメールには、異なるHTMLテキスト(英語ですが意味がありません)といくつかの埋め込み画像(私がブロックします)がありますが、実際には明らかに機械で生成され、内部フォーマットは非常に似ています。ところで、すべてのリンクと外部の写真は私のメーラーによってブロックされています。

私が気付いたのは、「from」アドレスドメインのMXはすべて狭い範囲のIPに存在し、それらはすべて同じVPSサービス「NodeOutletIndiaLLP」上にあるということです。そのため、誰かがこのサービスを使用してスパムボットのファームをホストしています。

次のようなspamassassinルールを生成したいと思います。

  • 'from'ドメインを抽出します
  • そのドメインのMXを検索する
  • そのMXのIPを検索します
  • 36.255.24.x/21のように見えますか
  • ハイスコ​​アを付けます。例: +2

Linuxで実行されているspampdプロキシとspamassassinを使用しています。

明確にするために、ここに例があります:スパムメールは[email protected]からです

ソースメールはSPF、DMARCを通過し、DKIMで署名されています(すべて合法です)が、スパムです。それらのチェックだけで、それはハムと同様に得点します。

それについてスパムなのはコンテンツだけです。ほとんどの場合、HTMLとドメイン外のリンクが埋め込まれた画像と小さなテキストであり、これらの機能だけがスパムスコアを持ちますが、大きなものではありません。これらの電子メールは、スパム対策を回避するように明確に設計されています。

私はstufftobuy.comでMXRR DNSルックアップを実行し、mail.stufftobuy.comを取得し、mail.stufftobuy.comでA RR DNSルックアップを実行すると、ドメインMXからのすべてのアドレスが激怒する1つからIPV4が返されます。レコードが指す。

さらに分析を行う必要がありますが、インドとトルコの2つのサーバーファームからのもののようです。

1000通の電子メールのうち、1つのIPV4は2回しか表示されない場合があります。

実際のドメイン名は1回しか使用できないため、stufftobuy.comをスコアリングまたはブロックすることはできません。次のメッセージは、makecatvids.comなどからのものです。

同様に、私はpostfixで何千ものIPV4を盲目的にブロックすることはできません。それは、ISPが顧客の1人ではなく悪いと仮定するからです。

更新:askdnsプラグインが存在することはわかりますが、できますあるルールが別のルールにどのようにフィードできるかわかりません。単一のDNSルックアップでは十分ではありません。

1
Jason Morgan

はるかに重要:送信者IPレピュテーションを使用していることを確認してください。 Spamhaus Zen および SpamCop Blocking List 経由。これらはデフォルトでSpamAssassinにすでに含まれています(_RCVD_IN_PBL_および_RCVD_IN_BL_SPAMCOP_NET_を参照)。 Mail :: SpamAssassin :: Plugin :: DNSEval が正しくロードされていることと、 'ネットワークテストを有効にして実行しています(これはAskDNSにも必要です)。

Mail :: SpamAssassin :: Plugin :: AskDNS これはできません。探していることを正確に実行するには、独自のプラグインを作成する必要があります。

ただし、おそらくこのAskDNSの使用により、次のことが可能になります。

_ifplugin Mail::SpamAssassin::Plugin::AskDNS

askdns   JM_SPF_HAS_36_255 _AUTHORDOMAIN_ TXT /\sip4:36\.255\.(?:2[0-4]|3[01])\./
describe JM_SPF_HAS_36_255 From header's SPF record blesses an IP in 36.255.24.0/21
score    JM_SPF_HAS_36_255 2.0

endif
_

これにより、ヘッダーFromドメインの Sender Policy Framework (SPF)レコードがチェックされます。警告:

  • SPFは、ドメインに代わってメールを送信することを許可されているホストのリストです(以下を参照)
  • SPFは、SMTP接続のHELO&_mail from_コマンド、notヘッダーのドメインをチェックします
  • SPFレコードにはドメインを含めることができ、他のレコードを含めることができますが、このルールはIPのみを対象としています。
    例:_v=spf1 ip4:198.51.100.21 mx a include:example.com ~all_に問題があります:
    • ここに明示的にリストされているIPは1つだけであり、一致しません
    • MXレコードは一致する可能性がありますが、mxとしてリストされているため、IPに解決できません。
    • Aレコードの同上
    • 含めるための同上。おそらく、このIPをリストする可能性のあるaまたは別の_include:…_があります

その最初の箇条書きについて:MXレコードは受信メールを参照しているので、SPFの許可された送信ホストのリストの方が関連性が高いと思います一般的なケースでは、私はあなたの正確な意図を話すことはできませんが。


更新:これらのスパムは [〜#〜] dkim [〜#〜] -署名されているとおっしゃいました。それらがすべて同じ署名ドメインを共有していると仮定して、それに基づいてブロックするだけです(ネットワークルックアップは必要ありません!):

_header   JM_DKIM_EVIL_EXAMPLE_COM  DKIM-Signature =~ /\sd=evil\.example\.com;/
describe JM_DKIM_EVIL_EXAMPLE_COM  Message has DKIM signed by evil.example.com
score    JM_DKIM_EVIL_EXAMPLE_COM  2.0
_

見つけた署名ドメイン(_d=…_)ごとにこれらのルールの1つが必要になりますが、これは少数であると思います。
または、正規表現の交替を使用することもできます。例えば:
/\sd=(?:(?:evil|spammer)\.example\.com|bad\.example\.info);/は_d=evil.example.com;_、_d=spammer.example.com;_、および_d=bad.example.info;_をブロックします。

1
Adam Katz