Для кого эта статья?
Статья будет полезна системным администраторам и пользователям, работу
которых значительно усложняют большие потоки спама, приходящие в электронный
почтовый ящик. В ней проводится обзор различных технологий защиты от спама, их преимуществ
и недостатков, а также анализ эффективности каждого фильтра. Даются
рекомендации по настройке фильтров и организации их совместной работы.
Предполагается, что читатель понимает механизм работы почтовых серверов
(МТА), их взаимодействия по протоколу SMTP, а также работу других сетевых служб
(DNS, WHOIS, SPF).
Введение
Вряд ли на сегодняшний день существует хотя бы один пользователь электронной
почты, не знающий, что такое спам и никогда его не получавший. Нежелательные
сообщения приходят всем, чей электронный адрес попал в базы данных спамеров.
Когда количество спама писем начинает превышать 100 писем в день, работать с
электронным ящиком становится крайне сложно.
Технологии защиты от спама со временем совершенствуются, точно так же, как и
технологии обхода этой защиты. Сегодня существует довольно мало почтовых
серверов, на которых не установлено ни одного защитного фильтра.
В борьбе со спамом важен баланс между риском потерять необходимую
корреспонденцию, и возможностью отфильтровать как можно большее количество
спама.
Среди методов борьбы со спамом нет самого правильного и хорошего способа,
который гарантированно решает проблему. Каждый метод имеет свои преимущества и
недостатки. Поэтому рекомендуется выстраивать многоступенчатую защиту от спама,
в которой различные методы отбрасывания спама дополняют друг друга.
Кто отправляет спам?
Рассылка спама – это целая индустрия. Существуют люди, занимающиеся
составлением баз данных с адресами e-mail.
Адреса попадают в базы, в основном, следующими способами:
- Собранные из открытых источников (форумы, списки рассылки,
DNS и WHOIS базы).
Более подробная информация о DNS и WHOIS находится по адресам:
http://ru.wikipedia.org/wiki/DNS
http://ru.wikipedia.org/wiki/WHOIS
- С помощью взлома сайтов и серверов с целью получить адреса
e-mail пользователей;
- Покупкой корпоративной базы e-mail у неблагонадежных
сотрудников фирм. Такая база данных стоит немалых денег.
Непосредстванно рассылка спама осуществляется компьютерами-зомби, то есть,
чьими-то персональными компьютерами, подключенными к сети Интернет, на которых
незаметно для пользователя установлено специальные программы-троянцы (далее –
спам-боты). Они управляются централизованно через Интернет, рассылая почту по
указанным адресам в течение определенного периода. Спам-боты объединяются в
сети, называемые Botnet (http://ru.wikipedia.org/wiki/Botnet)
Как правило, пользователи даже не знают, чем занимаются их рабочие станции.
Спам-боты эмулируют почтовый сервер, передающий почту другим почтовым серверам.
В рассылке спам-ботам помогают:
- Неправильно настроенные почтовые серверы, выступающие в
роли почтового ретранслятора. Такие серверы разрешают всем пересылать
через себя почту и называются открытые релеи (Open Relay).
- Открытые Proxy-серверы (Open Proxy), позволяющие всем
желающим устанавливать соединения от своего имени (http://freeproxy.ru/ru/free_proxy/faq/index.htm).
Средства защиты от спама
В настоящее время существует достаточно большое количество программных
продуктов, называющихся почтовыми фильтрами и предотвращающих попадание спама в
почтовые ящики пользователей. Алгоритмы действия программ самые разные: от
обращений к серверам в Интернете до умышленной задержки почты. Рассмотрим
наиболее часто использующиеся.
Распределенные чёрные списки (DNSBL)
IP-адреса компьютеров, с которых замечена рассылка спама, автоматически
заносятся в чёрные списки. К спискам можно обращаться с помощью DNS-запросов.
Списки постоянно пополняются, для чего используются следующие методы:
- IP-адреса почтовых серверов-«ловушек» (spamtraps). Эти
серверы эмулируют обычный МТА, при этом записывая IP-адреса компьютеров,
рассылающих спам.
- Жалобы пользователей на спам. Многие чёрные списки
предоставляют веб-интерфейс, позволяющий скопировать письмо с заголовками,
или адрес пересылки, на который необходимо переслать спамовое письмо в
случае его получения. IP-адреса, обеспечившие пересылку письма, будут
занесены в чёрный список.
- Автоматическое пополнение списков за счёт результата
работы других фильтров (например, фильтра Байеса).
В Интернете существует много общедоступных чёрных списков. Просмотреть их и
проверить, внесён ли определенный IP-адрес в эти списки, можно по адресу http://www.dnsstuff.com/tools/ip4r.ch?ip=127.0.0.1.
Одним из наиболее популярных служб, предоставляющих доступ к черным спискам,
является spamcop (http://www.spamcop.net/).
Все желающие могут зарегистрироваться на сайте и сообщать службе о спаме,
предоставив письмо с заголовками. Spamcop отправит уведомление провайдерам, из
сетей которых велась рассылка спама. Если провайдер не отреагирует должным
образом – Spamcop внесёт ip-адреса его почтовых серверов в свой чёрный список,
что, как минимум, отрицательным образом скажется на репутации провайдера.
Достоинства служб DNSBL:
- Практически любой MTA умеет обращаться к DNSBL, для этого
не требуется установка дополнительного ПО.
- Вам как системному администратору, нет необходимости
принимать участие в обслуживании и поддержке чёрных списков.
Недостатки:
- Разные черные списки имеют разную эффективность. Чтобы
выбрать оптимальный набор таких списков, необходимо время на проведение
исследований.
- При обращении к большому количеству чёрных списков с
помощью DNS-запросов загруженность канала может резко возрасти. На каждое
входящее соединение МТА будет отправлять по одному запросу к каждому
серверу чёрного списка, указанному в файле конфигурации.
- Сбой в функционировании одного из серверов чёрных списков
может привести к временному отказу МТА.
- Некоторые чёрные списки (например, SORBS, http://www.au.sorbs.net/) незаслуженно
вносят широкие диапазоны адресов различных провайдеров и требуют денег за
удаление.
Фильтр Байеса
Почтовый фильтр, занимающийся анализом содержимого письма. Содержимое любого
электронного письма обладает рядом статистических признаков, каждому из которых
присваивается определенный вес.
В результате письмо, суммарный вес которого превышает пороговое значение,
считается спамом. В зависимости от настроек фильтра, оно может быть отвергнуто
или отправлено дальше пользователю с определенной пометкой, по которой почтовая
программа пользователя может фильтровать спам самостоятельно.
Фильтр поддаётся обучению, благодаря чему можно корректировать его работу, в
результате получив достаточно качественный фильтр содержимого.
На платформе FreeBSD в роли фильтра Байеса выступает программный продукт
amavis, написанный на perl и использующий модуль SpamAssassin. Кроме этого
фильтра, к amavis можно подключить почтовый антивирус, проверяющий почту также
и на наличие вирусов.
Достоинства фильтра Байеса в лице amavis:
- Способность обучаться, в том числе автоматически.
- Большое количество настроек.
Другие достоинства фильтра amavis:
- Возможность подключения антивируса.
- Может блокировать письма, если их заголовки не
соответствуют стандартам, или письма с вложенными исполняемыми файлами
(.exe, .com, .pif, .scr и т.д.).
Недостатки:
- На обучение фильтра может уйти много времени.
- Неправильно обученный фильтр может важное письмо посчитать
спамом.
- Могут возникнуть проблемы с корреспонденцией в формате
HTML: различные цвета, начертания шрифтов, изображения в электронных
письмах увеличивают их вес, в результате чего пороговое значение будет
превышено.
- Для проверки письма на принадлежность к спаму его
необходимо полностью принять, что влечёт за собой дополнительную нагрузку
на канал и сервер.
- Иногда пользователи пишут письмо на русском языке в западноевропейской
кодировке (например, ISO-8859-1). В этой кодировке
отсутствуют символы кириллицы, поэтому все такие символы в письме
заменяются на их эскейп-последовательности вида Ӓऩ. Наличие
таких последовательностей в письме очень сильно увеличивает его вес, в
результате с огромной долей вероятности письмо не будет пропущено фильтром.
Серые списки (greylisting)
Принцип действия серых списков основан на тактике рассылки спама. Как
правило, спам рассылается в очень короткое время.
Работа серого списка заключается в намеренной задержке писем на некоторое
время. При этом адрес и время пересылки заносится в базу данных серого списка.
Если удалённый компьютер является настоящим МТА, то он согласно RFC2821, должен
сохранить письмо в очереди и повторять пересылку в течение пяти дней.
Спам-боты, как правило, писем в очереди не сохраняют, поэтому спустя
непродолжительное время, прекращают попытки переслать письмо. Экспериментальным
путём установлено, что в среднем время рассылки спама составляет чуть больше
часа.
При повторной пересылке письма с этого же адреса, если с момента первой
попытки прошло необходимое количество времени, Ваш МТА примет его. При этом
IP-адрес отправляющего МТА, электронные адреса отправителя и получателя будут
внесены в белый список на достаточно длительное время, после чего письма будут
приниматься без задержек.
С использованием серых списков возникает достаточно серьёзная проблема,
связанная с наличием у многих провайдеров фермы почтовых серверов,
распределяющих нагрузку между собой. В этом случае серый список может задержать
письма на интервал времени, превышающий 5 дней, из-за чего может быть
отфильтрована важная информация. Из-за этого серые списки необходимо
использовать только с поддержкой Sender Policy Framework (http://ru.wikipedia.org/wiki/Sender_Policy_Framework),
гарантирующей, что домен отправителя не был подделан при отправке письма. В
этом случае письма, приходящие с ip-адресов, для
которых соблюдается SPF, будут приняты без задержек.
На ОС FreeBSD серые списки обеспечивает milter-greylist, который можно
установить из коллекции портов.
Достоинства серых списков:
- Одно из наиболее эффективных средств борьбы со спамом.
Фильтрует около 50% спама.
Недостатки:
- Задержка первого письма от корреспондента, как минимум, на
час не всегда приемлема.
- Если в ящик пользователя перенаправляется почта с другого
ящика, не защищённого от спама, использование серых списков неэффективно.
- Серый список не эффективен, если спам пересылается через
открытый почтовый ретранслятор (Open Relay), находящийся в Интернете и
являющийся полноценным МТА.
- Использование milter-greylist без поддержки SPF может
повлечь за собой потерю важных писем.
Проверка адреса отправителя
Более 50% спама приходит с указанием несуществующего адреса отправителя. По
умолчанию МТА лишь определяет IP-адрес сервера, на котором якобы расположен
электронный ящик отправителя. Полная проверка адреса отправителя заключается в
том, что Ваш МТА устанавливает соединение к удалённому MTA (адрес которого указан в MX-записи домена в адресе
отправителя) и начинает диалог. Дойдя до фазы RCPT TO: и получив ответ, Ваш МТА
имеет информацию о наличии либо отсутствии ящика отправителя.
Установка обратных соединений и является слабым местом проверки адреса
отправителя. Злоумышленник может заставить Ваш сервер устанавливать огромное
количество соединений и вызвать отказ в обслуживании. Поэтому фильтр,
выполняющий проверку адреса отправителя, не должен использоваться
самостоятельно.
На FreeBSD проверкой адреса отправителя занимается spamilter, который можно
установить из коллекции портов. Кроме проверки, в этот программный продукт
встроена возможность блокировать с помощью ipfw любые соединения с IP-адресов,
пытающихся отправить письмо с несуществующим адресом отправителя.
Достоинства фильтра, проверяющего адрес отправителя:
- Один из наиболее эффективных фильтров.
- Если Ваш почтовый настроен на ретрансляцию почты внутрь сети,
отчёты о недоставленных сообщениях будут доходить отправителю, а не
присылаться на локальный ящик postmaster.
Недостатки:
- Фильтр не должен использоваться самостоятельно: это делает
Вашу почтовую систему уязвимой к DOS-атакам.
- Некоторые МТА (например, yahoo.com) сообщают результат о существовании почтового ящика
не после команды RCPT TO:, а после команды DATA, поэтому существующий
программный продукт spamilter не срабатывает.
- Многие автоматические рассылки ведутся с несуществующих
адресов и не принимаются сервером.
Проверка соблюдения требований протокола SMTP
Почтовые серверы (далее – MTA, Mail Transfer Agent) в Интернете при передаче
почты используют протокол SMTP, описанный в RFC2821 (http://www.faqs.org/rfcs/rfc2821.html).
В документе описан механизм обмена почтовыми сообщениями и требования, которые
предъявляются к МТА при пересылке почты. В частности, при общении по протоколу
SMTP, МТА должны использовать доменные имена, зарегистрированные в DNS.
Спам-боты в 50% случаев используют имя компьютера, получаемое командой hostname
(которое чаще всего является локальным именем, отсутствующим в DNS) и ещё в 30%
- выполняя обратное преобразование своего IP-адреса, а результате получая имя,
похожее на 10-20-30-40.dhcp.client.pool-1.provider.net. Такие имена,
безусловно, отсутствуют в DNS, но передаются подавляющим большинством
спам-ботов в качестве аргумента команды HELO.
Возможность проводить резолвинг аргумента команды HELO присутствует в
программном продукте spamilter, рассмотренном выше. Кроме того, существует
патч для milter-greylist (http://gate.udec.ntu-kpi.kiev.ua/~bat/exp/milter-greylist-2.0.2.patch),
добавляющий такую функциональность к фильтру серых списков.
Преимущества проверки соблюдения протокола SMTP:
- Высокая эффективность
Недостатки:
- Многие организации (даже Intel!) неправильно настраивают
свои MTA, в результате чего могут быть отфильтрованы нужные письма.
Итоги
Каждый из вышеперечисленных методов борьбы со спамом малоэффективен.
Рекомендуется их выстраивать в цепочки, в которых команды SMTP и электронное
письмо будет передаваться каждому фильтру по очереди. В случае отрицательного
ответа хотя бы одного фильтра письмо будет отвергаться.
Наиболее эффективной оказалась следующая цепочка фильтров:
- Чёрные списки (DNSBL). Если IP-адрес удаленного MTA входит
хотя бы в один список – соединение прерывается.
- Серые списки.
- Проверка регистрации в DNS-службе имени сервера, полученного
в команде HELO.
- Проверка существования адреса отправителя. Этот фильтр
стоит почти на последнем месте, что снижает вероятность его использования
(многие письма будут отвергнуты фильтрами 1-3) и, соответственно, снижает
количество устанавливаемых обратных соединений.
- Фильтр Байеса + почтовый антивирус. Стоит на самом
последнем месте из-за того, что его задача – анализировать тело письма, а
не аргументы команд SMTP.
В настоящее время я специально зарегистрировал адрес электронной почты,
который указал в news-конференции, доступной из сети Интернет. Благодаря этому
мой адрес находится в многих списках для рассылки спама. В настоящее время
приходит не больше пяти писем в неделю. Ежедневно их фильтруется более тысячи.
К сожалению, в настоящее время системный администратор может столкнуться с
проблемой неправильно настроенных почтовых серверов организаций, с которыми
ведётся переписка. Это повлечёт за собой ложное срабатывание почтовых фильтров
и отбрасывание писем, которые должны быть доставлены.
Одна из причин того, что мы получаем спам, - это низкая квалифицированность
персонала, обслуживающего серверы, в результате чего почтовые фильтры
приходится отключать полностью либо частично.
Все комментарии и замечания к данной статье прошу направлять
по адресу: bat@auts.ntu-kpi.kiev.ua.