Содержание статьи
Анонимные браузеры — идея не новая, но зачастую дело ограничивается кастомной сборкой Chromium или, чуть реже, Firefox, которая отличается от обычной лишь отсутствием привязки к фирменным сервисам и не содержит предустановленной рекламной ерунды.
Octo Browser обещает нечто большее: возможность полностью менять профиль пользователя, защищая от фингерпринтинга и других механизмов слежки. Дополнительно предлагают возможность командной работы, чтобы одним профилем могли пользоваться несколько человек.
Браузер распространяется по платной подписке, которую разработчики предоставили нам для тестирования. Что ж, посмотрим, действительно ли он помогает скрыться от слежки и какими другими интересными функциями обладает.
Тестовый стенд
Для тестов я использовал ноутбук со свежеустановленной Windows 10 Pro и достойными характеристиками: 32 Гбайт ОЗУ, новенький SSD и процессор Intel Core i5. Так что ресурсов точно должно хватить.
На соседнюю машину также был установлен Burp Suite, а на тестовую — Wireshark и корневой сертификат из Burp для перехвата шифрованного трафика. Забегая вперед, скажу, что это оказалось бесполезно: браузер не хочет использовать прокси, а при попытке принуждения к этому отказывается работать вообще. Сертификат для перехвата трафика также игнорируется, так что подсмотреть, что именно передается, оказалось невозможно.
Соглашения
Начнем чуть издалека — с изучения сайта. На нем с порога обещают некий ANTI DETECT, защиту от идентификации браузера и полную конфиденциальность. Заглянем в FAQ, чтобы понять, от какого детекта нас защищают, и там обнаружим страницу с FAQ по командным функциям, где отчетливо видно, что целевая аудитория этого браузера нуждается в скрытии от обнаружения системами защиты сайтов при массовой регистрации аккаунтов.
info
Массовая регистрация не преступление, но пользовательское соглашение сервисов часто вводит ограничения на подобные действия.
В таких ситуациях действительно важно максимально отвязать все идентификаторы браузера от реально используемого железа, что и постарались сделать разработчики Octo Browser. Насколько у них получилось — скоро проверим, а прямо сейчас обращу твое внимание на одну важную вещь.
Приватный браузер должен иметь как минимум хорошую политику конфиденциальности и не иметь противоречий по части заявленных функций, то есть он не должен собирать какие‑то данные, от сбора которых стремится защитить.
С политикой конфиденциальности проблем не обнаружилось, а вот в условиях использования нашелся такой пункт:
We may terminate these Terms of Use, or suspend or terminate your account at any time for any reason.
То есть учетную запись могут в любой момент отключить по любой причине, которую разработчик сочтет достаточной. Не очень‑то дружелюбно, но с приватностью все же не связано.
Установка
Для использования браузера нужно зарегистрироваться. На сайте есть кнопка регистрации, но ведет она почему‑то в блок загрузок, где сказано, что зарегистрироваться мы можем только из самого браузера.
Что ж, качаем! Версии для Linux нет, но в скором времени она появится. Установщик под Windows занимает 82 Мбайт — это заметно меньше, чем Chromium, но несколько больше, чем Firefox.
info
В лицензионном соглашении упоминается возможность установки на мобильные телефоны, планшеты и другие устройства, тогда как на сайте — только установщики для Windows и macOS. После общения с разработчиками выяснилось, что соответствующие сборки еще в разработке, так что можно рассматривать это как анонс.
Установка ничем не примечательна, если не считать того, что браузер игнорирует доверенный сертификат из системы и отказывается связываться с бэкендом через Burp.
Запускаем.
При регистрации сразу бросается в глаза поле для ссылки на Telegram — такое нечасто встретишь! Как, впрочем, и саму обязательную регистрацию через десктопное приложение.
После регистрации на указанную почту прилетает письмо со ссылкой для активации аккаунта. После подтверждения почты и логина в браузер мы попадаем… Нет, не на главную страницу, как ты мог подумать, а в окно лаунчера, где отныне будет происходить практически вся магия, отличающая Octo от обычного Chrome.
Тут также становится видно, что 82 Мбайт в сжатом виде — это был только сам лаунчер, а еще порядка 180 Мбайт было скачано в виде дополнительных модулей.
После оплаты подписки появляется окно, в котором нас интересует кнопка создания профиля. На нее и нажмем — откроется окно с настройками.
Настройки
Настроек на удивление много — глаза разбегаются. Кроме очевидных, вроде названия и комментария к названию профиля в программе, сразу предлагается выбрать, какая операционная система будет определяться при посещении сайтов. На первой же вкладке можно изменить список тегов для профиля (о них позже) и назначить стартовую страницу, чтобы при массовой регистрации аккаунтов через Octo не тратить время даже на переход на целевую страницу.
При выборе операционной системы меняются некоторые настройки на второй вкладке: например, при выборе macOS будет автоматически изменен заголовок User-Agent, чтобы там был указан Macintosh. Вариантов ОС три, но третий (Linux) выбрать нельзя, поскольку соответствующие методы маскировки для Linux еще недостаточно проработаны.
Вторая вкладка содержит общие настройки. Тут можно поменять User-Agent, виртуальное разрешение экрана и набор доступных браузеру шрифтов. Кроме этого, можно поменять отдаваемый системный язык, часовой пояс и геолокацию — все три параметра по умолчанию задаются в соответствии с внешним IP-адресом, но можно принудительно установить их равными системным или даже задать вручную конкретные значения. Приятная мелочь: эти параметры задаются не просто текстовой строкой, а удобными меню с пояснениями.
На третьей вкладке можно собрать себе компьютер мечты, жаль, что увидят его только сайты, на которые ты зайдешь через Octo Browser. Настраивается объем оперативной памяти, количество ядер процессора, модель видеокарты, а также количество микрофонов, камер и динамиков. Тут же можно включить рандомизацию значений некоторых отпечатков: по умолчанию защищены отпечатки WebGL и аудиоподсистемы, но можно подчистить еще тег canvas
и фингерпринты по client rects.
info
Фингерпринтинг через canvas
широко известен, а вот getClientRects(
— техника чуть менее популярная и заключается в том, что код на JS может получить информацию об участках экрана, куда выведена контролируемая информация. Такие участки очень сильно зависят от компьютера и позволяют отслеживать даже Tor Browser со включенным JavaScript. Подробнее — в статье Хосе Карлоса Норте.
Дальше настраивается прокси (поддерживается SOCKS5, HTTP и SSH) и DNS для конкретного профиля.
Следом можно загрузить пачку сookies в текстовом формате или в JSON, установить расширения и выбрать поддерживаемые хранилища. Выборочно включаются и отключаются cookies, сохранение паролей, расширения, Local Storage, история и закладки.
Думаю, постоянному читателю «Хакера» не надо пояснять, зачем нужны эти настройки, так что перейдем к тестированию.
Тестирование
Для первого запуска просто сохраняем настройки по умолчанию, запускаем… и видим вполне обыкновенный Chromium.
Визуальных отличий нет, расширения никакие не предустановлены, так что в плане юзабилити и функций — ничего интересного.
Для проверки пройдем тест Electronic Frontier Foundation — некоммерческой организации, которая борется за приватность в интернете.
info
Cover Your Tracks — это тест, который позволяет протестировать многие механизмы в браузере на предмет применимости для слежки. Сайт не только дает абстрактные результаты, но и подробно разбирает каждый пункт, приводя объем идентифицирующей информации (в битах) и распространенность такого сочетания параметров среди протестированных браузеров. Этот тест считается одним из основных при проверке приватности браузера.
По результатам теста можно сказать, что наш браузер ничем не отличается от Chrome и имеет уникальный отпечаток. Это может показаться провалом, но отпечаток получился уникальным как раз из‑за качественной подмены характеристик браузера. Я проверил весь отчет вручную — все чисто, информация из тестового стенда не просочилась. За кадром я запустил еще несколько тестов — трекеры даже не поняли, что их поимели и все данные липовые.
Выглядит уже неплохо, но, поскольку настройки у нас стандартные, без прокси, давай включим еще его и проверим защиту адреса.
Для тестирования я создал два профиля со случайными настройками, в одном из которых я включил бесплатный прокси откуда‑то с просторов интернета. В обоих профилях запускался уже известный нам тест от EFF, а еще тест privacy.net и Webkay. Чисто ради интереса я погонял и «проверку анонимности» на 2ip.ru.
EFF — Cover Your Tracks
Как я и предполагал, никакой блокировки трекеров не оказалось. Оба профиля браузера тест успешно провалили — прокси ожидаемо никакой роли не сыграл. Однако это совершенно нормально — главное‑то, чтобы профили были изолированы. По сути, Octo даже не пытается скрыть поддельные параметры, благодаря чему не привлекает лишнее внимание.
Если тебе тоже интересно узнать, будут ли отличаться отпечатки в разных инстансах с разными настройками и выходными адресами, — да, будут, но необязательно все и всегда.
Самым стойким идентификатором оказался AudioContext
, который почти не менялся при включении и выключении его рандомизации в настройках профиля, самих настроек профиля и даже используемого браузера — я скачал ванильный Chromium и получил очень похожий отпечаток в нем.
Проблема кроется в том, что уникальных по своим характеристикам аудиокарт существует не так уж много и сильно выбиваться из этого множества может быть опасно с точки зрения скрытности. Шум действительно добавляется, но он меняет отпечаток не слишком заметно, а вариантов самого шума, который не выбивался бы из толпы, довольно мало, так что возможны коллизии.
Справедливости ради стоит добавить и что один недостаточно случайный идентификатор не сделает погоды на фоне пары десятков других, защищенных намного лучше.
Зато отпечаток по WebGL действительно разный — рандомизация все же работает. Отпечатки canvas
тоже хорошо прикрыты.
Отдельного внимания заслуживает функция рандомизации списка доступных шрифтов. Любой нормальный компьютер будет иметь приблизительно одинаковый базовый набор шрифтов и еще немного уникальных от установленного софта. В Octo отлично проработана схема маскировки по шрифтам: у него есть базовый набор шрифтов, который должен быть на каждом компьютере для заданной ОС, а в дополнение — небольшой случайный набор, который ты можешь настраивать.
Webkay
Webkay не показал ничего нового и интересного, кроме того, что данные о зарядке батареи фальсифицируются: независимо от реальности все сайты получают информацию о том, что батарея заряжается и ее текущий уровень заряда — 100%.
privacy.net
Ничего нового не выяснилось. Браузер успешно лжет про разрешение экрана, оборудование и IP.
Проверка анонимности 2ip.ru
Небольшое отступление, прежде чем мы перейдем к результатам: этот тест проверяет не приватность в смысле снятия отпечатков браузера, а анонимизацию с точки зрения соответствия внешнего IP-адреса реальному. То есть мы узнаем, можно ли обнаружить факт подмены IP и по каким признакам это происходит. Всего анализируется 15 критериев, которые обычно позволяют обнаружить использование средств анонимизации. Вот некоторые из них:
- Заголовки HTTP-прокси. Часть прокси‑серверов подставляют в запросы свои заголовки, чтобы можно было идентифицировать клиента. С приходом HTTPS метод стал практически бесполезным.
- Открытые порты HTTP-прокси. Даже если прокси не подставляет свои заголовки, у него должен быть открыт порт, через который клиент подключается к самому прокси‑серверу. Сюда же можно отнести открытые порты VPN.
-
Подозрительное название хоста. Если хост имеет имя вроде
my-super-secret-vpn.
, что‑то тут нечисто.net - Разница во временных зонах браузера и IP. Каждый публичный IP можно соотнести с некоторой страной, и, если браузер сообщает одну страну, а IP принадлежит другой, это повод для подозрений.
- Принадлежность IP к сети Tor. Если IP клиента — это адрес выходной ноды Tor, то (внезапно) клиент, скорее всего, использует Tor.
- Утечка DNS. Если ты живешь в Беларуси, а используешь DNS-серверы Индонезии, это еще один повод подозревать тебя.
- Определение туннеля двусторонним пингом. Суть метода в том, что туннель в любом случае будет добавлять задержку. Если пропинговать тестовый сервер из браузера, а затем пропинговать IP-адрес клиента со стороны сервера, время будет приблизительно одинаковым только в случае отсутствия туннеля.
Тесты были проведены одновременно из двух параллельных профилей с одинаковыми настройками, разница только в использовании прокси. Результаты ожидаемо отличались обнаружением туннеля.
Другие фичи
У Octo Browser есть полезные фишки, которых нет у других подобных продуктов. В первую очередь это возможности для командной работы. Но есть и просто приятные мелочи для изучения сайтов и их поведения в разных условиях.
Лично мне приглянулась фишка сохранения и импорта cookies для целого профиля. Аналогичные браузерные расширения показывают только куки в пределах открытого сайта, а тут можно выгрузить в JSON вообще всё. Само собой, их можно так же легко загрузить в профиль через настройки.
Существует так называемый Cookie Robot: он обходит заданные ссылки, чтобы собрать с них куки, которые затем сохраняются и используются в работе.
На профили можно вешать специальные теги, которые позволяют удобно разграничивать доступ к ним. Дело в том, что при работе в команде у разных участников могут быть разные задачи, поэтому можно настроить так, чтобы конкретные люди видели только профили с определенными тегами. В FAQ приводится простой пример использования: один член команды регистрирует профиль, другой продает его. Число членов команды зависит от выбранного тарифа.
Киллер‑фича — облачная синхронизация. Можно запустить профиль на одном компьютере, затем закрыть браузер, залогиниться в этот же аккаунт Octo на другой машине и продолжить с того же места, где остановился. Настройки маскировки тоже «выживают»: браузер выглядит для сайтов точно так же, как на другом компьютере, будто реальное железо и не менялось. Функция действительно классная, и больше нигде я ее не видел. Или плохо искал?
Приглашать пользователей можно по адресу электропочты (туда придет ссылка, по которой пользователь зарегистрируется сам). Можно настроить права доступа к профилям, прокси и шаблонам профилей, а также дать полный доступ.
Выводы
Перед тем как я получил для тестов собственно браузер, я думал, что передо мной окажется очередной Chromium со встроенным адблоком. Но опыт показал, что защита от самих попыток отслеживания чаще приводит к проблемам, чем скармливание следящим сервисам заведомо подложных данных. Octo Browser использует как раз такой способ: он не запрещает смотреть на себя, но ходит в надежной маске, заглянуть за которую не удалось ни одному тесту.
Подделка характеристик браузера выполняется качественно и не сводится к подмене названий железок. Заголовки стабильно проходят проверку и дают нужные отпечатки.
Разработчики в ходе тестирования отвечали на любые вопросы и даже частично раскрыли мне особенности внутреннего устройства браузера, которые в ходе тестов выяснить не удалось бы. Сложно сказать, будет ли такой же уровень поддержки у простых пользователей, но на дружелюбный подход надеяться можно.
В целом Octo Browser оставил приятные впечатления. С одной стороны, тесты на защиту от трекеров он благополучно провалил, с другой — эти трекеры были обмануты и не смогли ничего заподозрить.
Целевая аудитория, скорее всего, сама определит, как и для чего его использовать и окупится ли подписка. Отмечу еще, что за время обзора он обновился дважды, а это значит, что разработчики активно улучшают свой продукт.