Zašto saobraćaj bežičnog otklanjanja grešaka nije dokaz curenja VPN-a
Uparena ADB sesija preko Wi-Fi-ja dokazuje odnos za otklanjanje grešaka, a ne izlaznu internet putanju. Evo šta to zapažanje zapravo pokriva.
Uključili ste bežično otklanjanje grešaka, povezali laptop i sesija je nastavila raditi dok je VPN bio aktivan. To izgleda kao da je nešto prošlo pored tunela. Gotovo sigurno nije. Sesija za otklanjanje grešaka i zahtjev aplikacije prema web stranici različiti su mrežni odnosi i samo jedan od njih treba prijeći tunel.
Na ovo pogrešno čitanje naišao sam dvaput: jednom kad su telefon i laptop bili na istoj Wi-Fi mreži, i jednom nakon ponovnog pokretanja kad je uparivanje ostalo. U oba slučaja VPN je radio tačno ono za šta je bio konfigurisan.
Imenujte zapažanje prije nego imenujete grešku
Prije tvrdnje o curenju mogu se dogoditi tri događaja i oni nisu zamjenjivi. Alat može otkriti uslugu, uređaj može odobriti radnu stanicu ili ovlaštena sesija može zaista prenositi komande i bajtove. Zapišite koji ste vidjeli, jer svaki dokazuje manje nego što ljudi pretpostavljaju.
Otkriće je obično mDNS ili skeniranje portova. Uparivanje je odluka o registraciji donesena na telefonu, potvrđena kodom koji korisnik utipka. Živa sesija znači da je saobraćaj prešao između dvije uparene krajnje tačke. Ništa od toga ne opisuje kuda ide HTTPS zahtjev aplikacije.
Držite odredište, interfejs, porodicu adresa, vremensku oznaku i korisnički profil vezane za događaj. Bez tih detalja zapažanje se ne može uporediti s predviđenom politikom lokalne mreže ni s verzijom VPN-a koja je tada radila.
Zašto se dva puta nikada ne sreću
Bežično otklanjanje grešaka je ulazna veza prema uređaju. adbd sluša na portu vezanom za Wi-Fi interfejs, a radna stanica se povezuje na njega nakon uparivanja. Smjer je važan: vaš laptop poseže u telefon, a ne obrnuto. To je suprotno od izlaznog curenja.
Internet saobraćaj aplikacije izlazi kroz tunelski interfejs koji instalira VpnService, uparen prema UID-u i pravilima usmjeravanja. adbd je sistemski demon koji radi kao korisnik shell, a ne aplikacija unutar tog skupa usmjeravanja. Ostaje na osnovnoj Wi-Fi vezi čak i kad je svaka aplikacija prikvačena za tunel.
Režim zaključavanja nameće tunel za obuhvaćene aplikacije. On ne pretvara utičnicu koja sluša u izlaznu putanju.
Zato radna ADB sesija i radni prekidač za blokiranje postoje zajedno bez protivrječnosti. Da biste dokazali curenje, morate promatrati smjer koji bi trebalo blokirati.
Kako izlazni test zaista izgleda
Testirajte obuhvaćenu aplikaciju, a ne kanal za otklanjanje grešaka. Namjerno postavite uslov kvara, zatim uputite jedan novi zahtjev i zabilježite šta se dogodilo.
- Potvrdite da je VPN jedini put: uključite stalno uključen VPN uz blokiranje veza bez VPN-a.
- Zaustavite VPN na podržan način i potvrdite da aplikacija javlja da nema povezanosti.
- Uputite jedan bezopasan zahtjev iz te aplikacije i zabilježite da li ne uspijeva ili uspijeva.
- Ponovite s uključenim, pa isključenim bežičnim otklanjanjem grešaka, da izolujete varijablu.
Blokiran zahtjev pod tim uslovima jest dokaz. Uspješna ADB sesija nije, kao ni jedan ping iz terminalne aplikacije.
Ako zahtjev ipak uspije dok je zaključavanje uključeno, zabilježite UID aplikacije i njeno VPN odobrenje, aktivnu mrežu i verziju klijenta. Ta kombinacija je stvarno otkriće.
Uparivanje nadživljava sesiju
Uparivanje je trajno stanje, a ne rukovanje koje možete zaboraviti nakon testa s kablom. Androidova dokumentacija o otklanjanju grešaka opisuje bežični tok rada i napominje da odnos traje dok se izričito ne zaboravi ili dok se ovlaštenja ne opozovu.
Provjerite šta je još ovlašteno prije nego okrivite tunel. Otvorite Bežično otklanjanje grešaka, pogledajte Uparene uređaje i zaboravite sve što više ne prepoznajete. Pokrenite adb devices s radne stanice da vidite koji unosi još odgovaraju, i adb disconnect da odbacite zastario. Isključivanje bežičnog otklanjanja grešaka potpuno zatvara port koji sluša.
Na dijeljenoj ili nepouzdanoj mreži ostavite ga isključeno. Trajno ovlaštenje na mreži koju ne kontrolišete veći je problem od hipotetičkog zaobilaženja TUN-a.
Prije nego prijavite tu grešku
Korisna prijava imenuje tačnu granicu koja je pala. Uključite model uređaja i izdanje Androida, VPN klijent i verziju, je li zaključavanje bilo uključeno, paket aplikacije i UID te mrežu na kojoj je telefon bio. Dodajte naredbu ili zahtjev koji je proizveo zapažanje i vrijeme kada se dogodilo. Bez toga niko ne može reproducirati granicu za koju tvrdite da je slomljena.
Ne isključujte provedbu i ne izlažite otklanjanje grešaka na nepouzdanoj mreži da test izgleda dramatičnije. To mijenja sistem koji mjerite i ostavlja dokaze koje niko ne može ponoviti.
Ako je vaš jedini dokaz to da se ADB povezao dok je VPN bio aktivan, izmjerili ste pogrešan put. Prvo ponovite test na nivou aplikacije; odgovor obično stiže tamo.