ExpressVPN-Dichtheitsprüfgeräte

[ware_item id=33][/ware_item]

Eine Illustration eines undichten Computerkabels angesehen durch eine Lupe.


Die ExpressVPN Leak Testing Tools sind eine erweiterbare Suite von Python-Tools, die sowohl für die manuelle als auch für die automatisierte Dichtheitsprüfung von VPN-Anwendungen entwickelt wurden.

Die vom Privacy Research Lab von ExpressVPN entwickelten Tools wurden ursprünglich für zwei Zwecke entwickelt:

  • Bereitstellung zuverlässiger, automatisierter Regressionstests für ExpressVPN-Anwendungen
  • Erleichterung von Dichtheitsprüfungsuntersuchungen, um diese Anwendungen weiter zu stärken

Wir stellten bald fest, dass diese Tools tatsächlich der breiteren VPN-Branche zugute kommen könnten. Wir haben uns daher entschlossen, sie unter der MIT-Lizenz vollständig als Open Source verfügbar zu machen.

Wir hoffen, dass wir auf diese Weise dazu beitragen, allen VPN-Benutzern eine privatere und sicherere Online-Erfahrung zu bieten, indem wir:

  • Benutzern und Dritten eine unabhängige Möglichkeit zu geben, die Qualität von VPNs zu überprüfen und ihre eigenen Datenschutz- und Sicherheitsrisiken zu bewerten;
  • Schaffung eines höheren Maßstabs für den Schutz vor Undichtigkeiten für die gesamte VPN-Branche; und
  • Zusammenführen von Fachwissen aus der gesamten Branche rund um die Dichtheitsprüfung

Erste Schritte mit den Tools

Die Tools finden Sie auf GitHub unter: https://github.com/expressvpn/expressvpn_leak_testing.

Befolgen Sie zunächst die Anweisungen in der Datei README.md. Obwohl wir einen Überblick über die unten aufgeführten Tools bieten, sollte das GitHub-Repository immer als einzige Informationsquelle für die Dokumentation der Tools betrachtet werden.

Beachten Sie, dass Sie die Leck-Tools gemäß der Dokumentation in GitHub installieren müssen, um die in unseren Fallstudien zum Datenschutzforschungslabor enthaltenen Testanweisungen zu befolgen. Es wird davon ausgegangen, dass, wenn Sie eine der Fallstudien ausführen, die Tools-Stammverzeichnis bezieht sich auf den Speicherort, an dem Sie das oben genannte Git-Repository geklont haben.

Übersicht der Tools

Wir benutzen Python

Die Tools sind in erster Linie in Python geschrieben, wobei einige Hilfstools bei Bedarf in anderen Sprachen verfügbar sind. Wir haben uns aus mehreren Gründen für Python entschieden:

  • Es ist plattformübergreifend und wird in den meisten Fällen sofort unterstützt
  • Es ist einem großen Prozentsatz der Entwickler bekannt und daher leicht zugänglich
  • Es ist schnell zu entwickeln - wir haben keine Leistungsanforderungen für ein Test-Framework
  • Es ist eine ausdrucksstarke Sprache, mit der wir leicht lesbaren Code schreiben können

Beachten Sie, dass wir Python 3 verwenden, da dies schnell zum De-facto-Standard wird.

Es ist wie ein Unit-Test

Die Tools wurden so konzipiert, dass sie wie eine Unit-Testsuite ausgeführt werden. Ein einzelnes Skript wird zum Starten der Suite verwendet, die dann eine Reihe von Tests ausführt. Bei jedem Test wird unter bestimmten Bedingungen, z. B. unter bestimmten Netzwerkbedingungen, nach einer bestimmten Art von Leck gesucht und dann entweder ein Bestehen, ein Fehlschlagen oder ein Fehler gemeldet.

Ein Test oder Testfall entspricht ungefähr einer einzelnen Python-Datei. Die Testsuite wurde entwickelt, um Entwicklern vertraut zu sein, die mit Unit-Testsuiten arbeiten. Daher folgt jeder Test dem vertrauten Muster von setup (), test () und teardown ()..

Die Testfälle sollen so allgemein wie möglich sein. Testfälle können mit verschiedenen VPN-Konfigurationen, verschiedenen Netzwerkkonfigurationen usw. ausgeführt werden. Wenn sie ausgeführt werden, erhalten sie eine Konfiguration, die angibt, wie sie für diese bestimmte Testrunde ausgeführt werden. Eine Konfigurationsdatei wird an die Testsuite übergeben, in der alle auszuführenden Tests und ihre Konfigurationen aufgelistet sind.

Ein Beispiel für die Ausführung der Tests wäre die Ausführung des folgenden Befehls im Stammverzeichnis der Tools:

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

Geräte- und Netzwerkkonfigurationen

Die Suite wurde entwickelt, um Tests für beliebige Konfigurationen von Geräten und Netzwerken durchzuführen. Wir waren uns von Anfang an bewusst, dass einige Aspekte des VPN-Verhaltens mehr als ein Gerät zum Testen benötigen. Daher haben wir die Testsuite so konzipiert, dass dies von Anfang an möglich ist.

Das Gerät, von dem aus die Tests ausgeführt werden, wird als bezeichnet Test Orchestrator. Alle anderen Geräte werden einfach als bezeichnet Geräte testen.

Die einfachste Art von Test wird auf einem einzelnen Gerät ausgeführt (Einzelgerätetests) und auf Lecks direkt auf diesem Gerät getestet. Beispielsweise kann man eine Vielzahl von Windows-Dichtigkeitstests direkt auf einem Windows-Gerät ausführen. In diesem Fall ist der Test Orchestrator eigentlich auch ein Testgerät. Komplexere Tests (Tests mit mehreren Geräten) können ein Testgerät, auf dem das VPN ausgeführt wird, einen Router und ein Paketerfassungsgerät umfassen.

Automatisierung

Die Testsuite wurde entwickelt, um die Automatisierung von Tests vollständig zu unterstützen. Die Tests erfordern jedoch immer eine manuelle Interaktion. Wenn eine manuelle Interaktion erforderlich ist, fordert die Testsuite den Benutzer klar auf, was zu tun ist.

Eine der schwierigsten Aufgaben bei der Automatisierung von Tests ist die Kontrolle über die VPN-Anwendungen. In der Tat ist dies für viele Tests das einzige Puzzleteil, das nicht automatisiert ist. Derzeit ist keine Unterstützung für die Automatisierung der Steuerung von VPN-Anwendungen für das Repository geplant. Das Hinzufügen einer solchen Unterstützung wird jedoch von der Architektur der Suite unterstützt.

Beachten Sie, dass wir intern eine vollständige Automatisierung unserer eigenen Anwendung implementiert haben, um kontinuierliche Integrationstests zu ermöglichen. Wir planen nicht, diese Automatisierungstools als Teil des Open Source-Repository zur Verfügung zu stellen.

Werkzeuge einrichten

Detaillierte Anweisungen zum Einrichten von Testgeräten finden Sie im GitHub-Repo. Wir geben hier nur einen Überblick darüber, was Sie beim Einrichten von Geräten erwartet.

Die Testsuite wird auf Linux-, MacOS- und Windows-Geräten unterstützt (d. H. Die Python-Suite kann auf diesen Geräten installiert und direkt ausgeführt werden). Mobile Geräte werden ebenfalls von den Tools unterstützt, die Suite selbst wird jedoch niemals direkt auf diesen Geräten ausgeführt.

Wir empfehlen, möglichst viele virtuelle Maschinen (Virtual Machines, VMs) zu verwenden, insbesondere für Einzelgerätetests. VMs bieten mehrere Vorteile:

  • Einfache Erstellung und Konfiguration neuer Netzwerkschnittstellen
  • Ermöglicht es Ihnen, Ihren Hostcomputer von den zahlreichen Softwareinstallationen von Drittanbietern freizuhalten, die für die Tests erforderlich sind
  • Das Erfassen des von einer VM ausgehenden Datenverkehrs ist einfacher als das Erfassen des von einem realen physischen Gerät ausgehenden Datenverkehrs
  • Schnappschüsse können einfach vorkonfiguriert und bei Bedarf wiederhergestellt werden

Für gründliche Tests empfehlen wir immer, die Tests auch auf realer physischer Hardware durchzuführen, um mögliche Unterschiede zwischen virtualisierter und realer Hardware auszuschließen.

Beachten Sie, dass die meisten Tests Root-Berechtigungen (Administratorrechte) benötigen, sodass zur Vereinfachung die gesamte Suite als Root ausgeführt wird.

Erfahren Sie mehr über Leckszenarien, auf die die Tools testen

In den folgenden Fallstudien finden Sie weitere Informationen zu einigen von diesen Tools getesteten Leckszenarien. Sie erläutern, wie sie sich auf Ihre Privatsphäre und Sicherheit auswirken können, und erläutern die Verwendung des entsprechenden Tools:

  • Fallstudie 1: „Vanille“ tritt aus
  • Fallstudie 2: WebRTC-Lecks
  • Fallstudie 3: Netzwerkübergangslecks
  • Fallstudie 4: Nicht erreichbare VPN-Serverlecks
  • Fallstudie 5: Undichtigkeiten beim Absturz des VPN-Prozesses

Beiträge zu den Tools

Wir freuen uns über Beiträge zu den Tools, sei es zur Behebung von Fehlern, für Verbesserungsvorschläge oder für völlig neue Testfälle. Sie können Beiträge über Pull-Requests in GitHub einreichen.

Kontaktieren Sie uns bezüglich der Werkzeuge

Sie können uns bezüglich der Werkzeuge unter [email protected] kontaktieren.

Beachten Sie, dass sich die Tools derzeit in befinden Alpha Zustand und wird wahrscheinlich häufig ändern. Wir werden uns jedoch bemühen, sicherzustellen, dass die Werkzeuge immer in einem brauchbaren Zustand sind.

ExpressVPN-Dichtheitsprüfgeräte
admin Author
Sorry! The Author has not filled his profile.