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

📋 Кратко

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

⏱ 8 минут чтения│сложность

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

Ботнет — это сеть управляемых устройств. В неё могут входить заражённые компьютеры, серверы и другие узлы. Но не каждый автоматизированный запрос идёт из ботнета. Источником также становятся отдельный скрипт, браузерная ферма, прокси-сеть или уже скомпрометированная учётная запись.

Главный принцип: один сигнал показывает повод для проверки, но не доказывает автоматизацию. Надёжнее оценивать сочетание признаков, контекст запроса и историю действий.

Главное — определить объект контроля
Главное — определить объект контроля

🔍 Ботнет, бот и обычный робот: что именно мы ищем

Ботнет описывает инфраструктуру. Это группа устройств, которыми управляет один оператор или вредоносная программа. Веб-бот — программа, которая выполняет действия автоматически. Она может работать на узле ботнета, но может запускаться и на обычном сервере.

Несогласованность важнее редкости профиля
Несогласованность важнее редкости профиля

Браузерная ферма использует много изолированных браузеров или профилей. Она имитирует посещения, регистрации или входы. Легитимный робот решает полезную задачу. Например, он индексирует страницы или проверяет доступность сервиса. Его поведение обычно соответствует заявленной функции и правилам сайта.

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

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

🧩 Браузерный профиль: несостыковки важнее редкости

Браузер передаёт набор технических признаков. К ним относятся User-Agent, Client Hints, язык, часовой пояс и разрешение экрана. Дополнительную картину дают доступные шрифты, графический стек и особенности выполнения JavaScript.

Повторяемость действий раскрывает автоматизацию
Повторяемость действий раскрывает автоматизацию

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

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

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

  • сравнивайте User-Agent с Client Hints;
  • проверяйте согласованность языка и часового пояса;
  • учитывайте разрешение экрана и графический стек;
  • не блокируйте пользователя только за редкий профиль;
  • сопоставляйте профиль с поведением и сетевой историей.

Практический шаг: заведите отдельные поля для несостыковок, а не одно поле «подозрительный браузер».

⚙️ JavaScript и поведение страницы

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

Сетевой адрес не доказывает личность пользователя
Сетевой адрес не доказывает личность пользователя

Автоматизация часто действует ровно. Она открывает страницу, сразу находит нужный элемент и отправляет форму. Человек делает паузы, меняет направление движения и иногда возвращается к предыдущему шагу. Но это не правило без исключений.

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

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

Важно: «человечность» нельзя доказать одной проверкой JavaScript. Скрипт может работать в полноценном браузере, а пользователь может выглядеть необычно из-за настроек приватности.

Практический шаг: проверьте сценарии без JavaScript и с клавиатурной навигацией, чтобы не принимать их за атаку.

📡 WebRTC: дополнительный сигнал, а не детектор

WebRTC предоставляет браузеру средства для сетевого обмена в реальном времени. Его доступность, характеристики сетевых интерфейсов и ICE-кандидаты иногда добавляют признаки к общей оценке. Эти данные могут помочь сравнить заявленный профиль с фактическим сетевым контекстом.

Надёжное решение строится на совокупности сигналов
Надёжное решение строится на совокупности сигналов

WebRTC не является универсальным способом узнать реальный IP-адрес. Результат зависит от браузера, разрешений, настроек приватности, корпоративной сети и используемой сетевой схемы. VPN, NAT и фильтрация меняют видимые параметры.

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

Используйте WebRTC только как дополнительную телеметрию. Не делайте отказ от API основанием для отказа в доступе. Сочетайте сигнал с историей сессии, поведением и сетевыми признаками.

Практический шаг: уберите из правил жёсткую блокировку по WebRTC и оставьте его как один из факторов риска.

🎯 Поведенческие признаки автоматической атаки

Первый заметный признак — равномерные интервалы. Скрипт отправляет запросы с почти одинаковой паузой. Реальный пользователь чаще меняет темп. Он может задержаться на форме, прервать действие или вернуться назад.

Адаптивная защита снижает ущерб без лишних блокировок
Адаптивная защита снижает ущерб без лишних блокировок

Другой сигнал — сверхчеловеческая скорость. Автоматизация проходит несколько экранов быстрее, чем пользователь успевает прочитать их содержимое. Однако быстрый пользователь, сохранённые данные и менеджер паролей тоже меняют картину.

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

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

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

Практический шаг: сохраните для каждой сессии короткую последовательность действий и сравнивайте её с другими сессиями.

🌐 Сеть и инфраструктура: адрес не равен пользователю

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

Но адрес нельзя считать личным идентификатором. NAT объединяет многих пользователей. Мобильная сеть меняет адреса. Корпоративный шлюз отправляет запросы сотрудников через общий выход. Блокировка всей подсети легко затрагивает нормальный трафик.

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

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

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

Практический шаг: проверьте, как ваши правила работают для NAT, мобильных сетей и корпоративных шлюзов.

🧠 Корреляция сигналов и оценка риска

Надёжное обнаружение строится вокруг совокупной оценки. Браузерный профиль даёт один набор признаков. Поведение показывает другой. Сеть и инфраструктура добавляют контекст. Вместе они позволяют повысить или снизить риск.

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

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

Правила нужно проверять на истории. Сравнивайте новые решения с нормальными сессиями. Отдельно анализируйте пользователей с нестандартным браузером и повышенными настройками приватности.

  1. соберите признаки из браузера, поведения и сети;
  2. назначьте каждому признаку небольшой вес;
  3. учтите важность конкретного действия;
  4. выберите реакцию для низкого, среднего и высокого риска;
  5. проверьте результат на ложных срабатываниях.

Практический шаг: начните с прозрачной таблицы факторов, а не с непрозрачного правила «бот или человек».

🛡️ Адаптивная защита вместо мгновенной блокировки

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

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

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

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

Практический шаг: свяжите каждый уровень риска с понятным действием и отдельно измеряйте его результат.

⚠️ Ложные срабатывания и приватность

Нестандартный браузер не делает человека злоумышленником. Пользователь может отключить JavaScript, заблокировать часть API или использовать повышенные настройки приватности. Средства доступности тоже меняют порядок действий и скорость работы.

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

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

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

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

Практический шаг: добавьте в тестовый набор пользователей без JavaScript, с доступностью и через общий корпоративный шлюз.

📋 Чек-лист защитника и метрики эффективности

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

Затем проверьте четыре группы сигналов. Первая группа относится к браузеру. Вторая описывает поведение. Третья показывает сеть. Четвёртая связывает признаки в общую оценку риска.

  • проверяйте согласованность User-Agent и Client Hints;
  • учитывайте язык, часовой пояс, экран и графический стек;
  • сравнивайте порядок действий и временные интервалы;
  • ищите массовые регистрации и аномальные входы;
  • сопоставляйте адреса, подсети, автономные системы и отпечатки;
  • используйте WebRTC только как дополнительный сигнал;
  • учитывайте NAT, мобильные сети и корпоративные прокси;
  • проверяйте сценарии приватности и доступности;
  • ограничивайте скорость до полной блокировки;
  • храните минимум данных и задавайте срок удаления.

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

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

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

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

📖 Термины

Fingerprinting · WebRTC · Автоматизированное сканирование · Ботнет · Сетевой трафик

🔗 Источники