Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #74, ЯНВАРЬ 2007 г.

все починим

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

Хакер, номер #074, стр. 010


давим спам прямо на сервере

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

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

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

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

[арсенал средств борьбы]

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

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

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

[инь и янь — черные и белые списки]

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

Несмотря на все усилия по консолидации, эффективность DRBL-баз крайне низка и они отсеивают порядка 20% — 30% спамерных писем. Оценки в 80%, приводимые некоторыми аналитиками, явно завышены. Тем не менее, основная ценность DRBL-баз в том, что они блокируют поступление нежелательной корреспонденции еще на «излете», позволяя сэкономить на трафике и это, пожалуй, их единственное достоинство.

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

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

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

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

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

Естественно, встает вопрос, как разобраться со всем этим хозяйством, кого использовать, кому доверять? Для этой цели и был создан ресурс «Blacklists Compared», сравнивающий различные DRBL-базы по эффективности и приводящий еженедельные отчеты, доступные для всеобщего обозрения: www.sdsc.edu/~jeff/spam/Blacklists%5FCompared.html.

Другой интересный ресурс — www.trustedsource.org — позволяет в реальном времени отслеживать почтовую активность различных доменов и IP-адресов, позволяя выявить «горячие точки». Эдакие своеобразные огнедышащие вулканы, из которых вместо лавы извергается спам.

Имеются в Сети и своеобразные ловушки для спамеров, устроенные по типу капкана (например, http:///cbl.abuseat.org), собирающие IP-адреса серверов, хотя бы однажды приславших им письмо, которого никто не ждал. Список адресов не разглашается напрямую, но любой желающий может ввести интересующий его IP и бесплатно получить информацию — был ли он замечен в спамерской активности или нет.

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

[фильтруй базар]

Простейшие фильтры используют тривиальный сигнатурный анализ, сканирующий письма на предмет наличия характерных рекламных сообщений (отправить пять долларов, увеличить, всунуть, вложить), что очень хорошо работает в кооперации с DRBL-базами. Имея в своем распоряжении всего одно рекламное письмо, мы со 100% надежностью отследим все остальные (на многих почтовых серверах с web-интерфейсом есть ссылка «пожаловаться на спам», а пользователи Outlook Express, The Bat! и других клиентов могут, согласно RFC-822, пересылать такие письма на адрес abuse@domain.xxx, где domain.xxx – имя их почтового сервера, однако, далеко не везде и не всегда администратор почтовика реагирует надлежащим образом). Процент ложных срабатываний у правильно настроенного сигнатурного фильтра относительно невысок и в этом его главная слабость. Стоит спамеру слегка видоизменить тело письма, как оно уже проходит мимо него незамеченным.

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

Лингвистические фильтры самые сложные и самые интеллектуальные. Они же самые эффективные. Лучшие программы распознают от 80% до 90% спамерских сообщений, а в некоторых случаях — еще больше. К сожалению, вместе с этим возрастает и процент ложных срабатываний — многие законопослушные письма расстреливаются без суда и следствия. Но, как говорится, лес рубят — щепки летят!

Алгоритмы распознавания — самые разнообразные, в том числе и чисто статистические. Берем коллекцию спамерской корреспонденции, накопленную за длительное время, и подсчитываем частоту использования различных слов (и их комбинаций), затем проделываем тоже самое для коллекции «честной» корреспонденции и выделяем набор критериев (со своими весовыми значениями), позволяющих с той или иной вероятностью оценить категорию данного письма. Максимум, что на что способен такой фильтр — переместить письмо в junk-folder или каким-то другим способом пометить его, чтобы пользователь не дергался каждый раз, отрываясь от работы, а разгребал отфильтрованные завалы в сводное время.

Настоящая революция в лингвистических фильтрах произошла в августе 2002 года. Началась она не с выстрела Авроры, а со статьи «A Plan for Spam» Пауля Грэхма (Paul Graham) в которой он предложил использовать древнюю теорему Байеса (Bayesian theory) для распознавания спама: www.paulgraham.com/spam.html. А тремя годами позже вышла книжка «Ending Spam», добившая спам окончательно: amazon.com/exec/obidos/tg/detail/-/1593270526.

Собственно, сам Томас Баейс (Thomas Bayes), родившийся в самом начале 18 века, к почтовым рассылкам никакого отношения не имел и занимался статистикой, что позволило ему сформулировать следующую теорему, ставшую одной из основных теорем в теории вероятностей. Пусть A1, A2,..., An — некоторые попарно несовместимые события, хотя бы одно из которых обязательно наступает, и В — некоторое событие. Тогда, при наступлении события B, условная вероятность Ак может быть вычислена по определенной математической формуле, приведенной и в Большой Советской Энциклопедии и на Википедии: http://en.wikipedia.org/wiki/Bayesian_probability. Впрочем, Большая Советская Энциклопедия похоронила Теорему Байеса следующими словами: «Теорему Баейса долгое время рассматривали как основу для статистических выводов из результатов наблюдений. Однако в применениях, как правило, отсутствуют достаточно обоснованные данные об априорных вероятностях гипотез. В силу этого Теорема Баейса потеряла свое значение». А вот и не потеряла, даже приобрела! Анти-спамерские фильтры, основанные на Теореме Баейса (Bayesian spam filtering), в наши дни относятся к категории самых бурно развивающихся, самых популярных и самых эффективных. Минимум убитых писем, максимум прибитого спама. Подробности также на Википедии: http://en.wikipedia.org/wiki/Bayesian_filtering.

[супермаркет программного обеспечения]

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

В первую очередь следует обратить внимание на коллекцию открытых Bayesian-фильтров: http://spambayes.sourceforge.net/related.html. На них базируются многие продукты, реализованные как POP-Proxy сервера и как плагины к популярным почтовым клиентам. Там же можно найти множество технической информации относительно самих Bayesian-алгоритмов и вступить в ряды разработчиков. К сожалению, в силу определенных технических трудностей, реализация полостью серверного Bayesian-фильтра (server-side Bayesian-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 за одного пользователя в год.

Kaspersky Anti-Spam (www.kaspersky.ru/lin_antispam) навряд ли нуждается в комментариях. Это чисто серверный продукт, причем ориентированный совсем не на Windows NT/Server 2003/Longhorn, а работающий под LINUX/FreeBSD и реализующий целый комплекс противоспамерских методик: фильтрацию с поддержкой черных (DRBL) и белых списков, сигнатурный поиск (распознающий в том числе и графический спам), анализ формальных признаков спама и лингвистические эвристики, алгоритмы которых не разглашаются, но судя по всему работают они вполне успешно. Kaspersky Anti-Spam используемся многими крупными компаниями, среди которых значится и почтовый сервис mail.ru. Стоит это добро всего $110 и работает целый год, после чего платить приходится снова.

Не отстает от Касперского и Symantec со своим Norton Antispam (www.symantec.com/searchlanding/antispam), входящим в состав пакета Norton Internet Security, реализованного для операционных систем: Microsoft Windows 2000 Server, Windows Server 2003, Sun Solaris 9/10, Red Hat Linux ES/AS 3.0. Естественно, имеются и клиентские модули, впрочем, они недостаточно эффективны.

Лучшими клиентским анти-спамерским решением для The Bat'а является плагин BayesIt! (www.ritlabs.com/ru/solutions/BayesIt.php). Работает он, как и следует из названия, по алгоритму Баейса, причем довольно успешно. Однако, этой «успешностью» могут насладиться лишь те, кому наплевать на трафик — как ни крути, а скачивать письма с сервера все равно приходится и определить их спамерскую принадлежность по одним лишь заголовкам BayesIt! не в силах!

[заключение]

Пользователи бесплатных почтовых систем не могут влиять на политику борьбы со спамом и по большому счету им совершенно все равно, что там на сервере стоит — Касперский или Нортон. Если спама станет приходить слишком много или, наоборот, не станет приходить то, что должно было прийти, они просто сменят север, благо сейчас их... А вот администраторы локальных сетей стоят перед суровой экономической задачей, которую без калькулятора (и поллитры) не решить. Если забыть о пиратстве и за устанавливаемые фильтры честно платить по счетам, то... убытки от спама могут показаться не такими уж и значительными. Если же алгоритмы фильтрации работают с уже полученным письмами, с этим легко справляется и бесплатный BayesIt!

самые лучшие и могучие

Следующий набор DRBL-баз позволяет обнаруживать до 30% спамерских писем:

list.dsbl.org

dnsbl.njabl.org

sbl.spamhaus.org

proxies.blackholes.easynet.nl

www.openrbl.org

система автоматизированного поиска по базам на предмет «репутации»

www.sdsc.edu/~jeff/spam/Blacklists%5FCompared.html

сравнение различных DRBL-баз по эффективности

http:///cbl.abuseat.org

пример ловушки для спамера

www.paulgraham.com/spam.html

теорему Байеса для распознавания спама

http://spambayes.sourceforge.net/related.html

коллекция открытых Bayesian-фильтров

www.spamfighter.com

SPAMfighter

www.kaspersky.ru/lin_antispam

Kaspersky Anti-Spam

www.symantec.com/searchlanding/antispam

Norton Antispam

www.ritlabs.com/ru/solutions/BayesIt.php

анти-спамерское решение для The Bat'а

Содержание