Pull to refresh

Взгляд на современные системы защиты от спама веб-форм

Reading time 7 min
Views 12K

О чем пойдет речь


Наверное никогда не прекратятся бои людей желающих проставить свои ссылки или что-то порекламировать, с людьми не желающими видеть у себя в комментах или на форумах «левую рекламу» а иногда даже и «правую».

Как человек, который в прошлом потратил много времени на разработку средств для спама веб-формы. Я хотел бы остановиться на моментах, которые упускают многие авторы, агитируя за тот или иной метод защиты.

Неоднократно на разных ресурсах поднимались подобные темы, но все статьи, которые попадались мне на глаза, были написаны людьми, находящимися по другую сторону баррикад.

Небольшой исторический экскурс


Уже много лет прошло, с тех пор, как botmaster выпустил свой знаменитый ХRumer. На тот момент это была настоящая революция в технологиях спама, спам перешел на промышленный уровень.

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

Рекламировать хрумер не буду, но это был действительно революционный и уникальный в своем классе продукт (слово был не совсем уместно, поскольку он в общем-то актуален и в настоящее время).

Черное SEO тех времен преимущественно заключалось в грамотной прогонке раскручиваемых ресурсов по правильным базам форумов и гостевых. Очень часто такие простые действия приводили к потрясающим результатам.

Защита же форумов, гостевых и блогов тех времен была на довольно примитивном уровне, в лучшем случае это были простые капчи, а зачастую защита полностью отсутствовала…

Ответной реакцией общественности была разработка методов борьбы со злонамеренным софтом. Конечно, и до хрумера был софт для спама и средства защиты, но именно с появлением этого ПО данная проблема стала особенно актуальна.

Современные методы борьбы со спамом веб-форм


  • Капча-картинка — тут особо говорить не о чем, все видели разного рода капчи-картинки. А также многие знают про универсальный сервис reCAPTCHA, предоставляющий одни из самых сложных для распознавания капчи.

  • Текстовые капчи разного типа — это капчи которые испольлзуют связку вопрос-ответ и предлагают написать ответ на предложенный вопрос. Сюда также относятся капчи предлагающие проделать некоторые арифметические действия и ввести правильный ответ в поле ввода.

  • Интерактивные капчи — это довольно новый и пока малораспространенный вид капч, смысл которых заключается в интерактивном взаимодействии пользователя с некоторыми объектами. Есть несколько реализаций таких капч под конкретные CMS (в основном WP). А также универсальный сервис KeyCAPTCHA, который, как и reCAPTCHA может быть интегрирован в любую CMS.

  • «Бескапчавые» метода фильтрации спама — этот метод активно продвигается в многих статьях посвященных защите от спама, как метод, который наименее «травмирует психику» посетителей сайта.
    К этому классу защиты относятся:
    • Всякого рода ухищрения на JS типа формирования форм «на лету» или установки каких-то полей, которые позже будут проверены на корректность веб-сервером.
    • Ловушки со стороны веб-сервера:
      • Создание невидимых разделов сайта, куда попадают только роботы и позже баняться по IP
      • Проверка задержек на скорость заполнения форм
      • Фильтрация анонимных прокси
      • А также любые другие виды ловушек, разной степени изощренности в зависимости от фантазии вебмастера
    • Сервис Akismet
    • Сервис Disqus, хоть он только для блогов, но его тоже условно можно отнести к этой категории.


Как заспамливаются ресурсы на которых установлены вышеописанные методы защиты


  • Капча-картинка — если не проходятся с помощью OCR, то распознаются по цене около 1$ за 1000 ЛЮБЫХ капчей-картинок. Это приемлемая цена, которую готов заплатить практически любой серьезный спамер.

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

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

    Поэтому лично я, не совсем понимаю упорство некоторых усложнителей капчей-картинок капч, какой бы сложности не была капча-картинка капча, она все равно распознается с помощью сервисов «а-ля антигейт». Особенно это касается защиты форм регистраций, заплатить 1$ за регистрацию 1000 акков, по-моему не составляет труда даже для совсем «зеленого» спамера.

  • Текстовые капчи — здесь все с одной стороны намного проще, с другой намного сложнее. Если у вас сильно богатая фантазия и не очень популярный ресурс, то такая защита может вас спасти, при условии ее ручной настройки. В ином случае разработчики ПО для спама постоянно пополняют текстовую базу вопрос-ответов, и довольно успешно спамят через такую защиту.

  • Интерактивные капчи — данный вид капч пока мало распространен. На настоящий момент, я знаю несколько неуниверсальных реализаций под WP, а также один универсальный сервис, который можно интегрировать в любую CMS, это KeyCAPTCHA. Пока, лично я, не знаю методов спама с помощью бота в формы защищенные KeyCAPTCHA. И как мне кажется, в ближайшие несколько лет формы защищенные этой защитой будут самыми неуязвимыми для спам-ботов.

  • Бескапчавая защита — этот метод защиты особо интересен и требует более детального разбора.
    • Защита на основе разного рода JS ухищрений — Вот тут уже большинство программ для спама справиться на настоящий момент уже не могут,
      поскольку для этого потребуется реальный рендеринг HTML с полноценной обработкой JS и всех событий страницы.
      Все было бы замечательно, но уже существует не одна программа для полной эмуляции браузера, вернее это и есть просто управляемый со стороны абсолютно честный IE. Такой браузер полностью контроллируется нужными спамеру скриптами. То есть умеет на 100% эмулировать работу настоящего браузера по любому написанному спамером алгоритму на PHP или каком-либо другом скриптовом языке.

      Такие браузеры умеют менять прокси, брать картинки прямо с экрана, эмулировать нажатия на чекбоксики и ссылки мышкой, просматривать любые отрейдренные стили. В общем делать все, что только угодно. Мало того, существует ПО на основе которого можно создать спам-машину на которой можно одновременно запускать десятки таких вот управляемых браузеров.

    • Защита на основе ухищрений со стороны веб-сервера в виде всяких ловушек для ботов — Легко и обходится с помощью вышеописанного управляемого браузера, поскольку он (управляемый браузер) будет ходить только по видимым ссылкам, если конечно это запрограммировать.

    • Защита на основе сервиса фильтрации спама Akismet — Защита данного сервиса основана на вычленении каких-то признаков спама из текста сообщений и может быть IP адресов, может быть куках браузера. Как следствие применять ее можно не на любых произвольных веб-формах, например форму регистрации Akismet надежно защитить уже скорее всего не сможет, если спамер пользуется не «спаленными» IP адресами. Но как показала практика, на блоге с средней посещаемостью все равно регулярно появляются спам-сообщения, значит опытные злодеи обходят и контекстную защиту Akismet. Весь вопрос просто в грамотном составлении спам-сообщений.

    • Защита на основе Disqus — это, как я уже и писал выше, решение тоже не универсальное, оно полностью убирает комменты из контента вашего сайта и переносит их на сервер Disqus. После чего посетителю сайта они подгружаются с помощью JS. С одной стороны это эффективно, но не лишено недостатков, поскольку комменты перестают быть частью вашего сайта. А спамить через эту защиту можно с помощью того же управляемого браузера, и в ваших комментах все-таки появляется «когда я работал в компании Мегафон…», ну и дальше с вариациями.

Итого


Напоследок хотелось-бы кратко изложить и подытожить все вышесказанное в сравнительной табличке.
Способ или сервис защиты Достоинства Недостатки Возможность взлома
Капча-картинка
  • Легко установить, для большинства CMS есть несколько встроенных видов капчей-картинок + много плагинов для работы с сервисом reCAPTCHA.

  • Многие виды современных капчей-картинок капч распознать тяжело даже если Вы не робот.

  • Распознается с помощью OCR или специальных сервисов типа антигейт.

Текстовая капча
  • Есть реализации под многие CMS и самому сделать не представляет особого труда, можно настроить собственный словарик вопрос-ответов.

  • Особых недостатков нет, кроме риска, что человек тоже не знает ответ на поставленный вами вопрос.

  • Взламывается по составляемой для популярных ресурсов базе, обновляемая база входит в комплект хрумера.
  • Можно также организовать распознование третьими лицами.

Беcкапчавые ухищрения на JS
  • Большинство современных спам-программ не умеют обходить такую защиту.

  • Особых недостатков нет, но необходимо тестирование в разных браузерах, поскольку некоторые моменты JS исполняется разными браузерами по-разному.

  • Легко обходится с помощью управляемого браузера.

Беcкапчавые ухищрения в виде со стороны сервера
  • Можно реализовать свой хитрый алгоритм.

  • Эффективность защиты при правильной работе бота сомнительна.

  • Легко обходится с помощью управляемого браузера.

Akismet
  • Способна «прозрачно» отловить значительную часть спама в комменты.

  • Не способна защитить формы регистрации, или какие-либо другие произвольные формы.

  • С помощью управляемого браузера и не сильно агрессивного поведения бота, можно спамить.

Disqus
  • Способна «прозрачно» отловить значительную часть спама в комменты.

  • Не универсальна, подходит только для комментов в блоги.
  • Комменты читателей перестают быть частью контента вашего сайта с точки зрения поисковика.

  • С помощью управляемого браузера и не сильно агрессивного поведения бота, можно спамить рекламные сообщения.

KeyCAPTCHA
  • Весьма забавна для пользователей.
  • Обеспечивает максимальную защиту от ботов на текущий момент.

  • Довольно большая по размеру.
  • Пока мало плагинов для CMS, а класс для универсального подключения есть только на PHP.

  • Изучив механизм работы, думаю что автоматическое распознавание или передача третьим лицам весьма проблематична.

Tags:
Hubs:
+197
Comments 226
Comments Comments 226

Articles