Mozilla опублікувала результати незалежного аудиту клієнтського програмного забезпечення для підключення до сервісу Mozilla VPN
Mozilla опублікувала результати незалежного аудиту клієнтського ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ для підключення до VPN-сервісу Mozilla
Mozilla оголосила про завершення незалежного аудиту клієнтського програмного забезпечення для підключення до vpn-сервісу Mozilla. В ході аудиту був виконаний аналіз окремого клієнтського додатка, написаного за допомогою бібліотеки Qt і поставляється для Linux, macOS, Windows, Android і iOS. Mozilla VPN забезпечується більш ніж 400 серверами шведського VPN-провайдера Mullvad, розташованого в більш ніж 30 країнах. Підключення до служби VPN здійснюється за допомогою протоколу WireGuard .
Аудит проводив компанія Cure53, яка свого часу провела аудит проектів NTPsec, SecureDrop, Cryptocat, F-Droid і Dovecot. Аудит передбачав перевірку вихідного коду і включав в себе проведення тестів для виявлення можливих вразливостей (питання, пов'язані з криптографією, не розглядалися). Аудит виявив 16 проблем з безпекою, 8 з яких мали характер рекомендацій, 5 присвоєно низький рівень тяжкості, двом – середній і один – високий.
При цьому тільки одна проблема із середнім рівнем тяжкості класифікувалася як вразливість, так як тільки вона була придатна для експлуатації. Ця проблема призвела до витоку інформації про VPN-додатки в коді для визначення захопленого порталу через відправку незашифрованих прямих запитів по HTTP, переданих за межі тунелю VPN, і виявлення основної IP-адреси користувача на випадок, якщо зловмисник зможе контролювати транзитний трафік. Проблема вирішується відключенням режиму визначення порталу captive в налаштуваннях.
Друга проблема середнього рівня тяжкості пов'язана з відсутністю належного очищення числових значень в номері порту, що дозволяє злити параметри аутентифікації OAuth шляхом підміни номера порту на рядку форми "1234@example.com", що призведе до установки тега <img src="http://127.0.0.1:1234@example.com/?code=..." alt="> адресація example.com замість 127.0.0.1.
Третя проблема, позначена як небезпечна, дозволяє будь-якій локальній програмі без автентифікації отримати доступ до VPN-клієнта через WebSocket, прив'язаний до localhost. Як приклад показано, як за допомогою активного VPN-клієнта будь-який сайт міг би організувати створення та надсилання скріншоту за допомогою генерації події screen_capture. Проблема не класифікується як вразливість, так як WebSocket використовувався тільки у внутрішніх тестових збірках і використання цього каналу зв'язку планувалося в подальшому тільки для організації взаємодії з додатком браузера.