spam

warning: Creating default object from empty value in /usr/data/www/drupal6/modules/taxonomy/taxonomy.pages.inc on line 33.

Анализ внедрения автоматического обучения спам фильтров.

Прошло два месяца, как внедрил обучение спамфильров на основе спам ловушек (spamtrap) и исходящей почты.

Сейчас провел мелкий анализ результатов на основании выборки за два месяца до и два месяца после внедрения:

Критерий до (всего/ среднее в день) после (всего/среднее в день)
Ложные определения как спам (ощущение, что что-то не так, очень похоже, что отыграло начало внедрения) 676/16.4878

767/17.8372
без учета первой недели внедрения 391/10.8611

0
Your rating: Нет

Сбор мыслей как правильно фильтровать и обрабатывать спам в организации

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

Основные проблемы фильтрации спама в организации:

  1. Не должно быть недоставленных писем, т.к. это чревато репликами "почта не работает" с различными последствиями как моральными, так и материальными.
  2. Пользователи очень разного уровня, как знаний и дисциплины, так и по реакции и влиянию, от "все понятно, сам разберусь" до "чо это за @#$ня, я тут ни@#$ найти не могу". И соответственно, какие-то организационные правила, как некоторые рекомендуют, не всегда могут решить ситуации.

Обязательно:

0
Your rating: Нет

Чуть-чуть про безопасность в Exim

Пока игрался с Exim, случайно оставил дырочку или точнее ОГРОМНОЕ ОТВЕРСТИЕ для использования сервера в качестве релей - для авторизации достаточно было подобрать пользователя, пароль мог быть любым.

Проблему нашел по жалобам пользователей, что почта подтормаживает и письма странно уходят - то уходят, то не уходят и загрузка системы подпрыгнула 2-3% до 100%.

Оказалось, что за несколько часов, через меня пытались отправить около 50 тысяч сообщений под одной учеткой. Сначала подумал, что как-то подняли пароль к учетке и этим воспользовались, но потом разобрался, что сам дурак и закрыл все.

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

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

Добавил в exim/configure в секцию acl_check_rcpt:

0
Your rating: Нет

Использование спам ловушек для обучения байесовских фильтров

В продолжение игрушек со спамом захотелось прикрутить автоматическое обучение байесовских фильтров спаму на основе спам ловушек.

У меня используются SpamProbe и Rspamd.

Основной вопрос был, как эти самые ловушки придумать и как туда заставить рассылать спам. Решение придумалось самое простое и, на мой взгляд, логичное.

  1. Анализируем лог почтового сервера на попытку доставить письмо в несуществующий ящик.
  2. Считаем количество попыток для каждого ящика.
  3. Если попыток больше определенного, я решил, что более 30, то заносим в базу спам ловушек. Порог требуется для того, чтобы не попадали адреса, которые люди неправильно набрали при вводе.
  4. Все письма поступающие на эти адреса передаем спам фильтру на обучение.
  5. Смотрим результат и периодически перепроверяем какие еще адреса имеет смысл добавить.

Реализация для EXIM:

Сбор адресов

( bzcat /var/log/exim/rejectlog.* ; cat /var/log/exim/rejectlog ) | grep -E 'Unrouteable|not found' | grep -v -E 'root|abuse|postmaster' | sed 's/.*rejected RCPT//;s/.*<//;s/>.*//' | sort | uniq -c | awk '$1 > 30 {print $2}' | sort > /usr/local/etc/exim/spam_trap.txt

0
Your rating: Нет

Сбор мыслей в кучу по подключению Rspamd к Exim

После некоторого тестирования решил, что сил хватит поддерживать корпоративную почту на должном уровне полностью своими руками на Exim. Перевел MX на себя с роутингом ящиков на другие сервера, т.к. сейчас, кроме моего сервера, часть нашей почты обслуживает Яндекс, часть Вымпелком/Билайн/АДС.

Т.к. теперь, почта идет на прямую ко мне и имеет смысл анализировать заголовки писем, задумался, что-же такое прикрутить, т.к. SpamProbe является только бейсовым фильтром.

Остановился на Rspamd в связи с:

  1. Вроде, не сильно грузит систему
  2. По описанию автора, писался под Rambler-почту
  3. Писал наш согражданин
  4. Поддерживается текущим Exim "из коробки"
  5. Обещает, что может, все что нужно.

У меня возникло ощущение, что документация на него предполагает, что вы дружитесь со своим почтовым сервером и спокойно можете прикрутить к нему SpamAssassin.

Т.к. это не совсем мой случай, то вылезли некоторые проблемы.

1. В подключении полностью подменяют секцию проверки тела сообщения:

acl_smtp_data = acl_check_spam

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

0
Your rating: Нет

Описание подключения SpamProbe на exim и результат работы

Судя по всему, в марте прошлого года подключил к своему почтовому серверу на Exim спамфильтр SpamProbe.

По виду, все делалось по статье -  SpamProbe - фильтруем спам

Схема работы следующая:

  • Подключен к Exim через system_filter, который по необходимости сам как-то дергает SpamProbe. Хорошо это или плохо не знаю, но SpamProbe не висит демоном, а запускается каждый раз на проверку письма.
  • В Exim настроен роутер, который передает в транспорт по доставке писем пользователям в папочку Spam в случае если:
    • У получателя включен спамфильтр
    • SpamProbe определил письмо как спам
    • адрес отправителя не находится в белом листе
  • Транспорт по доставке спама передат письма dovecot с указанием положить в папку Spam.

Обучение идет с использованием dovecot, протокола imap и Antispam плагина к dovecot по следующей схеме:

0
Your rating: Нет
Ленты новостей