Cum citim un socket VPN fără să avem încredere într-un nume de domeniu
Un nume de gazdă lângă un proces este o presupunere despre o adresă. Citiți punctele terminale numerice, starea conexiunii și PID-ul care o deține înainte de a da vina pe un client VPN.
Vizualizatorul de puncte terminale listează un proces VPN lângă domeniul unei firme de publicitate, iar această asociere începe o poveste pe care datele nu o pot susține. Numele este o căutare inversă pictată peste un punct terminal numeric și se schimbă de fiecare dată când se schimbă căutarea. Coloanele care rezistă verificării sunt adresele, starea conexiunii și PID-ul care deține socketul.
Nimic dintr-un tabel de socketuri nu descrie ce a trecut în interiorul unei conexiuni. Orice poartă un nume de gazdă a fost deja interpretat pentru dumneavoastră.
Un nume rezolvat este o traducere, nu un câmp
Vizualizatorul cere rezolvitorului să transforme o adresă într-un nume, la fel cum funcționează o interogare PTR în DNS. Răspunsul poate veni dintr-un cache local, dintr-o intrare din fișierul hosts, dintr-un anunț de descoperire a vecinilor sau de la un furnizor care a dat adresa altcuiva săptămâna trecută, iar instrumentul nu are nicio modalitate de a distinge aceste surse. Două mașini care observă o conexiune pot tipări nume diferite pentru aceeași adresă de partener, ceea ce este greu de explicat dacă credeți că numele a venit de pe fir. Tratați eticheta ca pe o comoditate pentru ochiul uman, nu ca pe o afirmație despre cine a primit octeții.
Documentația TCPView descrie coloanele de punct terminal, stare și proces și documentează dezactivarea numelor rezolvate, ceea ce merită făcut înainte de a citi vreun sens într-un domeniu. Dezactivarea rezolvării face incertitudinea vizibilă în loc să o creeze: aveți în continuare o adresă, iar munca de a decide ce înseamnă ea s-a întors pur și simplu la dumneavoastră.
Citiți coloanele numerice în ordine
Lucrați de la stânga la dreapta și opriți-vă la prima coloană care răspunde la întrebarea dumneavoastră. Punctul terminal local arată la ce s-a legat procesul, punctul terminal îndepărtat arată dacă există vreun partener, starea arată dacă asocierea este vie, iar PID-ul leagă rândul de un fișier executabil.
Cele trei observații de mai jos sunt forme ilustrative, nu ieșire capturată de pe vreo mașină de aici. Sunt grupate după ce poate susține fiecare, pentru că aceasta este întrebarea pe care oamenii o pun de fapt unui rând de socket:
| What the row shows | What it rules out | What it cannot show |
|---|---|---|
| An open listener with no peer address | Any remote party; nothing beyond this host has reached the port | Whether the local service is well configured, or who is allowed to use it |
| An association in the open state | That the entry is cosmetic; a peer address exists and was accepted | Which application data crossed it, or whether that peer is trustworthy |
| An association whose counters move | That the conversation is idle or already stale | What was requested, what came back, or who started it |
Un ascultător deschis la care alte mașini nu pot ajunge, legat de adresa de buclă locală, este modul în care mulți clienți VPN își expun propriul canal de control. O legare cu caracter universal înseamnă că procesul a acceptat conexiuni pe fiecare interfață, iar dacă acest lucru este periculos depinde de paravanul gazdei, nu de rândul în sine. Doar o asociere care există și poartă contoare seamănă cu acuzația pe care oamenii vor de obicei să o facă, iar chiar acel rând se oprește înainte de încărcătura utilă.
Verificați proprietatea înainte de a numi un vinovat
Identitatea procesului este locul unde majoritatea acuzațiilor eșuează de fapt. PID-urile sunt reutilizate, actualizatoarele și ajutoarele browserului generează copii de scurtă durată, iar un client VPN poate preda traficul său unui serviciu de sistem privilegiat. Comparați calea fișierului executabil și procesul părinte în locul numelui afișat, pentru că numele afișat este ales de cel care a construit binarul.
tcpvcon -n -a
Get-Process -Id 4188 | Select-Object Id, ProcessName, Path
Aceeași citire există în Linux, unde statisticile de socketuri pot purta informații despre proces atunci când aveți suficiente privilegii pentru a vedea socketurile altor utilizatori. Cererea socketurilor stabilite legate de portul 443 sau de la acesta îngustează ieșirea la rândurile care contează:
ss -tunp state established '( sport = :443 or dport = :443 )'
Înregistrați marca de timp împreună cu rândul. Un PID singur este o referință mobilă, pentru că până când deschideți un manager de procese socketul poate aparține deja unui succesor, iar calea pe care o inspectați poate să nu fie cea care ținea conexiunea. Notați perechea de puncte terminale, starea și PID-ul ca o singură observație, iar constatarea supraviețuiește unei reporniri sau unei a doua opinii.
Cât mai valorează un nume
Un nume de gazdă nu este o dovadă fără valoare. El înregistrează că cineva a asociat acea adresă cu acel nume la un moment dat. Acea asociere merită atenție atunci când adresa aparține unui furnizor care deservește mii de clienți fără legătură. Este o afirmație mai slabă decât o destinație și este singura afirmație pe care eticheta o poate susține.
Când un nume pare greșit, comparați adresa cu intervalele publicate ale furnizorului și apoi întrebați ce făcea procesul în acel moment: o verificare de actualizare, un apel de licență, o trimitere de telemetrie sau o strângere de mână a tunelului. Acele activități lasă forme de conexiune diferite, iar potrivirea formei cu momentul este mai informativă decât potrivirea numelui cu o companie în care nu aveți încredere.
Păstrați rândul înainte de a opri un ajutor partajat sau de a dezinstala ceva. O concluzie defendabilă acoperă un punct terminal observat, starea și proprietarul său; un verdict la nivel de brand construit pe o etichetă rezolvată nu este o dovadă, iar liniștea că o gazdă de descărcare cunoscută trebuie să fie inofensivă nu este nici ea o dovadă.