SPAM-фильтр

|

Правила работы SPAM-фильтра

Настройки для каждого почтового ящика или алиаса добавляются в заголовок письма в виде X-Account-Info. По ним пользователь всегда может узнать текущие настройки для этого ящика или алиаса.
Процесс фильтрации почты разбит на два этапа. Каждый этап выполняется независимо друг от друга и работает на разных уровнях.

  1. Этап фильтрации на стадии приема письма. Имеет два режима.
    • Режим Lite (этот режим устанавливается по умолчанию для новых почтовых ящиков).
      • Проверяется приветсвие в почтовой сессии (HELO). Если в приведствии сервер, отправляющий нам письмо, представился ip адресом нашего сервера или локальным адресом (localhost), то почтовая сессия закрывается. Так делают только спамерские программы.
    • Режим Hard.
      • Делаются все проверки, которые описаны в режиме Lite.
      • Если хост отправляющего сервера состоит только из ip адреса (или только цифр), содержит в своем имени ip адрес или имеет имя характерное для динамических ip адресов (например, adsl, dialup, dynamic, ppp,...), то почтовая сессия будет закрыта. Ни один почтовый провайдер не держит почтовые сервера на таких хостах.
      • Проверяется, что e-mail, который указан в поле From - существует на том сервере, который указан в домене этого e-mail. Если это не подтверждается, то почтовая сессия закрывается.
      • Ip адрес почтового сервера, который отдает нам письмо, проверяется в RBL листах. Отобраны только качественные серверы с RBL листами (например, bl.spamcop.net, list.dsbl.org, relays.mail-abuse.org, relays.ordb.org, ...
    • Для всех проверок есть списки исключений (WhiteList). Если все же найдется настоящий почтовый сервер попавший под эти ограничения, по просьбе пользователья он будет внесен администратором в белый список.
  2. Этап анализа после приема письма. Этот этап анализирует каждое принятое письмо с помощью SpamAssassin (далее SA) и добавляет в заголовок письма отчет анализа, по которому можно с наибольшей долей вероятности сортировать письма как спам или не спам.
    • Проверка письма проводится на основании правил, которыми располагает SA. Например, ip с которого пришло письмо находится в черном списке, или текст содержит вероятный для спама набор слов, или письмо оформлено не по стандарту. Каждый критерий добавляет баллы, которые можно увидеть в заголовка письма (X-Spam-Score). Там же (в заголовке письма) в строке X-Spam-Report добавляется отчет о проверке письма, в котором видно сколько баллов за что добавлено.
    • Если Score достигло минимального порога (по умолчанию 5, этот параметр каждый пользователь может выбрать для себя самостоятельно), то почтовый сервер считает это письмо спамом. Такому письму добавляются заголовки вида:
      X-Spam-Status: Yes
      X-Spam-Flag: YES
      ,
      которые позволят вашему почтовому клиенту фильтровать спам почту самостоятельно на стороне клиента.

    • Так же опционально пользователь может включить режим добавления в тему письма фразы *SPAM*xxx*, где xxx - число баллов набранно при анализе (визуально удобно). Тема будем меняться в письмах набравших минимальный порог баллов (см. предыдущий пункт). Это может быть удобно для тех, кто пользуется Outlook Express, потому что других критериев для сортировки писем, этот почтовый клиент не предоставляет пользователю.
    • Если Score достиг максимального порога (по умолчанию 50, каждый пользователь может самостоятельно определить этот порог), сервер отвергнет письмо. Такое высокое значение может набрать только массовый спам.
    • Если пользователь создаст в своем ящике папку Junk, то спам письма будут помещаться в нее (на стороне сервера). Иначе вместе с другими письмами в Inbox.
      Обратите внимание, что для использования этой возможности необходимо пользоваться проколом IMAP, т.к. по протоколу POP3 вы принимаете всю почту игнорируя расположение писем в папках на сервере.

    • Для каждого пользователя ведется Auto White List (AWL). Принцип работы AWL заключается в следующем: для всех отправителей ведется база данных, в которой сохраняется число обработанных сообщений и набранный в сумме балл. При получении письма с адреса, фигурирующего в базе AWL, рассчитывается его "чистый" балл (без учета AWL), а окончательный балл проставляется как производное значение от рассчитанного "чистого" и взятого из базы исторического значения. Таким образом, система AWL учитывает "кредитную историю" отправителя, доверяя в большей степени тем, кто в прошлом вел себя хорошо.
    • SA может обучаться на реальных письмах. Каждый пользователь может обучить сервер, чтобы последний правильно распознавал, какое письмо является спамом, а какое нет. Для этого надо создать служебные папки с именами (через IMAP):
      • sa.ham (сначала создается папка sa, потом в ней ham, в нижнем регистре)
      • sa.spam

      В папку sa.spam пользователь помещает письма, которые являются спамом.
      В папку sa.ham те, которые спамом не являются.
      Почтовый сервер проверяет эти папки и забирает из них письма в свою базу, чтобы в дальнейшем более адекватно распознавать письма.
      Обратите внимание, что сервер удаляет письма из этих двух папок безвозвратно. Поэтому в папку ham лучше не перемещать, а копировать нужные вам письма.

      Есть еще один способ обучения. Письмо со спамом можно переслать на специальный ящик sa-spam@adsmedia.ru (или подобный ящик в вашем домене, если таковой имеется). Вся почта пришедшая на этот ящик отдается SA для обучения как спам. При пересылке в теме письма надо написать "SPAM" (большими буквами), в противном случае письмо будет удалено.
      Обратите внимание, что почту необходимо пересылать с полными заголовками.

      • Для MS Outlook пересылать спам как вложение (forward as attachment). Можно пересылать несколько писем в одном форварде.
      • Для The Bat! пересылать спам с помощью Alternative Forward.
      • Для OutLook Express переслать как вложение (forward as attachment).
    • В папке Junk ежесуточно удаляются письма старше 1 месяца.
      Папки sa.ham и sa.spam проверяются каждые 15 минут.

    • Как показывает практика, иногда ложно распознаются как спам различные рассылки. Происходит это из-за того, что письма для рассылок создаются без соответсвия почтовым стандартам. Это и попадает под механизм анализа SA. Для того, чтобы SA знал о вашей рассылке, перешлите одно письмо из рассылки администратору, он внесет данные о рассылки в белый список.
    • Статистика работы SA

Отдельно надо сказать о вирусах.
Письма содержащие вирусы блокируется всегда. Для проверки используется ClamAV с автоматическим обновлением антивирусных баз.
Письма содержащие файлы с расширениями scr, vbs, lnk, pif, reg приравниваются к вирусам.
Если действительно необходимо переслать вам вложение содержащее вирус, попросите запаковать его в архив с паролем, тогда антивирус не сможет его просканировать.

Рекомедации:

  • Q: Как самому выделить спам по разметке SA?
    A: В письма добавляется заголовок такого вида:
    X-Spam-Bar: +++++++
    Определите сколько "плюсов" для вас будет порогом для спама. Далее в своем почтовом клиенте создайте правило фильтрации по заголовку X-Spam-Bar. Укажите в правиле необходимое количество "плюсов". Получив письмо с бОльшим количеством "плюсов" почтовый клиент переместит письмо в нужную вам папку.
    К сожалению не все почтовые клиенты умеют сортировать почту по любому заголовку письма. Например, Outlook Express этого сделать не сможет. Но The Bat! или Mozilla Thunderbird справятся легко. Для Oulook Exspress используйте механизм добавления в тему фразы *SPAM*

Ссылки по теме: