Краткий обзор спам-фильтра DSPAM
Программное обеспечение
Статья была опубликована 1 февраля 2010 года в 00:00, а последний раз правилась 1 февраля 2010 года в 10:46.
Постоянная ссылка: http://www.nixp.ru/articles/54.html
Головной болью любого системного администратора рано или поздно может стать настройка почтовой системы и ее неотъемлемая часть — подсистема защиты от спама. Существует множество различных систем и подходов борьбы со спамом.
Примечание: Статья была впервые опубликована в электронном издании «Open Source» (выпуск №023 от 04.04.2008). Ее размещение на nixp.ru производится в соответствии с разрешением со стороны редакции и автора материала.
Предисловие
Головной болью любого системного администратора рано или поздно может стать настройка почтовой системы и ее неотъемлемая часть — подсистема защиты от спама. Существует множество различных систем и подходов борьбы со спамом. Некоторые из них опираются на технические особенности работы системы электронной почты (SPF, greylisting, RBL, валидация сервера на соответствие RFC). Однако компании, профессионально занимающиеся массовыми рассылками, достаточно легко могут решить подобные технические тонкости. Второй основной подход — анализ содержимого сообщения, подобный тому, как человек отделяет спам от нормальных писем. Задача анализа относится к области искусственного интеллекта, и ее решение отнюдь не так тривиально.
Устройство DSPAM
DSPAM представляет собой бесплатный и свободный (лицензия GNU GPL) фильтр, ключевой особенностью которого является использование широкого спектра средств анализа содержимого сообщений. Уже на основе этих данных фильтр определяет дальнейшие действия с полученной корреспонденцией — в зависимости от конфигурации DSPAM может помечать сообщения (добавлять к ним заголовки, в зависимости от которых проводится дальнейшая обработка вроде их распределения по пользовательским каталогам почты) или вообще не пропускать письма, содержащие спам. Работа с DSPAM осуществляется через консольный и Web-интерфейсы.
Для идентификации спама в DSPAM используются следующие методы (помимо различных математических моделей):
- идентификация с помощью цепочек лексем (так называя Concept Identification),
- первоначальное обучение (путем «прививания» пользователями фильтру спама и «нормальной» корреспонденции),
- применение принципов, подобных нейронным сетям (одни пользователи полагаются на то, как другие классифицируют свою почту),
- продвинутая техника идентификации скрытого смысла, заложенного в тексте сообщения,
- новый подход, получивший название Bayesian Noise Reduction (BNR) и призванный решить проблему так называемого шума Байеса, то есть отсечь из сообщения данные, которые не имеют значения.
Все это позволяет автору программы утверждать, что обычные пользователи DSPAM сообщают о достижении эффективности фильтрации спама порядка 99,5-99,95 процентов (а наивысший зафиксированный результат вообще составил 99,991% — 2 ошибки в 22786 сообщениях). Однако когда фильтр тестировался на TREC 2005, DSPAM в своей лучшей конфигурации значительно уступил другим решениям, а его показатели были далеки от заявленных (см. Wikipedia.org).
У DSPAM представлено четыре метода обучения:
- Train-Everything (TEFT) — на всех проходящих письмах (требует максимальных ресурсов);
- Train-on-Error (TOE) — в этом режиме фильтр обучается только на ошибках классификации, на которые ему указывает сам пользователь, например, перемещая «нормальное» письмо из каталога со спамом в специальную директорию или пересылая на специальный адрес (значительно меньшая нагрузка на ресурсы);
- Train-until-Mature (TUM) — смесь двух предыдущих вариантов, претендующая на статус «золотой середины» по соотношению эффективности обучения и затрачиваемых на это ресурсов: база лексем для идентификации спама пополняется пользователем и за счет наиболее часто встречающихся выражений;
- отсутствие обучения.
Также существует возможность «отучить» фильтр от неправильных действий пользователя. Он применяется к случаям, когда по вине человека какие-либо письма были ошибочно направлены на переобучение фильтра.
DSPAM не имеет централизованной системы управления списками доверенных адресов, поэтому первое время применение данного фильтра может носить негативный для пользователя характер из-за ошибочного определения важной корреспонденции. Но если же число «нормальных» входящих писем от адресанта превышает установленный настройками порог, то адресант автоматически попадает в доверенные списки.
Вспомогательные утилиты
В пакет с DSPAM входят дополнительные утилиты, помогающие в работе с этим фильтром:
- dspam_stats — отображает статистику по работе фильтра как для одного пользователя, так и для всех. В ней можно посмотреть число и процент принятых сообщений, правильно и неправильно отфильтрованных, «привитых» сообщений, а также правильность работы фильтра.
- dspam_dump — выводит метаданные о лексемах, находящихся в текущей базе фильтра и используемых им для идентификации спама.
- dspam_merge — объединяет метаданные нескольких пользователей в единый словарь.
- dspam_clean — удаляет из словаря метаданных устаревшую или бесполезную информацию.
- dspam_train — обучение фильтра письмам, хранящимся в формате maildir.
Кроме того, с DSPAM поставляется набор SQL-скриптов для различных СУБД (MySQL, PostgreSQL, SQLite), предназначенных для развертывания в базе данных и для поддержания актуальности данных при оптимальном размере.
-
Популярные в этом разделе:
- «Обзор системы фильтрации спама rspamd: возможности, конфигурация, работа»,
- «Защищаем себя средствами GnuPG»,
- «Своё интернет-радио с Icecast».
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1