ExpressVPN alati za ispitivanje istjecanja

Ilustracija računalnog kabela koji prokišnjava kroz povećalo.

ExpressVPN alati za testiranje propuštanja su proširivi paket alata Python dizajniran za ručno i automatizirano testiranje propuštanja VPN aplikacija..

Razvijeni u ExpressVPN-ovoj laboratoriji za istraživanje privatnosti, alati su u početku građeni za dvije svrhe:

  • Pruža robusno, automatizirano regresijsko testiranje ExpressVPN aplikacija
  • Omogućavanje ispitivanja ispitivanja propuštanja kako bi se dodatne aplikacije dodatno ojačale

Ubrzo smo shvatili da bi ovi alati zapravo mogli biti od koristi široj VPN industriji. Stoga smo odlučili da im u potpunosti postane na raspolaganju open source pod licencom MIT.

Nadamo se da ćemo na taj način pomoći svim privatnim i sigurnijim online iskustvima za sve VPN korisnike na:

  • davanje korisnicima i trećim stranama neovisan način provjere kvalitete VPN-a i procjene vlastitih rizika privatnosti i sigurnosti;
  • stvaranje višeg mjerila za zaštitu od curenja za cjelokupnu VPN industriju; i
  • okupljajući ekspertizu iz cijele industrije oko ispitivanja nepropusnosti

Početak rada s alatima

Alate možete pronaći na GitHub-u na: https://github.com/expressvpn/expressvpn_leak_testing.

Za početak slijedite upute u datoteci README.md. Iako donosimo pregled alata u nastavku, GitHub repozitorij uvijek treba smatrati jedinim izvorom istine za dokumentaciju koja se odnosi na alate.

Imajte na umu da ćete slijediti upute za testiranje uključene u studije slučaja Laboratorija za istraživanje privatnosti morat ćete instalirati alate za propuštanje prema dokumentaciji u GitHubu. Pretpostavlja se da, kad god pokrenete bilo koju studiju slučaja, korijenski direktorij alata odnosi se na lokaciju na kojoj ste klonirali gore git spremište.

Pregled alata

Koristimo Python

Alati su pisani prvenstveno na Pythonu, s nekoliko pomoćnih alata na drugim jezicima ako je potrebno. Odabrali smo Python iz nekoliko razloga:

  • To je cross-platforma i podržava van okvira u većini slučajeva
  • To je dobro poznato velikom postotku programera i na taj način je lako dostupan
  • Brzo se razvija u - nemamo potrebe za performansama za okvir testiranja
  • To je ekspresivan jezik koji nam omogućuje pisanje lako čitljivog koda

Imajte na umu da koristimo Python 3, jer ovo brzo postaje standard de facto.

To je poput testiranja jedinice

Alati su dizajnirani za pokretanje poput jedinice za testiranje. Za pokretanje paketa koji koristi niz testova koristi se jedna skripta. Svako ispitivanje provjerava postoji li određena vrsta istjecanja u specifičnim uvjetima, npr., U određenim mrežnim uvjetima, a zatim izvještava o prolazu, kvaru ili pogreške.

Test - ili testni slučaj - otprilike odgovara jednoj Python datoteci. Testni paket dizajniran je tako da bude poznat programerima koji su radili s jedinicama za testiranje jedinice, tako da svaki test slijedi poznati obrazac postava (), test () i teardown ().

Test slučajevi dizajnirani su tako da budu što generičniji. Test slučajevi mogu se izvoditi s različitim VPN konfiguracijama, različitim mrežnim konfiguracijama i tako dalje. Kad se pokrenu, dobiva im konfiguracija koja određuje kako će se izvoditi za određeni krug testiranja. Konfiguracijska datoteka proslijeđuje se u testni skup koji sadrži sve testove koje treba pokrenuti i njihove konfiguracije.

Primjer kako pokrenuti testove je izvršiti sljedeću naredbu iz korijenskog direktorija alata:

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

Konfiguracije uređaja i mreže

Paket je dizajniran tako da može pokrenuti testove na proizvoljnim konfiguracijama uređaja i mreža. Od samog početka bili smo svjesni da će neki aspekti VPN ponašanja trebati više uređaja za testiranje, tako da smo dizajnirali testni paket kako bi ovo omogućio od samog početka.

Uređaj s kojeg se izvode ispitivanja naziva se " test orkestrator. Svi ostali uređaji jednostavno se nazivaju ispitni uređaji.

Najjednostavnija vrsta testa se izvodi na jednom uređaju (testiranje jednog uređaja) i testira se na propuštanje izravno na tom uređaju. Na primjer, može se pokrenuti široka klasa testova propuštanja sustava Windows izravno na Windows uređaju. U ovom slučaju testni orkestrator je ujedno i testni uređaj. Složeniji testovi (testovi s više uređaja) mogu uključivati ​​testni uređaj koji pokreće VPN, usmjerivač i uređaj za hvatanje paketa..

Automatizacija

Ispitni paket dizajniran je tako da u potpunosti podržava automatizaciju testova. Međutim, bez okvira, testovi će uvijek zahtijevati ručnu interakciju. Kad god je potrebna ručna interakcija, testni će paket jasno uputiti korisnika i reći im što im je činiti.

Jedan od najtežih dijelova testova za automatizaciju je kontrola nad VPN aplikacijama. Zaista, za mnoge testove ovo je jedini djelić slagalice koji nije automatiziran. Trenutno ne planiramo u spremište nuditi podršku za automatizaciju upravljanja VPN aplikacijama. Dodavanje takve podrške međutim podržava arhitektura paketa.

Imajte na umu da smo interno implementirali potpunu automatizaciju vlastite aplikacije kako bismo olakšali kontinuirano testiranje integracije. Ne planiramo takve alate za automatizaciju učiniti dostupnima u skladištu otvorenog koda.

Postavljanje alata

Detaljne upute o postavljanju ispitnih uređaja date su u repo GitHub-u. Ovdje smo samo dali pregled što očekivati ​​pri postavljanju uređaja.

Testni paket podržan je na Linux, macOS i Windows uređajima (tj. Python paket može se instalirati i izravno pokrenuti na tim uređajima). Mobilni uređaji također su podržani od alata, ali sam paket nikada neće biti pokrenut izravno na tim uređajima.

Preporučujemo korištenje virtualnih strojeva (VM-a) što je više moguće, posebno za pojedinačne testove uređaja. VM nude nekoliko prednosti:

  • Lako za stvaranje i konfiguriranje novih mrežnih sučelja
  • Omogućuje vam uklanjanje domaćinskog stroja od mnogih instalacija softvera treće strane koje testovi zahtijevaju
  • Uhvaćanje prometa napuštanjem VM-a jednostavnije je od snimanja prometa ostavljajući pravi, fizički uređaj
  • Jednostavno za konfiguriranje snimaka i vraćanje po potrebi

Za ozbiljna dubinska ispitivanja uvijek preporučujemo pokretanje testova i na stvarnom fizičkom hardveru kako biste isključili moguće razlike između virtualiziranog i stvarnog hardvera..

Imajte na umu da većina testova treba pokrenuti root (admin) dozvole, tako da bi pojednostavnili stvari, cijeli će se paket prikazivati ​​kao root.

Saznajte više o scenarijima curenja koje test alata koristi

Sljedeće studije slučaja pružaju više informacija o nekim scenarijima curenja na koje ovi alati testiraju, objašnjavajući kako mogu utjecati na vašu privatnost i sigurnost, kao i opis načina korištenja relevantnog alata:

  • Studija slučaja 1: "Vanilija" curi
  • Studija slučaja 2: curenja WebRTC-a
  • Studija slučaja 3: curenje mreže
  • Studija slučaja 4: Nepristupačna propuštanja VPN poslužitelja
  • Studija slučaja 5: Propadi VPN procesa

Doprinosi alatima

Sretni smo što smo dobili doprinose za alate, bilo da se radi o ispravcima programskih pogrešaka, prijedlozima poboljšanja ili posve novim testnim slučajevima. Možete dostavljati doprinose putem zahtjeva za potezanje u GitHub-u.

Obratite nam se oko alata

Možete nas kontaktirati u vezi s alatima na [email protected]

Imajte na umu da su alati trenutno u alfa države i vjerojatno će se često mijenjati. Međutim, nastojat ćemo osigurati da alati uvijek budu u upotrebljivom stanju.

ExpressVPN alati za ispitivanje istjecanja
admin Author
Sorry! The Author has not filled his profile.