Outils de test de fuite ExpressVPN

[ware_item id=33][/ware_item]

Une illustration d'un câble d'ordinateur qui fuit vu à travers une loupe.


Les outils de test de fuite ExpressVPN sont une suite extensible d'outils Python conçus pour les tests de fuite manuels et automatisés des applications VPN.

Développés par le laboratoire de recherche sur la confidentialité d'ExpressVPN, les outils ont été initialement conçus pour deux raisons:

  • Fournir des tests de régression robustes et automatisés des applications ExpressVPN
  • Faciliter les enquêtes sur les tests de fuite pour renforcer encore ces applications

Nous nous sommes vite rendu compte que ces outils pouvaient réellement être bénéfiques pour l'industrie VPN en général. Nous avons donc décidé de les rendre entièrement disponibles en open source sous la licence MIT.

Nous espérons que ce faisant, nous contribuerons à fournir une expérience en ligne plus privée et sécurisée à tous les utilisateurs de VPN en:

  • donner aux utilisateurs et aux tiers un moyen indépendant de vérifier la qualité des VPN et d'évaluer leurs propres risques de confidentialité et de sécurité;
  • créer une référence plus élevée pour la protection contre les fuites pour l'ensemble de l'industrie VPN; et
  • réunir l'expertise de toute l'industrie autour des tests de fuite

Premiers pas avec les outils

Les outils peuvent être trouvés sur GitHub à: https://github.com/expressvpn/expressvpn_leak_testing.

Pour commencer, suivez les instructions du fichier README.md. Bien que nous fournissions un aperçu des outils ci-dessous, le référentiel GitHub doit toujours être considéré comme la seule source de vérité pour la documentation relative aux outils..

Notez que pour suivre les instructions de test incluses dans nos études de cas de Privacy Research Lab, vous devrez installer les outils de fuite conformément à la documentation de GitHub. Il est supposé que chaque fois que vous exécutez l'une des études de cas, le répertoire racine des outils fait référence à l'emplacement où vous avez cloné le référentiel git ci-dessus.

Présentation des outils

Nous utilisons Python

Les outils sont écrits principalement en Python, avec quelques outils d'aide dans d'autres langues si nécessaire. Nous avons choisi Python pour plusieurs raisons:

  • Il est multiplateforme et pris en charge dans la plupart des cas
  • Il est bien connu d'un grand pourcentage de développeurs et est donc facilement accessible
  • Il est rapide à développer - nous n'avons aucune exigence de performance pour un cadre de test
  • C’est un langage expressif qui nous permet d’écrire du code facilement lisible

Notez que nous utilisons Python 3, car cela devient rapidement la norme de facto.

C’est comme les tests unitaires

Les outils ont été conçus pour fonctionner comme une suite de tests unitaires. Un seul script est utilisé pour lancer la suite qui exécute ensuite une série de tests. Chaque test vérifie un type spécifique de fuite dans des conditions spécifiques, par exemple, dans certaines conditions de réseau, puis signale une réussite, un échec ou une erreur.

Un test - ou scénario de test - correspond grosso modo à un seul fichier Python. La suite de tests a été conçue pour être familière aux développeurs habitués à travailler avec des suites de tests unitaires, de sorte que chaque test suit le modèle familier de setup (), test () et teardown ().

Les cas de test sont conçus pour être aussi génériques que possible. Les cas de test peuvent être exécutés avec différentes configurations VPN, différentes configurations de réseau, etc. Lorsqu'ils sont exécutés, ils sont fournis avec une configuration qui spécifie comment ils s'exécuteront pour cette série particulière de tests. Un fichier de configuration est transmis à la suite de tests qui répertorie tous les tests à exécuter et leurs configurations.

Un exemple de la façon d'exécuter les tests serait d'exécuter la commande suivante à partir du répertoire racine des outils:

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

Configurations de périphérique et de réseau

La suite a été conçue pour pouvoir exécuter des tests sur des configurations arbitraires d'appareils et de réseaux. Nous savions depuis le début que certains aspects du comportement VPN nécessiteraient plus d'un appareil à tester, nous avons donc conçu la suite de tests pour l'activer dès le départ..

Le périphérique à partir duquel les tests sont exécutés est appelé orchestrateur de test. Tous les autres appareils sont simplement appelés appareils de test.

Le type de test le plus simple s'exécute sur un seul appareil (tests sur un seul appareil) et teste les fuites directement sur cet appareil. Par exemple, on peut exécuter une large classe de tests de fuite Windows directement sur un appareil Windows. Dans ce cas, l'orchestrateur de test est en fait également un périphérique de test. Des tests plus complexes (tests multi-périphériques) peuvent impliquer un périphérique de test exécutant le VPN, un routeur et un périphérique de capture de paquets.

Automatisation

La suite de tests a été conçue pour prendre pleinement en charge l'automatisation des tests. Cependant, hors de la boîte, les tests nécessiteront toujours une certaine interaction manuelle. Chaque fois qu'une interaction manuelle est requise, la suite de tests invitera clairement l'utilisateur et lui dira quoi faire.

L'une des parties les plus difficiles des tests à automatiser est le contrôle des applications VPN. En effet, pour de nombreux tests, c'est la seule pièce du puzzle qui n'est pas automatisée. Nous ne prévoyons actuellement pas de prise en charge de l'automatisation du contrôle des applications VPN dans le référentiel. L'ajout d'un tel support est cependant supporté par l'architecture de la suite.

Notez qu'en interne, nous avons implémenté une automatisation complète de notre propre application pour faciliter les tests d'intégration continue. Nous ne prévoyons pas de rendre ces outils d'automatisation disponibles dans le cadre du référentiel open source.

Mise en place des outils

Des instructions détaillées sur la configuration des périphériques de test sont fournies dans le référentiel GitHub. Nous donnons juste ici un aperçu de ce à quoi s'attendre lors de la configuration des appareils.

La suite de tests est prise en charge sur les appareils Linux, macOS et Windows (c'est-à-dire que la suite Python peut être installée et exécutée directement sur ces appareils). Les appareils mobiles sont également pris en charge par les outils, mais la suite elle-même ne sera jamais exécutée directement sur ces appareils.

Nous vous recommandons d'utiliser autant que possible des machines virtuelles (VM), en particulier pour les tests sur un seul appareil. Les VM offrent plusieurs avantages:

  • Facile à créer et à configurer de nouvelles interfaces réseau
  • Vous permet de garder votre machine hôte à l'abri des nombreuses installations de logiciels tiers que les tests nécessitent
  • La capture du trafic quittant une machine virtuelle est plus simple que la capture du trafic quittant un périphérique physique réel
  • Snapshots faciles à préconfigurer et revenir en cas de besoin

Pour des tests approfondis sérieux, nous recommandons toujours d'exécuter les tests sur du matériel physique réel également, pour exclure toute différence potentielle entre le matériel virtualisé et le matériel réel..

Notez que la plupart des tests nécessitent des autorisations root (admin) pour s'exécuter, donc pour simplifier les choses, toute la suite s'exécutera en tant que root.

En savoir plus sur les scénarios de fuite testés par les outils

Les études de cas suivantes fournissent plus d'informations sur certains des scénarios de fuite que ces outils testent, expliquant comment elles pourraient affecter votre vie privée et votre sécurité, ainsi que décrivant comment utiliser l'outil approprié:

  • Étude de cas 1: fuites de «vanille»
  • Étude de cas 2: fuites WebRTC
  • Étude de cas 3: Fuites de transition de réseau
  • Étude de cas 4: Fuites de serveur VPN inaccessibles
  • Étude de cas 5: Fuites de crash de processus VPN

Contribuer aux outils

Nous sommes plus qu'heureux de recevoir des contributions aux outils, que ce soit pour des corrections de bogues, des suggestions d'améliorations ou des cas de test entièrement nouveaux. Vous pouvez soumettre des contributions via des demandes de tirage dans GitHub.

Contactez-nous à propos des outils

Vous pouvez nous contacter concernant les outils à [email protected]

Notez que les outils sont actuellement en alpha état et changera probablement fréquemment. Cependant, nous nous efforcerons de nous assurer que les outils sont toujours dans un état utilisable.

Outils de test de fuite ExpressVPN
admin Author
Sorry! The Author has not filled his profile.