Не работает проверка тела и заголовка регулярного выражения Spamassasin

Мы пытаемся пометить фишинговые письма с помощью простого правила в Spamassasin как спам. Но, к сожалению, мы не можем получить из него рабочую проверку.

В основном мы пытаемся добиться того, чтобы если отправитель почты был не из нашего домена @ example.org, но пишет с поддельным отображаемым именем .

Вот пример:

From: "Firstname Lastname <firstname.lastname@example.org>" <fraud@badcompany.com>

Итак, мы разработали следующее правило 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:fraud@badcompany.com
250 2.1.0 Ok
RCPT TO: CEO@example.org
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
TO: CEO@example.org
FROM: "Firstname Lastname" firstname.lastname@example.org
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.

Предлагаемое решение сработало!

3
задан 3 October 2017 в 15:08
1 ответ

Ваши исходные правила:

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
  • Те действительно дороги. Старайтесь не оглядываться по сторонам, если вам не нужно
  • Я рекомендую называть свои правила в честь себя, чтобы вы могли помнить, что они ваши
  • Вы действительно хотите, чтобы эти двойные кавычки в регулярном выражении тела? Это может быть проблемой
  • Это действительно должно быть регулярное выражение тела? Вы пытаетесь сопоставить встроенные метаданные переадресации?
  • Оценка 100 опасно высока, учитывая, что ваш порог должен быть между 5-10

Как насчет:

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 ). Я также добавил множество маркеров границы слова ( \ b ), чтобы вы не поймали "myexample.org" или "example.org.in" или другие странности. Безграничные диапазоны очень дороги, поэтому я сократил их до 0-99 символов и позаботился о том, чтобы вы не заглядывали слишком далеко вперед, не позволяя им сопоставлять двойные кавычки. Я также удалил ваш $ , поскольку SpamAssassin уничтожает все пробелы (окончания строк могут быть не там, где вы думаете; гораздо лучше использовать \ b и аналогичные).

Я считаю оценка 3 - очень высокая. Что-нибудь еще, и вы можете рассмотреть возможности внесения в черный список SA.

Действительно, вы должны убедиться, что вы правильно установили и настроили плагины SpamAssassin для DKIM , SPF и DMARC (которые являются технологиями защиты от спуфинга, реализующими многое из того, что вы пытаетесь сделать). ваши DNSBL и URI DNSBL настроены правильно и вы используете (и тренируете!) Байесовский . Сторонние нечеткие поисковые запросы, такие как Razor и Pyzor , также могут помочь обнаружить пропущенный спам.

Я говорю это, потому что это правило трудоемко, дорого и не масштабируется ( вам необходимо создать по одному для каждого домена), но в основном потому, что он не выглядит эффективным (целевая «подпись» не является спамом, и вы получите ложные срабатывания).

4
ответ дан 3 December 2019 в 06:01

Теги

Похожие вопросы