Przechwytywanie VPN: pakiety wewnętrzne na tun0, otoczka na eth0
Interfejs tunelu pokazuje pakiet jawnym tekstem, adapter fizyczny pokazuje zaszyfrowaną otoczkę. Przeczytaj oba, zanim nazwiesz przechwytywanie wyciekiem metadanych.
Przechwytywanie na hoście VPN nie zapisuje jednej jedynej rzeczy. Jądro udostępnia pakiet dwa razy: opakowany, na fizycznym adapterze, i rozpakowany, na urządzeniu tunelu. Wybór interfejsu to wybór, którą z tych historii czytasz. Większość sporów o to, co dowodzi przechwytywanie, to w rzeczywistości spory o to, która historia została zebrana.
Enkapsulacja tworzy dwa widoki
Tunel bierze pakiet wyprodukowany przez aplikację i umieszcza go w nowym, którego miejscem docelowym jest serwer VPN. Wewnętrzna forma pojawia się na tun0, wg0 lub dowolnym urządzeniu utworzonym przez klienta. Zewnętrzna forma pojawia się na adapterze, który przenosi ją do sieci. Obie formy są legalne; odpowiadają na różne pytania. Zbieraj każdą osobno, ponieważ obie mają różne nagłówki i różnych czytelników.
sudo tcpdump -i tun0 -n -s 0
sudo tcpdump -i eth0 -n host 198.51.100.20 and udp port 51820
Pseudointerfejs any jest złym wyborem do tego porównania. Przekazywane pakiety można zapisać dwa razy, a pakiet wygenerowany lokalnie pojawia się w obu formach, co zawyża liczniki. Jeśli jakaś liczba wydaje się niemożliwa, sprawdź interfejs, zanim obwinisz tunel.
Wewnątrz tunelu pakiet jest zwyczajny
Na urządzeniu tunelu to, co widzisz, jest tym, o co aplikacja poprosiła jądro. Adresy docelowe, porty, nazwy DNS, nazwy serwerów TLS, rozmiary i czas są tam wszystkie. Ładunek TLS pozostaje zaszyfrowany przez sesję samej aplikacji, więc przechwytywanie nie ujawnia zawartości strony. Zapytanie DNS jawnym tekstem jest tu widoczne, mimo że jego nośnik jest zaszyfrowany, bo nigdy nie było chronione.
Zaszyfrowany DNS usuwa to jedno widoczne pole. Nie ukrywa adresu docelowego, liczby bajtów ani rytmu, które są właściwościami przepływu, a nie zapytania.
Na zewnątrz tylko otoczka i jej kształt
Fizyczny adapter pokazuje twój adres, adres serwera, port, rozmiary pakietów i czas. Miejsca docelowe przenoszone w środku są nieobecne, choć ich kształt wciąż może wspierać wnioskowanie. Rozmiary i kadencja mogą sugerować strumień wideo, duży transfer lub sesję czatu, nie nazywając żadnego z nich. Pobliski obserwator widzi w przybliżeniu ten sam obraz, co wyjaśnia, jak tunel może ukrywać witryny, jednocześnie reklamując własną obecność.
To twierdzenie zależy od routingu. Węższa trasa, domyślny IPv6, który nie wchodzi do tunelu, albo proces przypisany do fizycznego interfejsu umieszczą ruch poza otoczką. Przeczytaj rzeczywistą trasę, zanim wyciągniesz wnioski z przechwytywania.
Adres peera i higiena przechwytywania
OpenVPN w trybie TCP utrzymuje ustanowiony socket, więc tablica socketów może wskazać peera. OpenVPN w trybie UDP często pozostawia socket niepołączony, a ss może pokazać tylko stronę lokalną. Przeczytaj zamiast tego remote profilu, szczegółowy dziennik klienta lub trasę do punktu końcowego. WireGuard bezpośrednio raportuje swój punkt końcowy i ostatni uścisk dłoni.
wg show
ss -tunp | grep 51820
Plik przechwytywania żyje dłużej niż sesja, która go utworzyła. Można go skopiować i może być czytelny dla każdego z lokalnym dostępem. Zachowaj tylko to, czego potrzebuje dochodzenie, ogranicz uprawnienia i usuń go, gdy praca zostanie ukończona.
Udostępniane przechwytywanie powinno wskazywać, który interfejs je utworzył i kiedy. Bez tej notatki następny czytelnik musi zgadywać, na którą warstwę patrzy.