Max Kostikov

Публичные чёрные и белые списки являются давно и широко используемой технологией в борьбе с рассылкой несанкционированной электронной почты или спамом. Наиболее распространённым вариантом таких списков являются так называемые DNSBL (они же RBL), когда доступ к информации предоставляется посредством особым способом оформленного DNS-запроса и ответа, на основании которого можно произвести оценку относится ли данный узел сети Интернет к добросовестным или, соответственно, наоборот отправителям электронной почты. Также к своего рода чёрным спискам, которые, в отличие от DNSBL, не используют систему DNS для доступа к данным, автор относит и службы оценки сообщений на основе контрольных сумм. Среди них наиболее известны Rhyolite DCC, Vipul's Razor и Pyzor. Неплохим подспорьем в оценке эффективности того или иного публичного списка может служить рейтинг Blacklist Monitor от немецкой компании Intra2net.

Max Kostikov

Вернуться к теме обучения антиспам-фильтров в Dovecot, которая ранее уже затрагивалась в одной из статей на этом сайте, меня заставило недавнее сообщение от всё помнящего "Charlie Root" прекращении поддержки широко используемого для этих нужд расширения Antispam plugin.

To: root@my.server
Subject: my.server weekly security run output
Message-Id: <E1dObLP-000MHX-25@my.server>
From: Charlie Root <root@my.server>
Date: Sat, 24 Jun 2017 05:02:43 +0200

Checking for packages with security vulnerabilities:
dovecot2-antispam-plugin-20130429_29: Tag: expiration_date Value: 2017-07-31
dovecot2-antispam-plugin-20130429_29: Tag: deprecated Value: Use pigeonhole instead. See https://wiki2.dovecot.org/HowTo/AntispamWithSieve

-- End of security output --
Max Kostikov

В предыдущей статье "Подсистема оценки репутации антиспам пакета Spamassassin", помимо отражённых в заголовке, были затронуты вопросы того, как антиспам пакет Spamassassin накапливает и хранит данные об отправителях сообщений.

Если внимательно посмотреть на набор хранимых данных, то становится очевидным, что их можно применить и при конфигурировании начальных стадий процесса приёма сообщений SMTP-сервера. Учёт данных о репутации, к примеру, IP-адреса можно использовать для ограничения частоты рассылки спама с данного адреса. Это позволит, как уменьшить объёмы нежелательной почты, так и существенно сэкономить ресурсы почтового сервера. Кроме того, в данном случае будет отсутствовать необходимость в отдельной реализации специального механизма чёрных список вместе с сопутствующим ему программным кодом и базами данных.

Итак, рассмотрим пример использования данного подхода на базе использования его при конфигурировании Exim.

Подсистема оценки репутации антиспам пакета Spamassassin

Spamassassin's anit-spam software reputatin scoring subsystem

Max Kostikov

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

Имея в своём составе множество модулей, которые оценивают входящие сообщения множеством различных способов, среди которых имеется и подсистема оценки репутации отправителя на основании исторических данных, которые он получил в ходе предыдущих проверок Spamassassin. Это позволяет более точно ранжировать корреспонденцию по критериям отнесения к спам / не спам сглаживая влияние случайных факторов на общую оценку.

Spamassassin включает в себя два модуля для оценки репутации - старый используемый по умолчанию в стандартной конфигурации AWL и новый TxRep.

Max Kostikov

В ходе попытки разобраться с одной из проблем коллеги всплыл интересный момент связанный с работой модуля проверки DKIM в пакете защиты от спама Spamassassin.

В расшифровке начисления Spamassassin баллов входящему письму была замечена строка T_DKIM_INVALID DKIM Signature header exists but is not valid. Несмотря на то, что DKIM подпись у письма была и была корректной, о чём можно было сделать вывод, например, из лога Exim.

Max Kostikov

В этой небольшой заметке хотелось бы уделить внимание особенностям вызова антиспам системы Spamassassin для обработки входящей корреспонденции и взаимосвязанного с этим процесса обучения bayes-фильтров, которым, на мой взгляд, уделено недостаточное внимание в многочисленных how-to посвещённых этому замечательному программному комплексу.

Начнём, пожалуй с главной особенности процесса использования Spamassassin, а именно возможности учитывать при оценке входящей почты на её принадлежность (или наоборот) к спаму посредством вышеупомянутых статистических bayes-фильтров. Их формирование может происходить как в ручном режиме посредством т.н. "обучения" системы путём передачи на вход письма, которое вами классифицируется как очевидный спам, так и в автоматическом режиме на основании критериев настройки автообучения.

Max Kostikov

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

Одним из наиболее популярных и мощных инструментов реализующих данный комплексный подход является пакет Spamassassin. Однако, Spamassassin обладает не только возможностями по борьбе со спамом внутри системы, но и реализует некоторые возможности по отправке отчётов о вновь обнаруженном спаме на обслуживаемой им системе во внешние антиспам-службы на базе техник учёта контрольных сумм (checksum-based filtering) и чёрных листов хостов (DNSBL). Это позволяет иметь более точные данные по распространению того или иного вида спам-сообщений и более адекватно представлять данные по ним всем подписчикам по всему миру.

Max Kostikov

Dovecot является одним из самых популярных серверов IMAP4/POP3 в силу своей надёжности, безопасности, производительности и богатому функционалу.

Разнообразие предоставляемых им средств ещё более раширяется при помощи набора подключаемых дополнений (plugins), к числу которых относится и Dovecot antispam plugin. Он позволяет автоматизировать процесс контентного обучения антиспам-систем встраивая его в простую операцию перемещения письма в или из папки СПАМ. Это решение позволяет сделать обучение прозрачным для всех почтовых клиентов поддреживающих протокол IMAP4 и не требует на их стороне никаких дополнительных настроек.

Традиционный метод работы Dovecot antispam plugin предполагает выполнение специального shell-скрипта вызывающего программный модуль обучения антиспам-системы непосредственно при действии пользователя связанного с помещением письма (или их набора) из или в папку СПАМ. Такой метод, помимо положительной строны в виде немедленной подстройки антиспам-системы, имеет и большой недостаток - в ряде клиентов, в частности в популярном веб-клиенте Roundcube, это приводит к заметным задержкам в работе системы, а иногда и невозможности завершения процесса обучения и, вследствие этого, даже и самого перемещения сообщений между папками при выборе некоторого количества писем за один приём.

Решением может быть использование механизма отсроченного обучения пакета помеченных как спам или не-спам писем по расписанию, реализацию которого я предлагаю вашему вниманию.