Przegląd techniczny: Zapobieganie wyciekom DNS podczas przełączania interfejsów sieciowych

Zapobieganie wyciekom DNS podczas przełączania interfejsów sieciowych


Aby skutecznie oferować prywatność i bezpieczeństwo użytkownika, aplikacja VPN musi zapewnić, aby żądania DNS użytkownika pozostały prywatne przez cały czas połączenia z VPN. Aplikacje zwykle robią to, gwarantując, że wszystkie żądania DNS są wysyłane zaszyfrowane przez tunel VPN i obsługiwane przez serwery DNS dostawcy VPN.

Aby zachować tę gwarancję, ważne jest, aby zrozumieć, w jakich scenariuszach mogą wystąpić wycieki DNS. Biorąc pod uwagę tylko proste scenariusze, takie jak stabilne połączenia sieciowe, nie jest wystarczające. W prawdziwym świecie sieci są często niestabilne lub ich konfiguracje mogą ulec zmianie, i generalnie dzieje się tak, gdy dochodzi do wycieków. Badanie złożonych scenariuszy jest zatem kluczową częścią procesu projektowania szczelnej aplikacji VPN.

W ExpressVPN poświęcamy dużo czasu i wysiłku na badanie złożonych scenariuszy, w których może wystąpić wyciek Twojej aplikacji VPN. W dalszej części tego artykułu omawiamy jeden konkretny scenariusz, który odkryliśmy, w którym mogą wystąpić wycieki DNS. Wyjaśnimy, w jaki sposób i dlaczego występuje wyciek DNS, i damy ci możliwość samodzielnego przetestowania wycieków.

Scenariusz: DNS przecieka po przełączeniu interfejsów sieciowych

Przełączanie między interfejsami sieciowymi jest częstym scenariuszem, w którym możliwe są wycieki DNS. Rozważ następujący przykład:

  • Jesteś w domu z laptopem i masz połączenie z Wi-Fi
  • Łączysz się z aplikacją VPN
  • Jakiś czas później podłączasz kabel Ethernet

Większość aplikacji VPN nie wykryje tej zmiany konfiguracji sieci. Będą nadal informować, że twoja prywatność i bezpieczeństwo są nadal w 100% chronione, jednak rzeczywistość może być zupełnie inna.

Pod osłonami twoje żądania DNS mogą stale wyciekać do twojego dostawcy usług internetowych lub innych stron trzecich i nigdy nie zdajesz sobie z tego sprawy.

Awaria techniczna

Kiedy to może się naprawdę wydarzyć?

Weźmy przykład komputera Mac (zauważ jednak, że ten wyciek występuje również w przypadku urządzeń z systemem Windows). Załóżmy, że masz dostępne połączenie Wi-Fi i Ethernet. Otwórz aplikację „Preferencje systemowe” i przejdź do „Sieć”. Zobaczysz coś takiego:

Wycieki z Wi-Fi DNS

Oznacza to, że masz połączenie z Wi-Fi i Ethernet, ale Ethernet jest preferowanym połączeniem.

Załóżmy ponadto, że twój DNS ma pozwolenie na „lokalny” adres IP. Możesz to sprawdzić, klikając „Zaawansowane”, gdy połączenie Ethernet jest podświetlone, a następnie przechodząc do „DNS”. ​​Powinieneś zobaczyć coś takiego:

Wyświetl serwer DNS

Jeśli adresy IP w „Serwerach DNS” mają postać 10.x.x.x, 192.168.x.x lub między 172.16.x.x a 172.31.x.x, to są to „lokalne” adresy IP. To najprawdopodobniej oznacza, że ​​router działa jako serwer DNS, a zatem bez VPN Twój dostawca usług internetowych może zobaczyć wszystkie twoje żądania DNS. Jeśli masz taką konfigurację, możesz być podatny na wyciek DNS.

Pamiętaj, że nawet jeśli twoje serwery DNS nie mają lokalnych adresów IP, prawdopodobnie nadal będziesz podatny na wycieki DNS. W takim przypadku żądania DNS mogą przechodzić przez tunel VPN. Nie byłyby one jednak kierowane do serwera DNS VPN, ale do innego serwera DNS, takiego jak dostawca usług internetowych lub dostawca DNS strony trzeciej.

Jak możesz sprawdzić, czy wyciekłeś??

Najprostszą metodą jest użycie narzędzia do wycieków DNS ExpressVPN i wykonanie następujących czynności:

  • Upewnij się, że kabel Ethernet jest odłączony
  • Upewnij się, że masz połączenie z siecią Wi-Fi
  • Połącz się ze swoją aplikacją VPN
  • Użyj testera szczelności DNS ExpressVPN lub testera zewnętrznego
  • Na liście powinien pojawić się tylko jeden serwer DNS
  • Jeśli używasz ExpressVPN, nasz tester poinformuje Cię również, że jest to nasz uznany serwer
  • Podłącz kabel Ethernet
  • Odśwież stronę wycieku DNS. Jeśli przeciekasz DNS, zobaczysz inną listę serwerów DNS

Możesz także sprawdzić, czy nie ma wycieków DNS, nie polegając na naszej stronie, używając tcpdump w następujący sposób.

Najpierw znajdź interfejs sieciowy odpowiadający Twojemu połączeniu Ethernet:

  • Otwórz okno terminala
  • Wpisz networksetup -listallhardwareports
  • Poszukaj linii takiej jak „Hardware Port: Thunderbolt Ethernet”, np.
  • Port sprzętowy: Thunderbolt Ethernet

  • Interfejs sieciowy dla twojego połączenia Ethernet jest pokazany obok „Device”. W tym przykładzie jest to en4

Teraz uruchommy test:

  • Upewnij się, że kabel Ethernet jest odłączony
  • Połącz się z aplikacją VPN przez Wi-Fi
  • Podłącz kabel Ethernet
  • Otwórz okno terminala
  • Wpisz sudo tcpdump -i en4 port 53 i wprowadź hasło
  • sudo daje tcpdump niezbędne uprawnienia do przechwytywania ruchu sieciowego
  • -i en4 mówi tcpdump, aby nasłuchiwał na interfejsie Ethernet
  • Zamień en4 na interfejs, który odkryłeś powyżej
  • port 53 jest portem używanym do ruchu DNS, dlatego pokazuje tylko żądania DNS
  • Jeśli widzisz ruch, oznacza to, że masz przecieki DNS, np.
  • DNS Wyciek ruchu

    Co tu się właściwie dzieje?

    Główną przyczyną tego wycieku jest sposób, w jaki system operacyjny określa, których serwerów DNS użyć. Serwery DNS używane przez system są zawsze serwerami powiązanymi z aktywną usługą sieciową o najwyższym priorytecie – odpowiada to zielonej usłudze na górze listy na powyższym obrazku.

    Po wyłączeniu sieci Ethernet serwery, które będą odbierać zapytania DNS, są serwerami powiązanymi z usługą Wi-Fi, ponieważ jest to obecnie aktywna usługa sieciowa o najwyższym priorytecie. To samo dotyczy połączenia z VPN. Aby poprawnie wysyłać ruch DNS do serwera DNS VPN, większość dostawców VPN zmienia serwery DNS interfejsu o najwyższym priorytecie na własny serwer DNS. W tym scenariuszu oznacza to, że zmieniają serwery DNS powiązane z usługą sieci Wi-Fi.

    Po podłączeniu kabla Ethernet usługa sieci Ethernet przeskakuje z powrotem na górę aktywnej listy, ponieważ jest to obecnie usługa sieciowa o najwyższym priorytecie. System operacyjny spróbuje następnie użyć serwerów DNS powiązanych z tą usługą do wyszukiwania DNS.

    Wiele aplikacji VPN nie zauważy problemu, ponieważ Twoja sieć Wi-Fi nadal działa i nigdy nie została przerwana. Jednak mimo że mogą przesyłać dane zaszyfrowane przez sieć Wi-Fi, żądania DNS będą wysyłane niezaszyfrowane do Twojego dostawcy usług internetowych.

    Jeśli twoja aplikacja VPN nie ochroni się przed tym scenariuszem, oznacza to, że twoje żądania DNS wyciekną z tunelu do twojego dostawcy usług internetowych.

    Sprawdzanie serwerów nazw DNS w terminalu

    Na marginesie, możesz samodzielnie zbadać zachowanie serwerów DNS za pomocą polecenia scutil. Aby zobaczyć, jakich serwerów DNS używa system, po prostu:

    • Otwórz okno terminala
    • Wpisz scutil –dns
    • W górnej części wyjścia powinieneś zobaczyć „resolver # 1” z listą „nameserver”, np.
    • serwery nazw resolvera nr 1

    • Adresy IP obok każdego „serwera nazw” wskazują, czego system będzie używał do żądań DNS

    Chcesz dowiedzieć się więcej? Masz pytanie lub komentarz?

    Nasz zespół inżynierów chętnie usłyszy od ciebie – po prostu napisz do nas na adres [email protected]

    Kim Martin Administrator
    Sorry! The Author has not filled his profile.
    follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map