Étude de cas de fuite 2: fuites WebRTC

[ware_item id=33][/ware_item]

Vos adresses IP publiques font partie de l'identité d'une personne sur le Web, permettant aux sites, applications et tiers de suivre leur activité sur le Web et de l'associer à cette personne spécifique. Avec un VPN, les sites voient l'adresse IP publique du serveur VPN au lieu de celle de l'utilisateur, protégeant ainsi leur identité.


Cependant, WebRTC peut parfois permettre aux sites Web de voir l'adresse IP publique de l'utilisateur, ce qui représente une fuite compromettant la confidentialité. Cette étude de cas de notre laboratoire de recherche sur la confidentialité décrit comment les fuites WebRTC se produisent et comment les tester à l'aide des outils de test de fuite ExpressVPN.

Présentation de WebRTC

WebRTC est un ensemble de technologies ouvertes qui permet aux pages Web de fournir des communications poste à poste (P2P) via un navigateur Web. La plupart des navigateurs modernes prennent désormais entièrement en charge la norme WebRTC.

WebRTC, entre autres, permet aux navigateurs Web de détecter à la fois les adresses IP publiques d'un utilisateur et également leurs adresses IP locales. Cette capacité est essentielle pour faciliter les communications P2P en utilisant uniquement des navigateurs Web, sans applications ou plugins supplémentaires.

Fuites WebRTC

Les fuites WebRTC sont une forme de fuite IP. Les pages Web peuvent utiliser les API WebRTC JavaScript pour demander au navigateur les adresses IP d'un appareil. Une fois qu'ils ont rassemblé ces adresses IP, ils peuvent les envoyer à leurs serveurs et les utiliser pour identifier qui accède à une page Web ou à un service particulier.

La plupart des applications VPN protègent efficacement contre les fuites d'adresses IPv4 via WebRTC, mais de nombreuses applications VPN ont tendance à ignorer les adresses IPv6 qui fuient de la même manière.

Comment WebRTC détecte-t-il les adresses IP?

WebRTC utilise deux techniques principales pour déterminer les adresses IP d'un appareil: les serveurs STUN / TURN et Host Candidate Discovery.

ÉTOURDISSEMENT / TOUR les serveurs découvrent les adresses IP en vérifiant quelle adresse IP publique est utilisée pour y accéder. Ce ne sont généralement pas la cause des fuites IP VPN.

Découverte du candidat hôte est plus problématique en ce qui concerne les fuites WebRTC. Cette fonctionnalité permet aux navigateurs d'inspecter directement votre système et vos interfaces réseau et de voir quelles adresses IP leur sont associées.

Toutes les interfaces réseau actives sur un appareil nécessitent des adresses IP pour fonctionner. Par exemple, pour une connexion Wi-Fi active, il y aura une interface réseau correspondante sur un appareil. Cette interface aura à son tour une adresse IP.

WebRTC peut révéler ces adresses IP, qui ne pouvaient généralement pas être vues à l'extérieur de l'appareil, sur des pages Web.

Pourquoi les fuites IPv6 sont-elles problématiques?

Les adresses IPv4 sont rares - il n'y en a tout simplement pas assez pour faire le tour! Habituellement, les adresses IPv4 sont partagées entre les personnes. Pour ce faire, un système appelé Network Address Translation (NAT) est utilisé. Ce système permet aux appareils d'attribuer des adresses «IPv4 locales» à leurs interfaces réseau tout en partageant une adresse IP publique commune, généralement via le FAI. Ces adresses IP locales sont utilisées à l'échelle mondiale par des millions d'ordinateurs dans le monde et sont difficiles à diriger en association avec un individu spécifique.

Le problème avec IPv6 est que les adresses ne sont pas en nombre insuffisant. Il y a un lot d'eux! Cela signifie que chaque personne se voit généralement attribuer une adresse IPv6 unique. Lorsqu'une telle adresse IPv6 est affectée à une interface réseau, cela signifie que WebRTC peut découvrir une adresse IP qui identifie qui vous êtes, même si cette adresse IP n'est pas normalement visible par le monde extérieur.

Quels types de fuites existe-t-il?

Il existe deux types de fuites WebRTC, de gravité différente. La vulnérabilité d'un utilisateur dépend de l'octroi ou non d'autorisations spécifiques liées à WebRTC à une page Web. Dans les deux cas, un bon VPN devrait protéger contre les fuites.

Notez que les fabricants de navigateurs peuvent utiliser différentes méthodes pour implémenter WebRTC, il est donc possible qu'un navigateur fuit et un autre pas, même avec la même configuration d'appareil et le même fournisseur VPN.

Fuites persistantes (aucune autorisation requise)

Par défaut, les pages Web ne bénéficient pas des autorisations WebRTC. Il est cependant toujours possible pour les pages d'accéder à certaines adresses IP d'un utilisateur à l'aide des API WebRTC. Dans ces situations, les sites Web peuvent facilement suivre l'utilisateur via leurs adresses IP à leur insu.

Fuites déclenchées (autorisations requises)

Les pages Web peuvent demander explicitement des autorisations pour utiliser les fonctionnalités liées à WebRTC. Ces autorisations sont en fait classées comme Microphone et Caméra autorisations. La raison en est que WebRTC est une technologie orientée vers la communication P2P comme les appels vocaux ou les vidéoconférences.

Lorsque l'une de ces autorisations est accordée, la page Web accède à une plus large gamme d'adresses IP sur l'appareil, ce qui rend possible une fuite. Dans certains navigateurs, ces autorisations persistent entre les sessions, c'est-à-dire si un utilisateur a accordé des autorisations à la page Web une fois, la page Web conserve ces autorisations lorsque l'utilisateur reviendra sur la page à l'avenir.

Notez que les pages Web individuelles doivent recevoir des autorisations séparément, donc l'octroi d'autorisations pour un site n'accorde pas d'autorisations pour un autre.

Bien que ces fuites soient moins graves que les fuites persistantes ci-dessus, car elles nécessitent l'octroi actif d'autorisations par l'utilisateur, nous les considérons toujours comme préoccupantes. WebRTC gagne en popularité et les utilisateurs peuvent s'attendre à voir de plus en plus de sites utilisant la technologie au cours des prochaines années. Si un VPN ne masque pas les adresses IP lorsqu'un utilisateur accorde des autorisations à un site, il ne leur reste que deux options:

  • Ne pas utiliser de sites et de services compatibles WebRTC
  • Accepter les risques de sécurité et de confidentialité associés à l'exposition de leur adresse IP

Test de fuites

Ces tests peuvent être effectués sur n'importe quel ordinateur de bureau. Lorsque vous effectuez des tests de fuite, nous vous recommandons d'avoir IPv6 disponible sur votre appareil de test, car c'est la situation la plus probable dans laquelle les fournisseurs VPN fuient.

Test manuel

Vous pouvez tester manuellement les fuites à l'aide de notre test de fuite WebRTC en ligne.

Étapes de repro

  • Assurez-vous que la page de test de fuite est fermé
  • Assurez-vous que votre application VPN est débranché
  • Visitez la page de test de fuite WebRTC
  • Prenez note de tout Publique Adresses IP que vous voyez dans la sortie de test
    • Ils seront affichés avec leur Statut comme «fuite potentielle»
  • Fermer la page de test de fuite
  • Connectez-vous à votre VPN
  • Rouvrez la page de test de fuite WebRTC
  • Si vous voyez l'une des adresses IP que vous venez de noter ci-dessus, alors vous avez une fuite

Notez que nous vous demandons explicitement de fermer la page de test de fuite afin d'éviter les problèmes de mise en cache du navigateur. De nombreux navigateurs mettent en cache les adresses IP détectées via WebRTC, donc le rechargement de la page Web n'est pas un moyen fiable d'exécuter le test.

Notez que cette page de test ne teste que la classe de fuite la plus grave, c'est-à-dire les «fuites persistantes» décrites ci-dessus. Pour tester si vous fuyez lorsque des autorisations sont accordées à votre navigateur, nous vous suggérons d'utiliser les outils de test de fuite ci-dessous.

Test à l'aide des outils de test de fuite ExpressVPN

Les outils de test de fuite ExpressVPN sont une suite extensible d'outils Python open source conçus pour les tests de fuite manuels et automatisés des applications VPN. Veuillez consulter notre introduction aux outils pour obtenir des instructions sur le téléchargement et la configuration des outils..

Une fois que vous avez configuré les outils, assurez-vous que vous êtes dans le répertoire racine des outils et exécutez:

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

Cette commande exécutera deux cas de test sur plusieurs navigateurs. Les deux cas de test sont en grande partie une automatisation des étapes manuelles décrites ci-dessus et effectuent les opérations suivantes:

  • Assurez-vous que l'application VPN sous test est déconnectée
  • Déterminer les adresses IPv4 et IPv6 publiques de l'appareil
  • Connectez l'application VPN
  • Utilisez une page Web de test de fuite simplifiée pour collecter les adresses IP WebRTC
  • Vérifiez si l'une des adresses IP publiques collectées avant la connexion est visible via WebRTC après la connexion

Un test testera les fuites persistantes lorsqu'aucune autorisation de navigateur n'est accordée, l'autre test testera les fuites lorsque les autorisations sont accordé.

Remarque: vous pouvez ajuster les navigateurs utilisés en modifiant NAVIGATEURS liste dans le webrtc_leaks.py fichier.

Étude de cas de fuite 2: fuites WebRTC
admin Author
Sorry! The Author has not filled his profile.