Alat pengujian kebocoran ExpressVPN

Ilustrasi kabel komputer yang bocor dilihat melalui kaca pembesar.

Alat Uji Kebocoran ExpressVPN adalah rangkaian alat Python yang dapat dikembangkan yang dirancang untuk pengujian kebocoran aplikasi VPN secara manual dan otomatis.

Dikembangkan oleh ExpressVPN’s Privacy Research Lab, alat awalnya dibangun untuk dua tujuan:

  • Menyediakan pengujian regresi yang kuat dan otomatis untuk aplikasi ExpressVPN
  • Memfasilitasi penyelidikan pengujian kebocoran untuk memperkuat aplikasi tersebut lebih lanjut

Kami segera menyadari bahwa alat ini sebenarnya dapat bermanfaat bagi industri VPN yang lebih luas. Karena itu kami memutuskan untuk menjadikannya open source yang sepenuhnya tersedia di bawah Lisensi MIT.

Kami berharap bahwa dengan melakukan itu kami akan membantu memberikan pengalaman online yang lebih pribadi dan aman untuk semua pengguna VPN dengan:

  • memberikan pengguna dan pihak ketiga cara independen untuk memverifikasi kualitas VPN dan menilai risiko privasi dan keamanan mereka sendiri;
  • menciptakan tolok ukur yang lebih tinggi untuk perlindungan terhadap kebocoran untuk seluruh industri VPN; dan
  • menyatukan keahlian dari seluruh industri seputar pengujian kebocoran

Memulai dengan alat

Alat tersebut dapat ditemukan di GitHub di: https://github.com/expressvpn/expressvpn_leak_testing.

Untuk memulai, ikuti instruksi di file README.md. Sementara kami memberikan ikhtisar tentang alat-alat di bawah ini, repositori GitHub harus selalu dianggap sebagai satu-satunya sumber kebenaran untuk dokumentasi yang berkaitan dengan alat-alat tersebut..

Perhatikan bahwa untuk mengikuti instruksi pengujian yang termasuk dalam studi kasus Lab Penelitian Privasi kami, Anda harus menginstal alat kebocoran sesuai dokumentasi di GitHub. Diasumsikan bahwa setiap kali Anda menjalankan salah satu studi kasus, direktori alat root merujuk ke lokasi di mana Anda telah mengkloning repositori git di atas.

Ikhtisar alat

Kami menggunakan Python

Alat-alat ditulis terutama dalam Python, dengan beberapa alat bantu dalam bahasa lain yang diperlukan. Kami memilih Python karena beberapa alasan:

  • Ini lintas platform dan didukung di luar kotak dalam banyak kasus
  • Ini terkenal untuk sebagian besar pengembang dan karenanya mudah diakses
  • Cepat berkembang – kami tidak memiliki persyaratan kinerja untuk kerangka kerja pengujian
  • Ini adalah bahasa ekspresif yang memungkinkan kita untuk menulis kode yang mudah dibaca

Perhatikan bahwa kita menggunakan Python 3, karena ini cepat menjadi standar de facto.

Ini seperti pengujian unit

Alat-alat itu dirancang untuk berjalan seperti suite pengujian unit. Sebuah skrip tunggal digunakan untuk meluncurkan suite yang kemudian menjalankan serangkaian tes. Setiap pengujian memeriksa jenis kebocoran tertentu dalam kondisi tertentu, mis., Dalam kondisi jaringan tertentu, lalu melaporkan lulus, gagal, atau kesalahan.

Tes — atau uji kasus — kira-kira sama dengan satu file Python. Test suite dirancang agar tidak asing bagi para pengembang yang terbiasa bekerja dengan suite pengujian unit, sehingga setiap pengujian telah mengikuti pola pengaturan yang umum (), test (), dan teardown ().

Kasing uji dirancang untuk menjadi generik mungkin. Kasing uji dapat dijalankan dengan konfigurasi VPN yang berbeda, konfigurasi jaringan yang berbeda, dan sebagainya. Ketika dijalankan, mereka disediakan dengan konfigurasi yang menentukan bagaimana mereka akan berjalan untuk putaran pengujian tertentu. File konfigurasi diteruskan ke suite tes yang berisi daftar semua tes untuk dijalankan dan konfigurasinya.

Contoh cara menjalankan tes adalah dengan menjalankan perintah berikut dari direktori root alat:

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

Konfigurasi Perangkat dan Jaringan

Suite ini telah dirancang untuk dapat menjalankan tes pada konfigurasi perangkat dan jaringan yang sewenang-wenang. Kami menyadari sejak awal bahwa beberapa aspek perilaku VPN akan membutuhkan lebih dari satu perangkat untuk diuji, jadi kami merancang rangkaian uji untuk mengaktifkan ini sejak awal..

Perangkat dari mana tes dijalankan disebut sebagai orkestra penguji. Semua perangkat lain hanya disebut sebagai perangkat uji.

Jenis uji paling sederhana dijalankan pada satu perangkat (satu perangkat uji) dan uji kebocoran langsung pada perangkat itu. Sebagai contoh, seseorang dapat menjalankan kelas luas tes kebocoran Windows secara langsung pada perangkat Windows. Dalam hal ini, orkestrator uji sebenarnya juga merupakan perangkat uji. Tes yang lebih kompleks (uji multi-perangkat) mungkin melibatkan perangkat uji yang menjalankan VPN, router, dan perangkat packet capture.

Otomatisasi

Test suite dirancang untuk sepenuhnya mendukung otomatisasi pengujian. Namun, di luar kotak, tes akan selalu memerlukan beberapa interaksi manual. Setiap kali interaksi manual diperlukan, test suite akan dengan jelas meminta pengguna dan memberi tahu mereka apa yang harus dilakukan.

Salah satu bagian tersulit dari pengujian untuk mengotomatisasi adalah kontrol atas aplikasi VPN. Memang, untuk banyak tes, ini adalah satu-satunya bagian dari teka-teki yang tidak otomatis. Kami saat ini tidak memiliki rencana untuk menawarkan dukungan untuk kontrol otomatisasi aplikasi VPN ke repositori. Namun, menambahkan dukungan semacam itu didukung oleh arsitektur suite.

Perhatikan bahwa secara internal, kami telah menerapkan otomatisasi penuh dari aplikasi kami sendiri untuk memfasilitasi pengujian integrasi berkelanjutan. Kami tidak berencana untuk membuat alat otomasi itu tersedia sebagai bagian dari repositori open source.

Menyiapkan alat

Instruksi terperinci tentang cara mengatur perangkat uji diberikan dalam repo GitHub. Kami hanya memberikan ikhtisar di sini tentang apa yang diharapkan saat menyiapkan perangkat.

Suite tes didukung di Linux, macOS, dan perangkat Windows (mis. Suite Python dapat diinstal dan langsung dijalankan pada perangkat ini). Perangkat seluler juga didukung oleh alat-alat tersebut, tetapi rangkaian itu sendiri tidak akan pernah berjalan langsung di perangkat ini.

Kami menyarankan menggunakan Mesin Virtual (VMs) sebanyak mungkin, terutama untuk tes perangkat tunggal. VM menawarkan beberapa keunggulan:

  • Mudah membuat dan mengkonfigurasi antarmuka jaringan baru
  • Memungkinkan Anda menjaga mesin host Anda jauh dari banyak instalasi perangkat lunak pihak ketiga yang diperlukan pengujian
  • Menangkap traffic yang meninggalkan VM lebih sederhana daripada menangkap traffic yang meninggalkan perangkat fisik nyata
  • Mudah untuk melakukan pra-konfigurasi foto dan mengembalikan ketika diperlukan

Untuk pengujian mendalam yang serius, kami selalu merekomendasikan untuk menjalankan tes pada perangkat keras fisik nyata juga, untuk menyingkirkan kemungkinan perbedaan antara perangkat keras nyata dan perangkat keras nyata..

Perhatikan bahwa sebagian besar tes memerlukan izin root (admin) untuk dijalankan, jadi untuk menyederhanakan banyak hal, seluruh rangkaian akan dijalankan sebagai root.

Pelajari lebih lanjut tentang skenario kebocoran yang akan diuji alat

Studi kasus berikut menyediakan lebih banyak informasi tentang beberapa skenario kebocoran yang diuji oleh alat-alat ini, menjelaskan bagaimana mereka dapat mempengaruhi privasi dan keamanan Anda, serta menguraikan cara menggunakan alat yang relevan:

  • Studi kasus 1: Kebocoran “Vanilla”
  • Studi kasus 2: Kebocoran WebRTC
  • Studi kasus 3: Kebocoran transisi jaringan
  • Studi kasus 4: Kebocoran server VPN yang tidak dapat dijangkau
  • Studi kasus 5: Proses kebocoran kebocoran VPN

Berkontribusi pada alat

Kami sangat senang menerima kontribusi ke alat, apakah itu untuk perbaikan bug, saran untuk perbaikan, atau kasus uji yang sama sekali baru. Anda dapat mengirimkan kontribusi melalui permintaan tarik di GitHub.

Hubungi kami tentang alat-alatnya

Anda dapat menghubungi kami mengenai alat-alat di [email protected].

Perhatikan bahwa alat saat ini sedang dalam alfa nyatakan dan kemungkinan akan sering berubah. Namun, kami akan berusaha untuk memastikan bahwa alat selalu dalam kondisi yang dapat digunakan.