Jak czytać gniazdo VPN bez zaufania do nazwy domeny
Nazwa hosta obok procesu to domysł o adresie. Przeczytaj numeryczne punkty końcowe, stan połączenia i PID, który go posiada, zanim obwinisz klienta VPN.
Twoja przeglądarka punktów końcowych wymienia proces VPN obok domeny firmy reklamowej, a to zestawienie zaczyna historię, której dane nie mogą poprzeć. Nazwa to wyszukiwanie odwrotne namalowane na numerycznym punkcie końcowym i zmienia się za każdym razem, gdy zmienia się wyszukiwanie. Kolumny, które przetrwają badanie, to adresy, stan połączenia i PID posiadający gniazdo.
Nic w tabeli gniazd nie opisuje, co wędrowało wewnątrz połączenia. Wszystko, co niesie nazwę hosta, zostało już za ciebie zinterpretowane.
Rozwiązana nazwa to tłumaczenie, a nie pole
Przeglądarka prosi resolver o zamianę adresu w nazwę, tak jak działa zapytanie PTR w DNS. Odpowiedź może przyjść z lokalnego cache'u, wpisu w pliku hosts, ogłoszenia odkrywania sąsiadów albo od dostawcy, który w zeszłym tygodniu oddał adres komuś innemu, a narzędzie nie ma sposobu rozróżnienia tych źródeł. Dwie maszyny obserwujące jedno połączenie mogą wydrukować różne nazwy dla tego samego adresu peera, co trudno wyjaśnić, jeśli wierzysz, że nazwa przyszła z przewodu. Traktuj etykietę jako wygodę dla ludzkiego oka, a nie jako twierdzenie o tym, kto odebrał bajty.
Dokumentacja TCPView opisuje kolumny punktu końcowego, stanu i procesu oraz dokumentuje wyłączanie rozwiązanych nazw, co warto zrobić, zanim wczytasz jakiekolwiek znaczenie w domenę. Wyłączenie rozwiązywania czyni niepewność widoczną, zamiast ją tworzyć: nadal masz adres, a praca nad decyzją, co on znaczy, po prostu wróciła do ciebie.
Czytaj kolumny numeryczne po kolei
Pracuj od lewej do prawej i zatrzymaj się na pierwszej kolumnie, która odpowiada na twoje pytanie. Lokalny punkt końcowy pokazuje, do czego proces się przywiązał, zdalny punkt końcowy pokazuje, czy peer w ogóle istnieje, stan pokazuje, czy asocjacja żyje, a PID łączy wiersz z plikiem wykonywalnym.
Trzy poniższe obserwacje to kształty ilustracyjne, a nie wynik przechwycony na jakiejkolwiek maszynie tutaj. Są pogrupowane według tego, co każda z nich może poprzeć, bo to jest pytanie, które ludzie naprawdę zadają wierszowi gniazda:
| 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 |
Otwarty nasłuch, do którego inne maszyny nie mogą dotrzeć, związany z adresem pętli zwrotnej, to sposób, w jaki wiele klientów VPN wystawia własny kanał sterujący. Powiązanie z symbolem wieloznacznym oznacza, że proces przyjmował połączenia na każdym interfejsie, a czy to jest niebezpieczne, zależy od zapory hosta, a nie od samego wiersza. Tylko asocjacja, która istnieje i niesie liczniki, przypomina zarzut, który ludzie zwykle chcą postawić, i nawet ten wiersz zatrzymuje się przed ładunkiem.
Sprawdź własność, zanim wskażesz winnego
Tożsamość procesu to miejsce, w którym większość zarzutów naprawdę zawodzi. PID-y są ponownie używane, aktualizatory i pomocniki przeglądarki tworzą krótkotrwałe dzieci, a klient VPN może przekazać swój ruch uprzywilejowanej usłudze systemowej. Porównaj ścieżkę pliku wykonywalnego i proces nadrzędny zamiast nazwy wyświetlanej, bo nazwę wyświetlaną wybiera ten, kto zbudował plik binarny.
tcpvcon -n -a
Get-Process -Id 4188 | Select-Object Id, ProcessName, Path
Ten sam odczyt istnieje w Linuxie, gdzie statystyki gniazd mogą nieść informacje o procesie, gdy masz wystarczające uprawnienia, by widzieć gniazda innych użytkowników. Zapytanie o nawiązane gniazda związane z portem 443 lub z niego wychodzące zawęża wynik do wierszy, które mają znaczenie:
ss -tunp state established '( sport = :443 or dport = :443 )'
Zapisz znacznik czasu razem z wierszem. Sam PID to ruchome odniesienie, bo zanim otworzysz menedżer procesów, gniazdo może należeć do następcy, a ścieżka, którą sprawdzasz, może nie być tą, która trzymała połączenie. Zanotuj parę punktów końcowych, stan i PID jako jedną obserwację, a ustalenie przetrwa restart lub drugą opinię.
Ile jeszcze warta jest nazwa
Nazwa hosta nie jest bezwartościowym dowodem. Zapisuje, że ktoś w pewnym momencie powiązał ten adres z tą nazwą. To powiązanie zasługuje na uwagę, gdy adres należy do dostawcy obsługującego tysiące niepowiązanych klientów. To słabsze twierdzenie niż cel, i jest to jedyne twierdzenie, które etykieta może poprzeć.
Gdy nazwa wygląda źle, porównaj adres z opublikowanymi zakresami dostawcy, a potem zapytaj, co proces robił w tej chwili: sprawdzanie aktualizacji, wywołanie licencji, wysyłka telemetrii czy uścisk dłoni tunelu. Te działania zostawiają różne kształty połączenia, a dopasowanie kształtu do chwili mówi więcej niż dopasowanie nazwy do firmy, której nie ufasz.
Zachowaj wiersz, zanim zakończysz współdzielony pomocnik lub coś odinstalujesz. Obronny wniosek obejmuje jeden zaobserwowany punkt końcowy, jego stan i właściciela; werdykt na skalę marki zbudowany na rozwiązanej etykiecie nie jest dowodem, a pocieszenie, że znany host pobierania musi być nieszkodliwy, też nie jest dowodem.