Антиспам-система Боярского почтового сервера

Общие вопросы деятельности Союза Боярских сетей
Ответить
Аватара пользователя
Ob-iVan
Site Admin
Сообщения: 4604
Зарегистрирован: Пт, 03 авг 2007, 19:35

Антиспам-система Боярского почтового сервера

Сообщение Ob-iVan »

В процессе масштабного обновления Боярского почтового сервера было принято решение установить на него многоуровневую систему борьбы со спамом.
Мы до последнего старались избежать этого неоднозначного шага, потому что на сегодняшний день не существует ни одной антиспам-системы, которая бы на 100% гарантировала, что ни одно из нужных вам писем не будет ошибочно признано спамом. Тем не менее, количество спама, распространяемого в настоящий момент, уже не оставляет выбора, пользоваться антиспам-системой или нет: выбирать можно лишь тип такой системы.
В данном постинге я постараюсь описать принципы построения нашей системы защиты от спама, чтобы продвинутым пользователям было легче вести предварительную диагностику возможных проблем, которые могут возникать в процессе ее работы. Я надеюсь на вашу помощь в оптимизации работы нашей антиспам-системы.

Как я уже писал, система многоуровневая, т.е. все сообщения проходят не один фильтр, а несколько.
Сделано это для того, чтобы каждый отдельный фильтр можно было сделать максимально мягким и свести к минимуму количество ложных сработок.
При описании этих уровней я буду указывать количество писем, прошедших через эту систему за последние 24 часа, чтобы было проще сориентироваться в "агрессивности" и эффективности того или иного фильтра.
Итак, за последние сутки внешние хосты попытались прислать нам 35528 писем.

На первом этапе все входящие сообщения встретили систему Spam Repellent. Принцип ее работы состоит в том, чтобы формировать специальным образом подобранные задержки в процессе получения входящий писем. Эта самый простой, и в то же время самый эффективный способ фильтрации. Дело в том, что большинство спам-ботов очень сильно спешат. Их задача - успеть отправить как можно больше писем, пока используемый ими ip не попадет в блок-листы. Поэтому у них всегда стоит достаточно жесткий лимит на время оправки каждого отдельного письма. Если за это время сервер получателя не успел до конца принять письмо, спам-бот разрывает соединение и переходит к следующей жертве: каким бы количеством потоков он не отправлял письма, а долго ждать он все равно не сможет.
В отличии от спам-ботов, нормальные почтовые сервера обычно готовы к довольно длительным таймаутам. Например, максимальная задержка приветствия обычно составляет не менее 30 секунд. Наш сервер задерживает приветствие на 25 секунд...
В результате работы Spam Repellent, за последние сутки не дождались завершения приема нашим сервером писем и отказались от отправки отправители 21210 сообщений! Это очень хороший результат, учитывая что ложные "сработки" здесь бывают крайне редко и в худшем случае приводят к повторной попытке отправки легальным сервером не прошедшего с первого раза письма.

Во время задержки приветствия начинает работать второй фильтр - система анти-бомбинга. Она проверяет по своей базе предыдущую активность ip-адреса по рядку критериев (отправка множественных сходных сообщений за последний час, отправка писем не существующим пользователям в наших доменах и т.д.). В случае обнаружения серьезных признаков спамерской активности со стороны данного ip-адреса, соединение с таким ip разрывается по инициативе сервера. За последние сутки таким образом было отказано в приеме 2359 писем.

Если соединение установлено и адрес получателя лежит за пределами наших доменов, отправителю предлагается пройти smtp-аутентификацию. После всех этих проверок, сервер согласился целиком принять к дальнейшему рассмотрению чуть больше четверти изначально направленных к нам писем: 9808.

24 письма были сразу же убиты, так как имели некорректный формат (например, в них вообще не было поля темы). Все остальные были направлены на анализ содержимого по принципу набора баллов. Я отказался от прямого блокирования писем на основании того, что какой-то из дальнейших фильтров однозначно признает его спамом. Вместо этого, штрафные баллы от каждого из фильтров складываются и только если их сумма превышает определенное пороговое значение, данное письмо признается спамом - таким образом я постарался максимально снизить вероятность ложных сработок.
В качестве антиспам-баз я использую SORBS DNSBL и SpamHaus Zen - они показали максимальную практическую эффективность. От всевозможные SpamCop'ов и иже с ними я пока отказался - мне не понравилось, как они работают. Также мне не понравились при тестировании технологии Caller ID и SPF - на данный момент они практически бесполезны.
Окончательную фильтрацию сообщений проводит SpamAssassin.

В результате, спамом были признаны 7358 писем. Таким образом, полный цикл антиспам-проверки прошли лишь 2426 писем: это около 7% от их изначального числа. Хочу дополнительно заметить: среди этих 7% по-прежнему содержится немало спама, но дальнейшая фильтрация неизбежно приведет к резкому увеличению числа ложных сработок. Единственный способ, с помощью которого можно дополнительно уменьшить количество спама - обучение спам-фильтров самими пользователями. Для этого вам нужно просто помечать письма как "спам" через веб-интерфес нашего сервера. А те письма, которые были признаны спамом ошибочно - наоборот помечать как "не спам". Пока что такая возможность есть, так как признанные спамом сообщения не удаляются, а лишь получают соответствующую отметку. При использовании web-интерфейса они автоматически попадают в нужную папку. Если для доступа к почте вы используете локальный почтовый клиент, то обязанность сортировки на основании пометок сервера ложиться на него. В дальнейшем, после того как число ложных сработок снизится до приемлемого, спам-сообщения начнут автоматически удаляться.

P.S.: Вложения всех принятыех сервером сообщений прошли проверку антивирусом. За последние сутки в них было найдено и удалено 115 вирусов.


У меня нет времени ненавидеть тех, кто меня ненавидит, потому что я слишком занят добрыми делами для тех, кто меня любит.
Аватара пользователя
Ob-iVan
Site Admin
Сообщения: 4604
Зарегистрирован: Пт, 03 авг 2007, 19:35

Re: Антиспам-система Боярского почтового сервера

Сообщение Ob-iVan »

Ну что ж, недельное тестирование новой антиспам-системы завершено.
Зафиксирована только одна проблема: не во всех аккаунтах по-умолчанию прописан автоматический перенос спама в отдельный каталог. Поэтому, если при доступе через веб-интерфейс в ваших входящих письмах появляются письма с заголовком, начинающимся на **SPAM**, вам необходимо включить функцию автоматического перемещения спама. Щелкните на выпадающее меню Settings (Настройки) в левом верхнем углу веб-интерфейса, и выберите пункт Settings (Настройки). В появившемся окне настроек выберите вкладку Spam (Спам) и поставьте галочку Move spam to the Junk E-mail folder (Переместить спам в папку 'Спам'). После этого подтвердите ваш выбор нажатием кнопки OK в правом нижнем углу окна настроек. Начиная с этого момента, весь новый спам будет автоматически перенаправляться в каталог Junk E-mail (Спам).

Кстати, есть еще две весьма полезные настройки в том же окне Settings (Настройки), на вкладке General (Общие). Меню Preferred language (Предпочтительный язык) позволяет явным образом выбрать удобный вам язык интерфейса (включая русский), если он отличается от языка по-умолчанию, установленного в вашем броузере. А меню Number of displayed messages (Число отображаемых сообщений) - число писем на каждую страницу каталога (лично я выбрал 100).

И, в заключение, статистика за неделю. Всего к нам попытались прислать 257425 писем. На первых этапах фильтрации было отказано в приеме 191680 из них. Оставшиеся 65745 прошли через набор контекстных фильтров. Из них 53 были удалены, 51355 - помечены как спам и направлены получателям. Оставшиеся 14337 были доставлены получателям без каких-либо пометок и изменений, за исключением удаленных из них 612 вирусов.
За эту неделю пользователи пометили как "Спам" 7293 сообщений (из списка тех, которые спам-фильтры признали не спамом), и как "Не спам" - 8 сообщений (из списка тех, которые спам-фильтры признали спамом). Т.е. судя по всему, фильтры работают именно так, как и должно быть, т.е. по принципу "лучше получить 100 лишних писем, чем не получить одного нужного письма". Восемь ложных сработок за неделю - это очень мало (даже с учетом того, что не все пользователи проверяли правильность работы фильтра). Также по-настоящему радует число сообщений, которое пользователи пометили как "Спам" самостоятельно - очень хорошо, когда пользователи понимают, что никто не может обучить спам-фильтр лучше, чем они сами. В результате, под конец тестовой недели качество фильтрации спама было выше, чем в начале.

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


У меня нет времени ненавидеть тех, кто меня ненавидит, потому что я слишком занят добрыми делами для тех, кто меня любит.
Ответить

Вернуться в «СБС»