Развитие средств общения в Интернете не стоит на месте, сегодня уже не только электронная почта, но и блоги, instant messaging, форумы являются распространенными способами коммуникации в Сети. Изначально данные виды общения оставались незамеченными спамерами, однако, с ростом их популярности ситуация коренным образом изменилась.
С instant messaging это произошло несколько раньше, с блогами, наоборот, позже, однако на сегодняшний день по различным подсчетам уже примерно 10% IM-сообщений и 17% комментариев в блогах – это спам.
Заинтересованность спамеров в новых средствах коммуникации объясняется не только их растущей популярностью и увеличивающейся базой пользователей, но и тем, что средства борьбы со спамом в программах мгновенного общения и блогах находятся в настоящее время в зачаточном состоянии. Во многом в сложившейся ситуации виноваты и сами производители продуктов (в первую очередь это касается IM-мессенджеров). В силу специфики этих приложений только в очень редких случаях у стороннего разработчика есть возможность создать антиспам-плагин к стороннему месенджеру. Так же серьезной проблемой является отсутствие общественного резонанса на эту тему. Сетевая общественность и журналисты почему-то до сих пор не обратили внимания на нарастающие объемы спама в этих продуктах, часто мы сами более лояльно относим к спамеру, если он использует для своей деятельности блоги или Instant Messaging. Если почтовый спам признали опасностью все, и с попытками рассылки почтового спама собственными клиентами борются и провайдеры интернет-услуг, и хостинговые компании, то жалобу на спам в Mail.Ru Agent или блоге abuse-служба провайдера чаще всего просто проигнорирует или же сошлется на отсутствие такого пункта в пользовательском соглашении.
Методы фильтрации спама
Большинство методов фильтрации спама, которые потенциально можно использовать в блогах и месенджерах, всем хорошо известны по опыту фильтрации в почте. Это и списки запрещенных, и контент-анализ текста, контроль дубликатов, анализ заголовков пользовательского агента. Однако, как и в случае фильтрации спама в почте, наиболее эффективны многокомпонентные антиспам-системы, которые сочетают в себе несколько методов детектирования спама вкупе с балльной системой начисления «очков» сообщению или посту в блоге.
Если рассматривать наиболее простые методы, то неплохую эффективность (сравнимую с результатами в почте) показали списки запрещенных, и, хотя это не самое элегантное решение, оно является одним из самым простых в реализации. Как и у пользователей почтового сервера, у большинства локальных IM-серверов и блогов есть свое географическое распределение пользователей. В случае если, например, у российского ресурса появляется чрезмерно высокая активность из австралийских сетей – это повод ужесточить ограничения по количеству отправляемых сообщений или оставляемых комментариев для пользователей из этого региона. Довольно хорошие результаты дает также использование списков запрещенных открытых proxy-серверов.
Хочется особо отметить, что, как и в фильтрации почтового спама, качество фильтра для блогов или мессенджеров должно оцениваться не только хорошими показателями по количеству заблокированного спама, но и минимальным процентом ложных срабатываний.
Особенности методов фильтрации в блогах и мессенджерах
При большом количестве общих методик, у борьбы со спамом в мессенджерах и в электронной почте есть различия, которые не позволяют использовать или делают малоэффективными большинство технических методов, отработанных на почтовом трафике.
Основная проблема заключается в объеме сообщения: сообщения через месенджеры содержат, как правило, мало текста, и это крайне затрудняет автоматический контент-анализ. При применении «в лоб» почтовых алгоритмов определения спама и готовых антиспам-решений на первых трех строчках хит-парада «спамерских» сообщений в мессенджерах будут стоять: «Привет!», «Как дела?» и одиночный смайлик.
В случае использования списков запрещенных категорически нельзя пользоваться довольно эффективными для MX серверов списками динамических сетей провайдеров, так как именно из этих сетей и происходит использование продукта.
Методы фильтрации в блогах
Сразу хочу оговориться, что спам в блогах и форумах может преследовать разные цели – это прямая реклама или косвенное влияние на результаты выдачи поисковых машин. Таким образом, от этой «напасти» страдают не только сами авторы блогов и их читатели, но и пользователи поисковиков.
Условно спам в блогах можно разделить на три вида:
- Первый – это спам, указывающий или рекламирующий какую-либо конкретную услугу или сайт, мы все хорошо с ним знакомы по нашим почтовым ящикам и месенджерам.
- Второй — так называемый «ссылочный спам». Дело в том, что большинство современных поисковых систем использует такой параметр, как «индекс цитирования». Если упростить, то «индекс цитирования» — это популярность ресурса, измеряемая в количестве ссылок на него со страниц других индексируемых сайтов. Соответственно, в чем большем количестве блогов спамер оставит комментарий со ссылкой на ресурс, тем больший индекс цитирования будет иметь рекламируемый сайт, и тем выше он будет стоять в поисковой выдаче.
- Третий тип спама — это так называемые «сплоги». Сплогами принято называть автоматически сгенерированные блоги, создаваемые лишь с одной целью: рекламировать связанные с ним ресурсы. Содержимое сплогов обычно копируется из дневников ничего не подозревающих пользователей или автоматически составляется из статей специализированных сайтов в случае необходимости создания «тематического сплога». Также существуют сплоги с полностью автоматически сгенерированным текстом с помощью алгоритма цепей Маркова или по результатам поисковой выдачи. Естественно каждый сплог «обильно приправлен» ссылками на сайты «рекламодателей» или объявления платных рекламных систем, оплачивающих хозяину сплога переходы пользователей с его ресурса. По различным оценкам в данный момент сплоги составляют от 10 до 30% всех регистрируемых блогов.
Изначально со спамом в блогах и форумах боролись с помощью премодерации и ручной чистки всех сообщений, так же владельцы форумов и блогов вынуждены были вводить обязательную регистрацию или вообще запрещать размещать в сообщениях гиперссылки.
Наиболее старое и проверенное автоматическое решение в борьбе с автоматическим добавлением спам-сообщений в блогах и форумах — это обратный тест Тьюринга. Наиболее популярной его реализацией является CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart – «полностью автоматизированный публичный тест Тьюринга для различия компьютеров и людей»). Суть теста Тьюринга заключается в том, что существуют задачи, которые легко может исполнить человек, но которые очень тяжело реализовать с помощью программных средств. К таким задачам относятся: распознавание образов, текста, человеческой речи, решение детских загадок и т.п. Изначально тест Тьюринга был предназначен для того, чтобы определить, является ли компьютер разумным в человеческом понимании этого слова.
Обратный тест Тьюринга, применяемый для борьбы со спамом, позволяет компьютеру определить — компьютер перед ним или человек. Существует несколько видов обратного теста Тьюринга, применяемых в Интернете: это определение алфавитно-цифровой последовательности на картинке, прослушивание и ввод текста из голосовой звукозаписи и распознавание предмета на картинке или фотографии.
Наиболее трудноразрешимой задачей для автоматизации на сегодня является распознавание голосовой записи, однако этот вид теста не получил большой популярности из-за того, что не все пользователи имеют возможность прослушивать звуковые записи на тех устройствах, с которых выходят в Интернет.
Следующим по сложности автоматического распознавания является тест по определению цифр или букв на автоматически сгенерированных картинках. В данный момент он наиболее популярен и встречается на подавляющем большинстве блогов и форумов. К его плюсам можно отнести сравнительно простую реализацию и возможность отображения картинки на подавляющем количестве пользовательских устройств. Минусы этого метода заключаются в том, что за последние несколько лет в результате бурного развития алгоритмов распознавания текста многие варианты реализации этого метода, используемые в широко известных разработках форумов и блогов, распознаются компьютером с вероятностью до 98%, в результате чего у владельца блога создается чувство ложной защищенности в то время как комментарии к статьям наводняются спамом. Есть и другая отрицательная сторона: те владельцы блогов, которые в соответствии с развитием алгоритма постоянно усложняют методы генерации текста на картинке, зачастую приходят к тому, что текст становится труднораспознаваемым не только для компьютера, но и для человека, особенно имеющего проблемы со зрением.
И самым слабозащищенным вариантом реализации обратного теста Тьюринга является распознавание предмета по заранее заготовленной базе картинок. Плюсы этого метода заключаются в том, что он наиболее легко и быстро распознается человеком, даже имеющим дефекты зрения. Минусы этого метода — ограниченное количество заранее проиндексированных изображений предметов, которые легко подвергаются перебору и составлению соответствия «картинка-значение» на стороне спамера.
Еще один метод борьбы со спамом в блогах — это отключение индексации комментариев поисковыми машинами. Речь идет о специальных тэгах «No Follow» и «No index», которыми владельцы блогов смогут помечать области web-страницы, содержащие комментарии и вообще любые «не свои» записи и ссылки. Естественно, это средство подходит только для борьбы с тем видом спама, который направлен на повышение индекса цитирования сайтов в поисковиках. Против прямых ссылок на сайт спамера или его «рекламодателя» такая технология не будет эффективной, но в любом случае, тэг «No Follow» позволяет несколько снизить привлекательность спама в комментариях блогов.
Также приносит свои плоды и отключение возможности комментировать старые записи в блогах. Статистика показывает, что 97% комментариев к записи пишется в первые несколько недель, последующие комментарии с большой вероятностью могут оказаться комментариями спамерского робота.
Для защиты блогов от спама применяется также хорошо известный по многим почтовым антиспам-программам метод карантина. Суть его заключается в том, что, написав комментарий, вы получаете письмо с кодом или «секретной» ссылкой на зарегистрированный в системе e-mail, и лишь после того, как вы подтвердите факт оставления комментария, он будет реально размещен в блоге.
Конечно, используются и списки запрещенных, причем как IP-адресов, так и User-agent’ов, характерных для спамерских роботов.
Многие антиспам-плагины для блогов анализируют формальные признаки: проверяется, предшествовала ли отправке комментария загрузка страницы, содержащей текст первоначальной записи, был ли активирован Javascript на странице блога (спамерские роботы не поддерживают Javascript), детектируются и разбираются тексты, написанные с помощью кодов символов в html.
Также используются и статистические методы: анализируется текст комментария и за содержание большого количества ссылок начисляются отрицательные баллы; оцениваются баллы, полученные этим же автором за предыдущие комментарии; учитывается возраст записи, к которой оставляется комментарий. Понятно, что только по одному из таких параметров детектировать спам невозможно, но, добавляя отрицательные баллы за каждый не пройденный тест, в итоге можно получить довольно сбалансированную оценку каждого комментария.
Широкое распространение получили и методы контроля дубликатов комментариев. Для Блогов@Mail.Ru мы протестировали простейший вариант контроля дубликатов, сделанный на основе видоизмененной технологии DCC (Distributed Checksum Clearing House), которую мы используем в почтовой фильтрации. Для каждого поста или комментария определялась контрольная сумма и отправлялась на центральный сервер, при сравнении контрольной суммы сервер мог понять, сколько раз подобный пост или комментарий уже был размещен на сервере, а при достижении определенного порога прием подобных комментариев блокировался.
Однако, равно как и в почтовом спаме, спамеры довольно быстро научились модифицировать текст рекламного объявления, вставляя «шумы» (мусорный текст, благодаря которому сообщение становится уникальным для автоматической системы), в результате чего эффективность данного метода не была высокой. Решением этой проблемы, как и в случае с почтовым спамом, стало использование нечетких контрольных сумм. Суть метода заключается в том, что вместо построения одной суммы по всему тексту, их строится несколько по разным параметрам письма (как простейший пример: подсчет первой контрольной суммы по четным согласным буквам и отдельно второй по каждой шестой гласной, если хотя бы одна из сумм совпадает — письма считаются одинаковыми). В нашей реализации мы опирались на алгоритмы Бродера и действительно добились выявления похожих друг на друга комментариев и записей.
В целом, в данный момент наибольшую популярность завоевали комплексные системы борьбы со спамом в блогах (одним из примеров таких систем является Aksimet — антиспам-плагин для wordpress). Они сочетают в себе многие из вышеперечисленных методов, но, к сожалению, подобные системы детектирования спама абсолютно беспомощны в случае, если спам распространяется вручную. Учитывая растущую долю фишинга, а именно такой вид спама чаще всего распространяется вручную, эта проблема носит очень серьезный характер.
Методы фильтрации в месенджерах
Запустив собственный instant messenger, мы не сразу столкнулись с проблемой спама. Однако с ростом популярности Mail.Ru Agent мы стали все чаще детектировать сначала маленькие ручейки фишинговых сообщений, рассылаемых вручную, а затем уже и более массированные потоки коммерческого спама. В данный момент доля детектированного спама в Mail.Ru Agent достигает 8%.
Суточное распределение спама в меcсенджере соответствует почтовому:
Однако помесячная статистика прироста количества спама говорит о бурном, превышающем почтовый в 1,5 — 2 раза, росте объемов спама в Mail.ru Agent:
Детектирование спама в месенджерах имеет довольно большую специфику. Заключается она, например, в том, что активные пользователи, общаясь с друзьями и коллегами, отправляют до нескольких тысяч сообщений в день, в то же время новички используют месенджер с частотой электронной почты, отправляя по 2-3 сообщения в день. Большое количество сообщений, отправляемых нормальными пользователями, не позволяет использовать rate-limit в мессенджерах, так как в большинстве случаев лимита в тысячу сообщений в день на одного пользователя хватит и спамеру. Также существует и нечеткое распределение суточной пользовательской активности: в то время как электронные письма люди пишут с примерно одинаковой (небольшой) частотой и в большинстве своем в рабочее время, общение по мессенджеру сильно зависит от того, находится ли ваш собеседник в Сети.
Довольно эффективный при использовании в блогах обратный тест Тьюринга не может использоваться в мессенджерах, так как необходимость «расшифровки» нескольких сотен картинок в день делает продукт крайне непривлекательным для пользователя.
При реализации антиспам-фильтра для Mail.Ru Agent низкую эффективность также показал анализ сообщения по формальным признакам, успешно зарекомендовавший себя в почте и блогах. Причин этому несколько, самая главная из них – небольшое количество клиентских программ и, как следствие, высокая стандартизация протокола обмена сообщениями. Дополнительно на этот факт влияет наличие единой системы авторизации и единой пользовательской базы, т.е. в отличие от электронного письма, принимая сообщение в Mail.Ru Agent, мы точно уверены в том, что отправитель зарегистрирован в системе.
В то же время существуют и специфические для IM методы борьбы, а именно, возможность введения обязательной авторизации пользователя перед добавлением его в список контактов. Спамер не только не может указать в тексте запроса на авторизацию какие-либо ссылки, но и сама длина текста запроса сильно ограничена по количеству знаков. Эти ограничения, используемые большинством современных мессенджеров, делают спам с помощью запросов на авторизацию менее эффективным и привлекательным.
По нашим исследованиям наибольшую эффективность в фильтрации спама в IM-системах дает контент-анализ текста сообщения. Схема работы данного метода следующая: по образцам спам-сообщений специалистом в области лингвистики строится база слов, характерных для рекламного текста, каждому слову присваивается определенный вес. За наличие каждого такого стоп-слова в тексте сообщению начисляется определенный балл; согласно его весу. В случае если сумма баллов в сообщении превышает установленный лимит, сообщение отвергается.
Второй используемый нами метод – анализ дополнительной статистики: количества ответов, получаемых пользователем на его сообщения, количества занесений его в игнор-лист, количества безуспешных запросов на авторизацию и ряда других параметров. Подобный подход достаточно тяжело использовать в других областях по двум объективным причинам: с одной стороны, нам недоступна статистика ответов, приходящих на письма с другого домена; с другой характерное время ответа на письма составляет часы и дни вместо секунд и минут для Агента, и значимая статистика реакции будет получена уже после окончания рассылки. В Агенте этих проблем нет, и метод отлично работает.
Еще одной особенностью разработки антиспам-системы для мессенджера является требовательность к времени обработки сообщения. Если задержка прихода письма на несколько секунд не является критичной, то в случае с IM максимальное комфортное для пользователя время составляет 200 миллисекунд.
Уже сейчас в большом количестве IM существует кнопка «пожаловаться на спам». Подобное решение является не только и не столько инструментом борьбы со спамом, сколько ценным инструментом сбора статистики. Дело в том, что при отсутствии возможности однозначно определять количественные характеристики спама, жалобы пользователей являются важным индикатором положения дел в системе. Именно по изменению динамики пользовательских жалоб на спам целесообразно судить об эффективности того или иного метода борьбы с ним.
Прогнозы на будущее
Основная тенденция в области спама в блогах и мессенджерах — это, безусловно, продолжение роста спамерской активности.
Наряду с неизбежным увеличением трафика, спамеры станут умнее. Поскольку сейчас многими крупными блог-хостингами и форумами практически не принимаются записи и комментарии с открытых proxy-серверов и из регионов, не характерных для пользователей сервиса, и такая политика становится все распространеннее, мы ожидаем постепенное перемещение спамеров в географически характерные для пользователей сервиса регионы.
Уже сейчас доля спама, рассылаемого через IM вручную, довольно высока, в дальнейшем, по нашим прогнозам, доля «ручного» спама в общем потоке будет возрастать. Это произойдет сразу за счет двух факторов: с одной стороны, за счет растущей популярности фишинга, изначально ориентированного на рассылку методом «писем счастья», с другой – за счет вероятного начала использования этой технологии в рекламном спаме.
Есть опасность, что спам станет более адресным. Интернет занимает все большее место в жизни каждого пользователя, и все больше информации о нем становится доступно. В результате, возможно, наступит тот день, когда спамерское сообщение, в ходе массовой рассылки отправленное на alex@mail.ru, будет начинаться уже не с «Дорогой alex», а будет указывать реальное имя-отчество пользователя. Особенно легко это достигается в IM – анкета пользователя всегда доступна в результатах поиска.
В целом, мы надеемся, что успешный опыт борьбы со спамом в почте позволит разработчикам эффективно справиться с проблемой спама в мессенджерах и блогах уже в ближайшем будущем, или, по крайней мере, достичь почтовых показателей детектирования спама.
Возможные методы борьбы со спамом в IM и блогах