Антидетект‑браузеры – это класс узкоспецифичных решений для тех, кому надо защититься от фингерпринтинга максимально надежно. И если от излишне прилипчивых cookie-файлов еще можно защититься в стандартном Chrome или Firefox, то отпечатки оборудования (например, видеокарты) и операционной системы останутся стабильными, что бы ты ни делал.
Некоторые сервисы весьма требовательны к такому и могут не пускать пользователя при малейшем подозрении. Чтобы умерить агрессию таких фильтров и были придуманы браузеры с антидетектом. Работают они с виду так же, как и обычные, но при этом умело подсовывают фальшивки, когда сайты пытаются фингерпринтить оборудование.
Спектр применений у этой технологии куда шире, чем кажется: это и тестирование своих приложений на совместимость, и синхронизация сессий при командной работе (если, например, приложение поддерживает только одну сессию одновременно, а нужно, чтобы работало больше одного человека), и даже просто приватная работа в сети со сменой «лица» по одному клику.
Браузер Vision призван закрывать все подобные сценарии. Он создает уникальные профили, поддерживает стабильные отпечатки при миграции между устройствами, поддерживает прокси, стабильно эмулирует типовую пользовательскую активность (действия мышкой, заполнение форм, работу с видеокамерой) и так далее. И при всем этом умудряется почти не нагружать систему сверх обычного потребления Chromium.
Чтобы проверить заявления разработчиков, я поднял тестовый стенд в VirtualBox с 16 Гбайт памяти и 8 ядрами Intel Core i7 13 поколения, чтоб точно ничего не тормозило. Внутрь установил последнюю доступную версию Windows 10.
Для полной наблюдаемости происходящего установил еще Proxifier и завернул через него весь трафик в Burp Suite, развернутый на хосте, а для перехвата HTTPS поставил еще корневой сертификат из Burp.
Подходим к снаряду
Людей встречают по одежке, а софт – по лендингу.

По словам разработчиков, целевая аудитория — это «арбитражники, а также пользователи, работающие с марткетплейсами, криптовалютой, букмекерскими конторами, автоматизацией, SEO и прочим. Но полезное есть и для рядового юзера: можно удобно разделить рабочий и личные профили, сколько бы их ни было, и не рисковать утечками между ними. А заодно обходить слишком въедливые антифроды».
Первым делом читаю политику конфиденциальности.

Она сообщает, что данные профиля шифруются и хранятся на стороннем сервере, при этом сами разработчики используют лишь анонимизированные данные.
Мы уточнили у разработчиков принцип шифрования и хранения профилей и получили следующий ответ:
На самом ПК пользователя данные профилей хранятся в незашифрованном виде (для обеспечения быстродействия приложения).
Каждый пользователь имеет уникальный ID, каждый профиль также имеет уникальный ID, они взаимосвязаны. При синхронизации (происходит при закрытии профиля) и отправке данных на сервер данные шифруются 256-битным AES ключом и для каждого профиля генерируется ссылка для загрузки файла. Она валидна определенное время и технически позволяет скачать архив только пользователю — благодаря связи ID профиля и ID пользователя.
То есть на сервере данные профилей лежат в зашифрованном виде. У пользователя — «ключ от ключа» для отправки и получения данных.
Сам ключ AES шифрования является частью архитектуры No Backdoors: это CSPRNG на базе AES. Данные при отправке шифруются с добавлением случайной соли, которая генерируется строго на стороне сервера через системные криптобиблиотеки.
Таким образом даже ключевые лица команды разработки не могут получить доступ к данным: CSPRNG дает истинно непредсказуемый результат шифрования, и расшифровать «ключ от ключа» пользователя сегодня просто технически невозможно, что исключает какое‑либо влияние человеческого фактора.
Иными словами, шифрование есть (хорошо!), однако контролируется на стороне сервера, то есть это не чистый E2EE.N
Компания‑разработчик зарегистрирована в ОАЭ, если тебя волнуют вопросы юрисдикции.

Что оставило исключительно приятные впечатления, так это документация. Она очень подробная, обильно приправлена скриншотами и поддерживается в актуальном состоянии. Я к ней не раз обращался, чтобы точно узнать, как работает та или другая функция. Есть варианты на русском и английском языках.
Установка
Установить программу на Windows – проще пареной репы. Просто все время жми «Далее» и не прогадаешь. После установки открывается окно входа, где нужно ввести логин и пароль, ранее созданные на сайте, но тут меня ждал первый сюрприз: телеметрия в Burp идет, а браузер на попытку входа выдает ошибку сети.
info
Релизы можно скачать с сервера Amazon S3 в Европе:
GET /v3.6.8/windows/vision_3.6.8_x64_en-us.msi HTTP/1.1Host: vision-releases.s3.eu-north-1.amazonaws.com
Вскоре мне удалось вяснить диагноз: используется SSL pinning, то есть браузер активно проверяет подлинность сертификата бэкенда и на липу от Burp Suite не ведется. Пришлось остановить перехват трафика.
После логина перед глазами предстает окно, в котором отныне и будет происходить все интересное. Еще при первом же запуске скачаются бинарники модифицированного Chromium, который и будет делать всю работу.

Перейдем пока в настройки. Там можно увидеть некоторую статистику и подкрутить настройки анонимизации, которые будут применяться ко всем профилям – например, скорость симуляции набора текста при заполнении формы или проксирование QUIC (HTTP/3).

Отдельно подсвечу поддержку входа по PassKey с возможностью синхронизации между устройствами. Это очень мощный инструмент для тестирования современных приложений, которые могут вовсе не иметь других возможностей входа, а привязка физического ключа напрочь убивает всю суть синхронизации, которая должна давать одинаковые возможности всем членам команды, а не только владельцу ключа.
Автологин в профиль
Прямо из браузера можно перейти в браузер (да!) для управления профилем и подпиской. Для этого служит кнопка с названием текущей подписки в левом нижнем углу окна. При нажатии на нее в браузере по умолчанию откроется ссылка такого формата:
https://my.browser.vision/?token=<JWT>
Тебя автоматически залогинит в аккаунт, где можно будет делать все административные действия. JWT тут – это подписанный многоразовый токен твоего аккаунта, действительный в течение года.
Токен передается прямо в URL, что считается не лучшей практикой из‑за технической возможности утечки. Риск чисто теоретический, учитывая, что трафик зашифрован и токен из истории автоматически стирается, но я все равно рекомендую логиниться в веб‑админку исключительно по старинке — c логином и паролем.
Тестирование
Перейдем к тестированию основных возможностей, то есть будем использовать браузер как браузер. Для этого нужно создать профиль, то есть объяснить браузеру, кем он должен быть в этот раз. Для этого нажмем кнопку добавления профиля.
Тут все просто: можно задать имя профиля, навесить статус или теги (они почти ничем не отличаются по сути, но разные по назначению), выбрать желаемую ОС и задать прокси. В качестве движка браузера можно выбрать Chrome или Safari (вторая опция появилась вместе с поддержкой macOS в недавней версии).
Удобно, что прокси можно задавать в том числе по SSH – такой функции я еще не встречал. Прокси можно выбрать из уже добавленных или настроить с нуля, при этом свеженастроенные прокси автоматически сохраняться в общий список.
Дополнительно можно задать ссылку для обновления IP. Многие провайдеры прокси предоставляют единую точку входа трафика и динамически переключают точку выхода, а для принудительного переключения нужно дернуть определенный эндпоинт – для такого сценария и предусмотрено это поле.
В правой части виден полный отпечаток профиля с куда большим количеством параметров, чем я сейчас показал. Самые интересные настройки скрыты как дополнительные, хотя их ты и будешь крутить в первую очередь, если захочешь спрятаться.

Вот тут уже можно кастомизировать профиль по‑настоящему. Выбрать и видеокарту, и веб‑камеру, и количество медиаустройств, и разрешение экрана. В общем, собирай компьютер мечты – жаль только останется он исключительно виртуальным.
Отдельно отмечу возможность указать, какой IP будет репортить WebRTC – такой фишки я не видел больше вообще ни у кого. Про WebRTC вообще часто забывают, но не разработчики Vision.
Настройки WebRTC
В настройках есть варианты «Авто», «Использовать реальный» и «Скрывать». При варианте «Авто» применяется установленный прокси. Если он не настроен, будет использоваться реальный IP.

Отпечатки по всем основным способам фингерпринтинга можно заменить на шум. Это более скрытно, чем полный запрет на такой фингерпринтинг: позволяет заверить сайт в том, что пользователь настоящий, просто не тот, которого он уже знает.
И еще одна отличная фича: можно наглухо заблокировать подключения на определенные порты. По умолчанию там уже перечислены порты, которые обычно используются для удаленного доступа и прокси. Сделано это для того, чтобы сайт не мог по открытому локально 3389 порту понять, что пользователь сидит удаленно через RDP или по открытому 1080 обнаружить Tor.
Заподозрив неладное, особо ранимые сайты могут запросто отказаться работать, так что эта настройка поможет утихомирить их при работе на облачных серверах или на виртуальных рабочих станциях (когда компания выделяет сотруднику ноутбук и полноценный десктоп в облаке с доступом по RDP).
Кроме эксклюзивных для Vision параметров отпечатков, залезть можно и в самое сердце браузера – в движок Chromium. При желании ты можешь использовать специальные аргументы запуска для изменения некоторых аспектов поведения браузера.
Например, можешь отключить запросы на показ уведомлений с сайтов (--disable-notifications), если не хочешь получать их сразу из десятка профилей. Или скрыть от сайтов события перехода окна в фон, чтобы те не останавливали активность. Когда открыты одновременно четыре профиля, можно заставить всех одновременно считать себя активными! В общем, возможности тут ограничены только твоей фантазией.

И последняя интересная фича – предустановка расширений. Можно автоматически добавить расширения во все профили. Например, если целевому приложению нужен аккаунт из Metamask – можно сразу добавить в профиль этот самый Metamask, чтобы не идти и не ставить руками при создании каждого профиля.

Ковыряем профили
Мне стало интересно, как устроено хранение профилей и я легко нашел их по пути %APPDATA%\, где лежат zip-архивы с файлами профилей. Формат имени – <, рядом лежит соответствующий <, что намекает на то, что файлы могут быть подписаны.

Оказалось, что в файле .sig хранится всего лишь MD5 от содержимого архива, и скорее как справка, а не как защита: профиль загрузится даже с некорректной MD5-суммой.
Внутри архива — обычная папка с данными Chromium, которая указывается как путь к данным при запуске инстанса. Так что будь осторожен: атаки с извлечением данных Chrome тут тоже полностью применимы, хотя архивирование и может сбить с толку малварь, нацеленную на Chrome.

Переходим к тестам!
Приватность
Запустим наш новый профиль.

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

Сам браузер во многом напоминает Chrome, и это даже хорошо: для пользователя все привычно, а для сайтов — меньше шанс что‑то заподозрить.
Сами тесты мы изобретать не будем – благо умные люди из EFF (Electronic Frontier Foundation – Фонд электронных рубежей) уже сделали все за нас и предоставили сервис Cover Your Tracks, который позволяет увидеть то, что видят интернет‑трекеры.
Cover Your Tracks
Тесты Cover Your Tracks показывают конкретные значения отпечатков, полученных из браузера, и включают оценку того, насколько такой признак уникален. Чем реже встречается такой признак, как у тебя – тем более твой браузер уникален и тем легче за ним следить. Для уверенной идентификации зачастую хватает всего нескольких уникальных параметров – например, уникального сочетания модели видеокамеры и набора плагинов.
Заметь, тесты не полагаются на cookies, которые в общественном мнении считаются чуть ли не главным злом!
Для скрытности в классическом смысле получение этих идентификаторов должно быть невозможно, тогда браузер нельзя будет однозначно идентифицировать. Но в реальности такой неопределяемый браузер вызывает у антифрод‑систем куда большее подозрение, чем неприметный в общей массе, но уникальный.
Чтобы реально исчезнуть с радаров, нужно не прятать параметры, а подменять на фальшивые, формируя заведомо уникальный и подверженный отслеживанию, но ненастоящий профиль.
Как и положено, тест от EFF показал, что браузер уникален.

Вот только в разных профилях тест дает совершенно разные отпечатки, что подтверждает, что подмена работает.

Дальше я решил пройти тест от Privacy.net и случайно обнаружил, что либо в браузере вообще отключено автодополнение, либо оно работает не совсем ожидаемым образом. Во всяком случае утечки через него не будет. Лайк!

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

Еще для общего сведения можно посмотреть раздел с разбивкой по популярности признаков.

На мой взгляд, такое описание частоты встречаемости параметров куда более наглядный, чем у EFF.
В целом и так понятно, что подмена выполнена очень качественно, но давай еще развлечения ради погоняем тест анонимности 2IP. Он проверяет не фингерпринтинг, а качество работы с прокси, но раз уж разработчики заявляют, что поддержка прокси у них лучшая на рынке – надо проверить.
Локальный HTTP-прокси Burp Suite был обнаружен тестом, но это ожидаемо: Burp — не средство анонимизации. К качеству антидетект‑функций Vision этот результат практически не относится.

Бесплатный канадский SOCKS5 прокси проверку туннеля прошел, но спалился на том, что находится в сети хостера, а не домашнего интернет‑провайдера. Но это уже от браузера не зависит и свою задачу он тут полностью отработал. Утекшие DNS на самом деле не утекшие, а как раз канадские, то есть DNS-запросы тоже пошли через прокси, и заявленная функциональность UDP-over-SOCKS5 работает отлично.

Вердикт – со стороны браузера анонимизация отличная, и явно справляется с реальными сценариями использования. Местами проработка слишком детальная: браузер, например, сообщает модель подменной веб‑камеры.
Дополнительные фичи
Vision поддерживает еще две интересные возможности, которых мне часто не хватает в обычном браузере. Первая – это подмена видеопотока с камеры, а вторая – автозаполнение форм из заметок к профилю.
Сначала разберемся с видео. Суть подмены в том, что можно дать браузеру файл, который и станет источником видеопотока для сайта, который вздумает использовать камеру.
Допустим, хочет какой‑то сайт проверить возраст (для той же Великобритании это частая проблема), а ты не хочешь сливать свое лицо. Не беда! Берешь какую‑нибудь говорящую голову с YouTube, подкидываешь ролик в Vision и при прохождении верификации сайт будет смотреть на блогера, а не тебя.
Для подмены нажми иконку камеры в правом верхнем углу окна и выбери файл с видео для показа. Внутри иконки камеры появится жирная точка, чтобы показать, что видео загружено.

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

info
В недавнем апдейте вместе с поддержкой Safari было добавлено PTZ-управление веб‑камерой и появилось множество новых функций: предпросмотр кадра, кадрирование, настройка масштабирования и выбор разрешения.
Отличная находка разработчиков — заметки. В них можно записывать не только, собственно, заметки, но и данные для автозаполнения. Само автозаполнение работает не как в обычном Chrome, где текст одномоментно появляется во всех полях формы, а реализуется подсистемой Vision Autofill, которая вводит данные посимвольно, соблюдая некоторые паузы между нажатиями клавиш. Даже самый придирчивый антифрод не заметит такое автозаполнение.

В заметки можно добавлять коды для 2FA, но записывать нужно не сам временный код, а секрет, на основании которого он генерируется. Записывать его тоже надо в специальном формате:
2FA: YZMUXLPFKSPQLZKVGTRBNFRY
2FA(GOOGLE): XRHFTEQTGDMOXFYHXYBCTAIA
Название в скобках – опциональное. Если его указать, то при выборе автозаполнения код будет подписан, чтобы знать, от какого он сервиса.

Для автозаполнения надо щелкнуть правой кнопкой мыши по полю ввода и выбрать, что именно туда нужно вписать. Текст аккуратно, по одному символу, наберется в поле. Кстати, точно таким же образом можно вставлять произвольный текст в любое поле: достаточно просто выбрать Human Type вместо обычной вставки.
Тарифы
Vision доступен аж в шести вариантах на любой размер команды и карман. Базовый тариф на одного человека обойдется в $29 в месяц, а при подписке сразу на год – на почти треть дешевле, всего $20.

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