Спам

Спам — это анонимные массовые рассылки электронной почты, которые чаще всего используются без согласия клиента для рекламы различных товаров и услуг, распространения вредоносных программ и т. д.

SpamAssassin — эффективное средство для фильтрации спама, основанное на взаимодействии ключевых компонентов — оценочного сервиса, транспортного агента и базы шаблонов писем.

SpamAssassin переводится на русский как убийца спама.

SpamAssassin использует Байесовскую фильтрацию, обработку DNSBL, Sender Policy Framework, DomainKeys, DKIM, Razor и другие методы распознавания спама. Является проектом верхнего уровня в Apache Software Foundation.

Режимы работы

SpamAssassin написан на языке Perl (модуль Mail:SpamAssassin в CPAN). Обычно он используется для фильтрации входящей почты одному или нескольким пользователям. Он может быть запущен как отдельное приложение, как часть другой программы, либо как клиент (spamc), который взаимодействует с демоном (spamd). Последний способ имеет более высокое быстродействие, но в некоторых условиях может создать угрозу для безопасности.

Использование

SpamAssassin поставляется с большим набором правил, которые определяют, какие письма являются спамом, а какие нет. Большинство правил основано на регулярных выражениях, которые сопоставляются телу или заголовку сообщения, но SpamAssassin также использует и другие методики. В документации SpamAssassin эти правила называются «tests».

Каждый тест имеет некоторую «стоимость». Если сообщение успешно проходит тест, эта «стоимость» добавляется к общему баллу. Стоимость может быть положительной или отрицательной, положительные значения называются «spam», отрицательные «ham». Сообщение проходит через все тесты, подсчитывается общий балл. Чем выше балл, тем больше вероятность, что сообщение является спамом.

У SpamAssassin’а есть настраиваемый порог, при превышении которого письмо будет классифицировано как спам. Обычно порог таков, что письмо должно подойти по нескольким критериям; срабатывание только одного теста недостаточно для превышения порога.

Возможности

SpamAssassin для обнаружения спама использует несколько методов:

  1. Проверка заголовков письма на правильность и соответствие стандартам Интернета
  2. Проверка заголовков и тела письма на наличие определённых фраз и строк, часто встречающихся в спам-письмах. Проверка может выполняться на нескольких языках.
  3. Заголовок и тело письма могут проверяться по онлайн-базам, содержащим контрольные суммы спам-сообщений
  4. IP-адрес отправителя письма может проверяться по онлайн-спискам с адресами известных спаммеров или подозрительных почтовых серверов
  5. Определённые адреса, хосты или домены могут быть занесены в чёрный или белый список. Белый список может быть создан автоматически, основываясь на истории отправленных сообщений
  6. SpamAssassin может быть обучен на основе существующей базы спам-сообщений и неспам-сообщений.
  7. IP-адрес отправителя может быть проверен на то имеет ли он разрешение на отправку писем из этого домена. Проверка выполняется с помощью протокола Sender Policy Framework SPF. (возможность появилась начиная с SpamAssassin 3.0)
  8. Снижение вероятности классификации письма как спам, полученного от отправителя, который может потратить дополнительную вычислительную мощность при отправке — с помощью системы HashCash. Спаммеры не в состоянии выполнять необходимые вычисления, поскольку они рассылают огромнейшее количество писем одновременно. (возможность появилась начиная с SpamAssassin 3.0)

Уроки по теме: