no-spam

давим спам на сервере и клиенте

крис касперски ака мыщъх

методики борьбы со спамом непрерывно совершенствуются: образуются распределенные центры, ведущие «черные списки», создаются изощренные программные фильтры, предназначенные как для провайдеров, так и для простых людей. какие технические средства сопротивления существуют на данный момент, чем они отличаются от друг друга, где их достать и как правильно настроить и установить? поразительно, но даже крупные провайдеры зачастую совершенно не осведомлены в этих вопросах. бедные их клиенты… собственно, главным образом, статься рассчитана на администраторов локальных сетей, поскольку с клиентской стороны очень мало что можно сделать…

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

Владельцы бесплатных почтовых ящиков больше всех озабочены проблемой и прилагают значительные усилия для подавления спама, ведь вводить в строй дополнительные аппаратные мощности и прокладывать новые каналы им приходится из своего кармана. От спама страдают и корпоративные сети, поскольку огромное количество писем не только парализует нормальную работу сотрудников, но и составляет существенную статью расхода от общего процента полезного трафика. Коммерческие провайдеры, предоставляющие почтовые ящики в комплексе с остальными услугами по выходу в Интернет, к спаму относятся нейтрально (а, зачастую, и сами являются спаммерами). Ведь трафик оплачивает клиент, так что чем больше корреспонденции он получит — тем лучше! Ну а бороться за «качество сервиса» — просто смешно. Доход от «продажи» почтовых ящиков слишком мал, да и большинство пользователей отдают предпочтение бесплатным службам, не связанными с конкретными провайдерами.

Рисунок 1 шампанское заказывали?! (The Bat! автоматически распознал спамерское письмо, пометив его красным конвертом, но толку от этого ровно ноль — ведь загрузить его с сервера все равно пришлось!)

Отношение самих пользователей к спаму самое разное, но чем медленнее (и дороже!) канал, соединяющий человека с «внешним миром», тем острее он реагирует на каждое нежелательное письмо, упавшее в его ящик. Увы, с клиентской стороны очень мало, что можно сделать. Ведь, чтобы определить спам это или не спам, фильтр должен скачать письмо с сервера. И какая радость от того, что «левая» корреспонденция будет автоматически перемещена в «корзину» или в junk-folder?! Тратить время на перекачку и оплачивать трафик нам все равно придется. Владельцем скорострельных DSL-модемов это, может быть, и ничего, а вот простых «диалапщиков» это очень сильно напрягает, не говоря уже про тех, кто выходит в сеть через GPRS (к примеру, в нашей дыре 1 Мегабайт стоит 15 рублей).

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

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

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

На почтовый сервер устанавливается анти-спамерский фильтр, пропускающий «правильные» письма и палящий всю непрошеную корреспонденцию. Различные классификаторы выделяют от двух до четырех методов фильтрации. Мыщъх придерживается мнения, что _основных_ методов все же два, а остальные — их подтипы. Это: а) ведение «черных» и «белых» списков адресов и б) анализ содержимого письма (сигнатурный, формальный и лингвистический).

Рассмотрим каждый из этих методов поподробнее.

Практически все крупные «почтовики» подключены к распределенным базам данных (DRBL — DistributedReal-timeBlockingList), содержащих IP-адреса серверов (и даже целые подсети!), замеченных (или заподозренных) в спаммерской активности и обновляемых в реальном времени каждые несколько минут. Стоит только клиентам одного провайдера пожаловаться на спам, как база пополняется новой записью, IP-адресу (адресам) с которого производилась рассылка выставляется бан, перекрывающий спамеру кислород. В среднем на подавление рассылки уходит до 15 минут, но учитывая пропускную способность современных каналов связи за это время спамеру удается разослать миллионы писем!

Несмотря на все усилия по консолидации, эффективность DRBL-баз крайне низка и они отсеивают порядка 20%  - 30% спаммерных писем. Оценки в 80%, приводимые некоторыми аналитиками, явно завышены. Тем не менее, основная ценность DRBL-баз в том, что они блокируют поступление нежелательной корреспонденции еще на «излете», позволяя сэкономить на трафике и это, пожалуй их единственное достоинство. О том, какие они создают проблемы, можно написать целый талмуд. Самый простой пример: клиент провайдера устроил массовую рассылку, желая подзаработать на рекламе. Провайдеру выставили бан, лишив _всех_ _остальных_ клиентов возможности переписки с «внешним» миром. А снятие бана требует значительных телодвижений и к тому же обходится, как правило, не бесплатно (в среднем что-то около $30). Многие серверы (особенно корпоративные) отказываются иметь дело с бесплатными почтовыми службами, зарезая всю поступающую от них корреспонденцию на корню. Тоже самое относится к почтовым ящикам, предоставленных провайдерами, попавшими в «черный список» и оставшихся там. Хуже всего, что ситуация с DRBL-базами переменчива как погода в осенний день. Еще вчера «все работало» и вдруг сегодня письма внезапно перестали ходить. Пользователи психуют и нервничают, а провайдеры (оторванные от распития пива и раскуривания только что забитого косяка) матерясь, пытаются разобраться кто и на кого выставил бан и как этот бан можно снять.

Некоторые администраторы почтовых серверов (и встречаются же такие…) заносят в черный список всех, кроме себя и, чтобы отправить им письмо, приходится драть задницу на мелкие куски. Прошли те времена, когда проблема решалась прямым соединением с почтовым сервером получателя. Технически, положить письмо в его ящик, минуя промежуточные сервера, вполне возможно, достаточно указать его MX-адрес в качестве SMTP-сервера своего любимого почтового клиента. Единственный минус этого решения был (и есть!) в том, что такой SMTP-сервер, не являясь реелем, может рассылать письма только по своим локальным адресам (т. е. на роль транзитного сервера он никак не тянет), причем, если SMTP-сервер получателя перегружен, отключен от сети или вдруг завис, то релей (в лице почтовой службы типа mail.ru) будет автоматически пытаться доставить письмо вновь и вновь, а при «прямой» пересылке это приходится делать вручную. Это, конечно, минус. Зато можно рассылать письма минуя фильтры, установленные на крупных почтовых службах, чем с успехом и пользуются спамеры. Как следствие, администраторы настраивают свои SMTP-сервера так, чтобы они получали почту только от доверенных релеев и блокировали всех остальных. Мера не столько суровая, сколько вынужденная, поскольку, если на заре развития Интернета двух мегабитный канал был пределом мечтаний крупных провайдеров, то сейчас куча компаний предлагает сто мегабитные каналы по смешной цене и «прямую» рассылку может осуществить любой желающий, а желающих столько, что каждого не забанишь.

Рисунок 2 главная страничка DRBL-базы www.SpamCop.net

Из всех DRBL-баз в первую очередь хотелось бы отметить www.SpamCop.net (коммерческая, с ценой членства в 30 убитых енотов в год) и www.SORBS.net (спонсируемая такими компаниями как Sun Microsystems, Sourceforge и потому предлагающая бесплатное членство всем желающим).

Рисунок 3 «лицо» DRBL-базы SORBS

Очень удобна система автоматизированного поиска по большому количеству баз на предмет «репутации» данного IP-адреса: www.openrbl.org, выполняющая reverse-DNSquery (определение доменного имени по IP), complete-whois (детальная информация по узлу), поиск данного IP в телеконференциях и, собственно, сам статус адреса по каждой из баз, коих там десятки.

Рисунок 4 получение информации об IP-адресе и его обладатели с помощью сервиса OPENRBL, ведущим автоматический поиск по многим DRBL-базам

Большой перечень всевозможных DRBL-баз собран на сервере http://www.moensted.dk/spam, где счет идет уже не на десятки, а на сотни:

Рисунок 5 самый полный список действующих DRBL-баз

Естественно, сразу же встает вопрос: как разобраться со всем этим хозяйством, кого использовать, кому доверять? Для этой цели и был создан ресурс «BlacklistsCompared», сравнивающий различные DRBL-базы по эффективности и приводящий еженедельные отчеты, доступные для всеобщего обозрения: http://www.sdsc.edu/~jeff/spam/Blacklists%5FCompared.html__ Другой интересный ресурс — http://www.trustedsource.org — позволяет в реальном времени отслеживать почтовую активность различных доменов и IP-адресов, позволяя выявить «горячие точки», эдакие своеобразные огнедышащие вулканы, из которых вместо лавы извергается спам. Рисунок 6 мониторинг распределения спамерской активности по миру, доменными именам и IP-адресам (как видно, больше всех страдают штаты и аляска, которая де-юре уже давно принадлежит нам) Имеются в сети и своеобразные ловушки для спамеров, устроенные по типу капкана (например, http:/cbl.abuseat.org), собирающие IP-адреса серверов, хотя бы однажды приславших им письмо, которого никто не ждал. Список адресов не разглашается напрямую, но любой желающий может ввести интересующий его IP и бесплатно получить информацию — был ли он замечен в спамерской активности или нет. «Белые списки» ведутся самими клиентами (или администраторами почтовых узлов) самостоятельно и содержат адреса доверительных серверов, принимать корреспонденцию от которых необходимо вне зависимости от того, используются ли они спамерами или нет. Обычно в белые списки попадают узлы, «транслирующие» почту от важных респондентов, потеря писем от которых доставляет большие неприятности (или убытки). Однако, как показывает статистика, подавляющее большинство пользователей о белых списков даже и не подозревает! ===== »> врезка самые популярные, самые лучшие и могучие ===== Следующий набор DRBL-баз позволяет обнаруживать до 30% спаммерских писем: - list.dsbl.org; - dnsbl.njabl.org; - sbl.spamhaus.org; - proxies.blackholes.easynet.nl ===== фильтруй базарчик! ===== Простейшие фильтры используют тривиальный сигнатурный анализ, сканирующий письма на предмет наличия характерных рекламных сообщений (отправить пять долларов, увеличить, всунуть, вложить), что очень хорошо работает в кооперации с DRBL-базами. Имея в своем распоряжении всего одно рекламное письмо, мы со 100% надежностью отследим все остальные (на многих почтовых серверах с web-интерфейсом есть ссылка «пожаловаться на спам», а пользователи Outlook Express, The Bat! и других клиентов могут, согласно RFC-822, пересылать такие письма на адрес abuse@domain.xxx, где domain.xxx – имя их почтового сервера, например, abuse@i.kiev.ua, однако, далеко не везде и не всегда администратор почтовика реагирует надлежащим образом). Процент ложных срабатываний у правильно настроенного сигнатурного фильтра относительно невысок и в этом его главная слабость. Стоит спамеру слегка видоизменить тело письма, как оно уже проходит мимо него незамеченным. Анализ по формальным критериям так же относится к числу простейших и сверяет письмо с набором определенных шаблонов, характерных для массовой рассылки, но редко встречающихся в обычных письмах: большое количество получателей, отсутствие в заголовке имя получателя и отправителя, поддельный или несуществующий адрес отправителя, пустое письмо с одной большой картинкой и случайно сгенерированной текстовой абракадаброй, предназначенной для «ослепления» сигнатурных анализаторов (кстати, в графические изображения так же могут вносятся стохастические искажения, препятствующие сигнатурному анализу). Формальные фильтры автономны, не требуют связи с DRBL-базами, очень быстро работают (зачастую «паля» письмо по одному лишь заголовку), практически не дают ложных срабатываний, но распознают незначительный процент спамерских сообщений, что и неудивительно, т. к. послание, оформленное по всем правилам «этикета», ими благополучно пропускается. Лингвистические фильтры самые сложные и самые интеллектуальные. Они же самые эффективные. Лучшие программы распознают от 80% до 90% спамерских сообщений, а в некоторых случаях — еще больше! К сожалению, вместе с этим возрастает и процент ложных срабатываний — многие законопослушные письма расстреливаются без суда и следствия. Но, как говорится: лес рубят — щепки летят! А вот хвост рубить не надо! Он мыщъх'у еще пригодится! Алгоритмы распознавания — самые разнообразные, в том числе и чисто статистические. Берем коллекцию спамерской корреспонденции, накопленную за длительное время и подсчитываем частоту использования различных слов (и их комбинаций), затем проделываем тоже самое для коллекции «честной» корреспонденции и выделяем набор критериев (со своими весовыми значениями), позволяющих с той или иной вероятностью оценить категорию данного письма. Ерунда, конечно. Максимум, что на что способен такой фильтр — переместить письмо в junk-folder или каким-то другим способом пометить его, чтобы пользователь не дергался каждый раз, отрываясь от работы, а разгребал отфильтрованные завалы в сводное время. Рисунок 7 статистический фильтр, проанализировав письмо, присвоил ему спам-рейтинг 3 (поле«X-SpamTest-Rate:»), что по десятибалльной шкале означает: «spamnotdetected» (поле «X-Spam:») Настоящая революция в лингвистических фильтрах произошла в августе 2002 года, только началась она не с выстрела Авроры, а со статьи «APlanforSpam» Пауля Грэхма (Paul Graham) в которой он предложил использовать древнюю теорему Байеса (Bayesiantheory) для распознавания спама: http://www.paulgraham.com/spam.html, а тремя годами вышла книжка «EndingSpam», добившая спам окончательно: amazon.com/exec/obidos/tg/detail/-/1593270526. Собственно, сам Томас Баейс (ThomasBayes), родившимся в самом начале 18 века, к почтовым рассылкам никакого отношения не имел и занимался статистикой, что позволило ему сформулировать следующую теорему, ставшую одной из основных теорем в теории вероятностей: пусть A1, A2,…, An  — некоторые попарно несовместимые события, хотя бы одно из которых обязательно наступает, и В — некоторое событие. Тогда, при наступлении события B, условная вероятность Ак может быть вычислена по определенной математической формуле, приведенной и в Большой Советской Энциклопедии и на Википедии: http://en.wikipedia.org/wiki/Bayesian_probability, но не математикам вникать в нее совершенно необязательно. Лучше сразу забить (косяк). Впрочем, Большая Советская Энциклопедия похоронила Теорему Байеса следующими словами: «Теорему Баейса долгое время рассматривали как основу для статистических выводов из результатов наблюдений. Однако в применениях, как правило, отсутствуют достаточно обоснованные данные об априорных вероятностях гипотез. В силу этого Теорема Баейса потеряла своё значение». А вот и не потеряла! Даже приобрела! Анти-спамерские фильтры, основанные на Теореме Баейса (Bayesianspamfiltering), в наши дни относятся к категории самых бурно развивающихся, самых популярных и самых эффективных. Минимум убитых писем, максимум прибитого спама. Подробности как всегда на Википедии: http://en.wikipedia.org/wiki/Bayesian_filtering. ===== супермаркет программного обеспечения ===== Теория — это хорошо и правильно. Но на голых знаниях далеко не уедешь. Нам бы пулемет, да чтобы с патронами. Ну или на худой конец софтину какую-нибудь. Желательно, подешевле. Программ имеется великое множество. Как серверных, так и клиентских (впрочем, бесперспективность клиентских решений мы уже отмечали). В первую очередь следует обратить внимание на коллекцию открытых Bayesian-фильтров: http://spambayes.sourceforge.net/related.html, на которых базируются многие продукты, реализованные как POP-Proxy сервера и как плагины к популярным почтовым клиентам. Там же можно найти множество технической информации относительно самих Bayesian-алгоритмов и вступить в ряды разработчиков. К сожалению, в силу определенных технических трудностей, реализация полостью серверного Bayesian-фильтра (server-sideBayesian-filter) открытым сообществом пока не планируется и приходится обращаться к другим производителям, а они, редиски такие, — денежку хотят (но, учитывая суровую действительность российский условий, они ее вряд ли получат). Среди отечественных разработок выделяется Eserv/3 сервер, с интегрированным AntiSpam-фильтром, имеющий как серверные так и клиентские версии, «переваривающий» все основные почтовые протоколы (SMTP/POP3/IMAP/HTTP), реализующий Bayesian-фильтр и поддерживающий работу с DRBL-базами. Однако, продукт все же еще «сыроват», а сайт (http:eproxy.etype.net) содержит множество незаполненных страничек типа «under construction», тем не менее и полезной информации на нем предостаточно. Другой европейский продукт — SPAMfighter(www.spamfighter.com), созданный двумя датскими парнями, реализован в виде расширения для серверов Microsoft Exchange 2000/Microsoft Exchange 2003 и Outlook Express (кстати говоря, сайт компании поддерживает 12 языков, среди которых есть и русский). По сообщению компании он используется на 2.046.366 серверах в 212 странах, что говорит о серьезности продукта и его готовности к «промышленной» эксплуатации. Останавливает лишь то, что за него просят $25 за одного пользователя в год (впрочем, у компании предусмотрена гибкая система скидок). Рисунок 8 отсюда можно скачать демонстрационную версию SPAMfighter'а Kaspersky Anti-Spam (www.kaspersky.ru/lin_antispam) навряд ли нуждается в комментариях (отдел маркетинга не простаивает и по объему рекламы вполне может соперничать со спамом, на борьбу с которым он претендует). Это чисто серверный продукт, причем ориентированный совсем не на Windows NT/Server 2003/Longhorn, а работающий под LINUX/FreeBSD и реализующий целый комплекс противо-спаммерских методик: фильтрацию с поддержкой черных (DRBL) и белых списков, сигнатурный поиск (распознающий в том числе и графический спам), анализ формальных признаков спама и лингвистические эвристики, алгоритмы которых не разглашаются, но судя по всему работают они вполне успешно. Kaspersky Anti-Spam используемся многими крупными компаниями, среди которых значится и почтовый сервис mail.ru. Стоит это добро всего $110 и работает целый год, после чего платить приходится снова (правда, количество пользователей не ограничено). Рисунок 9 принцип работы Kaspersky Anti-Spam'а Не отстает от Касперского и Symantec со своим NortonAntispam (www.symantec.com/searchlanding/antispam), входящим в состав пакета NortonInternetSecurity, реализованного для кучи операционных систем: Microsoft Windows 2000 Server, Windows Server 2003, Sun Solaris 9/10, Red Hat Linux ES/AS 3.0, и охватившего собой более 40 стран. Естественно, имеются и клиентские модули, впрочем, они недостаточно эффективны. Лучшими клиентским анти-спаммерским решением для The Bat'а является плагин BayesIt! (http://www.ritlabs.com/ru/solutions/BayesIt.php__), работающий, как и следует из его названия, по алгоритму Баейса, причем довольно успешно. Однако, этой «успешностью» могут насладиться лишь те, кому наплевать на трафик, а пропускную способность канала редкая птица в здравом уме долетит до середины. Как ни крути, а скачивать письма с сервера все равно приходится и определить их спамерскую принадлежность по одним лишь заголовкам BayesIt! не в силах!

Пользователи бесплатных почтовых систем не могут влиять на политику борьбы со спамом и по большому счету им совершенно все равно что там на сервере стоит — Касперский или Нортон. Если спама станет приходить слишком много или, наоборот, не станет приходить то, что должно было прийти, они просто сменят север, благо сейчас их… А вот администраторы локальных сетей стоят перед суровой экономической задачей, которую без калькулятора (и поллитры) не решить. Если забыть о пиратстве и за устанавливаемые фильтры честно платить по счетам, то… убытки от спама могут показаться не такими уж и значительными. Даже исходя из наших деревенских расценок на трафик (рубль за мегабайт), чтобы Kaspersky Anti-Spam окупил себя, он должен подавить свыше 3 Гигабайт спама, а это у него навряд ли получится, ибо эффективность DRBL-баз, как уже отмечалось выше, составляет едва ли 30%, плюс трафик, расходующихся на «общение» с ними. Остальные алгоритмы фильтрации работают с уже _полученным_ письмами, а потому платить за трафик все-таки приходится и вся «прелесть» системы фильтрации только в том, что сотрудники компании не будет отвлекаться от работы ненужной корреспонденцией, но с этим легко справляется и бесплатный BayesIt!

Приобретение дорогостоящих серверных анти-спаммерских фильтров с экономической точки зрения совершенно неоправданно. Помимо качества фильтрации следует учитывать еще и _реальный_ выигрыш, который они якобы дают. Почему почтовой системе mail.ru выгодно использовать фильтр Kaspersky Anti-Spam, а администратору локальной сети — нет? Да потому, что с mail.ru пользователи утягивают спам по _платному_ трафику (оплачиваемому владельцами mail.ru), а трафик локальной сети — бесплатен! В общем, борьба со спамом — дело хитрое, можно даже сказать, восточное и однозначных решений, устаивающих всех, здесь нет.