Nástroje na testovanie tesnosti ExpressVPN

Ilustrácia unikajúceho počítačového kábla pri pohľade cez zväčšovacie sklo.

ExpressVPN nástroje na testovanie tesnosti sú rozšíriteľnou sadou nástrojov Python určených na manuálne aj automatizované testovanie úniku aplikácií VPN..

Nástroje vyvinuté výskumným laboratóriom ExpressVPN na ochranu súkromia boli pôvodne vyrobené pre dva účely:

  • Poskytovanie robustného automatizovaného regresného testovania aplikácií ExpressVPN
  • Uľahčenie vyšetrovania na testovanie tesnosti s cieľom ďalej posilniť tieto aplikácie

Čoskoro sme si uvedomili, že tieto nástroje by mohli byť prospešné pre širší priemysel VPN. Preto sme sa rozhodli sprístupniť ich v plnom rozsahu na základe licencie MIT.

Dúfame, že tým pomôžeme poskytnúť súkromnejším a bezpečnejšie prostredie online všetkým používateľom VPN prostredníctvom:

  • poskytnutie nezávislých používateľov a tretích strán na overenie kvality VPN a posúdenie ich vlastných rizík ochrany súkromia a bezpečnosti;
  • vytvorenie vyššej referenčnej hodnoty na ochranu pred únikmi údajov pre celé odvetvie VPN; a
  • spájajú odborné znalosti z celého odvetvia okolo testovania tesnosti

Začíname s nástrojmi

Nástroje nájdete na stránke GitHub na adrese: https://github.com/expressvpn/expressvpn_leak_testing.

Ak chcete začať, postupujte podľa pokynov v súbore README.md. Aj keď poskytujeme prehľad nižšie uvedených nástrojov, úložisko GitHub by sa malo vždy považovať za jediný zdroj pravdy pre dokumentáciu týkajúcu sa nástrojov..

Upozorňujeme, že ak chcete postupovať podľa pokynov na testovanie, ktoré sú súčasťou prípadových štúdií našej organizácie Research Research Lab, budete musieť nainštalovať nástroje na úniky podľa dokumentácie v službe GitHub. Predpokladá sa, že kedykoľvek spustíte niektorú z prípadových štúdií, koreňový adresár tools odkazuje na miesto, kde ste klonovali vyššie uvedené úložisko git.

Prehľad nástrojov

Používame Python

Nástroje sú napísané primárne v jazyku Python, s niekoľkými pomocnými nástrojmi v iných jazykoch podľa potreby. Python sme si vybrali z niekoľkých dôvodov:

  • Je to platforma a vo väčšine prípadov je podporovaná okamžite
  • Je dobre známa veľkému percentu vývojárov a je preto ľahko prístupná
  • Je to rýchly vývoj v - nemáme žiadne požiadavky na výkon testovacieho rámca
  • Je to výrazný jazyk, ktorý nám umožňuje písať ľahko čitateľný kód

Všimnite si, že používame Python 3, pretože to sa rýchlo stáva de facto štandardom.

Je to ako testovanie jednotiek

Nástroje boli navrhnuté tak, aby fungovali ako súprava na testovanie jednotiek. Jeden skript sa používa na spustenie balíka, ktorý potom spustí sériu testov. Každá skúška skontroluje špecifický typ úniku za špecifických podmienok, napr. Za určitých sieťových podmienok, a potom nahlási úspešnosť, zlyhanie alebo chybu..

Test - alebo testovací prípad - zhruba zodpovedá jednému súboru Python. Testovací balík bol navrhnutý tak, aby bol známy vývojárom zvyknutým na prácu so súpravami na testovanie jednotiek, takže každý test má obvyklý vzor nastavenia (), test () a teardown ().

Skúšobné prípady sú navrhnuté tak, aby boli čo naj všeobecnejšie. Testovacie prípady sa môžu spúšťať s rôznymi konfiguráciami VPN, rôznymi konfiguráciami siete atď. Keď sú spustené, sú vybavené konfiguráciou, ktorá určuje, ako sa budú spúšťať pri tomto konkrétnom kole testovania. Konfiguračný súbor sa odovzdá do testovacej sady, v ktorej sú uvedené všetky spustené testy a ich konfigurácie.

Príkladom spustenia testov by mohlo byť vykonanie nasledujúceho príkazu z koreňového adresára nástrojov:

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

Konfigurácie zariadení a sietí

Táto sada bola navrhnutá tak, aby umožňovala testovanie ľubovoľných konfigurácií zariadení a sietí. Od samého začiatku sme si boli vedomí, že niektoré aspekty správania VPN vyžadujú na testovanie viac ako jedno zariadenie, a preto sme od začiatku navrhli testovaciu súpravu, ktorá to umožní od začiatku..

Zariadenie, z ktorého sa skúšky vykonávajú, sa označuje ako skúšajúci orchester. Všetky ostatné zariadenia sa jednoducho označujú ako testovacie zariadenia.

Najjednoduchší typ skúšky prebieha na jednom zariadení (testy jedného zariadenia) a testuje úniky priamo na tomto zariadení. Napríklad je možné spustiť širokú triedu testov úniku Windows priamo na zariadení Windows. V tomto prípade je testovací orchestrátor v skutočnosti tiež testovacím zariadením. Zložitejšie testy (testy viacerých zariadení) môžu zahŕňať testovacie zariadenie so sieťou VPN, smerovač a zariadenie na zachytávanie paketov.

automatizácia

Testovací balík bol navrhnutý tak, aby plne podporoval automatizáciu testov. Avšak, po vybalení z krabice, testy budú vždy vyžadovať určitú manuálnu interakciu. Vždy, keď je potrebná manuálna interakcia, testovacia sada používateľa jasne vyzve a povie im, čo má robiť.

Jednou z najťažších častí automatizovaných testov je kontrola nad aplikáciami VPN. Pre mnoho testov je to skutočne jediná časť hádanky, ktorá nie je automatizovaná. Momentálne nemáme v pláne ponúkať podporu automatizácie riadenia aplikácií VPN do úložiska. Pridanie takejto podpory je však podporované architektúrou balíka.

Upozorňujeme, že interne sme implementovali úplnú automatizáciu našej vlastnej aplikácie, aby sme uľahčili kontinuálne testovanie integrácie. Neplánujeme tieto automatizačné nástroje sprístupňovať ako súčasť úložiska s otvoreným zdrojom.

Nastavenie nástrojov

Podrobné pokyny na nastavenie testovacích zariadení sú uvedené v repozitári GitHub. Tu uvádzame iba prehľad toho, čo možno očakávať pri nastavovaní zariadení.

Testovacia súprava je podporovaná na zariadeniach Linux, MacOS a Windows (t. J. Na týchto zariadeniach je možné nainštalovať a priamo spustiť súpravu Python). Nástroje tiež podporujú mobilné zariadenia, ale samotný balík sa na týchto zariadeniach nebude nikdy spúšťať priamo.

Odporúčame čo najviac používať virtuálne stroje (VM), najmä na testy jedného zariadenia. VM ponúka niekoľko výhod:

  • Jednoduché vytváranie a konfigurácia nových sieťových rozhraní
  • Umožňuje hostiteľskému počítaču vyhnúť sa mnohým inštaláciám softvéru tretích strán, ktoré testy vyžadujú
  • Zachytenie prenosu opúšťajúceho virtuálny počítač je jednoduchšie ako zachytenie prenosu opúšťajúceho skutočné fyzické zariadenie
  • Ľahko predkonfigurovať snímky a podľa potreby ich vrátiť

Pri serióznom hĺbkovom testovaní vždy odporúčame spustiť testy aj na skutočnom fyzickom hardvéri, aby sa vylúčili prípadné rozdiely medzi virtualizovaným a skutočným hardvérom..

Všimnite si, že väčšina testov potrebuje na spustenie oprávnenia typu root (admin), aby sa veci zjednodušili, celá sada sa spustí ako root.

Prečítajte si ďalšie informácie o scenároch úniku, ktoré testujú nástroje

Nasledujúce prípadové štúdie poskytujú viac informácií o niektorých scenároch úniku, ktoré tieto nástroje testujú, vysvetľujú, ako by mohli mať vplyv na vaše súkromie a bezpečnosť, ako aj na to, ako používať príslušný nástroj:

  • Prípadová štúdia 1: Únik „vanilky“
  • Prípadová štúdia 2: Úniky WebRTC
  • Prípadová štúdia 3: Úniky sieťového prechodu
  • Prípadová štúdia 4: Nedostupné úniky servera VPN
  • Prípadová štúdia 5: Netesnosti pri zlyhaní procesov VPN

Prispievanie k nástrojom

Sme radi, že dostávame príspevky k nástrojom, či už ide o opravy chýb, návrhy na vylepšenia alebo úplne nové testovacie prípady. V službe GitHub môžete odoslať príspevky prostredníctvom žiadostí o stiahnutie.

Kontaktujte nás ohľadom nástrojov

Ohľadne nástrojov nás môžete kontaktovať na [email protected]

Upozorňujeme, že nástroje sú momentálne v systéme alfa stavu a pravdepodobne sa bude často meniť. Budeme sa však snažiť zabezpečiť, aby nástroje boli vždy v použiteľnom stave.

Nástroje na testovanie tesnosti ExpressVPN
admin Author
Sorry! The Author has not filled his profile.