Анонимный ИБ-эксперт обнародовал исследование, согласно которому, браузер Brave, работающий в режиме Tor, оставлял следы в логах на DNS-сервере. Так, браузер раскрывал URL-адреса onion-сайтов, которые посещал пользователь.
Режим Tor был интегрирован в Brave еще в 2018 году, он позволяет пользователям посещать onion-сайты. Это реализовано посредством проксирования запросов пользователя через узлы Tor, которые осуществляют запрос к onion-ресурсу вместо него, а затем передают обратно полученный HTML.
Исследователь сообщил, что когда браузер работает в режиме Private window with Tor, он передает на DNS-сервер onion-адреса любых посещаемых сайтов в формате стандартного DNS-запроса (чего, разумеется, происходить не должно). В видео ниже, записанном журналистами Bleeping Computer, видно, как «луковые» адреса DuckDuckGo и NY Times выполняли DNS-запросы к локально настроенному DNS-серверу (общедоступным серверам Google по IP-адресу 8.8.8.8).
Впервые информация об этой проблеме была опубликована на Reddit, и сначала многие усомнились в корректности выводов эксперта. Однако вскоре существование бага подтвердили такие известные ИБ-специалисты, как главный исследователь PortSwigger Web Security Джеймс Кеттл (James Kettle) и аналитик CERT/CC Уилл Дорманн (Will Dormann).
Can confirm. All addresses, both standard and .onion go to the DNS server that the OS is configured to use.
— Will Dormann (@wdormann) February 19, 2021
Tested on Windows. pic.twitter.com/DOZb6fsbXr
Разработчики Brave уже сообщили, что им известно о проблеме, и патч для нее был включен в сборку Brave Nightly еще две недели назад, после получения сообщения об ошибке. Исправление обещают перенести в стабильную версию уже во время следующего обновления браузера.
Источником бага оказался встроенный в Braveблокировщик рекламы, который использовал DNS-запросы для обнаружения сайтов, пытающихся обойти его запреты, но исключить домены .onion из этих проверок разработчики забыли.
tl;dr
— yan (@bcrypt) February 19, 2021
1. this was already reported on hackerone, was promptly fixed in nightly (so upgrade to nightly if you want the fix now)
2. since it's now public we're uplifting the fix to a stable hotfix
root cause is regression from cname-based adblocking which used a separate DNS query https://t.co/dLjeu4AXtP