Orodja za testiranje puščanja ExpressVPN

[ware_item id=33][/ware_item]

Slika puščajočega računalniškega kabla, ki ga gledamo skozi povečevalno steklo.


Orodja za testiranje tesnosti ExpressVPN so razširljiva zbirka orodij Python, zasnovana tako za ročno kot samodejno testiranje tesnjenja VPN aplikacij.

Orodja so bila razvita v laboratoriju za raziskave zasebnosti ExpressVPN, sprva pa so bila zgrajena za dva namena:

  • Zagotavljanje robustnega, avtomatiziranega regresijskega testiranja aplikacij ExpressVPN
  • Olajšanje preiskav testiranja uhajanja za nadaljnjo krepitev teh aplikacij

Kmalu smo ugotovili, da bi ta orodja dejansko lahko koristila širši industriji VPN. Tako smo se odločili, da jim omogočimo dostop do odprte kode pod licenco MIT.

Upamo, da bomo s tem pomagali zagotoviti zasebnejšo in varnejšo spletno izkušnjo za vse uporabnike VPN:

  • omogočanje uporabnikom in tretjim osebam neodvisen način preverjanja kakovosti VPN-jev in ocene njihovih zasebnosti in varnostnih tveganj;
  • ustvarjanje višjega merila za zaščito pred puščanjem za celotno industrijo VPN; in
  • ki združuje strokovno znanje iz celotne panoge glede testiranja tesnosti

Začetek z orodji

Orodja najdete na GitHubu na: https://github.com/expressvpn/expressvpn_leak_testing.

Za začetek sledite navodilom v datoteki README.md. Čeprav ponujamo pregled spodaj naštetih orodij, bi bilo treba skladišče GitHub vedno smatrati kot edini vir resnice za dokumentacijo o orodjih.

Upoštevajte, da boste morali upoštevati navodila za testiranje, ki so vključene v naše študije primerov zasebnosti, zato morate namestiti orodja za puščanje v skladu z dokumentacijo v GitHubu. Predvidevamo, da je, kadar zaženete katero od študij primerov, korenski imenik orodij se nanaša na lokacijo, kjer ste klonirali zgornje git skladišče.

Pregled orodij

Uporabljamo Python

Orodja so napisana predvsem v Pythonu, po potrebi je nekaj pomožnih orodij v drugih jezikih. Python smo izbrali iz več razlogov:

  • Je večplastorska in v večini primerov podprta zunaj okvira
  • Velik odstotek razvijalcev je dobro znan in je zato lahko dostopen
  • Hitro se razvija v - za preizkusni okvir nimamo zahtev glede zmogljivosti
  • Je ekspresiven jezik, ki nam omogoča, da pišemo lahko berljivo kodo

Upoštevajte, da uporabljamo Python 3, saj ta hitro postaja dejanski standard.

Kot preizkušanje enot

Orodja so bila zasnovana tako, da delujejo kot enota za testiranje. Za zagon zbirke se uporablja en sam skript, ki nato opravi vrsto testov. Vsak preskus preveri določeno vrsto puščanja v posebnih pogojih, npr. Pod določenimi omrežnimi pogoji, nato poroča o prehodu, napaki ali napaki.

Preskus - ali testni primer - približno ustreza eni datoteki Python. Preskusni paket je bil zasnovan tako, da ga poznajo razvijalci, ki so delali z enotami za testiranje enot, zato vsak test sledi znanemu vzorcu setup (), test () in teardown ().

Preskusni primeri so zasnovani tako, da so čim bolj splošni. Preskusne primere je mogoče izvajati z različnimi konfiguracijami VPN, različnimi konfiguracijami omrežja itd. Ko se tečejo, jim je na voljo konfiguracija, ki določa, kako se bodo izvajali v določenem krogu testiranja. Konfiguracijska datoteka se pošlje preskusnemu paketu, v katerem so navedeni vsi preizkusi, ki jih je treba izvesti, in njihove konfiguracije.

Primer izvajanja testov je izvajanje naslednjega ukaza iz korenskega imenika orodij:

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

Konfiguracije naprave in omrežja

Paket je zasnovan tako, da lahko izvaja preizkuse na poljubnih konfiguracijah naprav in omrežij. Že od začetka smo se zavedali, da bodo nekateri vidiki vedenja VPN potrebovali več naprav za testiranje, zato smo zasnovali testno zbirko, da bo to omogočila že na začetku.

Naprava, s katero se izvajajo preskusi, se imenuje testni orkestrator. Vse druge naprave preprosto imenujemo preskusne naprave.

Najenostavnejša vrsta testa se izvaja na posamezni napravi (preizkusi ene naprave) in preizkus tesnosti neposredno na tej napravi. Na primer, lahko izvajate širok razred preizkusov uhajanja sistema Windows neposredno na napravi Windows. V tem primeru je testni orkestrator pravzaprav tudi testna naprava. Zapletenejši testi (preizkusi z več napravami) lahko vključujejo preskusno napravo, ki poganja VPN, usmerjevalnik in napravo za zajem paketov.

Avtomatizacija

Paket za testiranje je bil zasnovan tako, da v celoti podpira avtomatizacijo testov. Vendar pa bodo testni rezultati vedno zahtevali ročno interakcijo. Kadar koli je potrebna ročna interakcija, bo testni komplet uporabnika takoj opozoril in jim povedal, kaj naj naredijo.

Eden najtežjih delov testov za avtomatizacijo je nadzor nad aplikacijami VPN. Dejansko je pri mnogih testih to edini delček sestavljanke, ki ni avtomatiziran. Trenutno nimamo v načrtu nuditi podpore za avtomatizacijo nadzora aplikacij VPN. Dodajanje takšne podpore pa podpira arhitektura suite.

Upoštevajte, da smo notranje izvedli popolno avtomatizacijo lastne aplikacije za lažje neprekinjeno testiranje integracije. Teh orodij za avtomatizacijo ne nameravamo dati na razpolago kot del odprtokodnega skladišča.

Nastavitev orodij

Podrobna navodila za nastavitev testnih naprav so podana v repo GitHub. Tukaj samo dajemo pregled, kaj lahko pričakujete pri nastavitvi naprav.

Preizkusni paket je podprt v napravah Linux, macOS in Windows (tj. Python paket je mogoče namestiti in neposredno teči v teh napravah). Orodja podpirajo tudi mobilne naprave, vendar sam paket nikoli ne bo zagnan neposredno na teh napravah.

Priporočamo uporabo virtualnih strojev (VM) v največji možni meri, zlasti za preizkuse posameznih naprav. VM ponujajo več prednosti:

  • Enostavno za ustvarjanje in konfiguriranje novih omrežnih vmesnikov
  • Omogoča vam, da gostiteljski računalnik preprečite številne namestitve programske opreme drugih proizvajalcev, ki jih zahtevajo testi
  • Zajem prometa, ki zapusti VM, je preprostejši kot zajem prometa, če pustite resnično fizično napravo
  • Enostavna predhodna konfiguracija posnetkov in obnovitev po potrebi

Za resno poglobljeno testiranje vedno priporočamo, da preizkusite tudi resnično fizično strojno opremo, da izključite morebitne razlike med virtualizirano in resnično strojno opremo.

Upoštevajte, da za večino testov potrebujejo dovoljenja root (admin), da bi poenostavili stvari, se bo celoten paket izvajal kot root.

Preberite več o scenarijih puščanja, za katere preizkusite orodja

Naslednje študije primerov ponujajo več informacij o nekaterih scenarijih puščanja, ki jih preizkušajo ta orodja, in razlagajo, kako lahko vplivajo na vašo zasebnost in varnost, ter opisujejo uporabo ustreznega orodja:

  • Študija primera 1: "Vanilija" pušča
  • Študija primera 2: puščanje WebRTC
  • Študija primera 3: Puščanje omrežnih prehodov
  • Študija primera 4: Nedosegljiva puščanja strežnika VPN
  • Študija primera 5: puščanje VPN procesa

Prispevek k orodjem

Z veseljem smo prejeli prispevke k orodjem, naj gre za odpravljanje napak, predloge za izboljšave ali povsem nove testne primere. Prispevke lahko v GitHub vložite prek zahtevkov za povleci.

O orodjih nas kontaktirajte

Glede orodij se lahko obrnete na naslovu [email protected]

Upoštevajte, da so orodja trenutno v alfa države in se bo verjetno pogosto spreminjal. Vendar si bomo prizadevali zagotoviti, da bodo orodja vedno v uporabnem stanju.

Orodja za testiranje puščanja ExpressVPN
admin Author
Sorry! The Author has not filled his profile.