Кто стучится в дверь ко мне
АрхивПоиск средств, предохраняющих от спама, скоро начнет напоминать поиски философского камня или вечного двигателя. Толку от имеющихся на сегодня средств блокирования спама не очень-то много. Хотя более точной аналогией, наверное, является знаменитый парадокс Зенона. Возможно, новоявленные Ахиллы все же догонят черепаху - оригинальный способ борьбы со спамом разработал американский программист Пол Грэм (Paul Graham).
Поиск средств, предохраняющих от спама, скоро начнет напоминать поиски философского камня или вечного двигателя. Толку от имеющихся на сегодня средств блокирования спама не очень-то много. Хотя более точной аналогией, наверное, является знаменитый парадокс Зенона. Возможно, новоявленные Ахиллы все же догонят черепаху - оригинальный способ борьбы со спамом разработал американский программист Пол Грэм (Paul Graham).
Всякий, кто имеет маломальский опыт работы с электронной почтой, хотя бы раз почувствовал всю прелесть удаления нежелательных сообщений из почтового ящика. На их беглый просмотр и удаление тратится масса времени, не говоря уже о трафике и нервах, а программные фильтры не всегда справляются с сортировкой и отсеиванием. Иногда случается, что спам до вас доходит, а вот рабочие письма оказываются к этому спаму приравнены и отсеяны. Неудивительно, что совершенствование фильтров не прекращается ни на минуту.
Недавно Пол Грэм представил на суд общественности статью, посвященную новому эффективному методу противодействия рекламным рассылкам. После долгой и в меру успешной работы по созданию разнообразных фильтров он пришел к выводу об эффективности применения методов математической статистики и предложил для фильтрации спама использовать формулу Байеса. Вкратце ее можно описать так: это правило, при котором выбирается порог, сводящий к минимуму средний риск принятия решений. Под средним риском подразумевается взвешенная сумма вероятностей различных ошибок.
Суть грэмовских изысканий сводится к следующему: отсеивание спама на основе анализа содержимого письма в принципе справедливо. Однако зачисление письма в спам, исходя из содержания в нем характерных слов или выражений, слишком прямолинейно и не совсем эффективно. Скажем, если в контексте личного письма есть словосочетание «грандиозная скидка», то есть шанс, что письмо будет признано спамом и заблокировано. Простой фильтр, созданный Грэмом, отсеял около 80% спама и 1,2% обычных писем. Следовательно, необходимо было создать какой-то механизм, который может обобщить все спорные характеристики и вынести взвешенное решение по каждому письму, не рубя с плеча. Грэм решил использовать методы теории вероятностей и разработал алгоритм отсева, основанный на формуле Байеса: p(Hi|UiI)=p(Hi|I)*p(Ui|HiI)/p(Ui|I), где p(Hi|I) - начальная вероятность того, что гипотеза H верна, исходя из имеющегося опыта I; p(Ui|I) - вероятность наблюдения события Ui, исходя только из опыта I; p(Ui|HiI) - вероятность наблюдения события Ui, исходя как из опыта I, так и из гипотезы Hi; p(Hi|UiI) - постериорная вероятность истинности гипотезы Hi на основании опыта I и полученных экспериментальных наблюдений Ui.
Как мы уже знаем, формула описывает некий выбор порога значений, сводящий к минимуму средний риск принятия решения. Как же это все работает? По большому счету у Грэма получилась не очень сложная система, подсчитывающая сумму рисков. К программе-фильтру создается база данных, содержащая наиболее часто употребляемые в рекламных рассылках слова. Каждому из этих слов присваивается индекс, описывающий уровень вероятности того, что письмо, в котором встречается это слово, является спамом. Очевидно, что для слов типа «ххх», «порно» или прочих индикаторов спама, например таким на первый взгляд неочевидным сочетаниям, как FF0000 (код красного цвета в HTML, особо любимого спаммерами), будет присвоен индекс повышенной опасности. И наоборот, низкий уровень риска - для слов и выражений из профессионального лексикона пользователя. Суммарный индекс и будет подсчитываться по формуле Байеса.
Интересен способ борьбы с рекламными объявлениями, подстроенными под существующие фильтры, то есть составленными без характерных слов и выражений. Все-таки любое рекламное объявление строится по законам жанра. Поэтому обычному слову «Калифорния» (низкий уровень риска), но написанному жирным шрифтом (средний уровень риска) - любят спаммеры жирные шрифты, - уже присваивается индекс повышенной опасности. Примерно так же обстоит дело со словосочетаниями. Слово «предложение» имеет низкий уровень риска, но если оно следует за словом «специальное», то автоматически переходит в разряд опасных, не говоря уже о фразе «Только сегодня - специальное предложение по супернизкой цене!!!»
Но это еще не все. Как утверждает Пол Грэм, для действительного повышения эффективности система должна использовать настройку индивидуальных параметров, поскольку у каждого человека свой лексикон. Если же пользователь будет постоянно отмечать письма с рекламой как спам, то база данных программы сможет вместить в себя достаточно информации для эффективной работы фильтров электронной почты.
При тестировании Грэм сформировал почтовую базу из восьми тысяч писем, половина которых - личного и делового характера. Результат обработки этой базы впечатляет. Было пропущено только полпроцента спама, а количество ошибочных срабатываний фильтра, основанного на вероятностном подходе, оказалось равным нулю. При этом никаких индивидуальных настроек не производилось, а Грэм считает их использование одной из составляющих успеха.
Что касается практических разработок, то Грэм написал вариант своего фильтра на созданном им самим языке Arc (нечто родственное LISP). Также известен проект spambayes (spambayes. sourceforge.net), который базируется на слегка модифицированных разработках Грэма. Он реализован на Python, однако авторы честно предупреждают, что существует пока лишь предварительная версия фильтра для внутреннего использования и никаких гарантий нормальной работы кода они дать не могут.
Впрочем, не только теорией вероятности жив человек. Несомненно, что наиболее эффективно отфильтровывать спам могут именно люди. Это соображение положено в основу разработки компании Cloudmark (www.cloudmark.com) - SpamNet (p2p-сеть, пользователи которой обмениваются информацией о рекламных рассылках). На практике все реализуется следующим образом. Пользователь загружает плагин к Outlook, который является клиентом сети Spamnet. Теперь при получении спама достаточно нажать кнопку Block, после чего программа автоматически уведомляет центральные базы данных Cloudmark, которые в свою очередь создают фильтр, добавляемый к вашему почтовому клиенту и отсылающий подобные письма в папку со спамом. Теория вероятности здесь тоже пригодилась, но немного в другом контексте. На тот случай, если какой-нибудь шутник обзовет ваше письмо спамом и отправит сообщение об этом на сервер, существует «система оценки истинности». Ее суть в следующем: каждый обладатель программы SpamNet имеет определенный рейтинг, непосредственно влияющий на принятие решений о создании фильтра. Если вы - новый пользователь, то для создания фильтра по вашему запросу необходимы аналогичные заявления от определенного числа других пользователей. Соответственно, чем больше фильтров создано при вашем участии, тем выше ваш рейтинг. Чем больше вы «шутите» - тем рейтинг ниже.
В настоящий момент поддерживается Outlook 2000/XP, вскоре обещают поддержку Outlook Express. Последние достижения сведены в забавную таблицу: борцов со спамом - более 82 тысяч, сэкономленное время - почти 5 тысяч часов, обработанных за день писем - 5,5 миллиона, из них спама - почти 2 миллиона писем.
Среди основных соратников-конкурентов Cloudmark по борьбе со спамом самые прочная позиция у компании Brightmail (www.brightmail.com), занимающей примерно 45% американского антиспамерского рынка. Услугами этой компании пользуются шесть из десяти крупнейших почтовых служб. Недавно компания Microsoft, намучившись с порталом Hotmail, заключила с Brightmail договор о защите 110 млн. пользователей почтового сервиса Hotmail от спама. Среди предложенных возможностей есть отсеивание спама еще до того, как он доходит до адресата. По утверждению представителей Brightmail, их система, работающая на почтовом сервере, способна отсеять до 90% нежелательных писем. Ее активное внедрение начнется с середины октября.
Кроме того, из интересных новинок отметим оригинальный подход американской компании Habeas (www.habeas.com) к борьбе со спамом. На помощь она призвала трепетное отношение юристов к копирайту. Причем если все известные фильтры пытаются отсеять спам, то этот фильтрует обычную переписку, удаляя все послания, которые не соответствуют критериям.
В служебную часть отправляемых писем, по замыслу Habeas, добавляется хокку, наличие которого служит сигналом о том, что это письмо не является рекламным. Поскольку хокку отягощено информацией о копирайте, то воспроизводить его без санкции Habeas нельзя. Использовать хокку могут только зарегистрированные пользователи Habeas, которые получают возможность загрузить программный модуль, помещающий и распознающий хокку в служебной части письма. Подводных камней тут довольно много. Понятно, что анализ писем на наличие в них признаков японской поэзии имеет смысл проводить только тогда, когда наберется достаточное количество зарегистрированных пользователей сервиса. Кроме того, не следует забывать, что существует множество стран (и Россия не исключение), откровенно чихавших на копирайт. К тому же существуют проблемы при рассылке писем сразу на несколько адресов.