Мифы про хостинг

Миф шестой. Защита от спама на 100%

(Продолжение. Начало в №42)

Из рекламы: "100% защита от спама каждого e-mail адреса на хостинге. Используя специальные возможности нашего сервиса, вы можете навсегда оградить себя от такой проблемы, как спам. Сервис, используемый нашей компанией, нашел широкое распространение в США и стопроцентно защищает от спама". В интернете немало подобной рекламы. Она обещает стопроцентную защиту от спама, а на самом деле является стопроцентным обманом. Люди, знакомые с технической стороной вопроса, знают, что защита от спама на 100% возможна только в том случае, если уничтожать абсолютно всю входящую почту.

По статистике почтовых провайдеров, в феврале 2007 года спам составлял 70-80% от всей почты в российском интернете. За последние несколько лет его доля стабильно растет. Ущерб от потери рабочего времени на разбор спама составляет, по разным оценкам, $50-200 в год в расчете на одного сотрудника коммерческой компании.

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

 
  1. Черные списки.
  2. Серые списки.
  3. Авторизация почтовых серверов.
  4. Автоматическая фильтрация.

Каждый из этих методов достоин отдельной большой статьи, потому что в каждом существует целый букет оригинальных технологий, а новые изобретения появляются каждый месяц. Иногда они весьма экзотические, например, системы определения признаков массовости сообщения, "ловушки на живца" (honeypots), определение спама голосованием пользователей, автоматические DDoS-атаки на заказчиков спама, генетические алгоритмы со скрещиванием и мутациями признаков (в SpamAssassin) и т.д.

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


Черные списки

В черные списки заносятся IP-адреса компьютеров, с которых ведется рассылка спама. Этот самый древний метод борьбы со спамом появился десять лет назад. Казалось бы, он должен быть безупречен, но это не так. Сегодня спамеры находят новые компьютеры ("зомби") быстрее, чем их успевают заносить в черные списки.

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

Tut.By - не единственная жертва массовой блокировки IP-адресов. Совсем недавно подобные проблемы возникли у нескольких тысяч владельцев доменных имен у российского хостинг-провайдера Majordomo. Всех их заблокировал регистратор доменных имен GoDaddy после непроверенных жалоб от Spamhaus.

Интернет-провайдеры фильтруют спам, используя специальные списки IP-адресов (real-time blackhole lists - RBL). Эти самые RBL и стали источником проблем и в случае Tut.By, и в случае Majordomo. Дело в том, что черные списки составляются любителями и добровольцами, такими, как Spamhaus, а попасть туда можно очень легко - после одной-двух жалоб на спам. В список заносятся большие массивы IP-адресов, принадлежащие тому или иному провайдеру, даже если реальная рассылка спама осуществлялась с одного-единственного IP-адреса. Вот что говорит по этому поводу Игорь Ашманов, один из разработчиков известной системы "Спамтест": "РТКОММ ("Ростелеком") сидел в "Спамхаусе" годами, поскольку клиент клиента его клиента якобы что-то там разослал ИЛИ якобы был отрекламирован спамом. А РТКОММ, видите ли, не снес сайт немедленно, без разбору, по свистку из "Спамхауса", наплевав на договор и т.п. Бывало, что блокировали целыми блоками, по 65 тысяч адресов. Сейчас в РТКОММе, вроде, научились их уговаривать. Но точно такие же проблемы у кучи более мелких провайдеров. Просто за невежливое письмо могут никогда не вынуть из списка. Наша компания также постоянно попадает под раздачу. Нас спамеры нарочно подставляли несколько раз, рассылая спам от нашего имени, перед нашей антиспам-конференцией".

Хотя у провайдеров есть постоянно обновляемые, максимально точные списки RBL, но они не могут зафильтровать весь спам (в реальности они отфильтровывают от 35% до 60% спама). Таким образом, черные списки не решают проблему, но при этом являются источником многочисленных головных болей из-за "ложных срабатываний".


Серые списки

Серые списки (graylisting) предусматривают "отложенную" доставку корреспонденции. Это очень простой, эффективный и красивый метод. Суть в том, что почтовое письмо не доставляется сразу. Сервер задерживает его и возвращает отправителю "временную ошибку". Если у отправителя нормальный почтовый сервер, который поддерживает стандарты SMTP, то через полчаса он повторит попытку - и тогда письмо будет доставлено адресату. Чтобы ускорить процесс, отправитель может перейти по специальной ссылке в письме, которая снимает "карантин". Спамерские почтовые серверы (зомби-ПК) не способны пока обработать сообщение об ошибке и повторить рассылку, да и если бы повторяли, то за полчаса письмо может уже попасть в базу спамерских образцов.


Авторизация почтовых серверов

В рамках первичного распознавания потенциального спама иногда используются методики авторизации почтовых серверов (стандарты Sender ID, SPF, Caller ID, Yahoo DomainKeys, MessageLevel). Эти методики, правда, пока не получили широкого распространения. Дело дошло до абсурда: одна из известных почтовых систем на просторах Рунета, так громко пиарившая SPF, прославилась только массовыми случаями ложного распознавания легитимных писем. Судя по всему, они так и не смогли внедрить у себя корректный SPF-движок.

Технология Domain keys, которую продвигает Yahoo, - толковая технология, однако сложна для внедрения и существенно увеличивает нагрузку на почтовые серверы.

Фильтрация по содержанию

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

На сегодняшний день многие системы лингвистической фильтрации спама используют алгоритмы "Bayesian" и "Noise reduction". Впервые использовать байесовскую теорему предложил известный предприниматель Пол Грэм в августе 2002 года2. Идея базируется на том, что ряд слов встречаются в спаме гораздо чаще, нежели в обычной переписке. Фильтр проходит специальное обучение на базе спамерских и обычных писем, после чего начинает достаточно надежно их различать. Более того, фильтр может "дообучаться" в процессе всей своей последующей деятельности, то есть вы наверняка не получите одно и то же спамерское письмо дважды.

Для вычисления вероятности спама в байесовском фильтре используются частотные словари, созданные в процессе обучения. Алгоритм вычисляет частоту вхождения "спамерских" слов и фраз в каждом письме и, соответственно, делает вывод о вероятности спама. Особенно хорошо байесовские фильтры работают в личном почтовом клиенте на компьютере пользователя (тематика личных писем сильно отличается от тематики спама). Хуже они работают на больших почтовых потоках на сервере.

Более продвинутый алгоритм "Noise reduction" перед тем, как строить байесовскую статистику, описанную выше, производит отбрасывание слов и целых фраз, не относящихся к смыслу сообщения - так называемого шума (отсюда и название "Noise reduction'").

Для каждого спамерского письма может быть автоматически создана так называемая лексическая сигнатура, позволяющая распознать даже модифицированный вариант сообщения. Программа проверяет письма на наличие определенного набора и распределения в тексте сообщения специфических словосочетаний. Например, база программы Kaspersky AntiSpam содержит около 10 000 писем-образцов (точнее, их описаний - "сигнатур") и более 50 000 спамерских фраз на английском, русском и других языках. База постоянно пополняется, причем администратор может добавлять свои собственные образцы спамерских писем.

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


Специальные программы для фильтрации на почтовом сервере

Большинство почтовых серверов (Microsoft Exchange, Sendmail, Postfix) уже включают в себя примитивные средства для фильтрации спама, но эти системы нужно долго и тщательно настраивать вручную (можно сравнить с ручной настройкой фильтрации в почтовом клиенте The Bat - так же муторно). Вряд ли обычный администратор будет "забивать" в базу тысячи терминов и настраивать сотни правил для фильтрации спама и ежедневно обновлять их. Это нереально.

Как вариант, можно подключить бесплатный антиспамерский модуль, самый известный из которых - SpamAssassin. Это довольно эффективный модуль, фильтрующий 90-95% англоязычного спама.

Кроме того, существует целый ряд коммерческих программ, предназначенных для фильтрации спама на почтовом сервере, в том числе российские программы "Спамооборона" (установлена на "Яндекс.Почте"), Kaspersky AntiSpam на технологии "Спамтест" и т.д. В этих программах используются все методы, перечисленные выше, а также некоторые дополнительные методы. Например, составление базы образцов спамерских писем и пополнение вручную этой базы почти в реальном режиме времени, ведение собственного RBL, поддержка пользовательских правил. Если программа пропустила спамерское письмо, то вы отправляете этот образец разработчикам (они работают круглосуточно), и его добавляют в базу образцов. Например, программа Kaspersky AntiSpam обновляется каждые 20 минут.

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

Так или иначе, в настоящее время или в обозримом будущем невозможно отфильтровывать спам на 100%. Для этого нужна или система искусственного интеллекта, или, как вариант, нужно блокировать весь входящий трафик. Искусственный интеллект появится еще нескоро (если вообще появится), ну а блокировать весь трафик, чтобы добиться уничтожения 100% спама - это как бороться с перхотью при помощи гильотины.

Универсального способа победить спам не существует. Все почтовые системы используют комбинации вышеописанных методов. Как правило, они отсеивают около 90-95% спама, но не больше. Увеличить данный показатель можно только за счет повышения ложных срабатываний. Это неприемлемо. В массовой, не персонализированной системе фильтрации показатель в 95-98%, судя по всему, даже теоретически недостижим3.

(Продолжение следует)

Анатолий АЛИЗАР

Материал подготовлен при содействии хостинг-провайдера "Экстмедиа"

1 lenta.ru/news/2005/07/25/english

2 paulgraham.com/spam.html

3 "Принципы и технические методы работы с незапрашиваемой корреспонденцией". Илья Сегалович и др. (company.yandex.ru/articles/spamooborona.html)


Подробнее об RBL:

Обсуждение "RBL: вред или польза?" (spamtest.ru/document?discuss=22&context=1)

Обсуждение "Spamhaus Project загибается от судебных исков" (habrahabr.ru/blog/columns/7074.html)

Версия для печатиВерсия для печати

Номер: 

16 за 2007 год

Рубрика: 

Internet
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!