Результаты второго аудита безопасности разработок проекта Tor

Разработчики анонимной сети Tor опубликовали результаты второго аудита, который был проведён компанией Radically Open Security с апреля по август 2023 года (до этого с ноября 2022 года по апрель 2023 года компанией Cure53 проводился первый аудит). Проверка затронула код для обеспечения работы выходных узлов, браузер Tor Browser, компоненты инфраструктуры (сбор метрик, SWBS, API Onionoo) и утилиты для тестирования. Основной задачей повторной проверки была оценка изменений, внесённых для повышения скорости и надёжности сети Tor, таких как добавленный в выпуске Tor 0.4.8 протокол разделения трафика Conflux и методы защиты Onion-сервисов от DoS-атак на основе доказательства выполнения работы.

В ходе аудита были выявлены 17 уязвимостей, лишь одна из которых отнесена к категории опасных. Четырём уязвимостям присвоен средний уровень опасности, 12 отнесены к проблемам с незначительным уровнем опасности. Наиболее опасная уязвимость выявлена в приложении onbasca (Onion Bandwidth Scanner), применяемом для сканирования пропускной способности узлов сети.

Уязвимость вызвана возможностью отправки запросов через HTTP-метод GET, позволяющих выполнить подстановку межсайтовых запросов от лица другого пользователя (CSRF, Cross-Site Request Forgery), что даёт атакующему возможность добавить свои мостовые узлы в БД через манипуляцией с параметром “bridge_lines”. Например, атакующий может разместить web-страницу с JavaScript-кодом fetch(“https://127.0.0.1:8000/bridge-state/?
bridge_lines=obfs4+0.0.0.0%3A00000+AAA+cert%3D0+iat-mode%3D0”, и если эту страницу откроет пользователь с активным сеансом к Onion Bandwidth Scanner, то от его имени в базу будет добавлен IP “0.0.0.0”.

Проблемы со средним уровнем опасности:

  • Отказ в обслуживании в metrics-lib через передачу большого сжатого файла – так как файл распаковывается в оперативную память, можно передать подобие zip-бомбы (например, можно упаковать 600 МБ нулей в 0.0006 МБ) и вызвать исчерпание доступной памяти.
  • Использование в tor-android-service (применяется в Tor browser для Android) стороннего модуля tun2socks, сопровождение которого прекращено.
  • Запись нулевого байта за границу выделенного буфера в клиенте Tor из-за использования функции read_file_to_str_until_eof, возвращающей размер без учёта нулевого символа.
  • Уязвимость в sbws (Simple Bandwidth Scanner), позволяющая откатить HTTPS-соединение до HTTP, используя редирект на HTTP. Подконтрольный атакующему выходной узел Tor потенциально может использовать данную уязвимость для организации утечки API-токенов.
Release. Ссылка here.