Tuesday, July 25th, 2017

Серые списки: эффективная фильтрация спама

Published on Март 30, 2009 by   ·   Комментариев нет

На сегодняшний день существует несколько основных приемов фильтрации
спама. Основные: контекстная фильтрация и фильтрация по конверту (envelope).

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

У метода контекстной фильтрации помимо неоспоримых достоинств есть
определенные недостатки, такие как:

1.Не всегда можно принять верное решение по содержимому письма.
Например, Вы пересылаете товарищу письмо о дешевых копиях дорогих часов,
предварительно сообщив об этом, и в данном случае это не является
спамом, не смотря на то, что содержимое самое что ни на есть рекламное.

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

3.Анализ содержимого письма является довольно таки ресурсоемкой задачей.
Учитывая, что сейчас рассылки спама ведутся волнами, то во время такого
«прилива» сервер может надолго уйти в себя.

4.Ложные срабатывания. Любой контекстный фильтр ошибается. Если фильтр
признает «плохое» письмо «хорошим» — это еще полбеды. А вот если
«хорошее» письмо сервером удаляется — это действительно беда.

Другой метод, который может выступать как и альтернатива и дополнение к
контекстной фильтрации — «серые списки» (greylisting).

Что такое серые списки?

Каждое обращение клиента или другого сервера к smtp-серверу начинается с
представления клиента. Прежде чем начнется передача самого письма,
сервер уже знает о:

1.IP-адресе клиента;
2.Почтовом адресе отправителя (mail from:);
3.Почтовом адресе получателя (rcpt to:).

Эта тройка называется конвертом.

Данные о всех конвертах хранятся в базе данных.

Возможны следующие ситуации, при проверке наличия конверта в базе данных.

1.Конверт отсутствует. В таком случае в базу заносится конверт с неким
временем жизни, например, 8 часов и временем блокировки, например, 3
минуты. Клиенту отправляется snmp-ответ 421 (временный сбой). Корректно
ведущий себя сервер-отправитель повторит попытку через некоторое время
(обычно несколько минут) и так до тех пор, пока не отправит письмо или
же пока письмо не устареет (обычно через 1 неделю).

2.Конверт присутствует в базе, но срок блокировки еще не прошел. Клиент
снова получает ответ 421.

3.Конверт присутствует в базе и блокировка закончилась. В таком случае
принимается содержимое письма, а срок жизни конверта продлевается,
например, на месяц.

Периодически конверты с прошедшим сроком жизни удаляются из базы.

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

Рассмотрим достоинства и недостатки серых списков.

Достоинства:

1.Серые списки на этапе обращения к серверу удаляют по моим оценкам до
95% спама. В основном это письма от зомби-машин.

2.Серые списки не создают большой вычислительной нагрузки.

3.Что бы Вы не написали в письме, если Вы отправляете это письмо как
обычный отправитель, письмо всегда дойдет. Если письмо не доходит, в
этом виноват не принимающий сервер с серыми списками, а отправитель.

Недостатки:

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

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

Реализация.

Существуют различные реализации серых списков. У меня используются серые
списки qmail-toaster. Подробности инсталляции приводить не буду, Google
в помощь. Практически к любому более-менее известному MTA можно найти
реализацию серых списков.

Усовершенствования.

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

Для этого я внес некоторые изменения в работу серых списков.

1.Серые списки по-прежнему ставят новые конверты в очередь на три минуты.

2.В течение этих трех минут, пока не прошло время блокировки конверта,
выполняется дополнительный скрипт, который оценивает IP-адреса
отправителей на их «правильность» и в зависимости от принятого решения
либо продлевает блокировку конвертов на несколько часов, либо оставляет
все как есть.

Критерии блокировки:

1. Чрезмерная активность. Если в течение трех минут от IP-адреса создано,
скажем, более 100 конвертов, то это активно работающий спам-хост.

2. Отсутствие обратного адреса (reverse dns). Уважающие себя почтовые
сервера имеют грамотно прописанные обратные адреса.

3. Двойная проверка обратного адреса: Ip-address !=
ip-address(reverse-dns(ip-address)).

4. Наличие в обратном адресе записей типа dialap-129.provider.ru,
host-10.20.30.40-provider.ru и так далее.

5. Националистический метод. Принадлежность обратного адреса
национальным доменам .cn, .kr, .in, .tw и так далее.

6.Проверка IP-адреса по геотаргетингу.

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

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

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

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
































































Смотрите также:

Readers Comments (Комментариев нет)




Да человек я, человек! =)

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]