В сети можно найти много материалов, в которых отпечатки браузера возведены на вершину пирамиды антидетекта. С этим сложно не согласиться: фингерпринт действительно длительное время используется системами защиты как важная часть антибот-стратегии. В нашем блоге есть статья — «Отпечатки браузера — что это такое», в которой вы можете погрузиться в эту технологию.
Привет! Я Александр, пишу для антидетект-браузера Aurorium и по совместительству являюсь специалистом в вопросах автоматизации и парсинга. В этом материале мы рассмотрим, почему фингерпринту все сложнее удерживать пальму первенства среди технологий антидетекта и что наступает ему на пятки? По традиции сварите чашечку кофе или чая и соорудите пару бутербродов — мы начинаем!
Цифровой отпечаток в свое время сперва дополнил, а вскоре и вовсе заменил пресловутые файлы cookies в вопросе идентификации пользователей. На его базе стали строиться многие проверки юзеров при посещении сайтов, а такие гиганты, как Cloudflare внедрили проверку фингерпринта в свои капчи.

Вершина достигнута? Все боты побеждены?
Соглашаться с любым нарративом, продвигаемым в интернете, — занятие не просто неблагодарное, но и порой опасное (можно упустить важные детали и нюансы, которые могут стоить вам аккаунта — раз уж мы говорим про антифрод).
Давайте выступим в роли скептиков, ставящих под сомнение любое прочитанное (услышанное) утверждение. Существует ли на сегодняшний день технология, способная заменить собой отпечатки браузера? Есть ли в современном вебе что-то одновременно сложное для обхода и относительно простое для внедрения на стороне антифрода?
Краткий ответ — да! Называется эта технология поведенческий антифрод — давайте разбираться!

Почему подмены «железа» больше недостаточно
Перед тем как приступить к разбору поведенческой аналитики, давайте коснемся современных реалий и того, как жила (продолжает жить) индустрия мультиаккаунтинга и автоматизации.
А находится она в парадигме эвристического анализа. Защитные системы работают по четким алгоритмам соответствия правилам.
В качестве банального примера возьмем проверку данных, переданных через User-Agent и полученных через другие источники. Допустим, в вашем профиле в User-Agent прописан Chrome на Windows, а при проверке отрисовки Canvas или шрифтов антифрод получил паттерны macOS или Linux. Рассинхрон? Естественно. В идеальных условиях, если антибот увидит такую нестыковку, он отреагирует — усложнит доступ или вовсе заблокирует сессию (аккаунт).
Такой подход актуален и сегодня, но это больше не единственный механизм проверки, так как проблема эвристики в ее предсказуемости. Ведь даже обычному пользователю очевидно — убирай несоответствия и антифрод перестанет реагировать. Как убирать? Это уже другой вопрос, вариантов куча.
Ну а раз обычному юзеру все понятно, то и разработчикам ботов тоже. Они уже давно умеют неплохо подменять статические параметры, стыковать их между собой. А это значит, что защита в описанном исполнении больше не работает также эффективно, как раньше.

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

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

Давайте объясним на пальцах. Представьте себе, как работает фейс-контроль классического ночного клуба — вас изучили на входе (если вы в спортивных штанах и туфлях, скорее всего, в допуске будет отказано) и если все прилично и не вызывает подозрений, охрана отходит в сторону, но ненадолго. Они продолжают наблюдать за вами на протяжении всей ночи и не дай бог вам сделать что-то подозрительное (достать из рюкзака бутылку Ягуара, например) — вас попросят на выход. Так и с непрерывной аутентификацией на сайте, но только вместо туфель со спортивными штанами будет проверка отпечатка браузера, а вместо Ягуара — анализ вашего поведения.
Кто же следит за пользователем на сайте? Что это за незримое око? Как правило, это какой-то скрипт, фиксирующий события посетителей и отправляющий их для анализа специальной ML-модели, которая и оценивает, выбивается ли поведение юзера за рамки нормального или нет.
Как такие модели понимают, что именно считается корректным человеческим поведением, а что ботоподобным? Они обучаются на петабайтах данных о поведении реальных пользователей, которые собираются в кластеры и используются для сравнения.
Даже если ваш отпечаток устройства будет максимально реалистичным, но профиль действий вашего скрипта (тайминги, клики, скролл) не попадет ни в один из кластеров легитимного поведения, сессия может быть помечена как синтетическая.
Непрерывная аутентификация
Как вы уже поняли, концепция непрерывной аутентификации означает, что верификация не заканчивается после успешной загрузки страницы или ввода пароля. Система формирует ваш Trust Score (рейтинг доверия) динамически в течение всей сессии.
Когда вы заходите на сайт с чистыми прокси и реалистичным отпечатком браузера — ваш стартовый Trust Score по дефолту высок. А дальше начинается та самая развилка, в ходе которой алгоритму нужно оценить, кто вы на самом деле — бот или человек.
Простые скрипты могут быть прямолинейными и примитивными, если им нужны данные, и они их получают так, как умеют: быстро заполняют формы без событий фокуса, их курсор движется по идеальным кривым (если это вообще предусмотрено, бывает, что и курсора нет).
Естественно, алгоритмы наблюдают. Они наблюдают и делают пометки в своем чек-листе. И когда количество таких пометок достигает критической массы, происходит БАМЦ! (в видео на этом моменте мы могли бы использовать скример, но вынуждены создавать эффект неожиданности через капс и жирный шрифт). После того самого БАМЦа система может выдать капчу, заблокировать транзакцию, отправить аккаунт на ручную проверку или вообще на время заблокировать его, все зависит от количества пометок, которые сделал антифрод, наблюдая за действиями скрипта.

Особую роль в этом процессе играют технологии записи сессий. Да, скрипты антифрода буквально записывают «видео» взаимодействия со страницей, в классической для скриптов манере, они фиксируют:
Логи координат
XиYкурсора.Касания экрана и изменения фокуса.
Скорость скролла и выделение текста.
Для чего это нужно? В первую очередь для ML-алгоритмов, которые сравнивают эти данные со своей базой, ну а во вторых, если аккаунт уйдет на ручную проверку, человек всегда сможет изучить «записи» и оценить, насколько этот бот похож на человека.
Идеально точный бот, не допускающий ошибок сегодня, — это заблокированный бот.

Но что же принято считать человеческим поведением, на что обращает внимание антифрод и как он это делает? Давайте разбираться!
Базовые метрики ввода (Микроуровень)
Самое простое, о чем вспоминаешь, когда речь заходит о поведенческой биометрии — объекты ввода и вывода, то, с чем обычный человек, находясь в интернет-пространстве, контактирует постоянно (мышь и клавиатура).
Клавиатура и мышь передают колоссальный массив данных, который невозможно скрыть сменой IP-адреса, использованием прокси или подделкой юзер-агента.
Динамические паттерны вашей печати и траектория движения курсора — это те биометрические маркеры, на имитацию которых либо не хотят тратить время, либо их намеренно игнорируют. Но именно здесь можно получить большой минус в карму вашего общего Trust Score на целевом сайте.
Динамика печатания — ритм и право на ошибку
Как бы наивно это ни прозвучало, но каждый человек имеет свой уникальный клавиатурный почерк (да, это все еще не сопоставимо с обычным почерком, где отличительных особенностей будет больше, но позволяет разделить пользователей на разные группы).
При анализе клавиатурного почерка учитываются задержки между нажатиями и время удержания клавиш. Когда вы просто вводите свой логин или пароль, система уже может собирать необходимые ей метрики, о которых пользователь даже не задумывается.
Первый базовый параметр — время удержания (Dwell Time). Это миллисекунды, прошедшие между нажатием (keydown) и отжатием клавиши (keyup). Обычный человек нажимает клавиши с разной силой и удерживает их неравномерно. Боты могут вообще не учитывать эти события и отправлять их практически одновременно, либо учитывать формально (использовать одинаковую задержку перед отправкой).
Отвлекитесь на минуту от чтения и просто попробуйте набрать в блокноте, например, «антидетект-браузер» и проанализируйте, как именно вы вводите текст. Тут и станет понятно, что ваше время удержания для разных клавиш очень сильно отличается. Если антифрод умеет учитывать эти паттерны, почему вы думаете, что он не станет этого делать?
Второй параметр — время полета (Flight Time). Это интервал между отпусканием одной клавиши и нажатием следующей. Время, за которое ваш палец пролетает из точки А (допустим пробел) до точки Б (буква А).
У каждого человека этот интервал «плавает» в зависимости от разных причин: какие буквы находятся рядом, слепой ли это набор или нет, какая рука задействована.
Если вы пользовались когда-либо такой фичей, как умная вставка текста из буфера обмена, вы понимаете о чем речь. А теперь еще и понимаете для чего она нужна, кроме того, чтобы просто побаловаться.
Но и это еще не все, самое интересное начинается когда антифрод анализирует ошибки. Все же понимают, что писать без ошибок не умеет никто. Когда человек говорит, что он никогда не ошибается, он либо врет, либо это Дональд Трамп.
Реальный юзер ошибается всегда, кто-то чаще, кто-то реже, но ошибки будут. Промахивается мимо нужной буквы, использует клавиши Backspace или Delete, применяет стрелки для навигации по тексту, выделяет слово двойным кликом, чтобы его удалить или заменить.
Как считаете, сложно ли распознать девятиклассника на утреннике в детском саду на общей фотографии? Если ваш скрипт будет вводить, например, пароль (в котором и спецсимволы присутствуют) за 0,5 секунды, без единой ошибки, с идеально ровными задержками между символами — он и будет тем самым девятиклассником для антифрода.
Отсутствие паттернов исправления ошибок — это такой же маркер синтетической сессии, как и одинаковое время удержания и время полета.
Мышь и курсор — когда тремор не показатель бурной ночи
С клавиатурой понятно, но есть более сложная часть — компьютерная мышь. А вернее, то, как человек управляет этой мышью.
Движение человеческой руки неидеально. Стандартные скрипты очень часто рисуют слишком прямые линии или, наоборот, слишком правильные математические кривые Безье, которые используются, чтобы показать антифроду «человечность» скрипта, вдохнуть в него немного души. Но такие подходы уже устаревают (хотя все еще работают).
Кстати, в нашей статье про отпечатки браузера мы рассказывали про подобную ситуацию с фингерпринтами, когда старые методы генерации все еще актуальны, но уже не так эффективны, как раньше.
Алгоритмы антифрод-систем строят карту вашего движения по странице, анализируют траекторию движения мыши. В первую очередь они обращают внимание на естественное микродрожание руки (тремор курсора), которое присутствует даже у киберспортсменов.
Очередной интерактив — попробуйте нарисовать без линейки прямую линию карандашом. Получилась идеальная прямая? А теперь откройте Paint (олды вспомнят и прослезятся) и повторите то же самое с мышью. Насколько прямо по шкале от 1 до 10 у вас получилось?
Линия движения на сайте не может быть абсолютно гладкой. Это паттерн синтетики для антифрода.
А ведь еще есть ускорение мыши, которое работает согласно закону Фиттса, человек начинает движение медленно, резко ускоряется в середине пути и притормаживает перед целевой кнопкой, чтобы прицелиться перед кликом.
Думаем всем понятно, что попасть в чекбокс с первого раза удается не всегда, тут бы с мусором и мусорными урнами разобраться, а мы про чекбоксы…

Заглянем под капот браузера
Помимо описанной выше физики есть еще и программная часть, паттерны, которые отвечают за поведенческую механику на уровне браузерного движка.
Конечно, современные инструменты давно не сыплются на таких мелочах, как событие Event.isTrusted (получает значение true,если действие было инициировано физическим действием пользователя и false в противном случае) или отсутствие цепочки событий перед реальным кликом:
mousemove(курсор приближается к элементу)mouseenter(курсор пересекает границу элемента)mouseover(курсор находится над элементом)mousedown(зажата левая кнопка мыши)...здесь проходит то самое время удержания, о котором мы писали выше...
mouseup(кнопка отпущена)click.
Но мало ли, есть же олдфаги, которые вообще не используют никаких фреймворков, могут и остаться разработчики скриптов, которые пишут их в блокноте.
Если упомянутые паттерны не учитываются разработчиком, то их учтет антифрод и добавит в копилку негатива еще и это.
Теперь что касается инструментов автоматизации, которые облегчают написание человекоподобных скриптов. Они могут неплохо так «наследить» и сами, что цепочка событий не понадобится.

Рассмотрим, к примеру, автоматизацию через CDP. Классический Puppeteer, который так и работает, по-дефолту сообщает о своей синтетической природе (он вообще-то был создан не для того, чтобы обходить систему), а если копнуть глубже, паттернов будет еще больше:
navigator.webdriver: По умолчанию браузер, запущенный через инструмент автоматизации, выставляет этот флаг вtrue. Да, его легко подменить, но это только начало.Специфические переменные: CDP инжектит в среду исполнения свои глобальные переменные (
window.cdc_...).Аномалии рендеринга и размеры окна: Headless-браузеры часто запускаются с нетипичными размерами окна, а их видимая часть (
viewport) может вообще не совпадать с реальным разрешением экрана.Следы дебаггера: Антифрод может проверять открытые порты WebSocket (через которые общается CDP) или использовать тайминг-атаки, чтобы вычислить задержки, возникающие при передаче команд через протокол отладки.
В итоге поведенческие паттерны намного глубже тремора и траектории полета мыши, тут важно не забывать и о программной составляющей процессов.
Мобильная биометрия или где можно заглянуть в бездну
С десктопами всё более или менее понятно. А что там с мобильными устройствами? У компьютерной мышки нет гироскопа, а в классическую клавиатуру не установлен акселерометр или датчик силы нажатия, но все это и кое-что еще есть в маленькой коробочке под названием мобильный телефон. А, как известно, мобильного трафика в интернете уже более 50%. Давайте разберемся с поведенческими паттернами пользователей со смартфонами.
Акселерометр и гироскоп
Когда вы держите в руке свой смартфон, он никогда не бывает полностью неподвижен. Попробуйте понаблюдать за другим человеком в момент его взаимодействия с телефоном. Дыхание, микросокращения мышц, пульс, шаги — все это создает непрерывный фоновый «шум». Для браузера этот шум доступен через DeviceMotionEvent и DeviceOrientationEvent.
Антифрод может простым скриптом считать показания гироскопа и акселерометра, чтобы проанализировать ускорение и углы наклона по трем осям (Alpha, Beta, Gamma). У живого человека этот угол будет постоянно плавать. В случае же с дешевой эмуляцией датчики будут выдавать нули.
Мобильное устройство может находиться в состоянии покоя, да, когда оно лежит на столе или другой поверхности, но тогда оно не может генерировать пользовательские события, вернее может, но это довольно тонкое поле. С одной стороны явно утверждать, что телефон в состоянии покоя, выполняющий некие действия скрипт слишком категорично, но и назвать постоянно неподвижный телефон человеком тоже сложно. В такой ситуации это может добавить очков не в пользу человека.
Конечно, никто не будет банить аккаунт по одному лишь признаку, но мы ведь говорим о том, что может снизить ваш Trust Score и осложнить жизнь аккаунту.
Сенсорная физика: пятно контакта и сила нажатия
Клик мышкой и свайп пальцем — это два совершенно разных события для JavaScript. Мышь имеет точный пиксель (Point), в который направлено действие. Человеческий палец — это площадь.
Современные браузерные API (Touch Events) передают не только координаты касания, но и его физические параметры:
Область касания (
radiusX,radiusY): Размер пятна контакта пальца со стеклом. Он эллипсоидный и может меняться в зависимости от пользовательских предпочтений.Сила нажатия (force): Сила, с которой палец давит на дисплей (в диапазоне от 0,0 до 1,0).
Боты, которые пытаются эмулировать мобильный клик (транслируя десктопный click в touchstart), как правило, передают идеальный радиус касания, равный 1×1 пикселю, и фиксированную силу нажатия ( 0,0 или 1,0) или вообще не передают этот параметр. Мы же понимаем, что физически человек просто не может нажать на экран площадью в 1 пиксель, если только он не использует иголку (правда иголку в один пиксель еще поискать нужно).
Геометрия мультитач
Если одиночные тапы по экрану сложно подделать, то свайпы и зум — еще сложнее. Естественный свайп (пролистывание ленты) никогда не бывает идеально прямой линией — он идет по легкой дуге, потому что человеческий палец двигается вокруг сустава.
Лучшее подтверждение этому будет проверка в реальном времени. Обратите внимание, как именно вы пролистываете эту статью, ваш палец свайпает экран по дуге, чем длиннее свайп, тем характернее дуга.
А масштабирование картинки двумя пальцами? Обычный человек ставит пальцы несинхронно (один всегда касается экрана на долю миллисекунды раньше другого), двигает ими с разной скоростью и отпускает в разное время. Можно ли эмулировать геометрию многопальцевых жестов? Можно, но насколько это будет ресурсоэффективно — большой вопрос.
Косвенные маркеры реального устройства
Помимо реальных маркеров есть еще и косвенные. Сюда может входить все, что так или иначе сигнализирует антифроду, что устройством управляет скрипт, а не человек. Это могут быть показатели потребления энергии батареей или производительность видеокарты, или характер взаимодействия пользователя с окном браузера.
Косвенный маркер на то и косвенный, что его будет недостаточно для блокировки сессии, но общий Trust Score понизить может.
Аппаратная нагрузка и батарея: телеметрия железа
Браузер постоянно общается с операционной системой и железной начинкой устройства. Проанализировав полученные в ходе такого общения данные, антифрод может отличить реальный ноутбук или смартфон от виртуальной машины.
Battery Status API и динамика разряда
Через методы navigator.getBattery() браузер может получить данные о состоянии аккумулятора:
Level (уровень заряда): от 0,0 до 1,0.
Charging (статус зарядки):
trueилиfalse.ChargingTime / DischargingTime: оставшееся время до полной зарядки или разрядки.
Синтетические профили, запущенные через антидетект-браузер или через виртуальную машину, либо не имеют батареи вообще (API возвращает ошибку или недоступен), либо выдают фиксированный отпечаток — 100% заряда и статус charging: true в любой момент времени.
Качественный антифрод умеет строить график разряда батареи во времени, и когда в результате получается ровная прямая, а не кривая с равномерным разрядом — для него это косвенный показатель синтетической сессии.
Взаимодействие с окном: фокус, вкладки и автозаполнение
Обычный пользователь постоянно взаимодействует с окном браузера и элементами интерфейса. К примеру, обычное заполнение формы в глазах антифрода — это цепочка состояний, которая выглядит примерно так:
Клик по полю или переход через Tab триггерит событие
focus.Включение курсора (каретки) и генерация событий
keydown/keyup/input.Потеря фокуса при переходе к следующему полю триггерит событие
blurиchange.
А для простого скрипта заполнить форму — значит найти инпут и присвоить ему значение: input.value = 'my_password'.
Если текст в инпуте появляется мгновенно, а события focus и blur отсутствуют или сгенерированы за 0 миллисекунд до отправки формы, с высокой вероятностью такое поведение будет расценено как прямая инъекция в DOM-дерево.
Хорошо, а что насчет автоматического подставления логина и пароля от Chrome или менеджера паролей (1Password, Bitwarden)? Антифрод умеет распознавать, где была применена реальная автоматическая вставка, а где сработал скрипт:
При встроенном автозаполнении браузер меняет CSS-псевдокласс элемента на :autofill и подсвечивает поле желтоватым/голубоватым фоном.
Браузер генерирует специфические системные события заполнения всей формы целиком.
Если же скрипт пытался «вставить» пароль через буфер обмена (Ctrl+V), фиксируется событие paste. Отсутствие событий paste при вставке длинной строки — еще один триггер.
Когнитивные паттерны и макроповедение
Но антифрод не останавливается на физических паттернах, он идет дальше. Дрожание руки, мультитач и свайпы, конечно, сложно имитировать, но сложно не значит невозможно. Антифрод-алгоритмы и исходят из того, что «физику» можно подделать, а значит нужно копать глубже. Давайте и мы перейдем к когнитивной психологии и макроповедению.
Это уже не про то, как совершаются действия, а зачем и почему они совершаются именно так.
На этом этапе срезаются скрипты, которые умеют симулировать движение мыши и ввод текста, да даже могут свайпать как человек, но абсолютно не понимают, как устроен человеческий мозг.
Память интерфейса (UI Memory) — слепой поиск против когнитивной паузы
Вспомните себя, когда вы заходите на сайт интернет-магазина или маркетплейса впервые. Вы понятия не имеете, где находится кнопка корзины или форма входа. Первые несколько секунд вам нужно сориентироваться, в этот момент вы можете начать совершать поисковые хаотичные движения курсором или пальцем (водить по экрану в поиске нужной формы или кнопки). Мало того, что клик по нужной кнопке происходит не сразу, так к этому еще могут добавляться перемещения мыши по экрану.
И как вы себя ведете на этом же сайте, когда уже что-либо заказывали или ранее логинились на нем? У вас срабатывает так называемая память интерфейса. Вы точно знаете, где расположена искомая кнопка, и ведете курсор к ней почти сразу, едва страница начинает рендериться.
А как себя ведет стандартный автоматизированный профиль на таком сайте? «Новичок» (профиль чист, у него нет ни истории, ни кук) не чувствует никакого замешательства при посещении веб-ресурса. Он быстро находит нужные кнопки и формы, разве что с небольшими рандомными задержками (чтобы не выглядеть как бот).
Человек всегда тратит время на распознавание интерфейса. Отсутствие «времени на раздумье» при первом визите — триггер для ML-модели, способной такие паттерны распознавать.
Яростные клики, скорость чтения и эмоциональный фактор
То, что еще отличает людей от ботов — это эмоции, нетерпеливость и физиологические ограничения (человек, например, не умеет читать быстрее, чем 200-250 слов в минуту или чуть быстрее, при беглом сканировании).
Скорость потребления контента
Когда бот заходит на страницу с пользовательским соглашением и за 0,3 секунды проскролливает 5000 слов до самого низа, а после этого ставит галочку «Я прочитал и согласен», это настораживает. Обычный юзер либо вообще не будет ничего скроллить (тут прямо-таки напрашивается ремарка — напишите в комментарии, если вы читаете пользовательское соглашение, перед тем как с ним согласиться), либо делает это чуть дольше, ну или будет скроллить неравномерно, с остановками на заголовках.
Идеальный равномерный скролл за доли секунды — это физиологическая аномалия.
Яростные клики
С физиологическими ограничениями понятно, а что с эмоциями?
Что вам хочется сделать, когда сайт лагает, а кнопка не нажимается? Скорее всего вы начнете раздраженно и быстро кликать по одной и той же кнопке несколько раз подряд.
Это явление называется яростные клики.

Для защитных систем серии быстрых повторных кликов в ответ на задержку интерфейса — это яркий маркер человеческой сессии. Боты же, как правило, ведут себя иначе: они либо просто ждут наступления события в DOM, либо отваливаются по тайм-ауту. Не зря же появилось выражение — бездушная машина.

Нелинейный скроллинг и Заминки
Обычный человек редко скроллит страницу сверху вниз идеальными шагами. Он крутит колесо мыши вниз, возвращается чуть назад, чтобы перечитать понравившийся или непонятный абзац, задерживает курсор на картинке, иногда выделяет текст.
Пытаясь эмулировать скролл через простые функции, вроде window.scrollTo(), автоматизаторы создают идеальную картину движений бота. Когда понимаешь, как себя ведет реальный человек, это не может не насторожить.
Можно ли обойти поведенческий антифрод?
Несомненно, защитные алгоритмы стали намного умнее, но и индустрия автоматизации не стоит на месте. Технологии развиваются с обеих сторон. На смену примитивным автокликерам приходят более сложные решения, способные обходить сложные системы защиты. В таких решениях поведение является важной составляющей.
Вот пример, как работает продвинутая эмуляция человеческого поведения. Вместо того чтобы пытаться описать человеческое движение мыши или ритм печати через функции Math.random(), собираются базы реальных человеческих сессий. Для чего?
Специальные трекеры записывают (или просто покупают) тысячи часов реального взаимодействия людей с веб-сайтами: траектории движения мыши, задержки, время удержания и время полета при печати, микропаузы перед кликами и нелинейный скролл.
При взаимодействии бота с веб-интерфейсом эти паттерны накладываются на текущие координаты интерфейса с помощью математического сжатия, растяжения и добавления случайного шума. В результате движения мыши сохраняют все естественные характеристики человеческой руки (включая микротремор и торможение по закону Фиттса).
Это даже звучит пугающе для 2026 года, что же будет дальше, сложно представить.
Заключение
Несколько лет назад статьи подобного рода заканчивались выводом, что больше недостаточно чистить куки и использовать режим Инкогнито, антифрод эволюционировал и нужно менять цифровой отпечаток устройства. Сегодня уже и этого может не хватить. Поведенческий антифрод уже не просто обозримое будущее, это уже настоящее, которое продолжает усложняться.
Подмена железа скоро станет просто очередным обязательным минимумом для автоматизации (как когда-то произошло с куками). Без реалистичного фингерпринта вы просто не сможете получить доступ к ресурсу. Поведенческие паттерны же, напротив, могут занять место отпечатка браузера, как основы в отделении ботов от людей. Какой тест Тьюринга, о нем уже пора забывать, как об анахронизме.
Судя по всему мы уже на пороге очередных изменений.
А вы как считаете, станет ли человеческое поведение реальной угрозой для ботов или, как и всегда, найдется способ обхода?

