ExpressVPNリークテストツール

[ware_item id=33][/ware_item]

虫眼鏡を通して見た、漏れているコンピューターケーブルの図。


ExpressVPNリークテストツールは、VPNアプリケーションの手動および自動リークテストの両方のために設計された、拡張可能なPythonツールのスイートです。.

ExpressVPNのプライバシーリサーチラボによって開発されたツールは、当初2つの目的で構築されました。

  • ExpressVPNアプリケーションの堅牢で自動化された回帰テストの提供
  • これらのアプリケーションをさらに強化するためのリークテスト調査の促進

すぐに、これらのツールが実際に広範なVPN業界にとって有益であることに気付きました。そのため、MITライセンスの下で完全に利用可能なオープンソースにすることにしました。.

これにより、すべてのVPNユーザーがよりプライベートで安全なオンラインエクスペリエンスを提供できるようになります。

  • ユーザーとサードパーティに、VPNの品質を検証し、独自のプライバシーとセキュリティリスクを評価する独立した方法を提供します。
  • VPN業界全体のリークに対する保護のより高いベンチマークを作成します。そして
  • リークテストに関する業界全体の専門知識をまとめる

ツールを使い始める

ツールはGitHubのhttps://github.com/expressvpn/expressvpn_leak_testingにあります。.

開始するには、README.mdファイルの指示に従ってください。以下にツールの概要を示しますが、GitHubリポジトリは常に、ツールに関連するドキュメントの唯一の真実のソースと見なされるべきです。.

プライバシーリサーチラボのケーススタディに含まれるテスト手順に従うには、GitHubのドキュメントに従ってリークツールをインストールする必要があることに注意してください。ケーススタディのいずれかを実行するときは常に、 ツールのルートディレクトリ 上記のgitリポジトリを複製した場所を参照します.

ツールの概要

Pythonを使用します

ツールは主にPythonで書かれており、必要に応じて他の言語のヘルパーツールがいくつかあります。 Pythonを選んだ理由はいくつかあります。

  • クロスプラットフォームであり、ほとんどの場合そのままでサポートされています
  • 多くの開発者によく知られているため、簡単にアクセスできます
  • 迅速な開発—テストフレームワークのパフォーマンス要件はありません
  • 表現力豊かな言語で、読みやすいコードを書くことができます

Python 3を使用することに注意してください。これは急速に事実上の標準になりつつあるためです。.

単体テストのようなものです

ツールは、単体テストスイートのように動作するように設計されています。単一のスクリプトを使用してスイートを起動し、一連のテストを実行します。各テストは、特定の条件下(特定のネットワーク条件下など)で特定のタイプのリークをチェックし、合格、失敗、エラーのいずれかを報告します.

テスト(またはテストケース)は、単一のPythonファイルにほぼ対応しています。テストスイートは、ユニットテストスイートでの作業に慣れている開発者になじみやすいように設計されているため、各テストはおなじみのsetup()、test()、およびteardown()のパターンに従います。.

テストケースは、できる限り一般的になるように設計されています。テストケースは、さまざまなVPN構成、さまざまなネットワーク構成などで実行できます。実行されると、特定のテストラウンドでの実行方法を指定する構成が提供されます。構成ファイルは、実行するすべてのテストとその構成をリストするテストスイートに渡されます。.

テストの実行方法の例は、ツールのルートディレクトリから次のコマンドを実行することです。

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

デバイスとネットワークの構成

このスイートは、デバイスとネットワークの任意の構成でテストを実行できるように設計されています。私たちは最初から、VPNの動作のいくつかの側面をテストするには複数のデバイスが必要であることを認識していたため、最初からこれを可能にするテストスイートを設計しました.

テストの実行元のデバイスは、 テストオーケストレーター. 他のすべてのデバイスは単にと呼ばれます 試験装置.

最も単純なタイプのテストは、単一のデバイスで実行され(単一デバイステスト)、そのデバイスで直接リークをテストします。たとえば、Windowsデバイスで幅広いクラスのWindowsリークテストを直接実行できます。この場合、テストオーケストレーターは実際にはテストデバイスでもあります。より複雑なテスト(マルチデバイステスト)には、VPNを実行するテストデバイス、ルーター、およびパケットキャプチャデバイスが含まれる場合があります。.

オートメーション

テストスイートは、テストの自動化を完全にサポートするように設計されました。ただし、すぐに使用できるように、テストには常に手動での対話が必要です。手動の対話が必要な場合はいつでも、テストスイートはユーザーに明確にプロンプ​​トを表示し、何をすべきかを伝えます.

自動化するテストの最も難しい部分の1つは、VPNアプリケーションの制御です。実際、多くのテストでは、これは自動化されていない唯一のパズルのピースです。現在、リポジトリへのVPNアプリケーションの制御の自動化をサポートする予定はありません。ただし、このようなサポートの追加は、スイートのアーキテクチャによってサポートされています.

内部的には、継続的な統合テストを容易にするために、独自のアプリケーションの完全自動化を実装していることに注意してください。これらの自動化ツールをオープンソースリポジトリの一部として利用できるようにする予定はありません。.

ツールのセットアップ

テストデバイスのセットアップ方法の詳細な手順は、GitHubリポジトリに記載されています。ここでは、デバイスをセットアップするときに期待することの概要を示します。.

テストスイートは、Linux、macOS、およびWindowsデバイスでサポートされています(つまり、Pythonスイートはこれらのデバイスにインストールして直接実行できます)。モバイルデバイスもツールでサポートされていますが、スイート自体がこれらのデバイスで直接実行されることはありません.

特に単一デバイスのテストでは、可能な限り仮想マシン(VM)を使用することをお勧めします。 VMにはいくつかの利点があります。

  • 新しいネットワークインターフェイスの作成と構成が簡単
  • ホストマシンに、テストに必要な多くのサードパーティソフトウェアのインストールを避けることができます。
  • VMから出るトラフィックをキャプチャすることは、実際の物理デバイスから出るトラフィックをキャプチャするよりも簡単です。
  • スナップショットを簡単に事前設定し、必要なときに元に戻す

深刻な詳細なテストの場合、仮想ハードウェアと実際のハードウェアの潜在的な違いを排除するために、実際の物理ハードウェアでもテストを実行することを常にお勧めします.

ほとんどのテストを実行するにはルート(管理者)の権限が必要であるため、作業を簡素化するために、スイート全体がルートとして実行されることに注意してください.

ツールがテストするリークシナリオの詳細

次のケーススタディでは、これらのツールがテストするリークシナリオのいくつかについて、プライバシーとセキュリティへの影響の説明、および関連ツールの使用方法の概要について説明します。

  • ケーススタディ1:「バニラ」リーク
  • ケーススタディ2:WebRTCリーク
  • ケーススタディ3:ネットワーク移行リーク
  • ケーススタディ4:到達不能なVPNサーバーリーク
  • 事例5:VPNプロセスのクラッシュリーク

ツールへの貢献

バグの修正、改善の提案、まったく新しいテストケースなど、ツールへの貢献を喜んで受け取ります。 GitHubのプルリクエストを介して投稿を送信できます。.

ツールについてお問い合わせください

ツールについては、leakproofing @ expressvpn.comまでお問い合わせください。.

ツールは現在、 アルファ 状態と頻繁に変更されます。ただし、ツールが常に使用可能な状態になるように努めます.

ExpressVPNリークテストツール
admin Author
Sorry! The Author has not filled his profile.