Ataki Man-in-the-Middle: Jak działają i jak się przed nimi chronić
Atak typu „człowiek w środku” (man-in-the-middle, MITM) to sytuacja, w której nieuprawniony podmiot wkracza w istniejącą komunikację sieciową lub proces przesyłania danych. Taki atakujący umiejscawia się w punkcie pośrednim trasy przesyłu informacji, udając jednocześnie jednego z legalnych uczestników rozmowy.
W praktyce, atakujący ustawiają się pomiędzy nadchodzącymi zapytaniami a odsyłanymi odpowiedziami. Użytkownik nadal jest przekonany, że komunikuje się bezpośrednio z docelowym serwerem lub aplikacją internetową, taką jak portal społecznościowy, bankowość elektroniczna itp. Jednak w rzeczywistości, zapytania przesyłane są do pośrednika, który dopiero w imieniu użytkownika nawiązuje kontakt z właściwym serwisem docelowym.
Zdjęcie dzięki uprzejmości Impervy
W konsekwencji, atakujący ma wgląd we wszystkie przesyłane dane – zarówno żądania, jak i odpowiedzi pochodzące z serwera. Oprócz samego podglądu, osoba ta ma możliwość modyfikacji treści zapytań i odpowiedzi, przejęcia danych uwierzytelniających, przekierowania użytkownika na kontrolowany przez siebie serwer lub dopuszczenia się innych rodzajów cyberprzestępstw.
Generalnie, atakujący może przechwycić strumień komunikacyjny lub dane pochodzące z obu stron konwersacji. Następnie ma możliwość modyfikowania informacji lub przesyłania złośliwych odnośników czy odpowiedzi obydwu autoryzowanym uczestnikom. W wielu przypadkach, takie działania mogą pozostawać niezauważone przez dłuższy czas, zanim dojdzie do poważnych szkód.
Typowe metody stosowane w atakach man-in-the-middle
Analiza pakietów: Atakujący używa rozmaitych narzędzi, by analizować pakiety sieciowe na poziomie podstawowym. Dzięki temu podsłuchiwaniu, ma on wgląd w dane, do których w normalnych warunkach nie powinien mieć dostępu.
Iniekcja pakietów: Atakujący wstrzykuje złośliwe pakiety do kanałów komunikacyjnych. Zazwyczaj, przed iniekcją pakietów, przestępcy wykorzystują podsłuchiwanie, aby ustalić jak i kiedy przesyłać złośliwe dane. Po ich wprowadzeniu, zainfekowane pakiety mieszają się z poprawnymi w ramach strumienia komunikacyjnego.
Przejęcie sesji: W większości aplikacji internetowych, proces logowania generuje tymczasowy token sesji. Dzięki niemu, użytkownik nie musi za każdym razem podawać hasła przy przejściu na kolejną stronę. Niestety, atakujący wykorzystujący odpowiednie narzędzia, może zidentyfikować i użyć takiego tokena, a następnie wysyłać zapytania podszywając się pod legalnego użytkownika.
Usuwanie SSL: Osoby atakujące mogą stosować technikę „stripowania SSL”, aby przechwytywać poprawne pakiety, modyfikować żądania realizowane za pomocą protokołu HTTPS i przekierowywać je do ich niezabezpieczonej wersji HTTP. W rezultacie, host zacznie wysyłać niezaszyfrowane żądanie do serwera, co spowoduje ujawnienie poufnych danych w formie jawnego tekstu, który można łatwo ukraść.
Skutki ataków typu MITM
Ataki MITM stanowią zagrożenie dla każdej organizacji, ponieważ mogą prowadzić do strat finansowych i uszczerbku na reputacji.
Zazwyczaj, przestępcy są w stanie uzyskać i wykorzystać wrażliwe informacje organizacji. Na przykład, mogą ukraść dane uwierzytelniające, takie jak nazwy użytkownika i hasła, czy dane kart kredytowych. Mogą posłużyć się nimi do przelewów środków lub dokonywania nieautoryzowanych zakupów. Mogą też wykorzystać skradzione dane, by zainstalować złośliwe oprogramowanie lub wykraść inne poufne dane – wykorzystując je następnie do szantażowania firmy.
Z tego względu, ochrona użytkowników i systemów cyfrowych przed atakami typu MITM jest niezwykle istotna.
Narzędzia pomocne w symulacji ataku MITM dla zespołów bezpieczeństwa
Oprócz korzystania ze sprawdzonych rozwiązań i dobrych praktyk bezpieczeństwa, konieczne jest również użycie odpowiednich narzędzi do testowania systemów i identyfikowania słabych punktów, które mogą zostać wykorzystane przez atakujących. Poniżej przedstawione zostały wybrane narzędzia pomocne w symulacji ataków typu MITM w protokole HTTP.
Hetty
Hetty to szybki, otwartoźródłowy zestaw narzędzi HTTP, wyposażony w funkcje wspierające badaczy bezpieczeństwa, zespoły oraz społeczność skupioną na nagrodach za znajdowanie błędów. To lekkie narzędzie, z wbudowanym interfejsem sieciowym Next.js, zawiera funkcję „człowieka w środku” – serwer proxy HTTP.
Najważniejsze cechy:
- Umożliwia przeszukiwanie pełnotekstowe.
- Zawiera moduł nadawcy, który pozwala ręcznie wysyłać żądania HTTP na podstawie zapisanych w logach proxy lub tworzyć je od podstaw.
- Posiada moduł ataku, który automatyzuje wysyłanie zapytań HTTP.
- Jest prosty w instalacji i oferuje łatwy w obsłudze interfejs.
- Pozwala na ręczne tworzenie i wysyłanie żądań HTTP, kopiowanie ich z logów serwera proxy lub pisanie od zera.
Bettercap
Bettercap to wszechstronne i skalowalne narzędzie służące do analizowania i atakowania sieci.
To łatwe w użyciu rozwiązanie zapewnia inżynierom wstecznym, ekspertom ds. bezpieczeństwa oraz zespołom redakcyjnym wszystkie funkcje do testowania lub atakowania sieci Wi-Fi, IP4, IP6, urządzeń Bluetooth Low Energy (BLE) i urządzeń HID. Dodatkowo, narzędzie ma możliwości monitorowania sieci i inne funkcje, jak np. tworzenie fałszywych punktów dostępu, przechwytywanie haseł, spoofing DNS czy przechwytywanie handshake’ów.
Najważniejsze cechy:
- Posiada potężny, wbudowany sniffer sieciowy do identyfikowania danych uwierzytelniających i gromadzenia poświadczeń.
- Jest potężny i rozszerzalny.
- Umożliwia aktywne i pasywne testowanie hostów sieci IP pod kątem potencjalnych luk w zabezpieczeniach MITM.
- Oferuje łatwy w obsłudze interfejs internetowy, który umożliwia przeprowadzanie szerokiej gamy ataków MITM, przechwytywanie poświadczeń, monitorowanie ruchu HTTP i HTTP itp.
- Pozwala wyodrębnić wszystkie zebrane dane, takie jak poświadczenia POP, IMAP, SMTP i FTP, odwiedzone adresy URL i hosty HTTPS, pliki cookie HTTP, przesłane dane HTTP i inne. Następnie zapisuje je w pliku zewnętrznym.
- Umożliwia manipulowanie lub modyfikowanie ruchu TCP, HTTP i HTTPS w czasie rzeczywistym.
Proxy.py
Proxy.py to lekki, otwartoźródłowy serwer proxy WebSockets, HTTP, HTTPS i HTTP2. Dostępny w jednym pliku Pythona, to szybkie narzędzie umożliwia badaczom analizowanie ruchu internetowego, włączając w to aplikacje szyfrowane za pomocą protokołu TLS, przy minimalnym obciążeniu zasobów.
Najważniejsze cechy:
- Jest szybkie i skalowalne, potrafi obsłużyć dziesiątki tysięcy połączeń na sekundę.
- Posiada programowalne funkcje, takie jak wbudowany serwer WWW, serwer proxy i dostosowanie routingu HTTP.
- Ma lekką konstrukcję i zużywa od 5 do 20 MB pamięci RAM. Bazuje na standardowych bibliotekach Pythona i nie potrzebuje zewnętrznych zależności.
- Posiada konfigurowalny pulpit nawigacyjny w czasie rzeczywistym, który można rozszerzyć za pomocą wtyczek. Pozwala na monitorowanie, konfigurowanie i kontrolowanie proxy.py podczas działania.
- Wykorzystuje protokół TLS, aby zapewnić kompleksowe szyfrowanie pomiędzy serwerem proxy.py a klientem.
Mitmproxy
mitmproxy to łatwe w użyciu, otwartoźródłowe rozwiązanie proxy HTTPS.
To łatwe w instalacji narzędzie działa jak serwer proxy HTTP typu „człowiek w środku” z protokołem SSL, i oferuje interfejs konsoli, umożliwiający monitorowanie i modyfikowanie przesyłu danych w czasie rzeczywistym. Można go używać w wierszu poleceń jako proxy HTTP lub HTTPS do zapisywania całego ruchu sieciowego, analizowania zapytań użytkowników i ich odtwarzania. Mitmproxy to w istocie zbiór trzech narzędzi: mitmproxy (interfejs konsoli), mitmweb (interfejs internetowy) i mitmdump (wersja wiersza poleceń).
Najważniejsze cechy:
- Jest interaktywny i niezawodny w analizie i modyfikacji ruchu HTTP.
- Jest elastyczny, stabilny, niezawodny, łatwy w instalacji i obsłudze.
- Umożliwia przechwytywanie i modyfikowanie żądań i odpowiedzi HTTP i HTTPS w czasie rzeczywistym.
- Pozwala nagrywać i zapisywać konwersacje HTTP po stronie klienta i serwera, a następnie je odtwarzać i analizować w przyszłości.
- Generuje certyfikaty SSL/TLS do przechwytywania w locie.
- Funkcja odwrotnego proxy pozwala na przekierowanie ruchu sieciowego na inny serwer.
Burp Suite
Burp Suite to zautomatyzowane i skalowalne narzędzie do wyszukiwania luk w zabezpieczeniach. Jest chętnie wybierane przez wielu specjalistów z branży bezpieczeństwa. Umożliwia testowanie aplikacji internetowych i identyfikowanie słabych punktów, które mogą zostać wykorzystane przez przestępców do przeprowadzenia ataku MITM.
Wykorzystuje przepływ pracy sterowany przez użytkownika, aby dać bezpośredni wgląd w docelową aplikację i sposób jej działania. Burp Suite działa jak serwer proxy internetowy, umieszczając się pomiędzy przeglądarką a serwerami docelowymi. Umożliwia to przechwytywanie, analizowanie i modyfikowanie ruchu związanego z żądaniami i odpowiedziami.
Najważniejsze cechy:
- Przechwytuje i analizuje surowy ruch sieciowy w obu kierunkach między przeglądarką a serwerem.
- Przerywa połączenie TLS w ruchu HTTPS między przeglądarką a serwerem, umożliwiając atakującemu przeglądanie i modyfikowanie zaszyfrowanych danych.
- Pozwala wybrać, czy korzystać z wbudowanej przeglądarki Burp, czy zewnętrznej, standardowej przeglądarki internetowej.
- Jest zautomatyzowanym, szybkim i skalowalnym rozwiązaniem do wyszukiwania luk w zabezpieczeniach. Umożliwia skanowanie i testowanie aplikacji internetowych szybciej i wydajniej, identyfikując w ten sposób szerokie spektrum problemów bezpieczeństwa.
- Wyświetla poszczególne przechwycone żądania i odpowiedzi HTTP.
- Pozwala na ręczne analizowanie przechwyconego ruchu, aby zrozumieć szczegóły ataku.
Ettercap
Ettercap jest otwartoźródłowym analizatorem i przechwytywaczem ruchu sieciowego.
To wszechstronne narzędzie do ataków MITM umożliwia badaczom analizowanie szerokiej gamy protokołów i hostów sieciowych. Pozwala również na zapis pakietów sieciowych w sieci LAN i innych środowiskach. Ponadto, Ettercap potrafi wykrywać i powstrzymywać ataki typu man-in-the-middle.
Najważniejsze cechy:
- Przechwytuje ruch sieciowy i dane uwierzytelniające, takie jak hasła. Potrafi również odszyfrowywać dane i wydobywać dane uwierzytelniające, takie jak nazwy użytkowników i hasła.
- Nadaje się do głębokiego podsłuchiwania pakietów, testowania, monitorowania ruchu sieciowego i zapewniania filtrowania treści w czasie rzeczywistym.
- Obsługuje aktywne i pasywne podsłuchiwanie, analizę protokołów sieciowych, włączając w to te, które wykorzystują szyfrowanie.
- Analizuje topologię sieci i ustala zainstalowane systemy operacyjne.
- Oferuje przyjazny graficzny interfejs użytkownika z interaktywnymi i nieinteraktywnymi opcjami obsługi.
- Wykorzystuje techniki analizy, takie jak przechwytywanie ARP, filtrowanie adresów IP i MAC i inne, by przechwytywać i analizować ruch.
Jak zapobiegać atakom MITM
Wykrycie ataków MITM nie jest łatwe, ponieważ działania te przebiegają w sposób niezauważalny dla użytkownika, a napastnicy starają się, by wszystko wyglądało normalnie. Istnieje jednak szereg praktyk, które organizacje mogą stosować, aby zapobiegać atakom typu man-in-the-middle. Obejmują one:
- Zabezpieczenie połączeń internetowych w pracy lub sieciach domowych, np. poprzez stosowanie skutecznych rozwiązań i narzędzi bezpieczeństwa na serwerach i komputerach oraz niezawodne rozwiązania uwierzytelniające.
- Wymuszanie silnego szyfrowania WEP/WAP dla punktów dostępowych.
- Upewnianie się, że wszystkie odwiedzane strony są bezpieczne i mają HTTPS w adresie URL.
- Unikanie klikania podejrzanych e-maili, wiadomości i linków.
- Wymuszanie HTTPS i wyłączanie niezabezpieczonych protokołów TLS/SSL.
- W miarę możliwości korzystanie z wirtualnych sieci prywatnych (VPN).
- Wykorzystywanie powyższych narzędzi i innych rozwiązań HTTP do identyfikowania i eliminowania wszelkich luk typu man-in-the-middle, które mogą zostać wykorzystane przez atakujących.