Статья будет полезна системным администраторам и пользователям, работу которых значительно усложняют большие потоки спама, приходящие в электронный почтовый ящик. В ней проводится обзор различных технологий защиты от спама, их преимуществ и недостатков, а также анализ эффективности каждого фильтра. Даются рекомендации по настройке фильтров и организации их совместной работы.
Предполагается, что читатель понимает механизм работы почтовых серверов (МТА), их взаимодействия по протоколу SMTP, а также работу других сетевых служб (DNS, WHOIS, SPF).
Вряд ли на сегодняшний день существует хотя бы один пользователь электронной почты, не знающий, что такое спам и никогда его не получавший. Нежелательные сообщения приходят всем, чей электронный адрес попал в базы данных спамеров. Когда количество спама писем начинает превышать 100 писем в день, работать с электронным ящиком становится крайне сложно.
Технологии защиты от спама со временем совершенствуются, точно так же, как и технологии обхода этой защиты. Сегодня существует довольно мало почтовых серверов, на которых не установлено ни одного защитного фильтра.
В борьбе со спамом важен баланс между риском потерять необходимую корреспонденцию, и возможностью отфильтровать как можно большее количество спама.
Среди методов борьбы со спамом нет самого правильного и хорошего способа, который гарантированно решает проблему. Каждый метод имеет свои преимущества и недостатки. Поэтому рекомендуется выстраивать многоступенчатую защиту от спама, в которой различные методы отбрасывания спама дополняют друг друга.
Рассылка спама – это целая индустрия. Существуют люди, занимающиеся
составлением баз данных с адресами e-mail.
Адреса попадают в базы, в основном, следующими способами:
Непосредстванно рассылка спама осуществляется компьютерами-зомби, то есть, чьими-то персональными компьютерами, подключенными к сети Интернет, на которых незаметно для пользователя установлено специальные программы-троянцы (далее – спам-боты). Они управляются централизованно через Интернет, рассылая почту по указанным адресам в течение определенного периода. Спам-боты объединяются в сети, называемые Botnet (http://ru.wikipedia.org/wiki/Botnet)
Как правило, пользователи даже не знают, чем занимаются их рабочие станции. Спам-боты эмулируют почтовый сервер, передающий почту другим почтовым серверам.
В рассылке спам-ботам помогают:
В настоящее время существует достаточно большое количество программных продуктов, называющихся почтовыми фильтрами и предотвращающих попадание спама в почтовые ящики пользователей. Алгоритмы действия программ самые разные: от обращений к серверам в Интернете до умышленной задержки почты. Рассмотрим наиболее часто использующиеся.
IP-адреса компьютеров, с которых замечена рассылка спама, автоматически заносятся в чёрные списки. К спискам можно обращаться с помощью DNS-запросов. Списки постоянно пополняются, для чего используются следующие методы:
В Интернете существует много общедоступных чёрных списков. Просмотреть их и проверить, внесён ли определенный IP-адрес в эти списки, можно по адресу http://www.dnsstuff.com/tools/ip4r.ch?ip=127.0.0.1.
Одним из наиболее популярных служб, предоставляющих доступ к черным спискам, является spamcop (http://www.spamcop.net/). Все желающие могут зарегистрироваться на сайте и сообщать службе о спаме, предоставив письмо с заголовками. Spamcop отправит уведомление провайдерам, из сетей которых велась рассылка спама. Если провайдер не отреагирует должным образом – Spamcop внесёт ip-адреса его почтовых серверов в свой чёрный список, что, как минимум, отрицательным образом скажется на репутации провайдера.
Достоинства служб DNSBL:
Недостатки:
Почтовый фильтр, занимающийся анализом содержимого письма. Содержимое любого электронного письма обладает рядом статистических признаков, каждому из которых присваивается определенный вес.
В результате письмо, суммарный вес которого превышает пороговое значение, считается спамом. В зависимости от настроек фильтра, оно может быть отвергнуто или отправлено дальше пользователю с определенной пометкой, по которой почтовая программа пользователя может фильтровать спам самостоятельно.
Фильтр поддаётся обучению, благодаря чему можно корректировать его работу, в результате получив достаточно качественный фильтр содержимого.
На платформе FreeBSD в роли фильтра Байеса выступает программный продукт amavis, написанный на perl и использующий модуль SpamAssassin. Кроме этого фильтра, к amavis можно подключить почтовый антивирус, проверяющий почту также и на наличие вирусов.
Достоинства фильтра Байеса в лице amavis:
Другие достоинства фильтра amavis:
Недостатки:
Принцип действия серых списков основан на тактике рассылки спама. Как правило, спам рассылается в очень короткое время.
Работа серого списка заключается в намеренной задержке писем на некоторое время. При этом адрес и время пересылки заносится в базу данных серого списка. Если удалённый компьютер является настоящим МТА, то он согласно RFC2821, должен сохранить письмо в очереди и повторять пересылку в течение пяти дней. Спам-боты, как правило, писем в очереди не сохраняют, поэтому спустя непродолжительное время, прекращают попытки переслать письмо. Экспериментальным путём установлено, что в среднем время рассылки спама составляет чуть больше часа.
При повторной пересылке письма с этого же адреса, если с момента первой попытки прошло необходимое количество времени, Ваш МТА примет его. При этом IP-адрес отправляющего МТА, электронные адреса отправителя и получателя будут внесены в белый список на достаточно длительное время, после чего письма будут приниматься без задержек.
С использованием серых списков возникает достаточно серьёзная проблема, связанная с наличием у многих провайдеров фермы почтовых серверов, распределяющих нагрузку между собой. В этом случае серый список может задержать письма на интервал времени, превышающий 5 дней, из-за чего может быть отфильтрована важная информация. Из-за этого серые списки необходимо использовать только с поддержкой Sender Policy Framework (http://ru.wikipedia.org/wiki/Sender_Policy_Framework), гарантирующей, что домен отправителя не был подделан при отправке письма. В этом случае письма, приходящие с ip-адресов, для которых соблюдается SPF, будут приняты без задержек.
На ОС FreeBSD серые списки обеспечивает milter-greylist, который можно установить из коллекции портов.
Достоинства серых списков:
Недостатки:
Более 50% спама приходит с указанием несуществующего адреса отправителя. По умолчанию МТА лишь определяет IP-адрес сервера, на котором якобы расположен электронный ящик отправителя. Полная проверка адреса отправителя заключается в том, что Ваш МТА устанавливает соединение к удалённому MTA (адрес которого указан в MX-записи домена в адресе отправителя) и начинает диалог. Дойдя до фазы RCPT TO: и получив ответ, Ваш МТА имеет информацию о наличии либо отсутствии ящика отправителя.
Установка обратных соединений и является слабым местом проверки адреса отправителя. Злоумышленник может заставить Ваш сервер устанавливать огромное количество соединений и вызвать отказ в обслуживании. Поэтому фильтр, выполняющий проверку адреса отправителя, не должен использоваться самостоятельно.
На FreeBSD проверкой адреса отправителя занимается spamilter, который можно установить из коллекции портов. Кроме проверки, в этот программный продукт встроена возможность блокировать с помощью ipfw любые соединения с IP-адресов, пытающихся отправить письмо с несуществующим адресом отправителя.
Достоинства фильтра, проверяющего адрес отправителя:
Недостатки:
Почтовые серверы (далее – 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:
Недостатки:
Каждый из вышеперечисленных методов борьбы со спамом малоэффективен. Рекомендуется их выстраивать в цепочки, в которых команды SMTP и электронное письмо будет передаваться каждому фильтру по очереди. В случае отрицательного ответа хотя бы одного фильтра письмо будет отвергаться.
Наиболее эффективной оказалась следующая цепочка фильтров:
В настоящее время я специально зарегистрировал адрес электронной почты, который указал в news-конференции, доступной из сети Интернет. Благодаря этому мой адрес находится в многих списках для рассылки спама. В настоящее время приходит не больше пяти писем в неделю. Ежедневно их фильтруется более тысячи.
К сожалению, в настоящее время системный администратор может столкнуться с проблемой неправильно настроенных почтовых серверов организаций, с которыми ведётся переписка. Это повлечёт за собой ложное срабатывание почтовых фильтров и отбрасывание писем, которые должны быть доставлены.
Одна из причин того, что мы получаем спам, - это низкая квалифицированность персонала, обслуживающего серверы, в результате чего почтовые фильтры приходится отключать полностью либо частично.
Все комментарии и замечания к данной статье прошу направлять по адресу: bat@auts.ntu-kpi.kiev.ua.