Обеспечение доступности

Активная защита от ботов в Айри

Последнее обновление инфраструктуры Айри добавило возможность обнаруживать и активно противодействовать роботам (ботам), которые мимикрируют под обычных пользователей (браузеры).

Война роботов и людей

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

Как отсечь хороших роботов от плохих?

Антивирус: пассивная защита

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

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

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

Отслеживаем вредоносных ботов

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

Следующим шагом со стороны защиты стало использование не конкретных заголовков или особенностей окружения роботов, а особенностей выполнения кода (например, stack trace) и различных браузерных расширений (localStorage, audio, video), которые в случае ботов (даже для chrome запущенного в режиме headless) работают не совсем так, как в реальных браузерах. И обойти данную проверку без доступа к исходных кодам браузерного агента (бота) и возможности его точечной модификации уже не так просто. На этом базируется последний уровень защиты Айри, который обнаруживает вредоносных ботов на сайте.

Активная защита от ботов

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

Для этого в Айри средствами JavaScript выполняется ряд затратных операций, которые приводят к физической блокировке (как минимум) или отказу в обслуживании (как максимум) оборудования, с которого определяется вредоносная активность. Определение вредоносной активности не срабатывает для реальных пользователей, но блокирует 90-99% известных роботов, притворяющихся реальными пользователями (браузерные боты).

Включить режим активной защиты в Айри можно в настройках сайта: Защита сайтаМаксимальная.