Spamassassin управляют для сравнения обратного канала и от полей

Недавно я заметил повторяющийся шаблон в некоторых сообщениях со спамом, которые я получаю. Обратный канал и от заголовков всегда имеет ту же структуру.

Позвольте мне объяснить с примером:

Return-path: <brian_chambers-USER=DOMAIN.COM@readyseas.com>
From: <brian_chambers@readyseas.com>
To: <USER@DOMAIN.COM>

В основном я хотел бы проверить, равняется ли подсистема пользователей Обратного тракта От подсистемы пользователей с добавлением К ("" измененный на "=") и тире перед К.

Я хотел использовать некоторый Постфикс header_checks и отклонение USER=DOMAIN.COM@ шаблон, но большинство законных новостных рассылок, которые я получаю, содержит это также в их обратном канале (кроме прежде существует намного более сложная строка, которая никогда не соответствует полю From).

Кто-либо создал такое правило прежде и хочет совместно использовать?

Спасибо!

3
задан 2 July 2015 в 04:50
1 ответ

SpamAssassin не позволяет писать код или присваивать переменные... в своих правилах. Для того, чтобы делать то, что вы хотите, вам лучше всего подойдет пользовательский плагин (который даст вам полный доступ к perl). Тем не менее, технически вы можете делать то, что вы просите в синтаксисе написания правил SpamAssassin, используя тип заголовков ALL (который рассматривает все заголовки одновременно, что-то вроде правил rawbody):

header RPATH_EMBEDS_TO_ADDR  ALL =~ /\bReturn-Path:[^\r\n]{0,99}-([\w.])=([\w.-]{1,99}\.[a-z]{2,8})\@(?:[^\r\n]{0,99}[\r\n]{1,9}){1,30}To:[^\r\n]{0,99}<\1@\2>/ism

Вышеприведенное правило дорогое , и было бы еще дороже, если бы вы допустили тире в имени пользователя, так как оно должно было бы выполнять итерацию на всех возможных длинах ([\w. - ]) для имени пользователя. Это дорого не только потому, что требует много обратного просмотра, но и потому, что требует изучения очень длинных строк. Также возможно, что заголовок Return-Path - это после заголовка To, что означает, что вам понадобится второе правило для второго регекса, чтобы обработать этот случай.

Для этой техники лучше написать пользовательский плагин SpamAssassin.

Однако, я думаю, что вы быстро поймете, что все это нацелено на определенные типы массовой почты, многие из которых являются законными; Return-Заголовок пути используется в качестве адреса возврата , и многие списки рассылки кодируют в него получателя, чтобы измерить его доставляемость и очистить свои списки.

Если вы действительно хотите такого рода вещи, я подозреваю, что на самом деле не имеет значения, что точный адрес To присутствует в заголовке Return-Path. Вот более быстрое правило резко, которое должно иметь почти такую же эффективность:

header RPATH_EMBEDS_ADDR  Return-Path =~ /-[\w.]{1,99}=[\w.-]{1,99}\.[a-z]{2,8}\@/i

Другая большая заметка заключается в том, что всякий раз, когда сообщение перенаправляется (например, служба пересылки электронной почты), заголовок Return-Path переписывается. Это может ограничить утилиту обнаружения спама в данном правиле.

.
3
ответ дан 3 December 2019 в 06:31

Теги

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