Alat uji kebocoran ExpressVPN

Satu ilustrasi kabel komputer yang bocor dilihat melalui kaca pembesar.

Alat Penguji Leak ExpressVPN adalah suite alat Python yang boleh diperluaskan yang direka untuk ujian kebocoran manual dan automatik dari aplikasi VPN.

Dibangunkan oleh Makmal Penyelidikan Privasi ExpressVPN, alat tersebut pada mulanya dibina untuk dua tujuan:

  • Menyediakan ujian regresi automatik yang kuat untuk aplikasi ExpressVPN
  • Memudahkan siasatan ujian kebocoran untuk memperkuat aplikasi tersebut dengan lebih lanjut

Kami segera menyedari bahawa alat ini sebenarnya boleh memberi manfaat kepada industri VPN yang lebih luas. Oleh itu, kami membuat keputusan untuk menjadikannya sumber terbuka sepenuhnya di bawah Lesen MIT.

Kami berharap bahawa dengan berbuat demikian kami akan membantu menyediakan pengalaman dalam talian yang lebih peribadi dan selamat untuk semua pengguna VPN dengan:

  • memberi pengguna dan pihak ketiga cara yang bebas untuk mengesahkan kualiti VPN dan menilai risiko privasi dan privasi mereka sendiri;
  • mewujudkan tanda aras yang lebih tinggi untuk perlindungan terhadap kebocoran untuk keseluruhan industri VPN; dan
  • membawa bersama kepakaran dari seluruh industri di sekitar ujian kebocoran

Bermula dengan alat

Alat boleh didapati di GitHub di: https://github.com/expressvpn/expressvpn_leak_testing.

Untuk bermula, ikuti arahan dalam fail README.md. Walaupun kami memberikan gambaran keseluruhan alat-alat di bawah ini, repositori GitHub harus selalu dianggap sebagai sumber kebenaran tunggal untuk dokumentasi yang berkaitan dengan alat.

Perhatikan bahawa untuk mengikuti arahan ujian yang dimasukkan dalam kajian kes Makmal Penyelidikan Privasi kami, anda perlu memasang alat bocor seperti dokumentasi dalam GitHub. Diandaikan bahawa setiap kali anda menjalankan mana-mana kajian kes, yang alat direktori root merujuk kepada lokasi di mana anda telah mengklonkan repositori git di atas.

Gambaran keseluruhan alat

Kami menggunakan Python

Alat ini ditulis terutamanya dalam Python, dengan beberapa alat penolong dalam bahasa lain yang diperlukan. Kami memilih Python atas beberapa sebab:

  • Ia merentas platform dan disokong out-of-the-box dalam kebanyakan kes
  • Ia terkenal dengan peratusan besar pemaju dan dengan itu mudah diakses
  • Ia pantas untuk membangunkan dalam-kita tidak mempunyai keperluan prestasi untuk rangka kerja ujian
  • Ia adalah bahasa ekspresif yang membolehkan kita menulis kod mudah dibaca

Perhatikan bahawa kami menggunakan Python 3, kerana ini cepat menjadi standard de facto.

Ia seperti ujian unit

Alat direka untuk berjalan seperti unit ujian unit. Skrip tunggal digunakan untuk melancarkan suite yang kemudian menjalankan beberapa ujian. Setiap pemeriksaan ujian untuk jenis kebocoran tertentu dalam keadaan tertentu, mis., Di bawah keadaan rangkaian tertentu, kemudian melaporkan sama ada lulus, gagal, atau kesalahan.

Kes ujian atau ujian – kira-kira sepadan dengan fail Python tunggal. Suite ujian direka untuk biasa kepada pemaju yang digunakan untuk bekerja dengan suite ujian unit, oleh itu setiap ujian telah mengikuti pola persediaan yang biasa (), ujian (), dan teardown ().

Kes ujian direka untuk menjadi generik yang mungkin. Kes ujian boleh dijalankan dengan konfigurasi VPN yang berbeza, konfigurasi rangkaian yang berbeza, dan sebagainya. Apabila mereka berjalan, mereka disediakan dengan konfigurasi yang menentukan bagaimana mereka akan dijalankan untuk ujian pusingan tertentu. Fail konfigurasi dihantar ke suite ujian yang menyenaraikan semua ujian untuk dijalankan dan konfigurasi mereka.

Contoh cara menjalankan ujian adalah untuk melaksanakan arahan berikut dari direktori root alat:

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

Peranti dan Rangkaian Konfigurasi

Suite ini telah direka untuk dapat menjalankan ujian pada konfigurasi sewenang-wenangnya peranti dan rangkaian. Kami sedar sejak awal bahawa beberapa aspek perilaku VPN memerlukan lebih daripada satu peranti untuk diuji, jadi kami merancang suite ujian untuk membolehkan ini dari awal.

Peranti yang mana ujian dijalankan adalah dirujuk sebagai test orchestrator. Semua peranti lain hanya dirujuk sebagai peranti ujian.

Jenis ujian yang paling mudah dijalankan pada satu peranti (ujian peranti tunggal) dan menguji kebocoran secara langsung pada peranti itu. Sebagai contoh, seseorang boleh menjalankan kelas ujian Windows kebocoran secara langsung pada peranti Windows. Dalam kes ini, penguji orkestra sebenarnya juga merupakan alat ujian. Ujian yang lebih kompleks (ujian berbilang peranti) mungkin melibatkan peranti ujian yang menjalankan VPN, penghala, dan peranti tangkapan paket.

Automasi

Suite ujian direka bentuk untuk menyokong sepenuhnya ujian automasi. Walau bagaimanapun, di luar kotak, ujian akan selalu memerlukan beberapa interaksi manual. Setiap kali interaksi manual diperlukan, suite ujian dengan jelas akan menggesa pengguna dan memberitahu mereka apa yang perlu dilakukan.

Salah satu bahagian ujian yang paling sukar untuk diautomatikkan adalah mengawal aplikasi VPN. Memang, untuk banyak ujian, ini adalah satu-satunya teka-teki yang tidak automatik. Pada masa ini, kami tidak mempunyai rancangan untuk menawarkan sokongan untuk mengautomasikan kawalan aplikasi VPN ke repositori. Walau bagaimanapun, penambahan sokongan itu disokong oleh seni bina suite.

Perhatikan bahawa secara dalaman, kami telah melaksanakan automasi penuh permohonan kami sendiri untuk memudahkan ujian integrasi berterusan. Kami tidak merancang untuk menjadikan alat automasi itu sebagai sebahagian daripada repositori sumber terbuka.

Menyediakan alat

Arahan terperinci tentang cara menyiapkan alat ujian diberikan dalam repo GitHub. Kami hanya memberi ikhtisar di sini tentang apa yang diharapkan apabila menyediakan peranti.

Suite ujian disokong pada peranti Linux, macOS, dan Windows (iaitu suite Python boleh dipasang dan terus berjalan pada peranti ini). Peranti mudah alih juga disokong oleh alat, tetapi suite itu sendiri tidak akan langsung dijalankan pada peranti ini.

Kami mengesyorkan menggunakan Mesin Maya (VM) sebanyak mungkin, terutamanya untuk ujian peranti tunggal. VM menawarkan beberapa kelebihan:

  • Mudah untuk membuat dan mengkonfigurasi antara muka rangkaian baru
  • Membolehkan anda menyimpan mesin hos anda dengan jelas daripada banyak pemasangan perisian pihak ketiga yang memerlukan ujian
  • Menangkap trafik meninggalkan VM adalah lebih mudah daripada menangkap lalu lintas yang meninggalkan peranti fizikal yang sebenar
  • Mudah untuk mengkonfigurasikan petikan dan kembali apabila diperlukan

Untuk ujian mendalam yang serius, kami sentiasa mengesyorkan menjalankan ujian pada perkakasan fizikal sebenar, untuk mengesahkan sebarang perbezaan potensi antara perkakasan virtualisasi dan sebenar.

Perhatikan bahawa kebanyakan ujian memerlukan keizinan root (admin) untuk dijalankan, jadi untuk memudahkan perkara, seluruh suite akan dijalankan sebagai root.

Ketahui lebih lanjut mengenai senario bocor ujian alat untuk

Kajian kes berikut memberikan lebih banyak maklumat mengenai beberapa senario kebocoran yang digunakan oleh alat-alat ini, menjelaskan bagaimana ia dapat memberi kesan terhadap privasi dan keselamatan anda, serta menggariskan cara menggunakan alat yang relevan:

  • Kajian kes 1: kebocoran “Vanila”
  • Kajian kes 2: Kebocoran WebRTC
  • Kajian kes 3: Kebocoran peralihan rangkaian
  • Kajian kes 4: Kebocoran pelayan VPN yang tidak dapat dicapai
  • Kajian kes 5: Kebocoran kebocoran proses VPN

Menyumbang kepada alat

Kami lebih senang menerima sumbangan kepada alat, sama ada untuk perbaikan pepijat, cadangan untuk peningkatan, atau kes ujian yang sama sekali baru. Anda boleh menghantar sumbangan melalui permintaan tarik di GitHub.

Hubungi kami mengenai alat

Anda boleh menghubungi kami mengenai alat di [email protected].

Perhatikan bahawa alat-alat sedang dalam alpha negeri dan mungkin akan berubah sering. Walau bagaimanapun, kami akan berusaha untuk memastikan bahawa alat itu sentiasa berada dalam keadaan yang boleh digunakan.