Studiu de caz 2: Scurgeri de WebRTC

Adresele dvs. publice publice fac parte din identitatea unei persoane pe web, permițând site-urilor, aplicațiilor și terților să își urmărească activitatea pe web și să o asocieze cu acea persoană specifică. Cu o VPN, site-urile văd adresa IP publică a serverului VPN în loc de cea a utilizatorului, protejându-și identitatea.

Cu toate acestea, WebRTC poate permite uneori site-urilor să vadă adresa IP publică a utilizatorului, reprezentând o scurgere care compromite confidențialitatea. Acest studiu de caz din Laboratorul nostru de cercetare a vieții private descrie modul în care apar scurgerile WebRTC și cum se testează pentru ei folosind instrumentele de testare a scurgerilor ExpressVPN.

Prezentare generală a WebRTC

WebRTC este un set de tehnologii deschise care permite paginilor web să furnizeze comunicații peer-to-peer (P2P) printr-un browser web. Majoritatea browserelor moderne acceptă acum standardul WebRTC.

WebRTC, printre altele, oferă browserelor web posibilitatea de a detecta atât adresele IP publice ale utilizatorului, cât și adresele IP locale ale acestora. Această abilitate este esențială pentru facilitarea comunicațiilor P2P folosind doar browsere web, fără aplicații sau pluginuri suplimentare.

Scurgeri de WebRTC

Scurgerile WebRTC sunt o formă de scurgere IP. Paginile Web pot utiliza API-urile WebRTC JavaScript pentru a solicita browserului adresele IP ale unui dispozitiv. După ce au adunat aceste adrese IP, le pot trimite pe serverele lor și le pot utiliza pentru a identifica cine accesează o anumită pagină web sau serviciu.

Majoritatea aplicațiilor VPN se protejează în mod eficient împotriva adreselor IPv4 care se scurg prin WebRTC, însă multe aplicații VPN tind să privească adresele IPv6 care se scurg în același mod.

Cum detectează WebRTC adresele IP?

WebRTC utilizează două tehnici principale pentru a determina adresele IP ale unui dispozitiv: serverele STUN / TURN și Discovery Candidate Host.

STUN / TURN serverele descoperă adrese IP verificând ce adresă IP publică este utilizată pentru a le accesa. De obicei, acestea nu sunt cauza unor scurgeri IP VPN.

Descoperirea candidaților gazdă este mai problematic când vine vorba de scurgeri de WebRTC. Această funcționalitate permite browserelor să inspecteze direct interfețele de sistem și de rețea și să vadă ce adrese IP sunt asociate cu acestea.

Toate interfețele de rețea active de pe un dispozitiv au nevoie de adrese IP pentru a funcționa. De exemplu, pentru o conexiune Wi-Fi activă va exista o interfață de rețea corespunzătoare pe un dispozitiv. Această interfață va avea la rândul ei o adresă IP.

WebRTC poate dezvălui aceste adrese IP, care în mod normal nu puteau fi văzute extern la dispozitiv, la paginile web.

De ce sunt problemele scurgerile IPv6?

Adresele IPv4 sunt reduse – pur și simplu nu sunt suficiente pentru a vă ocoli! De obicei, adresele IPv4 sunt partajate între oameni. Pentru a face acest lucru, este utilizat un sistem numit Network Address Translation (NAT). Acest sistem permite dispozitivelor să atribuie adrese „Local IPv4” interfețelor lor de rețea în timp ce partajează o adresă IP comună, de obicei prin intermediul ISP. Aceste adrese IP locale sunt utilizate la nivel global de milioane de computere din întreaga lume și sunt greu de direct asociate cu un individ specific.

Problema cu IPv6 este că adresele nu sunt reduse. Există un mult dintre ei! Acest lucru înseamnă că persoanelor individuale li se atribuie, de obicei, adrese IPv6 unice. Când o astfel de adresă IPv6 este atribuită unei interfețe de rețea, înseamnă că WebRTC poate descoperi o adresă IP care identifică cine sunteți, chiar dacă această adresă IP nu este în mod normal vizibilă în lumea exterioară.

Ce tipuri de scurgeri există?

Există două tipuri de scurgeri WebRTC, cu severitate diferită. La care un utilizator poate fi vulnerabil depinde dacă acordă permisiuni specifice legate de WebRTC unei pagini web. În ambele cazuri, o VPN bună ar trebui să se protejeze de scurgeri.

Rețineți că producătorii de browser pot utiliza diferite metode pentru a implementa WebRTC, astfel încât este posibil ca un browser să se scurgă și altul să nu, chiar și cu aceeași configurare a dispozitivului și furnizor VPN.

Scurgeri persistente (nu sunt necesare permisiuni)

În mod implicit, paginile web nu sunt acordate permisiuni WebRTC. Cu toate acestea, este încă posibil ca paginile să acceseze unele dintre adresele IP ale unui utilizator folosind API-urile WebRTC. În aceste situații, site-urile web pot urmări ușor utilizatorul prin adresele IP, fără să știe.

Scurgeri declanșate (permisiuni necesare)

Paginile Web pot solicita în mod explicit permisiuni pentru a utiliza funcționalitatea WebRTC. Aceste permisiuni sunt de fapt clasificate ca fiind Microfon și aparat foto permisiuni. Motivul pentru asta este că WebRTC este o tehnologie orientată către comunicarea P2P, cum ar fi apelurile vocale sau videoconferințele.

Când se acordă oricare dintre aceste permisiuni, pagina web primește acces la o gamă mai largă de adrese IP de pe dispozitiv, ceea ce face posibilă o scurgere. În unele browsere, aceste permisiuni persistă pe parcursul ședințelor, adică dacă un utilizator a dat permisiuni paginii web o dată, pagina web păstrează acele permisiuni atunci când utilizatorul va reveni la pagina în viitor..

Rețineți că paginile web individuale trebuie să li se acorde permisiuni separat, deci acordarea de permisiuni pentru un site nu acordă permisiuni pentru altul.

Deși aceste scurgeri sunt mai puțin severe decât scurgerile persistente de mai sus, deoarece necesită acordarea activă a permisiunilor de către utilizator, totuși le considerăm preocupante. WebRTC crește în popularitate, iar utilizatorii se așteaptă să vadă tot mai multe site-uri care folosesc tehnologia în următorii ani. Dacă un VPN nu ascunde adresele IP atunci când un utilizator acordă permisiuni unui site, atunci rămân doar două opțiuni:

  • Nu folosiți site-uri și servicii WebRTC activate
  • Acceptați riscurile de securitate și confidențialitate asociate expunerii adresei lor IP

Testarea scurgerilor

Aceste teste pot fi efectuate pe orice computer desktop. Atunci când efectuați teste de scurgere, vă recomandăm să aveți IPv6 disponibil pe dispozitivul dvs. de testare, deoarece aceasta este cea mai probabilă situație în care furnizorii VPN scurg.

Testare manuală

Puteți testa manual dacă există scurgeri folosind testul nostru online de scurgeri WebRTC.

Pași Repro

  • Asigurați-vă că pagina de testare a scurgerilor este închis
  • Asigurați-vă că aplicația dvs. VPN este deconectat
  • Accesați pagina de testare a scurgerilor WebRTC
  • Notează-ți toate public Adresele IP pe care le vedeți în ieșirea testului
    • Acestea vor fi afișate cu ale lor stare ca „scurgere potențială”
  • Închideți pagina de testare a scurgerilor
  • Conectați-vă la VPN
  • Redeschideți pagina de testare a scurgerilor WebRTC
  • Dacă vedeți oricare dintre adresele IP, ați făcut doar o notă de mai sus, atunci aveți o scurgere

Rețineți că vă cerem în mod explicit să închideți pagina de testare a scurgerilor, pentru a evita problemele de memorie în cache a browserului. Multe browsere vor cache IP-urile detectate prin WebRTC, astfel încărcarea paginii web nu este o modalitate fiabilă de a rula testul.

Rețineți că această pagină de testare testează doar cea mai severă clasă de scurgeri, adică „Scurgeri persistente” discutate mai sus. Pentru a testa dacă scurgeți atunci când se acordă permisiuni browserului, vă sugerăm să utilizați instrumentele de testare a scurgerilor de mai jos.

Testarea folosind instrumentele de testare a scurgerilor ExpressVPN

Instrumentele de testare a scurgerilor ExpressVPN sunt o suită extensibilă de instrumente Python cu sursă deschisă, concepute atât pentru testarea manuală cât și pentru automatizarea scurgerilor aplicațiilor VPN. Vă rugăm să consultați introducerea noastră asupra instrumentelor pentru instrucțiuni privind descărcarea și configurarea instrumentelor.

După ce ați configurat instrumentele, asigurați-vă că vă aflați în directorul rădăcină pentru instrumente și executați:

./run_tests.sh -c configs / case_studies / webrtc_leaks.py

Această comandă va rula două cazuri de testare pe mai multe browsere. Ambele cazuri de testare sunt în mare parte o automatizare a etapelor manuale descrise mai sus și faceți următoarele:

  • Asigurați-vă că aplicația VPN testată este deconectată
  • Determinați adresele publice IPv4 și IPv6 ale dispozitivului
  • Conectați aplicația VPN
  • Utilizați o pagină web simplificată de testare a scurgerilor pentru a aduna IP-uri WebRTC
  • Verificați dacă oricare dintre IP-urile publice adunate înainte de conectare sunt vizibile prin WebRTC după conectare

Un test va testa dacă există permisiuni ale browserului, iar celălalt test va verifica scurgerile atunci când sunt permise sunt acordat.

Notă: Puteți ajusta browserele utilizate prin modificarea browserelor lista din webrtc_leaks.py fişier.

Kim Martin
Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me