В новой версии был осуществлен переход на новый браузерный движок. Это означает, что архитектура проекта значительно изменилась, теперь автоматизация браузера работает так:
1) В начале работы потока в фоне запускается экземпляр браузера.
2) Данный экземпляр ничем не уступает обычному браузеру и не имеет тех ограничений, что раньше.
3) Браузер управляется BAS с помощью стабильного протокола поддерживаемого Google.
4) Действия BAS по работе с браузером не изменились.
Что получают наши пользователи?
Такую автоматизацию очень сложно обнаружить. Можно делать это по косвенным признакам, таким как: повторение одних и тех же действий, неправдоподобные паузы между действиями, и т. д. Но сделать это отсутствию какого-то функционала уже крайне проблематично, а система смены отпечатков затрудняет сбор информации об оборудовании.
Старые проекты BAS легко портировать. Несмотря на то, что внутри софта поменялось очень многое, кое что было и совсем переписано с нуля, портировать старый проект просто. В некоторых случаях достаточно открыть его в новой версии, есть небольшие исключения, они описаны ниже.
Новые возможности. Новая система управления браузером дает также и возможности добавить новые фичи. Некоторые уже добавлены сейчас, некоторые мы надеемся добавить позже.
Поддержка расширений.
В новой версии появилась возможность подключать расширения браузера. Для этого нужно:
1) Скачать расширение с помощью этой
утилиты. При сохранении нужно выбрать zip.
2) Разархивировать в любую папку.
3) Указать эту папку в действии "Настройки Браузера".
К сожалению пока работа с интерфейсом расширения не поддерживается. Планируется реализовать это в следующих версиях.
Обновление версии браузера в будущем.
Очень важным фактором аутентичности браузера является наличие всех методов, классов, констант javascript. Иначе говоря, если версия движка старая - это можно обнаружить. Чтобы избежать этого, планируется обновлять браузер достаточно часто. В идеале, это будет делаться каждый месяц вместе с обновлением Chrome.
Для обеспечения постоянных обновлений было написаны тесты для действий по работе с браузером, была добавлена подробная документация по каждому патчу, улучшены инструменты для внедрения патчей, в ближайшее время будут написаны тесты для изменения отпечатков.
Переход на новый движок так же поможет в этом деле. Багов автоматизации при обновлении версии браузера в нем ожидается значительно меньше.
Тест piхеlscan.
Многие наши пользователи спрашивали об этом тесте, сейчас BAS успешно его проходит, для этого:
1) Нужно сменить отпечаток с помощью сервиса FingerprintSwitcher.
2) Разрешить получать данные canvas и webgl в действии "Настройки Браузера" ИЛИ использовать
PerfectCanvas
На момент написания статьи в тесте есть баг. Обычный браузер определяется как фреймворк для автоматизации,
скрин. Происходит так потому, что совсем недавно свойство navigator.webdriver в обычном Chrome поменяло значение с undefined на false и тест не успели обновить. В данном случае, BAS также определяется как фреймворк для автоматизации, так же как и обычный Chrome.
Еще один момент, при использовании прокси в данном тесте, нужно иметь резидентский ip.
В новой версии "родные" данные canvas не являются уникальными, это можно проверить на странице
Canvas Fingerprinting
Оптимизации в работе CPU.
Дополнительная нагрузка на процессор по сравнению с обычным Chrome может возникать при постоянной передаче изображения из браузера в BAS. Снизить ее оказалось совсем не простой задачей, для этого был переписан протокол передачи данных. Оригинальная версия тратила время на сжатие данные и передачу их по websocket, этот подход давал просто неприличные результаты при большой частоте кадров.
Новый протокол помог, но решение все еще не было совершенным. Поэтому был добавлен адаптивное снижение частоты кадров. Если пользователь активирует браузер - fps повышается, при сворачивании браузера, он снова падает. Данный метод помогает значительно снижать нагрузку в многопотоке, а также не является опасным для выполнения скриптов, поскольку оптимизация не затрагивает никакой другой части браузера кроме передачи изображения.
Оптимизация использования жесткого диска.
Размер профилей был значительно уменьшен по сравнению с обычным браузером.
1) Отключен Crashpad.
2) Отключена метрика браузера. Используется для получения сведений об удобстве использования браузера.
3) В файл chrome_command_line.txt добавлены флаги запрещающие некоторые виды кеша. Это можно отключить отредактировав файл.
Размер профилей сказался позитивно не только на количестве используемого дискового пространства, но и на времени запуска потока.
Widevine
В новой версии widevine нужно включать в настройках, либо в действии "Настройки Браузера". К сожалению, лицензирование BAS не произведено, поэтому сайты вроде spotify воспроизводить контент не будут.
Действие "Яваскрипт"
Добавлено новое действие "Яваскрипт", как и старое, оно может выполнять код в контексте браузера, но делает это намного качественней:
1) Добавлена работа с переменными BAS.
2) Ожидание асинхронных действий.
3) Получение информации об исключениях.
Старое действие продолжит работать, но теперь оно считается устаревшим.
Установка referrer.
Установка referrer теперь производится через действие "Загрузить" или "Добавить вкладку". Это нужно учитывать при портировании проекта.
Смайлики.
В новой версии добавлена поддержка смайликов при вводе текста. Такой метод ввода все равно не является достоверным, потому что смайликов нет на клавиатуре, а следовательно события keyup, keydown и keypress не эмулируются.
Наличие смайликов в ресурсах проекта не позволит скомпилировать проект с защитой.
Ввод символов состоящих из 4 байт еще не реализован, сюда относятся флаги стран.
Новые факторы отпечатка.
Для новой версии были добавлены новые факторы отпечатка. База еще не успела обновиться, поэтому рекомендуется использовать отпечатки не старше 2 недель.
Обновления модулей.
Были добавлены новые модули "Строка" и "SQL". Первый расширяет возможности BAS по работе со строками, есть действия для форматирования, редактирования, поиска строк, а также для парсинга текста. Второй - позволяет работать с популярными SQL базами данных: mysql, mariadb, postgres, sqlite, mssql. Есть возможность выполнять примитивные действия не вникая в синтаксис, а также выполнять произвольные запросы к базе.
Ограничения новой версии.
Некоторые вещи мы сделать не успели.
1) Drag and Drop не поддерживается. Это значит что ползунок громкости в видео плеере перетащить можно, но перетащить файл в браузер пока нет.
2) Запись http запросов пока не работает
.
3) Отображение элементов select пока не работает
. Но само значение элемента выбрать можно.
4) HTTP аутентификация пока не работает.
5) Отображение разных типов курсоров пока не работает
6) Инструменты разработчика открываются в системном браузере в отдельном окне.
7) Открыть инструменты разработчика для конкретного элемента пока невозможно.
Это не самые важные вещи, поэтому откладывать выпуск версии до их завершения нецелесообразно. Тем не менее, все они будут исправлены в будущих релизах.
Достижение максимальной аутентичности.
Если сайту все равно удается обнаружить новую версию BAS и вы уверены, что дело не в прокси, не в номере телефона, последовательности действий, а именно в браузере, то вот список действий, которые необходимо предпринять:
1) Убедитесь, что в хроме в режиме инкогнито или с новым профилем проблема повторяется.
2) Отключите модуль AjaxReCaptcha2. Увы, его можно обнаружить.
3) Отключите защиту canvas, webgl либо используйте PerfectCanvas.
4) Попробуйте выполнить действия в режиме ручного управления(без автоматизации).
Если ничего не помогло, используйте алгоритм в этой теме
Исследование защиты сайтов..
Как портировать старый проект.
Для этого нужно открыть старый проект в новой версии и внести такие изменения:
1) Все действия "Установить заголовок" с параметром "Referer" нужно заменить на действия "Загрузить" либо "Добавить вкладку".
2) Пересоздать действия: "Сброс", "Установить Значение Комбобокса", "Установить Индекс Комбобокса", "Выбрать Случайный Элемент Из Комбобокса", "Предыдущая Страница", "Добавить вкладку", "Проверить Существование"
Нужно помнить, что формат cookies и профилей изменился. Если проект полагается на использование профилей старого формата, их нужно обновить.
Дальнейшее развитие проекта.
Планы по дальнейшему развитию браузера следующие:
1) Обновить версию браузера до 90. Развивать инструменты ускоряющие обновление.
2) Вернуть возможности, которые не были перенесены в новую версию. Добавить взаимодействие с интерфейсом расширений, в том числе и автоматизацию.
3) Адаптировать PerfectCanvas для webgl, разрешить сбор данных в индивидуальном порядке.
План может меняться со временем.
В видео многие особенности новой версии показаны детальней
.
!ВАЖНО Обладатели 32-битной версии Windows не смогут обновиться в автоматическом порядке. После скачивания произойдет краш. Новую версию нужно перекачать. Для 64-битной версии проблем не будет.