ExpressVPN-vuotojen testaustyökalut
ExpressVPN vuotojen testaustyökalut ovat laajennettavia Python-työkaluja, jotka on suunniteltu VPN-sovellusten sekä manuaaliseen että automatisoituun vuotojen testaukseen..
ExpressVPN: n Privacy Research Labin kehittämä työkalu rakennettiin alun perin kahteen tarkoitukseen:
- Tarjoaa vahvan, automatisoidun regressiotestauksen ExpressVPN-sovelluksille
- Vuotojen testaustutkimusten helpottaminen näiden sovellusten vahvistamiseksi edelleen
Pian huomasimme, että nämä työkalut voivat olla hyödyllisiä laajemmalle VPN-teollisuudelle. Päätimme siis tehdä niistä täysin avoimen lähdekoodin MIT-lisenssillä.
Toivomme, että tekemällä niin autamme tarjoamaan yksityisemmän ja turvallisemman verkkokokemuksen kaikille VPN-käyttäjille:
- antaa käyttäjille ja kolmansille osapuolille riippumaton tapa tarkistaa VPN-verkkojen laatu ja arvioida heidän yksityisyyttä ja tietoturvaa koskevat riskit;
- korkeamman vertailukohdan luominen vuotojen suojaamiseksi koko VPN-teollisuudelle; ja
- kokoamalla koko teollisuuden asiantuntemus vuotojen testaamiseen
Contents
Työkalujen käytön aloittaminen
Työkalut löytyvät GitHubista osoitteessa https://github.com/expressvpn/expressvpn_leak_testing.
Aloita noudattamalla README.md-tiedoston ohjeita. Vaikka tarjoamme yleiskuvan alla olevista työkaluista, GitHub-arkistoa on aina pidettävä yhtenäisenä totuuden lähteenä työkaluja koskevassa dokumentaatiossa.
Huomaa, että Privacy Research Lab -tapaustutkimukseen sisältyvien testausohjeiden noudattamiseksi joudut asentamaan vuototyökalut GitHubin ohjeiden mukaisesti. Oletetaan, että aina kun suoritat jotain tapaustutkimusta, työkalujen päähakemisto viittaa sijaintiin, johon olet kloonannut yllä olevan git-arkiston.
Yleiskatsaus työkaluista
Käytämme Pythonia
Työkalut on kirjoitettu pääasiassa Pythonilla, muutamalla apuvälineellä tarvittaessa myös muilla kielillä. Valitsimme Pythonin useista syistä:
- Se on monialustainen ja sitä tuetaan useimmissa tapauksissa
- Se tunnetaan hyvin suurelle osalle kehittäjiä ja on siten helposti saatavissa
- Se kehittyy nopeasti - meillä ei ole testauskehyksen suorituskykyvaatimuksia
- Se on ilmeikäs kieli, jonka avulla voimme kirjoittaa helposti luettavan koodin
Huomaa, että käytämme Python 3: ta, koska siitä on nopeasti tulossa tosiasiallinen standardi.
Se on kuin yksikkötestaus
Työkalut suunniteltiin toimimaan kuin yksikkötestausohjelma. Yhden komentosarjan avulla käynnistetään sarja, joka suorittaa sitten testisarjan. Jokainen testi tarkistaa tietyn tyyppisen vuodon tietyissä olosuhteissa, esimerkiksi tietyissä verkko-olosuhteissa, ja raportoi sitten joko läpäisyn, epäonnistumisen tai virheen.
Testi - tai testitapaus - vastaa suunnilleen yhtä Python-tiedostoa. Testisarja on suunniteltu tutuksi kehittäjille, jotka ovat tottuneet työskentelemään yksikkötestauspakettien kanssa, joten jokainen testi on noudattanut tuttua asennusmallin (), testin () ja repimisen () mallia.
Testitapaukset on suunniteltu olemaan mahdollisimman yleisiä. Testitapauksia voidaan suorittaa erilaisilla VPN-kokoonpanoilla, erilaisilla verkkokonfiguraatioilla ja niin edelleen. Kun ne suoritetaan, niille annetaan kokoonpano, joka määrittelee, kuinka ne suoritetaan kyseiselle testikierrokselle. Kokoonpanotiedosto siirretään testijoukkoon, joka sisältää kaikki suoritettavat testit ja niiden kokoonpanot.
Esimerkki testien suorittamisesta olisi suorittaa seuraava komento työkaluhakemistosta:
./run_tests.sh -c-asetukset / case_studies / vanilla_leaks.py
Laite- ja verkkoasetukset
Sarja on suunniteltu siten, että se voi suorittaa testejä mielivaltaisissa laitteiden ja verkkojen kokoonpanoissa. Tiesimme alusta alkaen, että jotkut VPN-käyttäytymisen näkökohdat vaativat useamman kuin yhden laitteen testaamiseksi, joten suunnittelimme testiohjelman mahdollistamaan tämä alusta alkaen.
Laitetta, josta testit suoritetaan, kutsutaan laitteeksi testiorkesteri. Kaikille muille laitteille viitataan yksinkertaisesti testilaitteet.
Yksinkertaisin testityyppi suoritetaan yhdellä laitteella (yhden laitteen testit) ja vuotojen testi suoraan kyseisellä laitteella. Esimerkiksi, voidaan suorittaa laaja luokka Windows-vuotokokeita suoraan Windows-laitteella. Tässä tapauksessa testiorkesteri on oikeasti myös testilaite. Monimutkaisemmat testit (usean laitteen testit) saattavat koskea VPN: ää käyttävää testilaitetta, reititintä ja paketin sieppauslaitetta.
automaatio
Testisarja on suunniteltu tukemaan täysin testien automatisointia. Testit vaativat kuitenkin aina jonkin verran manuaalista vuorovaikutusta. Aina kun manuaalinen vuorovaikutus vaaditaan, testipaketti kehottaa käyttäjää selvästi ja kertomaan mitä tehdä.
Yksi vaikeimmista testien osista automatisoida on VPN-sovellusten hallinta. Itse asiassa, monissa kokeissa tämä on ainoa palapeli, jota ei ole automatisoitu. Emme tällä hetkellä aio tarjota tukea VPN-sovellusten hallinnan automatisointiin arkistolle. Tällaisen tuen lisäämistä tukee kuitenkin sarjan arkkitehtuuri.
Huomaa, että sisäisesti olemme ottaneet käyttöön oman sovelluksemme täyden automatisoinnin jatkuvan integraatiotestauksen helpottamiseksi. Emme aio tarjota näitä automaatiotyökaluja saatavana osana avoimen lähdekoodin arkistoa.
Työkalujen asentaminen
Yksityiskohtaiset ohjeet testilaitteiden asentamisesta on annettu GitHub-repo-ohjeessa. Annamme tässä vain yleiskuvan siitä, mitä laitteiden asennuksen yhteydessä voidaan odottaa.
Testisarjaa tuetaan Linux-, macOS- ja Windows-laitteissa (ts. Python-ohjelmisto voidaan asentaa ja käyttää suoraan näissä laitteissa). Työkalut tukevat myös mobiililaitteita, mutta itse tuotepakettia ei koskaan käytetä suoraan näillä laitteilla.
Suosittelemme käyttämään virtuaalikoneita (VM) mahdollisimman paljon, etenkin yhden laitteen testeissä. Virtuaalikoneet tarjoavat useita etuja:
- Helppo luoda ja määrittää uusia verkkoliitäntöjä
- Voit pitää isäntäkoneesi poissa monista kolmansien osapuolien ohjelmistojen asennuksista, joita testit vaativat
- VM: stä lähtevän liikenteen kaappaaminen on yksinkertaisempaa kuin oikeasta, fyysisestä laitteesta lähtevän liikenteen kaappaaminen
- Helppo määrittää tilannekuvia ja palauttaa ne tarvittaessa
Vakavaa syvällistä testausta varten suosittelemme testien suorittamista myös oikealla fyysisellä laitteistolla, jotta voimme sulkea pois mahdolliset erot virtualisoidun ja oikean laitteiston välillä..
Huomaa, että useimpien testien suorittamiseen tarvitaan pääkäyttäjän (järjestelmänvalvojan) käyttöoikeudet, joten asioiden yksinkertaistamiseksi koko paketti toimii pääkäyttäjänä.
Lisätietoja vuodoskenaarioista, joihin työkalut testataan
Seuraavat tapaustutkimukset tarjoavat lisätietoja joistakin vuodoskenaarioista, joita nämä työkalut kokeilevat, selittäen, miten ne voivat vaikuttaa yksityisyyttäsi ja tietoturvaasi, sekä hahmotellaan, miten asianomaista työkalua käytetään:
- Tapaustutkimus 1: ”Vanilja” vuotaa
- Tapaustutkimus 2: WebRTC vuotaa
- Tapaustutkimus 3: Verkon siirtymävuodot
- Tapaustutkimus 4: Saavuttamaton VPN-palvelin vuotaa
- Tapaustutkimus 5: VPN-prosessin kaatumisvuodot
Osallistuminen työkaluihin
Olemme enemmän kuin mielellään saaneet apua työkaluihin, olipa kyse sitten virheenkorjauksista, parannusehdotuksista tai kokonaan uusista testitapauksista. Voit lähettää kommentteja GitHubin vetämispyyntöjen kautta.
Ota yhteyttä työkaluista
Voit ottaa meihin yhteyttä työkaluista osoitteessa [email protected]
Huomaa, että työkalut ovat tällä hetkellä alfa tila ja muuttuu todennäköisesti usein. Pyrimme kuitenkin varmistamaan, että työkalut ovat aina käyttökelpoisessa tilassa.
ExpressVPN-vuotojen testaustyökalut
ExpressVPN vuotojen testaustyökalut ovat laajennettavia Python-työkaluja, jotka on suunniteltu VPN-sovellusten sekä manuaaliseen että automatisoituun vuotojen testaukseen..
ExpressVPN: n Privacy Research Labin kehittämä työkalu rakennettiin alun perin kahteen tarkoitukseen:
Pian huomasimme, että nämä työkalut voivat olla hyödyllisiä laajemmalle VPN-teollisuudelle. Päätimme siis tehdä niistä täysin avoimen lähdekoodin MIT-lisenssillä.
Toivomme, että tekemällä niin autamme tarjoamaan yksityisemmän ja turvallisemman verkkokokemuksen kaikille VPN-käyttäjille:
Contents
Työkalujen käytön aloittaminen
Työkalut löytyvät GitHubista osoitteessa https://github.com/expressvpn/expressvpn_leak_testing.
Aloita noudattamalla README.md-tiedoston ohjeita. Vaikka tarjoamme yleiskuvan alla olevista työkaluista, GitHub-arkistoa on aina pidettävä yhtenäisenä totuuden lähteenä työkaluja koskevassa dokumentaatiossa.
Huomaa, että Privacy Research Lab -tapaustutkimukseen sisältyvien testausohjeiden noudattamiseksi joudut asentamaan vuototyökalut GitHubin ohjeiden mukaisesti. Oletetaan, että aina kun suoritat jotain tapaustutkimusta, työkalujen päähakemisto viittaa sijaintiin, johon olet kloonannut yllä olevan git-arkiston.
Yleiskatsaus työkaluista
Käytämme Pythonia
Työkalut on kirjoitettu pääasiassa Pythonilla, muutamalla apuvälineellä tarvittaessa myös muilla kielillä. Valitsimme Pythonin useista syistä:
Huomaa, että käytämme Python 3: ta, koska siitä on nopeasti tulossa tosiasiallinen standardi.
Se on kuin yksikkötestaus
Työkalut suunniteltiin toimimaan kuin yksikkötestausohjelma. Yhden komentosarjan avulla käynnistetään sarja, joka suorittaa sitten testisarjan. Jokainen testi tarkistaa tietyn tyyppisen vuodon tietyissä olosuhteissa, esimerkiksi tietyissä verkko-olosuhteissa, ja raportoi sitten joko läpäisyn, epäonnistumisen tai virheen.
Testi - tai testitapaus - vastaa suunnilleen yhtä Python-tiedostoa. Testisarja on suunniteltu tutuksi kehittäjille, jotka ovat tottuneet työskentelemään yksikkötestauspakettien kanssa, joten jokainen testi on noudattanut tuttua asennusmallin (), testin () ja repimisen () mallia.
Testitapaukset on suunniteltu olemaan mahdollisimman yleisiä. Testitapauksia voidaan suorittaa erilaisilla VPN-kokoonpanoilla, erilaisilla verkkokonfiguraatioilla ja niin edelleen. Kun ne suoritetaan, niille annetaan kokoonpano, joka määrittelee, kuinka ne suoritetaan kyseiselle testikierrokselle. Kokoonpanotiedosto siirretään testijoukkoon, joka sisältää kaikki suoritettavat testit ja niiden kokoonpanot.
Esimerkki testien suorittamisesta olisi suorittaa seuraava komento työkaluhakemistosta:
./run_tests.sh -c-asetukset / case_studies / vanilla_leaks.py
Laite- ja verkkoasetukset
Sarja on suunniteltu siten, että se voi suorittaa testejä mielivaltaisissa laitteiden ja verkkojen kokoonpanoissa. Tiesimme alusta alkaen, että jotkut VPN-käyttäytymisen näkökohdat vaativat useamman kuin yhden laitteen testaamiseksi, joten suunnittelimme testiohjelman mahdollistamaan tämä alusta alkaen.
Laitetta, josta testit suoritetaan, kutsutaan laitteeksi testiorkesteri. Kaikille muille laitteille viitataan yksinkertaisesti testilaitteet.
Yksinkertaisin testityyppi suoritetaan yhdellä laitteella (yhden laitteen testit) ja vuotojen testi suoraan kyseisellä laitteella. Esimerkiksi, voidaan suorittaa laaja luokka Windows-vuotokokeita suoraan Windows-laitteella. Tässä tapauksessa testiorkesteri on oikeasti myös testilaite. Monimutkaisemmat testit (usean laitteen testit) saattavat koskea VPN: ää käyttävää testilaitetta, reititintä ja paketin sieppauslaitetta.
automaatio
Testisarja on suunniteltu tukemaan täysin testien automatisointia. Testit vaativat kuitenkin aina jonkin verran manuaalista vuorovaikutusta. Aina kun manuaalinen vuorovaikutus vaaditaan, testipaketti kehottaa käyttäjää selvästi ja kertomaan mitä tehdä.
Yksi vaikeimmista testien osista automatisoida on VPN-sovellusten hallinta. Itse asiassa, monissa kokeissa tämä on ainoa palapeli, jota ei ole automatisoitu. Emme tällä hetkellä aio tarjota tukea VPN-sovellusten hallinnan automatisointiin arkistolle. Tällaisen tuen lisäämistä tukee kuitenkin sarjan arkkitehtuuri.
Huomaa, että sisäisesti olemme ottaneet käyttöön oman sovelluksemme täyden automatisoinnin jatkuvan integraatiotestauksen helpottamiseksi. Emme aio tarjota näitä automaatiotyökaluja saatavana osana avoimen lähdekoodin arkistoa.
Työkalujen asentaminen
Yksityiskohtaiset ohjeet testilaitteiden asentamisesta on annettu GitHub-repo-ohjeessa. Annamme tässä vain yleiskuvan siitä, mitä laitteiden asennuksen yhteydessä voidaan odottaa.
Testisarjaa tuetaan Linux-, macOS- ja Windows-laitteissa (ts. Python-ohjelmisto voidaan asentaa ja käyttää suoraan näissä laitteissa). Työkalut tukevat myös mobiililaitteita, mutta itse tuotepakettia ei koskaan käytetä suoraan näillä laitteilla.
Suosittelemme käyttämään virtuaalikoneita (VM) mahdollisimman paljon, etenkin yhden laitteen testeissä. Virtuaalikoneet tarjoavat useita etuja:
Vakavaa syvällistä testausta varten suosittelemme testien suorittamista myös oikealla fyysisellä laitteistolla, jotta voimme sulkea pois mahdolliset erot virtualisoidun ja oikean laitteiston välillä..
Huomaa, että useimpien testien suorittamiseen tarvitaan pääkäyttäjän (järjestelmänvalvojan) käyttöoikeudet, joten asioiden yksinkertaistamiseksi koko paketti toimii pääkäyttäjänä.
Lisätietoja vuodoskenaarioista, joihin työkalut testataan
Seuraavat tapaustutkimukset tarjoavat lisätietoja joistakin vuodoskenaarioista, joita nämä työkalut kokeilevat, selittäen, miten ne voivat vaikuttaa yksityisyyttäsi ja tietoturvaasi, sekä hahmotellaan, miten asianomaista työkalua käytetään:
Osallistuminen työkaluihin
Olemme enemmän kuin mielellään saaneet apua työkaluihin, olipa kyse sitten virheenkorjauksista, parannusehdotuksista tai kokonaan uusista testitapauksista. Voit lähettää kommentteja GitHubin vetämispyyntöjen kautta.
Ota yhteyttä työkaluista
Voit ottaa meihin yhteyttä työkaluista osoitteessa [email protected]
Huomaa, että työkalut ovat tällä hetkellä alfa tila ja muuttuu todennäköisesti usein. Pyrimme kuitenkin varmistamaan, että työkalut ovat aina käyttökelpoisessa tilassa.