Коротко: под словами «боты на сайте» скрывается не один вид атак, а 21 разный тип автоматизированных угроз. Их описывает классификация OWASP Automated Threats (OAT): от сканирования уязвимостей и скрейпинга до подбора паролей, спама и скликивания рекламы. Ниже русская адаптация с пояснением, как каждая угроза выглядит у вашего сайта и где её искать.

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

Как пользоваться списком

В каждом пункте три части: суть (перевод определения OWASP), как выглядит на сайте (наши пояснения) и что смотреть (где искать следы). Для разбора следов вам понадобятся три источника: серверный access-лог (его разбирает бесплатный анализатор, см. также команды для nginx), данные Метрики (бесплатная проверка счётчика) и проверка конкретных User-Agent и IP (проверка User-Agent и IP). Общие признаки вредных и полезных ботов описаны в статьях про хороших и плохих ботов и исследование Bot Guard.

Разведка и поиск уязвимостей

OAT-014. Сканирование уязвимостей (Vulnerability Scanning)

Суть. Обход сайта и перебор адресов, файлов и параметров в поисках слабых мест. В OWASP подчёркивают, что это отличается от скрейпинга: цель не данные, а уязвимости.

Как выглядит. Волна запросов к несуществующим адресам, обращения к служебным путям (.env, wp-login.php, phpmyadmin), много ответов 404 с одного IP, подозрительные параметры в адресе.

Что смотреть. Журнал сервера: доля 404 по IP и обращения к служебным путям. Автоматически банить такие адреса можно через fail2ban и nginx, общая защита описана в статьях про WAF и системы обнаружения вторжений.

OAT-018. Зондирование (Footprinting)

Суть. Исследование приложения, чтобы понять его состав и свойства: какие есть пути, параметры, значения и последовательности действий. Это изучение самого приложения, а не его данных. Сюда же относится перебор имён файлов и каталогов (forced browsing).

Как выглядит. Последовательный обход адресов по словарю, проверка параметров, обращения к API в поисках скрытых методов.

Что смотреть. Те же 404 и нетипичные адреса в логе, обращения без перехода с других страниц.

OAT-004. Определение используемого ПО (Fingerprinting)

Суть. Запросы, которые выясняют, какое программное обеспечение и каких версий стоит на сайте: по заголовкам, формату идентификаторов сессии, текстам ошибок, поведению адресов. Не путайте с «отпечатком браузера» посетителя, о котором шла речь в статье про browser fingerprinting: здесь «снимают отпечаток» с самого сайта.

Как выглядит. Запросы к характерным файлам CMS и фреймворков, намеренно вызванные ошибки.

Что смотреть. Журнал ошибок и обращения к файлам вроде readme.html или страницам ошибок.

Сбор данных и искажение статистики

OAT-011. Скрейпинг (Scraping)

Суть. Сбор содержимого и данных сайта для использования в другом месте. В описании OWASP среди других названий упомянуты боты для обучения языковых моделей и для ответов ИИ: это тоже скрейпинг.

Как выглядит. Систематический обход страниц каталога или статей, часто скриптовым клиентом или от имени поискового бота, высокий процент обращений к HTML без картинок и стилей.

Что смотреть. Журнал: User-Agent и активность подсетей; подлинность «поискового» бота проверяйте по IP (как проверить Googlebot). Подробнее: защита от веб-скрапинга и что такое веб-скрепинг.

OAT-016. Искажение показателей (Skewing)

Суть. Повторяющиеся клики, запросы страниц или отправки форм, цель которых изменить какой-то показатель: счётчики посещений, лайки, результаты опросов и рейтингов, внутреннюю аналитику.

Как выглядит. Нетипичные всплески визитов, необъяснимо высокие отказы, перекосы по источникам, странные «рекомендации».

Что смотреть. Метрику: роботность и срез без роботов, признаки поведенческих ботов, почему Метрика не видит часть ботов.

OAT-003. Мошенничество с рекламой (Ad Fraud, в версии 1.3 переименовано в Cost-Inflation Fraud)

Суть. Фальшивые клики и показы рекламы на сайте: накрутка владельцем площадки, конкурентами или вандалами. В новой версии классификации угроза переименована в «раздувание затрат» (Cost-Inflation Fraud).

Как выглядит. Клики из Директа без заявок, площадки РСЯ с высокой долей отказов, визиты из датацентров по платным ссылкам.

Что смотреть. Вкладку «Реклама» в проверке Метрики и журнал платных кликов защиты. Разбор: боты в Яндекс.Директе, click fraud, мошенничество с кликами, кликовый спам.

Взлом учётных записей

OAT-007. Подбор учётных данных (Credential Cracking)

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

Как выглядит. Множество POST-запросов на страницу входа с одного IP или подсети, много ответов «неверный пароль».

Что смотреть. Журнал: частота POST на форму входа. Защита: защита от брутфорса и ограничение частоты (rate limiting).

OAT-008. Подстановка украденных учётных данных (Credential Stuffing)

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

Как выглядит. Попытки входа с разных IP, часто через прокси, на много разных логинов; низкая успешность каждого логина.

Что смотреть. Статистику неудачных входов. Подробнее: защита от credential stuffing.

OAT-019. Массовое создание аккаунтов (Account Creation)

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

Как выглядит. Всплески регистраций с похожими адресами почты, регистрации из одной подсети, пустые профили.

Что смотреть. Журнал регистраций; защита форм (спам-заявки и фейковые регистрации). См. мошенничество с учётными записями.

OAT-020. Агрегация аккаунтов (Account Aggregation)

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

Как выглядит. Входы в разные аккаунты из одного места, действия через интерфейс или API от имени пользователей.

Что смотреть. Журнал входов и использование API.

Платежи и интернет-магазины

OAT-001. Проверка карт (Carding)

Суть. Многократные попытки оплаты, чтобы проверить, рабочие ли украденные данные банковских карт.

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

Что смотреть. Журнал платёжной страницы и отчёты платёжного провайдера.

OAT-010. Подбор данных карты (Card Cracking)

Суть. Перебор недостающих данных украденной карты: срока действия и кода безопасности.

Как выглядит. Серии платежей с одним номером карты и разными датами и кодами.

Что смотреть. То же: платёжные логи.

OAT-012. Обналичивание (Cashing Out)

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

Как выглядит. Покупки дорогих товаров с недавно созданных аккаунтов, нетипичные адреса доставки.

Что смотреть. Данные заказов и антифрод платёжной системы; см. захват аккаунтов в рознице.

OAT-002. Подбор купонов (Token Cracking)

Суть. Массовый перебор номеров купонов, промокодов, подарочных карт и скидочных кодов.

Как выглядит. Множество обращений на форму ввода промокода с разными значениями.

Что смотреть. Частоту запросов к проверке промокода; ограничение попыток.

OAT-021. Исчерпание остатков (Denial of Inventory)

Суть. Исчерпание товаров или услуг без завершения покупки: товары кладут в корзину или бронируют, но не оплачивают, и другим покупателям они недоступны.

Как выглядит. Много брошенных корзин или броней без оплаты, остатки «заканчиваются» без продаж.

Что смотреть. Срок жизни корзины и брони, доля незавершённых заказов.

Нечестные преимущества: билеты, торги, игры

OAT-005. Скупка дефицита (Scalping)

Суть. Получение товаров и услуг с ограниченным предложением нечестными способами, недоступными человеку вручную: билеты, кроссовки, бронь столиков. Купленное затем перепродаётся. Подробнее о ботах для распродаж: боты для стимулирования продаж.

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

Что смотреть. Скорость и источники заказов в первые секунды.

OAT-006. Ускорение действий (Expediting)

Суть. Автоматизация обычно медленных и утомительных действий ради преимущества: игровые боты, автоматическая торговля, добыча виртуальных ценностей.

Как выглядит. Действия с нечеловеческой скоростью и регулярностью.

Что смотреть. Интервалы между действиями одного пользователя.

OAT-013. Ставка в последний момент (Sniping)

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

Как выглядит. Ставки в последние доли секунды до закрытия лота.

Что смотреть. Время ставок относительно окончания торгов.

Доступность и обход защиты

OAT-015. Отказ в обслуживании (Denial of Service)

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

Как выглядит. Рост нагрузки и времени ответа, всплеск запросов к тяжёлым страницам и поиску.

Что смотреть. Нагрузку сервера и топ адресов в логе. Защита: защита от DDoS, чем отличается DDoS-защита от защиты от ботов, ограничение частоты, ботнеты.

OAT-009. Обход капчи (CAPTCHA Defeat)

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

Как выглядит. Формы, защищённые капчей, всё равно получают поток отправок; капча «проходится» слишком быстро.

Что смотреть. Время заполнения форм и долю успешных капч. Подробнее: как работает CAPTCHA и Яндекс SmartCaptcha: подключение, цены и чем дополнить.

OAT-017. Спам (Spamming)

Суть. Добавление вредоносной или сомнительной информации в публичный и личный контент и сообщения: комментарии, формы, отзывы, рекламные ссылки.

Как выглядит. Поток заявок и комментариев с одинаковыми шаблонами и ссылками, POST-запросы к формам напрямую.

Что смотреть. Журнал POST-запросов к формам. Защита форм: как остановить спам-заявки и honeypot и проверка запросов защитой на сайте.

С чего начать защиту

  1. Определите свои угрозы. Для сайта без оплаты и регистрации актуальны разведка, скрейпинг, спам и искажение статистики. Для магазина добавляются карты, купоны и остатки. Для личного кабинета: подбор и подстановка паролей.
  2. Посмотрите следы. Серверный лог, Метрика и проверка подозрительных адресов покажут, какие угрозы у вас уже есть.
  3. Закройте базовое. Ограничение частоты запросов, закрытие служебных путей, блокировка очевидных сканеров (fail2ban и nginx).
  4. Поставьте постоянную защиту. Она проверяет каждый запрос на лету: Bot Guard смотрит на User-Agent, IP, заголовки и поведение и подключается к WordPress и 1С-Битриксу.

Частые вопросы

Что такое OWASP Automated Threats (OAT)?

Это классификация автоматизированных угроз для веб-приложений от проекта OWASP: 21 тип угроз с номерами от OAT-001 до OAT-021, описанием и признаками. Её используют как общий словарь для разговора о ботах и для оценки рисков.

Чем отличается credential stuffing от credential cracking?

Credential cracking это подбор логинов и паролей перебором и по словарям. Credential stuffing это проверка готовых пар логин-пароль, украденных в других утечках: никакого перебора, только проверка повторного использования паролей.

Чем скрейпинг отличается от сканирования уязвимостей?

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

Какие угрозы касаются любого сайта, а какие только магазинов?

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

Это именно перевод OWASP?

Это русская адаптация: определения угроз переведены, а пояснения про то, как угроза выглядит и где её искать, добавлены нами. Исходные материалы OWASP доступны на сайте проекта.


Классификация и определения угроз: проект OWASP Automated Threats to Web Applications (OAT), © OWASP Foundation, owasp.org, лицензия CC BY-SA 4.0. Статья представляет собой русский перевод и адаптацию с дополнениями Bot Guard; перевод и дополнения распространяются на тех же условиях CC BY-SA 4.0.

Защитите свой сайт от ботов прямо сейчас

Подключение занимает несколько минут — вставьте один PHP-сниппет, и Bot Guard начнёт фильтровать ботов, скрейперов и попытки SQL-инъекций автоматически.

Зарегистрироваться бесплатно
Заказать звонок

Читайте также

Что такое Spyware и как защитить сайт от шпионского ПО
Узнайте, что такое шпионское ПО, как оно угрожает пользователям и владельцам сайтов, и как…
Плагин Bot Guard для WordPress: защита от ботов за 2 минуты
Бесплатный плагин bot-guard для WordPress: отсекает ботов, парсеры и спам-отправки в формы…
Как посмотреть данные в Яндекс.Метрике без роботов: роботность, фильтр и сегмент
Как убрать роботов из отчётов Яндекс.Метрики: показатель «роботность», измерение «роботы и…