Lekkage case study 2: WebRTC-lekken

[ware_item id=33][/ware_item]

Uw openbare IP-adressen maken deel uit van de identiteit van een individu op het web, waardoor sites, apps en derden hun activiteiten op internet kunnen volgen en aan die specifieke persoon kunnen koppelen. Met een VPN zien sites het openbare IP-adres van de VPN-server in plaats van dat van de gebruiker, waardoor hun identiteit wordt beschermd.


WebRTC kan websites soms echter in staat stellen het openbare IP-adres van de gebruiker te zien, wat een privacylek oplevert. Deze case study van ons Privacy Research Lab beschrijft hoe WebRTC-lekken optreden en hoe u deze kunt testen met de ExpressVPN Lektesttools.

WebRTC overzicht

WebRTC is een reeks open technologieën waarmee webpagina's via een webbrowser peer-to-peer (P2P) communicatie kunnen bieden. De meeste moderne browsers ondersteunen nu volledig de WebRTC-standaard.

WebRTC biedt onder andere webbrowsers de mogelijkheid om zowel de openbare IP-adressen van een gebruiker als ook hun lokale IP-adressen te detecteren. Deze mogelijkheid is essentieel om P2P-communicatie mogelijk te maken met alleen webbrowsers, zonder extra apps of plug-ins.

WebRTC lekt

WebRTC-lekken zijn een vorm van IP-lekken. Webpagina's kunnen JavaScript WebRTC API's gebruiken om de browser om de IP-adressen van een apparaat te vragen. Nadat ze deze IP-adressen hebben verzameld, kunnen ze deze naar hun servers sturen en gebruiken om te identificeren wie toegang heeft tot een bepaalde webpagina of service.

De meeste VPN-applicaties beschermen effectief tegen IPv4-adressen die lekken via WebRTC, maar veel VPN-applicaties hebben de neiging IPv6-adressen op dezelfde manier over het hoofd te zien.

Hoe detecteert WebRTC IP-adressen?

WebRTC gebruikt twee hoofdtechnieken om de IP-adressen van een apparaat te bepalen: STUN / TURN-servers en Host Candidate Discovery.

STUN / TURN servers ontdekken IP-adressen door te controleren welk openbaar IP-adres wordt gebruikt om toegang te krijgen. Meestal zijn dit niet de oorzaak van VPN IP-lekken.

Host Candidate Discovery is problematischer als het gaat om WebRTC-lekken. Met deze functionaliteit kunnen browsers uw systeem- en netwerkinterfaces direct inspecteren en zien welke IP-adressen hieraan zijn gekoppeld.

Alle actieve netwerkinterfaces op een apparaat hebben IP-adressen nodig om te kunnen functioneren. Voor een actieve Wi-Fi-verbinding is er bijvoorbeeld een overeenkomstige netwerkinterface op een apparaat. Deze interface heeft op zijn beurt een IP-adres.

WebRTC kan deze IP-adressen, die normaal gezien niet zichtbaar waren voor het apparaat, op webpagina's onthullen.

Waarom zijn IPv6-lekken problematisch??

IPv4-adressen zijn schaars - er is gewoon niet genoeg om rond te gaan! Gewoonlijk worden IPv4-adressen gedeeld tussen mensen. Om dit te doen, wordt een systeem genaamd NAT (Network Address Translation) gebruikt. Met dit systeem kunnen apparaten "Local IPv4" -adressen toewijzen aan hun netwerkinterfaces terwijl ze een gemeenschappelijk openbaar IP-adres delen, meestal via de ISP. Deze lokale IP-adressen worden wereldwijd door miljoenen computers over de hele wereld gebruikt en zijn moeilijk direct te associëren met een specifieke persoon.

Het probleem met IPv6 is dat adressen niet schaars zijn. Er zijn een lot van hen! Dit betekent dat individuele mensen meestal elk een uniek IPv6-adres toegewezen krijgen. Wanneer een dergelijk IPv6-adres wordt toegewezen aan een netwerkinterface, betekent dit dat WebRTC een IP-adres kan vinden dat identificeert wie u bent, zelfs als dat IP-adres normaal gesproken niet zichtbaar is voor de buitenwereld.

Welke soorten lekken zijn er?

Er zijn twee soorten WebRTC-lekken, van verschillende ernst. Waar een gebruiker kwetsbaar voor kan zijn, hangt af van het feit of ze specifieke WebRTC-gerelateerde machtigingen voor een webpagina verlenen. In beide gevallen moet een goede VPN beschermen tegen de lekken.

Merk op dat browserfabrikanten verschillende methoden kunnen gebruiken om WebRTC te implementeren, dus het is mogelijk dat een browser lekt en een andere niet, zelfs met dezelfde apparaatconfiguratie en VPN-provider.

Aanhoudende lekken (geen machtigingen vereist)

Webpagina's krijgen standaard geen WebRTC-machtigingen. Het is echter nog steeds mogelijk voor de pagina's om toegang te krijgen tot enkele IP-adressen van een gebruiker met behulp van de WebRTC API's. In deze situaties kunnen websites de gebruiker gemakkelijk volgen zonder hun medeweten via hun IP-adressen.

Geactiveerde lekken (machtigingen vereist)

Webpagina's kunnen expliciet toestemming vragen om WebRTC-gerelateerde functionaliteit te gebruiken. Deze machtigingen zijn eigenlijk geclassificeerd als Microfoon en Camera rechten. De reden hiervoor is dat WebRTC een technologie is gericht op P2P-communicatie zoals spraakoproepen of videoconferenties.

Wanneer een van deze machtigingen wordt verleend, krijgt de webpagina toegang tot een groter aantal IP-adressen op het apparaat, waardoor een lek mogelijk is. In sommige browsers blijven die machtigingen gedurende sessies bestaan, d.w.z. als een gebruiker eenmaal machtigingen voor de webpagina heeft gegeven, behoudt de webpagina die machtigingen wanneer de gebruiker in de toekomst terugkeert naar de pagina.

Houd er rekening mee dat afzonderlijke webpagina's afzonderlijk machtigingen moeten krijgen, dus het verlenen van machtigingen voor de ene site verleent geen machtigingen voor een andere.

Hoewel deze lekken minder ernstig zijn dan de hardnekkige lekken hierboven, omdat ze actieve machtiging door de gebruiker vereisen, beschouwen we ze nog steeds als zorgelijk. WebRTC wordt steeds populairder en gebruikers kunnen verwachten dat de komende jaren steeds meer sites de technologie zullen gebruiken. Als een VPN geen IP-adressen verbergt wanneer een gebruiker machtigingen verleent voor een site, dan blijven er slechts twee opties over:

  • Gebruik geen WebRTC-compatibele sites en services
  • Accepteer de beveiligings- en privacyrisico's die verbonden zijn aan het blootstellen van hun IP-adres

Testen op lekken

Deze tests kunnen op elke desktopcomputer worden uitgevoerd. Wanneer u lektests uitvoert, raden we u aan IPv6 beschikbaar te hebben op uw testapparaat, omdat dit de meest waarschijnlijke situatie is waarin VPN-providers lekken.

Handmatig testen

U kunt handmatig op lekken testen met onze online WebRTC-lektest.

Repro stappen

  • Controleer of de lektestpagina is Gesloten
  • Zorg ervoor dat uw VPN-toepassing is verbinding verbroken
  • Ga naar de WebRTC-lektestpagina
  • Noteer alles openbaar IP-adressen die u in de testuitvoer ziet
    • Ze worden weergegeven met hun Toestand als "Potentieel Lek"
  • Sluit de lektestpagina
  • Maak verbinding met uw VPN
  • Open de WebRTC-lektestpagina opnieuw
  • Als u een van de IP-adressen ziet die u hierboven hebt genoteerd, is er een lek

Merk op dat we u expliciet vragen om de lektestpagina te sluiten om problemen met browsercaching te voorkomen. Veel browsers slaan IP's op die zijn gedetecteerd via WebRTC, dus het opnieuw laden van de webpagina is geen betrouwbare manier om de test uit te voeren.

Merk op dat deze testpagina alleen test voor de ernstigste klasse van lekken, d.w.z. de “Persistente lekken” die hierboven zijn besproken. Om te testen of u lekt wanneer machtigingen zijn verleend aan uw browser, raden wij u aan de onderstaande lektesttools te gebruiken.

Testen met de ExpressVPN Lektesttools

De ExpressVPN Lektesttools zijn een uitbreidbaar pakket open-source Python-tools ontworpen voor zowel handmatige als geautomatiseerde lektesten van VPN-applicaties. Raadpleeg onze inleiding tot de tools voor instructies over het downloaden en instellen van de tools.

Nadat u de tools hebt ingesteld, moet u zich in de root-directory van de tools bevinden en uitvoeren:

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

Met deze opdracht worden twee testgevallen uitgevoerd in meerdere browsers. Beide testgevallen zijn grotendeels een automatisering van de hierboven beschreven handmatige stappen en doen het volgende:

  • Zorg ervoor dat de te testen VPN-applicatie is losgekoppeld
  • Bepaal de openbare IPv4- en IPv6-adressen van het apparaat
  • Verbind de VPN-applicatie
  • Gebruik een vereenvoudigde webpagina voor het testen van lekken om WebRTC IP's te verzamelen
  • Controleer of een van de openbare IP's die vóór de verbinding zijn verzameld, zichtbaar is via WebRTC na de verbinding

De ene test test op aanhoudende lekken als er geen browsermachtigingen worden verleend, de andere test op lekken wanneer machtigingen zijn toegekend.

Opmerking: u kunt de browsers aanpassen die worden gebruikt door de te wijzigen BROWSERS lijst in de webrtc_leaks.py het dossier.

Lekkage case study 2: WebRTC-lekken
admin Author
Sorry! The Author has not filled his profile.