antibrowser
English中文

Безопасность

Детектирование браузера: как платформы ловят мультиаккаунты

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

Иван10 мин чтения
Схема сбора отпечатка браузера: canvas, WebGL, шрифты, User-Agent, часовой пояс и IP складываются в единый профиль устройства

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

Что такое детектирование браузера и зачем оно платформам

Детектирование браузера — это анализ устройства и окружения, с которого пользователь заходит на сайт. Платформа собирает десятки параметров: от версии браузера и списка шрифтов до особенностей работы видеокарты и часового пояса. Цель не в том, чтобы поймать конкретного человека за руку, а в том, чтобы найти совпадения между разными визитами и аккаунтами. Если два профиля заходят с одного и того же устройства, платформа видит это как один и тот же браузер под разными учётными записями.

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

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

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

Отпечаток браузера: из чего он складывается

Отпечаток браузера — это статичный набор параметров, который платформа собирает при каждом визите. В отличие от cookies, отпечаток не хранится на устройстве пользователя: он вычисляется заново при каждом заходе. Если два аккаунта заходят с одного устройства, их отпечатки совпадут, даже если cookies очищены. Разберём основные компоненты отпечатка.

!Светящийся отпечаток, собранный из множества мелких парящих фрагментов стекла и металла

Canvas fingerprint — это результат рендеринга невидимого рисунка через HTML5 canvas. Браузер рисует заданный набор фигур и текста, а затем считывает полученное изображение. У каждой связки «видеокарта + драйвер + операционная система» результат получается немного разным: отличаются сглаживание, субпиксельный рендеринг, обработка цветов. Платформа получает не картинку, а хэш — короткую строку, которая однозначно идентифицирует конкретную конфигурацию.

WebGL fingerprint работает похожим образом, но через WebGL API. Здесь собираются параметры видеоускорителя: название GPU, версия драйвера, поддерживаемые расширения. У двух одинаковых ноутбуков одной модели отпечаток WebGL будет совпадать, но у разных моделей — различаться. В связке с canvas это даёт довольно точную идентификацию устройства.

Audio fingerprint использует AudioContext для обработки звукового сигнала. Браузер генерирует неслышимый звук, обрабатывает его через аудио-стек и возвращает результат. Разные звуковые карты и драйверы дают немного разные значения. Этот параметр менее известен, чем canvas, но платформы его тоже собирают.

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

User-Agent и реальные возможности браузера должны совпадать. Если User-Agent заявляет, что это Chrome 120 на Windows, а JavaScript API отвечает как Firefox на macOS — это сигнал подмены. Платформа проверяет не только строку User-Agent, но и то, как браузер ведёт себя в разных сценариях.

Разрешение экрана, глубина цвета, hardwareConcurrency (число ядер процессора) и deviceMemory (объём памяти) редко меняются между сессиями одного человека. Эти параметры платформа собирает в фоновом режиме и добавляет к общему отпечатку. Если два аккаунта заходят с одного устройства, все эти значения совпадут.

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

Сетевые и системные сигналы: не только IP

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

!Стеклянная панель браузера, от которой по тёмному полу расходится светящаяся сеть маршрутов и узлов

Часовой пояс браузера должен совпадать с геолокацией по IP. Если IP-адрес находится в Германии, а браузер сообщает часовой пояс Нью-Йорка — это расхождение, которое платформа видит сразу. То же самое с языком интерфейса: если операционная система и браузер настроены на русский язык, а IP-адрес из Бразилии, это подозрительно. Платформа ожидает, что пользователь из Бразилии будет иметь португалоязычный интерфейс и часовой пояс UTC-3.

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

TLS/JA3-отпечаток — это то, как браузер устанавливает защищённое соединение. Разные сборки браузеров по-разному формируют TLS-рукопожатие: отличаются наборы шифров, расширений, порядок их следования. Если User-Agent заявляет Chrome 120, а TLS-отпечаток соответствует Firefox — платформа видит несоответствие. Антидетект-браузеры подменяют и этот параметр.

Cookies и localStorage — самые прямые идентификаторы. Если между профилями не чистить cookies, платформа видит общие идентификаторы напрямую: это не отпечаток, а явное указание на то, что аккаунты открываются в одном браузере. Подробнее о том, как правильно переносить cookies между профилями и зачем нужен прогрев, мы писали в отдельной статье.

Поведенческие сигналы: что выдаёт человека за пределами технических данных

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

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

Время между действиями — ещё один поведенческий параметр. Регистрация, первый пост, первая реакция, первый комментарий — всё это происходит с определёнными интервалами. Если у десяти «независимых» аккаунтов интервалы между действиями одинаковые с точностью до секунды, это подозрительно. Человек не действует по таймеру, у него всегда есть разброс.

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

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

Как сигналы складываются в решение связать аккаунты

Ни один сигнал по отдельности не является бан-триггером. Совпадение canvas fingerprint у двух аккаунтов — это не повод для блокировки. Но если canvas совпадает, и WebGL совпадает, и список шрифтов одинаковый, и часовой пояс один, и IP-адрес из одной подсети — вероятность связки резко возрастает. Платформа накапливает данные и действует, когда совпадений становится достаточно много.

!Два полупрозрачных силуэта, которые соединяет светящееся кольцо из сходящихся световых нитей

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

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

Платформа не ловит нарушителя за руку. Она накапливает совпадения между аккаунтами и действует, когда их становится достаточно для статистически уверенного решения.

Что реально снижает риск детектирования

Разделение отпечатка на уровне профиля антидетект-браузера — базовый шаг. У каждого профиля должны быть свои canvas, WebGL, шрифты и User-Agent. Антидетект-браузер подменяет эти параметры так, чтобы каждый профиль выглядел как отдельное устройство. При выборе инструмента стоит смотреть на то, насколько глубоко он подменяет отпечаток: сравнение антидетект-браузеров поможет сориентироваться, а в рейтинге собраны актуальные варианты с характеристиками.

Соответствие типа прокси задаче — второй по важности фактор. Мобильный прокси даёт IP мобильного оператора, резидентный — IP домашнего провайдера, дата-центр — IP сервера. Для рекламных платформ репутация этих типов разная: мобильные и резидентные адреса выглядят естественнее, чем дата-центры. Какой тип выбрать под конкретную задачу, мы разбирали в статье про мобильные и резидентные прокси.

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

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

Регулярный мониторинг состояния профилей, а не разовая настройка — четвёртый слой. Отпечаток может «поплыть» после обновления браузера или операционной системы, прокси может отвалиться, cookies могут протухнуть. Если не проверять профили регулярно, можно пропустить момент, когда связка начинает светиться. О том, как организовать мониторинг нескольких профилей, мы рассказывали в статье про управление профилями.

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

Можно ли полностью скрыть отпечаток браузера?

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

Что важнее: отпечаток браузера или IP-адрес?

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

Как часто нужно проверять отпечаток профиля?

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

Влияет ли поведение на детектирование, если отпечаток подменён?

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

Источники

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

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

Нужна консультация?

Разберём задачу и подскажем, какой антидетект-браузер и прокси подойдут именно вам.

Связаться