6.2 C
Warszawa
czwartek 25 kwietnia • 2024
Strona głównaTECHNIKACYBERBEZPIECZEŃSTWOPRZEWODNIK PO ATAKU MAN IN THE MIDDLE (MITM) – POZNAJ CZYM JEST...

PRZEWODNIK PO ATAKU MAN IN THE MIDDLE (MITM) – POZNAJ CZYM JEST I JAK SIĘ PRZED NIM BRONIĆ

Atak Man-in-the-Middle (MITM) polega na podsłuchiwaniu wymiany danych pomiędzy stronami komunikacji internetowej lub jej modyfikacji.

Atak Man-in-the-Middle (w skrócie MITM), w luźnym tłumaczeniu „człowiek po środku” polega na podsłuchiwaniu wymiany danych pomiędzy stronami komunikacji internetowej lub jej modyfikacji.
Charakterystyką tego prostego, a zarazem groźnego ataku sieciowego jest brak świadomości jego ofiar, że ich komunikacja jest przechwytywana i podsłuchiwana przez nieupoważnioną osobę trzecią.

Atak MITM – na czym polega

Atak Man-in-the-Middle rozpoczyna się momencie, gdy haker uzyska dostęp do wewnętrznej sieci ofiary. Generalnie polega on na prowadzeniu całej komunikacji z urządzeniem ofiary poprzez urządzenie cyberprzestępcy, dzięki czemu może on przechwycić wszystkie dane przekazywane przez ofiarę i wysyłane osobie zaatakowanej.
Co do zasady podczas tego ataku urządzenie hakera przedstawia się jako router urządzeniu, np. komputerowi ofiary, a routerowi podaje się za urządzenie ofiary. Przez to urządzenie ofiary „myśli”, że rzeczywiście komunikuje się z routerem, a router uważa, że przekazuje pakiety danych bezpośrednio urządzeniu zaatakowanej osoby.
Dla zobrazowania, poniżej zamieszczam przykładową grafikę przedstawiającą ten typ ataku hakerskiego:

Fot.: Wikimedia

Rodzaje ataków MITM

Pomimo tego, że podstawowa zasada przeprowadzenia ataku MITM jest taka sama, to z uwagi na współcześnie znacznie rozwiniętą infrastrukturę sieciową, w tym coraz powszechnieje korzystanie z sieci bezprzewodowej oraz mnogość urządzeń podłączonych do sieci, które komunikują się ze sobą, możemy rozróżnić różne typy ataku Man in the Middle. Prezentuję je poniżej.

Wrogi punkt dostępowy:

Ten rodzaj ataku MITM jest możliwy do przeprowadzenia ze względu na coraz powszechniejsze korzystanie z sieci bezprzewodowych (Wi-Fi). Potencjalnym źródłem zagrożenia są urządzenia, na których można ustanowić prywatny punkt dostępowy, przynoszone przez pracowników do biura lub klientów do różnych punktów usługowych oferujących swoim klientom dostęp do sieci Wi-Fi (np. restauracje, kawiarnie, hotele, galerie handlowe, pociągi, itp.). Wrogi punkt dostępowy prezentuje się jako zaufana sieć, lecz umożliwia on hakerowi przejęcie lub monitorowanie przychodzącego ruchu sieciowego, który często jest przekierowywany do innej sieci, aby zachęcić ofiarę do pobrania złośliwego oprogramowania lub wyłudzić dane od zaatakowanej osoby. Warto zaznaczyć, że stosowanie najnowszych standardów bezpieczeństwa bezprzewodowych sieci LAN, w szczególności obsługę standardu 802.11i (WPA3) powinno skutecznie zabezpieczyć sieć bezprzewodową przed przełamaniem autoryzacji sieciowej i uzyskaniem nieuprawnionego dostępu do zasobów sieciowych. Niestety z uwagi na to, że standard WPA3 jest stosunkowo nowy, to duża liczba urządzeń sieciowych nie wykorzystuje go do ochrony sieci, opierając się na starszym standardzie WPA i WPA2. Jednakowoż rzeczywistość wyłania jeszcze czarniejszy obraz, w którym duża liczba sieci bezprzewodowych chroniona jest przez przestarzałe mechanizmy bezpieczeństwa, wykorzystując klucze WEP i filtrację adresów MAC. Przez to takie sieci są niezwykle narażone na ataki i infiltrację zasobów sieciowych przez nieautoryzowanych użytkowników. Należy zaznaczyć, że mechanizm 802.1x jest przewidziany do zadań uwierzytelniania na poziomie portu przełącznika, lecz sam w sobie nie zabezpiecza przed wykorzystywaniem wrogich punktów dostępowych (ang. Access Point, AP). Wynika to z faktu, że jeśli punkt dostępowy podłączony jest do niezabezpieczonego portu Ethernet i uzyskuje łączność w ramach lokalnej sieci wirtualnej (VLAN, Virtual Local Area Network), do której przypisany jest ten port, wówczas dowolne urządzenie podłączone do niezabezpieczonego portu Ethernet będzie musiało uwierzytelnić się w bazie danych użytkowników (np. poprzez serwer RADIUS). Takie działanie jest zupełnym przeciwieństwem wprowadzania portu w stan przekazywania ramek. W takim przypadku, jeżeli nawet haker dysponuje punktem dostępowym realizującym funkcjonalność uwierzytelniania (nie jest to częste w modelach SOHO), to i tak będzie musiał legitymować się poprawnymi danymi, zanim zostanie prawidłowo uwierzytelniony. Jeżeli jednak uwierzytelnianie nie jest zaimplementowane w sieci, wrogi AP umożliwi dowolnemu klientowi na połączenie się z siecią WLAN (Wireless Local Area Network), tj. sieci Wi-Fi i spenetrowanie całej sieci, w tym sieci przewodowej, jeśli jest ona połączona z siecią Wi-Fi.

Evil Twin:

Evil Twin, czyli „Zły Bliźniak”, jest kolejnym rodzajem ataku MITM, polegającym na ustawieniu sieci Wi-Fi, która nazywa się tak samo jak publiczna zaufana sieć i ma takie samo hasło dostępowe, o ile zaufana sieć ma je ustanowione. Najbardziej podatne na ten typ ataku MITM są sieci Wi-Fi, które nie mają ustawionego żadnego hasła WEP, WPA lub WPA2. Niewiele lepiej wygląda sytuacja, jeśli użytkownik musi wpisać hasło podane mu przez operatora publicznej sieci W-Fi w przeglądarce podczas połączenia z webową bramką proxy, aby po prawidłowej weryfikacji tego hasła otrzymać dostęp do Internetu. Taka komunikacja może być podsłuchana przez każdego, jak też hasło może być wpisywane na stronie, która w rzeczywistości nie należy do operatora sieci Wi-Fi. Właśnie z takim przykładem „Złego Bliźniaka” możemy mieć do czynienia w kawiarni, która udostępnia swoim klientom publiczną sieć Wi-Fi. W takim przypadku haker może ustawić swój punkt dostępowy sparowany z laptopem (np. za pomocą smartfonu) i nazwać go tak samo jak sieć kawiarni (możliwe jest też celowe osłabienie sygnału właściwej sieci przez hakera), przez co dla klientów jest on nieodróżnialny od prawdziwego punktu dostępowego. Kolejnym krokiem jest wymuszenie na klientach połączenia się z fałszywym, „złym” punktem dostępowym. Tutaj wystarczy, że punkt dostępowy kontrolowany przez hakera przedstawi się klientowi jak punkt właściwy, czyli tym samym adresem MAC (Media Access Control) i taką samą nazwą SSID (Service Set Identifier), czyli nazwą sieci Wi-Fi (w naszym przypadku sieci kawiarni). Jednocześnie niezbędne jest generowanie mocniejszego sygnału radiowego i umożliwienie klientom dostępu do Internetu. W takim przypadku klienci, którzy chcą się połączyć z Internetem za pomocą publicznej sieci Wi-Fi kawiarni będą łączyli się z punktem dostępowym cyberprzestępcy, a on na swoim komputerze będzie widział całą komunikację klientów tej kawiarni, łącznie z odwiedzanymi stronami internetowymi, wpisywanymi loginami i hasłami. Ponadto haker może wstrzykiwać własne pakiety, fałszować odpowiedzi serwerów DNS, przekierowywać przeglądarki ofiar na strony hostujące złośliwe oprogramowanie, czy wyłudzać hasła za pomocą inżynierii społecznej.
Jeżeli klient lub klienci (w naszym przypadku kawiarni) połączeni są w prawdziwą siecią Wi-Fi, to haker ma możliwość wysłania pakietów deautentykacji, po których otrzymaniu klient lub klienci tracą połączenie z Internetem. Podczas próby jego przywrócenia łączą się nie z prawdziwym punktem dostępowym, ale właśnie ze „Złym Bliźniakiem” ustawionym przez hakera, który generuje mocniejszy sygnał niż właściwy AP.
Należy podkreślić, że korzystanie przez operatora publicznej sieci Wi-Fi ze standardów WPA, WPA2 lub WPA3 uodparnia taką sieć na atak Evil Twin, ponieważ haker nie może ustanowić fałszywego punktu dostępowego, ponieważ nie zna hasła. Jednakże z uwagi na niezwykłą skuteczność ataków phishingowych na użytkowników korzystających z zabezpieczonych standardami WPA oraz WPA2 sieci publicznych, powstały specjalne narzędzia automatyzujące tego typu ataki.

Ustanowienie punktu dostępowego Evil Twin:

Najczęściej do ustawienia „Złego Bliźniaka” stosowane są „hakerskie” dystrybucje systemów operacyjnych, a w szczególności Kali Linux, który posiada wbudowane stosowne narzędzia. Jednakże, jak wygląda przeprowadzenie tego ataku? W pierwszej kolejności haker musi zdobyć informacje o celu, jakim jest punkt dostępowy publicznej sieci Wi-Fi. Aby tego dokonać przełącza swoją kartę sieciową w tryb monitorowania (komenda: airmon-ng start wlan0) i wpisując komendę airodump-ng wlan0mon robi zrzut aktywności sieciowej poszczególnych punktów dostępowych. Następnie na liście wyświetlonych urządzeń atakujący wyszukuje SSID czyli nazwę sieci, BSSID czyli adres MAC punktu dostępowego oraz kanał, na którym atakowany punkt dostępowy działa. Po tym haker przełącza kartę sieciową w tryb monitorowania wyłącznie wybranego AP (komenda: airodump-ng wlan0mon -c [numer kanału atakowanego punktu dostępowego] –bsid [adres MAC atakowanego punktu dostępowego]). Po wykonaniu przedmiotowej komendy haker zobaczy listę klientów zawierającą adresy urządzeń połączonych z atakowanym punktem dostępowym. Oczywiście te adresy są zapisywane przez atakującego.
Kolejno haker przechodzi do utworzenia „Złego Bliźniaka” używając w tym celu narzędzia airbase-ng oraz komendy (dla przykładu załóżmy, że atakowany jest AP kawiarni): airbase-ng -a [adres MAC atakowanego punktu dostępowego] –essid [nazwa atakowanej sieci Wi-Fi] -c [kanał atakowanego AP] wlan0mon. Przykładowa pełna komenda może wyglądać następująco: airbase-ng -a 87:0a:4d:ac:27:04 –essid GuestCoffe -c 10 wlan0mon. Następnie do sklonowania punktu dostępowego haker podaje tylko nazwę sieci, lecz ustawienie takiego samego adresu MAC i kanału urealni podszywający się punkt dostępowy, ustanowiony przez hakera. Ten sposób jest skuteczny także w przypadku klientów, którzy identyfikują punkty dostępowe nie tylko po nazwie, ale też po połączeniu wszystkich powyższych danych.

Evil Twin w akcji:

Samo wygenerowanie fałszywego punktu dostępowego nie jest tożsame z połączeniem się do niego potencjalnych ofiar, w naszym przypadku klientów kawiarni. Oczywiście może się zdarzyć, że osoba niepołączona z Internetem podejmie próbę ustanowienia połączenia poprzez fałszywy AP ustawiony przez hakera, jednakże bardziej prawdopodobne jest, że klienci kawiarni są już połączeni z siecią poprzez właściwy AP kawiarni. W takim przypadku atakujący wysyła pakiety deautentykacji, które rozłączają klientów z siecią. Aby tego dokonać haker wykorzystuje narzędzie aireplay-ng, używając następującej komendy: aireplay-ng -0 15 -a [adres MAC atakowanego punktu dostępowego] -c [adres MAC atakowanego klienta] wlan0mon. W tym miejscu należy wyjaśnić, że flaga „-0” oznacza wysłanie pakietu deautentykacji, a liczba „15” to liczba pakietów wysłanych w tym ataku. Warto zauważyć, że podając tylko adres punktu dostępowego haker doprowadzi do rozłączenia wszystkich klientów podpiętych pod właściwy punkt dostępowy.
Jednakże haker nie ma żadnej pewności, że po utracie dostępu do sieci zaatakowane urządzenie nie renegocjuje ponownie połączenia z prawidłowym punktem dostępowym.
Z eksperymentów przeprowadzonych w 2016 roku przez informatyków z portalu dobreprogramy.pl wynika, że:
– w przypadku, gdy odległość pomiędzy atakującym i ofiarą oraz ofiarą i właściwym punktem dostępowym była mniej więcej równa i wynosiła ok. 5 metrów, w 7 na 10 przypadków urządzenie ofiary renegocjowało połączenie z właściwym punktem dostępowym,
– gdy odległość atakującego od ofiary wynosiła ok. 10 metrów, w 9 na 10 przypadków urządzenie ofiary renegocjowało połączenie z właściwym punktem dostępowym,
– gdy odległość atakującego od ofiary wynosiła ok. 3 metry, w 5 na 10 przypadków urządzenie ofiary renegocjowało połączenie z właściwym punktem dostępowym.
Należy wyraźnie zaznaczyć, że do przeprowadzenia eksperymentu jako prawidłowy AP został użyty router TP-Link 1043ND, natomiast laptop atakującego wyposażony był w prosty moduł USB z jedną antenką.
W rzeczywistości hakerzy, chcąc zwiększyć swoje szanse na przejęcie ruchu sieciowego, zmieniają moc nadajnika w karcie bezprzewodowej – co należy wyraźnie zaznaczyć jest niezgodne z obowiązującymi przepisami prawa, gdyż moc kart jest sztucznie ograniczana przez ich oprogramowanie. W Europie, w tym w Polsce, maksymalna moc nadajnika, to 200 mW (23 dBm), jednakże są kraje, gdzie zgodnie z prawem można używać nadajników o mocy nawet 1000 mW (30 dBm), a takie moduły Wi-Fi można kupić przez Internet. Haker posiadający taki moduł może zmienić domenę regulacyjną karty, np. z PL (Polska) na BO (Boliwię) używając w tym celu komendy: iw reg set BO. Następnie podbija jej moc do maksymalnego poziomu poprzez użycie komendy iwconfig wlan0txpower 30. W takim przypadku ruterowi obsługującemu właściwy punkt dostępowy bardzo trudno będzie wygrać z wielokrotnie silniejszym sygnałem „Złego Bliźniaka”, aby uchronić klientów przed tym atakiem.
Drugim sposobem z użyciem legalnej karty sieciowej jest przeprowadzenie permanentnego ataku DDoS (artykuł o tym ataku znajduje się tutaj) poprzez stałe bombardowanie pakietami deautentykacji prawdziwego AP, przez co nawet pomimo słabszego sygnału AP hakera ofiara i tak połączy się ze „Złym Bliźniakiem”. Jednakże połączenie to nie będzie działało stabilnie.

Evil Twin a dostęp do Internetu:

Aby atak był skuteczny haker musi zapewnić ofierze lub ofiarom dostęp do Internetu. W tym celu można użyć np. Kali Linuxa, który posiada odpowiednie narzędzia umożliwiające połączenie się z Internetem z modemu telefonu komórkowego czy innej karty Wi-Fi.
Podstawą jest znajomość nazwy interfejsu karty lub modemu, przykładowo, jeśli główna karta Wi-Fi nazywa się wlan0, to zazwyczaj druga karta będzie nosiła nazwę wlan1. Natomiast karta ethernetowa najczęściej nazywana jest eth0, modem komórkowy ppp0, a „Zły Bliźniak” założony przy pomocy airbase-ng zazwyczaj nazwa się at0.
W takim przypadku do połączenia obu interfejsów, tj. wlan1 oraz at0 najczęściej wykorzystuje się brctl, czyli narzędzie służące do zarządzania mostami sieciowymi, które pochodzi z pakietu bridge-utils. Jest to zdecydowanie prostsza metoda niż łączenie przedmiotowych interfejsów za pomocą narzędzia iptables i trasowania. Proces oferowania przez „Złego Bliźniaka” dostępu do Internetu wygląda następująco (poniżej prezentuję poszczególne komendy, a w nawiasach znajdują się ich opisy):
# brctl addbr bridge0 (założenie mostu bridge0),
# brctl addif bridge0 at0 (połączenie mostu z interfejsem at0),
# ifconfig wlan1 0.0.0.0 up (aktywacja interfejsu wlan1),
# ifconfig at0 0.0.0.0 up (aktywacja interfejsu at0),
# dhclient bridge0 (automatyczna konfiguracja DHCP).

Podsłuchiwanie nieświadomych ofiar, czyli haker w akcji:

Po prawidłowym ustawieniu „Złego Bliźniaka” i ustanowieniu go jako punktu dostępowego do Internetu, haker może przejąć wszystkie pakiety wysyłane i kierowane do ofiary połączonej z tym punktem dostępowym. Tutaj pomysłowość cyberprzestępców jest spora i do przyglądania się ruchowi sieciowemu używają zarówno programu Wireshark, jak również programu Ettercap, który automatycznie loguje do pliku wszystko co dzieje się w interfejsie at0. Aby podsłuchiwać ruch sieciowy za pomocą Ettercapa wystarczy w wierszu poleceń wpisać następującą komendę: ettercap—silent -T -q -p –log-msg eviltwin.log -i at0.

Jeżeli jednak osoba, która połączyła się ze złym punktem dostępowym używa tunelu TLS/SSL oraz protokołu HTTPS do łączenia z konkretną stroną lub aplikacją webową, haker może przejąć taki ruch wykorzystując narzędzie SSLStrip. W tym przypadku haker musi zestawić poprawny tunel pomiędzy sobą i stroną lub aplikacją webową odwiedzaną przez ofiarę, a ofierze zapewnić nieszyfrowaną komunikację z taką stroną lub aplikacją, lecz z fałszywą ikoną kłódki, która ma zapewnić ofiarę o korzystaniu z ruchu szyfrowanego z użyciem protokołu HTTPS.

Podsłuchując i przejmując ruch sieciowy za pomocą Evil Twin, cyberprzestępcy mogą wstrzykiwać złośliwy kod w przeglądane przez ofiary strony internetowe – służy do tego narzędzie SergioProxy, albo wykorzystując narzędzia takie jak wifiphisher lub infernal-twin przejmują hasła WPA/WPA2. Opisane powyżej narzędzia są powszechnie dostępne na znanej platformie GitHub.

Czy można bronić się przez atakiem Evil Twin?

Niestety odpowiadając na podane w powyższym podtytule pytanie, stwierdzić należy, iż nie istnieją bezpośrednie metody obrony. Jednak w pierwszej kolejności korzystając z publicznego W-Fi należy zabezpieczyć swój ruch sieciowy poprzez VPN, co chroni przed podsłuchem.
Ponadto zawsze należy:

  • unikać otwartych hotspotów, w szczególności o nazwach, które nie pasują do miejsca, np. w kawiarni hotspot o nazwie „fastnet”,
  • wyłączyć automatyczne podłączanie się do otwartych punktów dostępowych,
  • zwracać uwagę na dziwne przekierowania DNS do sieci wewnętrznych (LAN),
  • zwracać szczególną uwagę na informacje o podejrzanych, samodzielnie podpisanych certyfikatach stron internetowych.

Na zakończenie tego podrozdziału należy wspomnieć, że punktem dostępowym Evil Twin może być jednopłytkowy komputer typu Raspberry Pi, podłączony do akumulatorka i sprytnie ukryty, np. pośród mebli biurowych.

IP Spoofing, czyli fałszowanie adresu IP:

Co do zasady, fałszowanie adresów IP, tzw. IP Spoofing lub Packet Spoofing, polega na zmianie adresu IP i przekierowaniu ruchu na stronę atakującego. W tym przypadku haker stoi pomiędzy dwiema stronami, które prowadzą komunikację, podszywając się pod inne adresy poprzez zmianę nagłówków imitujących prawdziwe aplikacje i strony www. W związku z tym każda z ofiar wysyła swoje pakiety sieciowe do atakującego, a nie bezpośrednio do rzeczywistego miejsca ich przeznaczenia, czyli drugiej strony komunikacji.
Dzieje się tak, ponieważ gdy użytkownicy przesyłają dane przez Internet, są one najpierw dzielone na wiele jednostek zwanych pakietami. Pakiety przesyłane są niezależnie i po dotarciu do celu ponownie składane. Aby komunikacja mogła odbywać się prawidłowo, pakiety zawierają nagłówki IP z informacjami o routingu, w tym źródłowym oraz docelowym adresie IP. Warto zaznaczyć, że adres zwrotny w pakiecie jest reprezentowany przez źródłowy adres IP. Taka konstrukcja pakietu umożliwia fałszowanie adresu źródłowego w nagłówku pakietu za pomocą odpowiednich narzędzi do fałszowania adresów IP, tak aby urządzenie odbierające uznało pakiet za pochodzący z zaufanego źródła, np. komputera pracującego w legalnej sieci firmowej i zaakceptowało taki pakiet. Co istotne sfałszowany pakiet nie ma śladów manipulacji, ponieważ IP Spoofing działa na poziomie sieci. Aby atak taki był skuteczny cyberprzestępcy potrzebują jedynie zaufanego adresu IP oraz możliwości przechwytywania pakietów i zastępowania autentycznych nagłówków IP ich fałszywymi wersjami, w związku z czym tradycyjne struktury obronne sieci typu „zamek i fosa” są bardzo podatne na IP Spoofing.
Z uwagi na podatności systemów, ale także podłączanie się do sieci przez coraz większą ilość urządzeń i użytkowników, choćby ze względu na pracę zdalną, taki atak jest trudny do wykrycia, ponieważ może przekierowywać transakcję lub komunikację na sfałszowany adres IP z dala od legalnego odbiorcy nie pozostawiając żadnych oznak, a także może omijać ochronę systemów bezpieczeństwa, w tym firewalli. Powoduje to, że hakerzy uzyskują dostęp do wewnętrznej sieci jako zaufani użytkownicy, co umożliwia im ukrywanie się przez dłuższy czas w systemach podatnych na ataki.

Wstęp do omówienia rodzajów IP Spoofing:

Mając powyższe na uwadze można by pomyśleć, że fałszowanie adresów IP jest łatwe, ponieważ każde urządzenie może zadeklarować własny adres IP. Jeśli jednak atakujący po prostu zadeklaruje ten sam adres IP co ofiara, spowoduje konflikt sieciowy, który może spowodować rozłączenie się oryginalnego urządzenia, nienawiązanie połączenia lub nawiązanie połączenia przez oba urządzenia, a następnie ich rozłączenie. We wszystkich tych przypadkach atak zakończy się niepowodzeniem, co może zostać zauważone przez ofiarę.
Aby przeprowadzić skuteczny atak, hakerzy mogą zastosować dwie techniki, obie oparte na manipulowaniu numerami sekwencyjnymi TCP. Zanim jednak przedstawię rodzaje IP Spoofing, uważam za zasadne wyjaśnienie sposobów działania numerów sekwencyjnych TCP.

Co to są numery sekwencyjne TCP?

Większość połączeń sieciowych nawiązywana jest przy użyciu protokołu TCP/IP (Transmission Control Protocol/Internet Protocol). Gdy dwa urządzenia w sieci łączą się za pomocą tego protokołu, to muszą najpierw ustanowić połączenie TCP. Proces połączenia nazywany jest uzgadnianiem trójetapowym (three way handshake) i prezentuje się następująco:

  1. urządzenie A wysyła komunikat SYN (żądanie synchronizacji) do urządzenia B,
  2. urządzenie B wysyła komunikat SYN-ACK (żądanie synchronizacji + potwierdzenie odebrania SYN) do urządzenia A,
  3. urządzenie A wysyła wiadomość ACK (potwierdzenie odebrania SYN) do urządzenia B.

Żądania SYN deklarują losowe początkowe numery sekwencyjne (inne dla każdego kierunku), potrzebne odbiorcy do rozpoznawania kolejnych pakietów. Numery sekwencyjne pozwalają urządzeniom określić kolejność kolejnych pakietów danych. Na przykład, jeśli urządzenie A zadeklarowało początkowy numer 10543, to następny pakiet z urządzenia A do urządzenia B musi mieć numer kolejny 10544 i tak dalej.

Non-blind IP Spoofing:

Atak non-blind IP Spoofing jest przeprowadzany, gdy atakujący znajduje się w tej samej podsieci co ofiara i może bezpośrednio zobaczyć numery sekwencyjne innych połączeń, na przykład między ofiarą a routerem stanowiącym bramę sieciową. Atakujący najpierw sniffuje takie połączenie (nasłuchuje ruchu) używając przy tym oprogramowania do monitoringu sieci. Weryfikując przechwycone nagłówki pakietów TCP, haker może poznać numery sekwencyjne, a następnie przewidzieć kolejny numer i wysłać sfałszowany pakiet, podszywając się pod pierwotnego nadawcę. Jeśli ten pakiet dotrze do miejsca docelowego przed prawidłową odpowiedzią, atakujący przechwyci połączenie.
Należy zauważyć, że przewidywanie numeru sekwencyjnego protokołu TCP może zostać rozszerzone poza lokalną podsieć za pomocą routingu źródłowego IP. Wynika to z faktu, iż każdy pakiet TCP ma możliwość zadeklarowania trasy w nagłówku IP, co zarazem stanowi informację dla urządzenia docelowego, jakiej konkretnej trasy ma użyć do wysłania odpowiedzi. W takim przypadku haker może zadeklarować konkretną trasę, aby ominąć routery-bramy i otrzymać odpowiedzi od ofiary za pośrednictwem innych maszyn, potencjalnie umożliwiając im zobaczenie oryginalnych numerów sekwencyjnych. Jednak nie wszystkie urządzenia sieciowe są skonfigurowane do śledzenia takich informacji o routingu, co ogranicza użyteczność tego ataku.

Blind IP Spoofing:

Atak blind IP Spoofing jest znacznie trudniejszy do przeprowadzenia, ale nie jest ograniczony do tej samej podsieci, więc można go również przeprowadzić spoza sieci lokalnej. Jednak ten atak jest groźny tylko dla starszych systemów operacyjnych.
Warto zauważyć, że w przeszłości pakiety protokołów TCP/IP wykorzystywały przewidywalne algorytmy do generowania początkowych numerów sekwencji TCP. Czasami były one zwiększane o określoną wartość dla każdego nowego połączenia, a innym razem o określoną wartość na jednostkę czasu, który upłynął.
W związku z tym, aby dowiedzieć się, w jaki sposób tworzone są początkowe numery sekwencyjne, haker wysyłał do ofiary pewną liczbę żądań SYN i przeglądał początkowe numery sekwencyjne TCP otrzymane z legalnego źródła. Jeśli atakujący zauważył przewidywalny wzorzec w sposobie ich wybierania na podstawie kolejności odpowiedzi i czasu odpowiedzi, mógł spróbować odgadnąć początkowy numer sekwencyjny również dla innych połączeń.
Jednakże należy wyraźnie zaznaczyć, że ten typ ataku nie działa już z nowoczesnymi systemami operacyjnymi, ponieważ nowoczesne oprogramowanie TCP/IP wykorzystuje generatory liczb losowych do generowania początkowych numerów sekwencyjnych. Stąd fałszowanie adresów IP spoza podsieci jest obecnie bardzo trudne i może polegać wyłącznie na routingu źródłowym IP, o czym napisałem powyżej.

Przykładowy atak IP Spoofing:

Załóżmy, że Michał jest hakerem i posiadł dostęp do prywatnej sieci Adama (wówczas, gdy korzystał z hotspotu Wi-Fi), jednocześnie Michał próbuje fałszować adres IP za pomocą ataku blind IP Spoofing, aby zmienić trasę routingu i przechwytywać komunikację sieciową pomiędzy Adamem, a jego bramą, którą jest router. Przebieg takiego ataku wygląda następująco:
Michał podłącza się swoim laptopem do sieci wewnętrznej Adama z adresem IP 192.168.0.34 i uruchamia sniffera. Oprogramowanie sniffera pozwala zobaczyć mu wszystkie pakiety IP, które przechodzą przez sieć.
Jednakże celem Michała jest przechwycenie połączenia Adama z docelowym adresem IP bramy: 192.168.0.1. W tym celu Michał szuka istniejącego i nawiązanego połączenia, wyszukując pakiety przychodzące kierowane do bramy z komputera Adama (IP 192.168.0.65), przy czym widzi jego kolejne numery sekwencyjne, a następnie przewiduje następny numer sekwencyjny.
W odpowiednim momencie Michał wysyła sfałszowany pakiet ze swojego laptopa. Pakiet zawiera adres źródłowy bramy (192.168.0.1) i prawidłowy numer sekwencyjny, dzięki czemu komputer Adama odczyta go jako pochodzący z prawdziwej bramy.
W tym samym czasie Michał zalewa prawdziwą bramę za pomocą ataku DDoS (rozproszony atak typu „odmowa usługi”). Przez chwilę brama reaguje wolniej lub przestaje odpowiadać. W ten sposób sfałszowany pakiet Michała dotrze do Adama przed prawidłowym pakietem z bramy sieciowej.
W ten sposób Michał właśnie przekonał komputer Adama, że jego laptop (Michała) jest właściwą bramą sieciową. Następnie Michał powtarza ten sam atak na bramę, tym razem, aby przekonać bramę sieciową, że jego laptop to komputer Adama z adresem IP 192.168.0.65. Jeśli ten atak również się powiedzie, wówczas pełen atak MITM typu blind IP Spoofing należy uznać za przeprowadzony prawidłowo.
Należy jednak pamiętać, że sfałszowane adresy IP działają tylko tak długo, jak długo jest nawiązane połączenie. Za każdym razem, gdy tworzone jest nowe połączenie TCP/IP, atakujący musi użyć tej samej techniki, aby ponownie przejąć źródłowe adresy IP.

Jak wykryć fałszowanie adresu IP?

Dla użytkowników końcowych wykrywanie fałszowania adresów IP jest trudne. Nie ma zewnętrznych oznak manipulacji, ponieważ ataki te są przeprowadzane na warstwie 3-ej (sieciowej) modelu komunikacji OSI (Open Systems Interconnection). Dzięki temu sfałszowane żądania połączeń mogą zewnętrznie przypominać te prawidłowe.
Jednak możliwe jest przeprowadzenie analizy ruchu za pomocą narzędzi do monitorowania sieci w jej punkach końcowych, takich jak systemy filtrowania pakietów, które często są zawarte w zaporach ogniowych i routerach. Systemy te wykrywają fałszywe pakiety i odwołują się do list kontroli dostępu (ACL) w celu wykrycia niespójności między żądanymi adresami IP na liście a adresem IP pakietu. Natomiast filtrowanie pakietów obejmuje zarówno filtrowanie wejściowe i wyjściowe.
Filtrowanie ruchu przychodzącego sprawdza źródłowe nagłówki IP pakietów przychodzących, aby potwierdzić, że pasują do dozwolonego adresu źródłowego. Te, które nie pasują lub wykazują jakiekolwiek inne podejrzane zachowanie, system odrzuca. Ten proces filtrowania tworzy listę ACL źródłowych adresów IP dozwolonych przez system.
Filtrowanie ruchu wychodzącego ma na celu zapobieganie atakom podszywania się pod adres IP, przeprowadzanym przez osoby z wewnątrz, a także przeszukuje wychodzące skanowania w poszukiwaniu źródłowych adresów IP, które nie pasują do sieci firmowej.

Jak zapobiegać atakom IP Spoofing?

Należy zauważyć, że ataki polegające na fałszowaniu adresów IP nie są spowodowane żadnymi błędami konfiguracji ani lukami w zabezpieczeniach. Źródło problemu tkwi w samym protokole TCP/IP, który został zaprojektowany we wczesnych latach tworzenia sieci, zanim cyberprzestępczość stała się głównym problemem. Z uwagi na to, iż nie mamy możliwości zmiany samego protokołu TCP/IP, możemy jedynie podjąć działania w celu jak najlepszego zabezpieczenia naszych sieci i urządzeń.
Choć, niestety, nie ma sposobu aby zapobiec atakom IP Spoofing w sieci lokalnej, nadal można blokować próby fałszowania pochodzące spoza sieci LAN poprzez:

  1. filtrowanie ruchu przychodzącego – co obejmuje zarówno skonfigurowanie list kontroli dostępu (ACL) oraz filtrowanie pakietów na zaporze zewnętrznego interfejsu bramy internetowej, aby uniemożliwić łączenie się prywatnych adresów IP z bramą, jak i utworzenie reguł odrzucania wszelkich pakietów pochodzących spoza sieci lokalnej, które twierdzą, że wywodzą się z jego wnętrza; można także użyć filtrowania ruchu wychodzącego, aby monitorować odpowiedzi na potencjalnie sfałszowane adresy, a także ograniczyć połączenia na podstawie adresów MAC zaufanych źródeł, aby utrudnić próby fałszowania,
  2. wyłączenie routingu źródłowego IP na wszystkich urządzeniach, aby zapobiec wykorzystywaniu ich jako pośredników w atakach z przewidywaniem sekwencji TCP (blind IP Spoofing); należy jednak pamiętać, że ochrona sieci lokalnej przed zewnętrznymi próbami fałszowania adresów IP nie zapobiegnie innym typom ataków, takim jak fałszowanie ARP, fałszowanie DNS lub fałszowanie lokalnych adresów IP,
  3. wymuszanie szyfrowania tam, gdzie to możliwe, w tym poprzez każdorazowe nawiązywanie połączenia VPN pomiędzy urządzeniami firmowymi lub korzystającymi z sieci firmowej,
  4. wymuszanie nawiązywania połączenia SSL/TLS dla własnych aplikacji internetowych, na przykład za pomocą protokołu HTTP Strict Transport Security (HSTS),
  5. zezwalanie na połączenia SSH tylko do celów administracyjnych,
  6. zezwalanie tylko na bezpieczne połączenia SMTP i POP3 z uwzględnieniem uwierzytelniania,
  7. używanie zbioru protokołów IPsec we własnych sieciach lokalnych tam, gdzie to możliwe, tj. zarówno w sieciach IPv4, jak i IPv6, ponieważ szyfrowanie pakietów IP uniemożliwia fałszowanie numerów sekwencyjnych TCP,
  8. ciągłe edukowanie pracowników oraz informowanie o zagrożeniach i potencjalnych konsekwencjach ataków typu Man-in-the-Middle, takich jak kradzież poufnych informacji, wrażliwych danych, wykorzystywanie nazwy domeny firmowej do phishingu, czy wprowadzanie złośliwego oprogramowania, ransomware, botów, botnetów do sieci lokalnych.

Na zakończenie tego podrozdziału warto wskazać, że chociaż większość prób fałszowania adresów IP jest inicjowana przez cyberprzestępców, to istnieją uzasadnione zastosowania IP Spoofing, na przykład w przypadku testowania konfiguracji sieci i funkcjonalności systemu.

ARP Spoofing, czyli fałszowanie ARP:

Fałszowanie ARP, tzw. ARP Spoofing, polega na łączeniu adresu MAC hakera z adresem IP urządzenia zaatakowanej osoby przy użyciu sfałszowanej wiadomości ARP, co ma na celu oszukać inne urządzenia z sieci lokalnej ofiary i przekonać je, że są połączone i komunikują się z innym urządzeniem z ich sieci LAN. W tym przypadku wszystkie dane wysłane z urządzenia ofiary do sieci lokalnej są przekierowywane do adresu MAC urządzenia atakującego, dzięki czemu może on przejąć te dane i manipulować nimi. Warto dodać, że fałszowanie ARP może odbywać się na dwa sposoby. Pierwszym sposobem jest oczekiwanie przez hakera na dostęp do żądań ARP dla konkretnego urządzenia, a po otrzymaniu żądania ARP urządzenie hakera wysyła natychmiastową odpowiedź, co nie jest groźne, gdyż nigdzie w sieci LAN nie jest badane pochodzenie odpowiedzi na to żądanie. Druga metoda polega na rozpowszechnianiu nieautoryzowanej wiadomości zwanej „gratuitous ARP”, przez co oddziałuje jednocześnie na wiele urządzeń z sieci lokalnej, lecz generuje duży ruch sieciowy trudny do zarządzania.

Skutki ataku ARP Spoofing:

Jeże haker przeprowadzi udany atak polegający na fałszowaniu ARP, wówczas może:

  1. w dalszym ciągu podsłuchiwać komunikację sieciową oraz wykradać dane, nawet te przesyłane bezpiecznym protokołem HTTPS,
  2. przejąć kontrolę nad sesją, jeśli uzyska jej identyfikator – wówczas może uzyskać dostęp do kont, na których użytkownik jest aktualnie zalogowany – co istotne w tym przypadku haker nie musi znać ani loginów, ani haseł do tych kont,
  3. zmienić komunikację poprzez wysłanie, np. szkodliwego pliku lub zainfekowanej strony internetowej na komputer ofiary,
  4. przeprowadzić atak DDoS – w tym przypadku haker może podać adres MAC serwera, który chce zaatakować zamiast adresu MAC swojego komputera. Więcej o ataku DDoS dowiesz się z tego artykułu.

Jak wykryć atak ARP Spoofing?

Wykrycie ataku jest bardzo proste, ale jednakże warte krótkiego wyjaśnienia. Pierwszym krokiem jest uruchomienie wiersza poleceń i wpisanie w nim komendy arp-a. Dzięki temu otrzymamy odpowiedź, która mniej więcej będzie wyglądała tak:

Internet Address Physical Address

192.168.0.1           00-10-a4-05-d1
192.168.0.34          35-b3-a5-24-32
192.168.0.35          00-10-a4-05-d1

Należy zwrócić uwagę, że w powyższym przykładzie urządzenia z adresami IP 192.168.0.1 oraz 192.168.0.35 mają taki sam adres MAC. Oznacza to, że skutecznie został wykryty atak Man-in-the-Middle typu ARP Spoofing. Z otrzymanej odpowiedzi (aktualnej tablicy ARP) możemy wywnioskować, że adres IP 192.168.0.1, to prawdopodobnie router, wobec tego urządzenie hakera ma adres IP 192.168.0.35.
Przy wykrywaniu tego typu ataków w dużych sieciach pomocny jest program Wireshark, dzięki któremu można uzyskać więcej informacji o rodzaju komunikacji przeprowadzanej przez atakującego.

Zapobieganie atakom ARP Spoofing:

Aby skutecznie zapobiegać atakom fałszowania ARP należy stosować się do poniższych zaleceń:

  • używać wirtualnej sieci prywatnej (VPN, Virtual Private Network), dzięki której urządzenia mogą komunikować się ze sobą za pomocą zaszyfrowanego tunelu, co powoduje zaszyfrowanie całej komunikacji i znacząco utrudnia przeprowadzenie ataku ARP Spoofing,
  • używać statycznego ARP, ponieważ protokół ARP umożliwia zdefiniowanie statycznego wpisu ARP dla adresu IP i przez to uniemożliwia urządzeniom nasłuchiwanie odpowiedzi ARP dla tego adresu, na przykład, jeśli dany komputer zawsze łączy się z tym samym routerem, można zdefiniować statyczny wpis ARP dla tego routera, tym samym zapobiegając atakowi,
  • używać filtrowania pakietów, dzięki zastosowaniu odpowiednich rozwiązań można zidentyfikować „zatrute” pakiety ARP, zawierające sprzeczne informacje o źródle i zatrzymać je przed dotarciem do urządzeń pracujących w sieci,
  • przeprowadzać testy penetracyjne, w tym polegające na przeprowadzaniu ataków ARP Spoofing – jeśli atak się powiedzie, wówczas będzie możliwe zidentyfikowanie słabych punktów w sieci oraz poprawienie swoich środków obronnych.

DNS Spoofing, czyli fałszowanie DNS:

Fałszowanie DNS, tzw. DNS Spoofing, polega na przyjmowaniu nazwy DNS (Domain Name Service) innego systemu poprzez naruszenie pamięci podręcznej usługi nazw w zaatakowanym systemie lub przez skompromitowanie serwera nazw domen (serwera DNS) dla prawidłowej domeny. Tak zmieniony wpis DNS przekierowuje ruch przychodzący na stronę spreparowaną przez hakera. Ten atak jest pierwszym krokiem do przeprowadzenia wyrafinowanego ataku phishingowego (o atakach phishingowych przeczytasz w tym artykule oraz w tym artykule) w publicznej sieci Wi-Fi, ale także może być nakierowany na skłonienie ofiary do zainstalowania złośliwego oprogramowania typu malware, które spowoduje ujawnienie wrażliwych informacji i przekazanie ich atakującemu.
Ponadto ofiara może połączyć się z fałszywą stroną o identycznym wyglądzie jak strona prawdziwa. Tam ofiara jest proszona o zalogowanie się na swoje konto, co umożliwia cyberprzestępcy kradzież danych uwierzytelniających dostęp i innych poufnych informacji. Ponadto taka sfałszowana, szkodliwa strona jest co do zasady wykorzystywana do instalowania robaków lub wirusów na komputerze ofiary, dając atakującemu długoterminowy dostęp do urządzenia ofiary oraz do przechowanych w nim danych.
W przypadku ataku Man-in-the-Middle fałszowanie DNS polega na przechwytywaniu komunikacji między użytkownikami a serwerem DNS w celu przekierowania ofiary na inny, złośliwy adres IP. Warto dodać, że ten atak może także polegać na bezpośrednim przejęciu kontroli przez hakerów nad serwerem DNS, który zostaje skonfigurowany tak, aby zwracał złośliwe adresy IP czy też złośliwe strony internetowe.

Przykład ataku DNS cashe poisoning:

Poniższy przykład ataku DNS cashe poisoning ma na celu zobrazowanie przebiegu rzeczywistego ataku DNS Spoofing.
W naszym przykładzie haker działając na maszynie z IP 192.168.0.24 przejmuje kanał komunikacji pomiędzy klientem (ofiarą) pracującą na komputerze z adresem IP 192.168.0.20 oraz z serwerem hostującym stronę internetową www.xyz.pl i posiadającym adres IP 192.168.0.99. Przy użyciu odpowiedniego narzędzia, np. arpspoof, haker oszukuje urządzenie ofiary, tak aby uważało, że wspomniany powyżej serwer posiada adres IP 192.168.0.24 oraz wprowadza w błąd serwer informując, że klient (ofiara) także posiada adres IP 192.168.0.24.
Wobec powyższego cały atak przebiega następująco:

  • w pierwszej kolejności atakujący używa narzędzia arpspoof i w terminalu wprowadza następującą komendę: arpspoof 192.168.0.20 192.168.0.99; komenda ta sprawia, że zostaje zmodyfikowana tablica ARP serwera, powodując, że komputer hakera jest uznawany przez serwer za komputer ofiary,
  • następnie haker ponownie wykonuje komendę, lecz zamienia miejscami adresy IP klienta (ofiary) i serwera: arpspoof 192.168.0.99 192.168.0.20; komenda ta sprawia, że zostaje zmodyfikowana tablica ARP komputera ofiary, powodując, że komputer hakera jest uznawany przez komputer ofiary za serwer,
  • zakładając, że haker używa podczas ataku systemu Kali Linux, kolejno wywołuje komendę: echo 1> /proc/sys/net/ipv4/ip_forward, w rezultacie czego pakiety przesyłane pomiędzy klientem a serwerem są przechwytywane przez komputer atakującego,
  • wówczas na komputerze hakera zostaje utworzony plik hosta (192.168.0.24 xyz.pl), który odwzorowuje witrynę www.xyz.pl na lokalnym adresie IP atakującego,
  • kolejno haker ustanawia serwer WWW na swoim komputerze lokalnym i tworzy fałszywą stronę internetową przypominającą prawdziwą stronę www.xyz.pl,
  • na końcu haker używa odpowiedniego narzędzia (np. dnsspoof) do przekierowywania wszystkich żądań DNS do lokalnego pliku hosta (192.168.0.24 xyz.pl), w rezultacie czego ofiarom jest wyświetlana fałszywa witryna i poprzez interakcję z tą witryną na komputerach ofiar może zostać zainstalowane złośliwe oprogramowanie.

Warto zaznaczyć, że istnieje możliwość zapobieżenia atakom DNS Spoofing poprzez użycie zabezpieczeń serwera nazw domen (DNSSEC, czyli Domain Name System Security Extensions, DNS Security Extensions).
Dla odróżnienia od protokołu DNS, który jest nieszyfrowany i nie weryfikuje adresów IP, na które przekierowywany jest ruch, protokół DNSSEC zawiera dodatkowe metody weryfikacji. Jest to odzwierciedlone poprzez tworzenie unikalnego podpisu kryptograficznego przechowywanego wraz z innymi rekordami DNS, np. rekordem A i CNAME. Podpisu tego używa program rozpoznawania nazw DNS do uwierzytelniania odpowiedzi DNS, co jest gwarancją tego, że dany rekord nie został zmieniony.
Pomimo niezaprzeczalnych zalet protokół DNSSEC ma także swoje wady, takie jak:

  • brak poufności danych, dlatego że protokół DNSSEC uwierzytelnia, ale nie koduje odpowiedzi DNS, wobec czego atakujący mogą podsłuchiwać ruch sieciowy i wykorzystywać go do bardziej wyrafinowanych ataków,
  • skomplikowane wdrożenie – protokół DNSSEC jest często błędnie skonfigurowany, co powoduje utratę korzyści związanych z bezpieczeństwem, a nawet całkowitej odmowy dostępu do strony internetowej,
  • wyliczanie stref – protokół DNSSEC wykorzystuje dodatkowe rekordy zasobów, aby umożliwić sprawdzenie poprawności podpisu; jeden z tych rekordów, NSEC, może zweryfikować istnienie strefy DNS, ale również może być używany do przejścia przez sferę DNS w celu zebrania wszystkich istniejących rekordów DNS, co jest luką w zabezpieczeniach nazwaną „wyliczeniem stref”; nowsze wersje rekordu NSEC, czyli NSEC3 i NSEC5 publikują zaszyfrowane rekordy nazw hostów, zapobiegając tym samym wyliczaniu stref.

HTTPS Spoofing, czyli fałszowanie HTTPS:

Do czasu opracowania i wprowadzenia protokołu HTTPS, komunikacja sieciowa odbywała się za pomocą protokołu HTTP, który przesyłał dane jawnym tekstem, w tym loginy i hasła. Osoba podsłuchująca ruch sieciowy, mogła w łatwy sposób przejąć takie dane i wykorzystać je do włamania. Odpowiedzią na potrzebę zabezpieczenia komunikacji sieciowej był właśnie protokół HTTPS, który szyfruje całą komunikację. Jednakże hakerom udało się złamać zabezpieczenia protokołu HTTPS poprzez sfałszowanie klucza bezpieczeństwa. Powodowało to, że ofiara był przekonana o nawiązaniu bezpiecznego i szyfrowanego połączenia, podczas gdy atakujący mogli odszyfrować wszystkie pakiety przesyłane w trakcie komunikacji sieciowej. Ten sposób fałszowania klucza bezpieczeństwa był używany także komercyjnie w celu śledzenia i obserwowania zachowań użytkowników sieci.
Protokół HTTPS jest ściśle powiązany z certyfikatami wydawanymi przez urzędy certyfikujące oraz całą Infrastrukturą Klucza Publicznego PKI, którą szczegółowo opisałem w tym artykule. Z uwagi na i tak już obszerną treść niniejszego artykułu, nie będę wyjaśniał na czym polega wydawanie certyfikatów i posługiwanie się kluczem publicznym – jest to dokładnie wyjaśnione w przytoczonym powyżej artykule.
Wracając do fałszowania protokołu HTTPS, to możemy wyróżnić dwie jego odmiany:

  • pierwsza, która polega na fałszowaniu klucza publicznego (certyfikatu bezpieczeństwa), który jest wysyłany do przeglądarki ofiary, przez co przeglądarka zostaje „oszukana” rozpoznając połączenie jako bezpieczne, co umożliwia hakerowi przejmowanie i przekierowywanie przesyłanych danych,
  • druga polega na wykorzystaniu domeny łudząco podobnej do domeny docelowej witryny, jest to taktyka zwana „atakiem homograficznym” (homograph attack) i opiera się na zastępowaniu znaków w domenie docelowej innymi znakami spoza zestawu ASCII, ale mających bardzo podobny wygląd, dzięki czemu jest mało prawdopodobne, że niczego nie podejrzewający użytkownik zauważy różnicę, a sama przeglądarka wskaże nawiązanie bezpiecznego połączenia. Do przeprowadzenia tego ataku należy zarejestrować domenę podobną do docelowej witryny oraz odpowiedni certyfikat dla takiej domeny, aby wyglądała ona na legalną i bezpieczną. Kolejnym krokiem jest wysłanie linku do ofiary. Ponieważ większość przeglądarek obsługuje wyświetlanie nazw hostów w punycode) na pasku adresu, ofiara przyglądająca się adresowi nie zauważy, że otrzymany link prowadzi do fałszywej wersji witryny. Z uwagi na to, że przeglądarka ofiary pokazuje, iż certyfikat witryny jest zgodny z prawem i bezpieczny, dodatkowo utrudnia to wykrycie tego typu ataku, a ofiara zamiast połączyć się z prawdziwą witryną, łączy się z fałszywą domeną i przekazuje swoje dane hakerom. W tym miejscu warto wskazać, że badacz bezpieczeństwa, Xudong Zheng, w 2017 roku w ten sposób sfałszował witrynę Apple.com, posługującą się protokołem HTTPS.

Zapobieganie HTTPS Spoofing:

Jednym ze sposobów zapobiegania fałszowania HTTPS jest wyłączenie obsługi wyświetlania kodu punycode w przeglądarce. Dzięki temu w pasku adresu pojawi się prawdziwa, zakodowana nazwa domeny, co będzie stanowiło ostrzeżenie o odwiedzaniu nieautentycznej witryny. Na przykład, gdy odwiedzisz adres „https://www.apple.com”, na pasku adresu zobaczysz https://www.xn--80ak6aa92e.com, a w zakładce zamiast charakterystycznego logotypu „jabłka” zobaczysz zapisaną cyrylicą literę „A”.
Kolejnym sposobem ochrony przed atakami homograficznymi jest użycie menedżera haseł, który automatycznie wypełnia pola nazwy użytkownika i adresy witryn internetowych, podczas odwiedzania legalnej domeny. Takie menedżery haseł rozróżniają reprezentację znaków punycode, tym samym zapewniając odporność na ten typ ataku HTTPS Spoofing.

Session Hijacking, czyli przejęcie sesji:

Zanim przejdę do omawiania tego rodzaju ataku Man-in-the-Middle, wyjaśnię pokrótce czym jest bezstanowość protokołu HTTP oraz sama sesja. Sesje zostały wprowadzone jako odpowiedź na bezstanowość protokołu HTTP, która polega na tym, że protokół ten nie przechowuje żadnych informacji o poprzednich transakcjach, wobec czego każde żądanie rozpatrywane jest niezależnie od innych. Ta bezstanowość odzwierciedla się w tym, że ani klient, ani serwer nie przechowuje informacji o tym, jakie były wcześniej zapytania w ramach komunikacji pomiędzy danym klientem i danym serwerem, przez co protokół ten nie posiada stanu wewnętrznego. W związku z tym, każde zapytanie do serwera traktowane jest jako „nowe” i z punktu widzenia serwera aplikacji niemożliwe do powiązania z informacjami, np. o zalogowanym użytkowniku. Ta bezstanowość jest obchodzona za pomocą słynnych ciasteczek (cookies), ale nie zmienia to faktu, że protokół HTTP jest sam w sobie bezstanowy. Natomiast ciasteczka, to zbiory par klucz-wartość przypisanych do danej domeny lub ścieżki, które wysyłane są do serwera wraz z każdym zapytaniem i najczęściej zawierają zapisany klucz sesji, czyli unikalny identyfikator, na podstawie którego serwer ma możliwość powiązania jednego ze zbiorów danych, które przechowuje, z wysyłającym zapytanie klientem. W związku z tym, generalnie rzecz ujmując sesje, to kolekcje danych przechowywanych po stronie serwera, które w połączeniu z ciasteczkami (plikami cookie) umożliwiają obejście bezstanowości protokołu HTTP, co przejawia się, np. w niewylogowywaniu z poczty email lub profilu społecznościowego po wejściu na inną stronę internetową.
Stąd też niezwykle groźny jest atak polegający na przejęciu sesji, tzw. Session Hijacking, czyli na wykradaniu ważnej sesji użytkownika w celu uzyskania nieautoryzowanego dostępu do informacji lub usług. Powoduje to wyrzucenie zaufanego użytkownika z sesji, przy jednoczesnym blokowaniu dostępu do przejętego konta przez hakera do czasu pozyskania interesujących go informacji.
Co do zasady atak ten polega na przechwyceniu przez hakera tymczasowych plików cookie, które są ustawiane przez serwer podczas logowania do aplikacji internetowej. Takie ciasteczko przechowuje identyfikator sesji, który jest niezwykle cenny dla hakera, ponieważ jego posiadanie umożliwia przejęcie sesji zalogowanego użytkownika, a tym samym przejęcie konta użytkownika w danej aplikacji internetowej, bez znajomości loginu i hasła.

Odmiany ataku Session Hijacking:

Samo przejęcie sesji może przebiegać na kilka różnych sposobów:

  1. Session Fixation, czyli podszywanie się pod sesję, zmiana sesji – jest to metoda ataku Session Hijacking, która wykorzystuje lukę w systemie pozwalającą na podstawienie identyfikatora sesji innego użytkownika, co przejawia się w tym, że haker odkrywa, iż dana witryna (przykładowo: www.xyz.pl) nie posiada odpowiednich mechanizmów zabezpieczeń i akceptuje dowolny identyfikator sesji. Następnie cyberprzestępca wysyła do ofiary widomość phishingową, która podszywa się pod podatną witrynę (w naszym przykładzie jest to strona www.xyz.pl) w celu nakłonienia atakowanej osoby do kliknięcia w zawarty w tej wiadomości link, zawierający podstawiony identyfikator sesji (np. www.xyz.pl/?SID=0987654). Wchodząc pod dany link ofiara widzi zwyczajny ekran logowania na swoje konto, wobec czego loguje się do niego. Takie działanie osoby zaatakowanej umożliwia wejście hakerowi na stronę z podstawionym identyfikatorem sesji oraz posiadanie pełnego dostępu do konta ofiary. Warto zaznaczyć, że hakerzy wykorzystują też inny wariant tej metody ataku polegający na nakłonieniu ofiary do wypełnienia specjalnie spreparowanego formularza logowania do aplikacji webowej (wyglądający identycznie jak prawidłowy formularz), zawierającego ukryte pole ze stałym identyfikatorem sesji.
  2. Session Sniffing, czyli podsłuchiwanie sesji – jest to metoda ataku Session Hijacking polegająca na wykorzystaniu przez hakera sniffera czyli programu lub urządzenia służącego do przechwytywania i rejestrowania pakietów przepływających przez dane połączenie sieciowe, w tym plików cookie zawierających klucze sesji. Ta metoda ataku jest możliwa do przeprowadzenia, wówczas gdy dana witryna stosuje szyfrowanie SSL tylko podczas logowania. W takim przypadku wystarczy, że haker przejmie ciasteczko z kluczem sesji, aby móc bez znajomości loginu i hasła przejąć konto ofiary w podatnej na ten atak aplikacji webowej. Warto dodać, że często ten typ ataku jest przeprowadzany tam, gdzie dostępne są publiczne sieci Wi-Fi niewymagające uwierzytelnienia. Wówczas haker ustanawia swój punkt dostępu, któremu nadaje nazwę niebudzącą podejrzeń – najczęściej jest to nazwa bardzo zbliżona do nazwy publicznie dostępnej sieci Wi-Fi. Następnie przegląda pakiety pochodzące z komunikacji urządzeń osób, które nieświadomie podłączyły się do punktu dostępowego ustawionego przez hakera w celu odnalezienia ciasteczek zawierających klucze sesji.
  3. Cross-Site Scripting (XSS) – ta metoda ataku (szerzej opisana w tym artykule) polega na umieszczaniu szkodliwych skryptów (zazwyczaj napisanych w języku JavaScript) w ogólnie zaufanych witrynach internetowych. W tym celu wykorzystywane są luki w zabezpieczeniach aplikacji webowej lub serwera hostującego daną witrynę, aby po stronie klienta (w jego przeglądarce) wstrzyknąć skrypty, powodujące, że przeglądarka wykona kod skryptu podczas ładowania prawidłowej strony internetowej. Generalnie rzecz biorąc atak taki jest możliwy, gdy aplikacja webowa umieszcza niezakodowane dane wprowadzone przez użytkownika w generowanych przez siebie danych wyjściowych. W takim przypadku przeglądarka nie jest w stanie ustalić, czy skrypt jest szkodliwy, wobec czego wykonuje zawarty w nim kod, a haker uzyskuje dostęp do plików cookie zawierających klucze sesji, tokeny sesji lub innych poufnych informacji. Przykładem jednej z odmian takiego ataku (możliwej do zastosowania w ataku Session Hijacking) jest wysłanie przez hakera do ofiary wiadomości phishingowej z linkiem do zaufanej witryny, lecz zmodyfikowanym tak, aby wykorzystywał lukę w zabezpieczeniach umożliwiającą wstrzyknięcie skryptu. W naszym przypadku, wejście przez ofiarę pod taki link spowoduje wysłanie do atakującego pliku cookie zawierającego klucz sesji.
  4. Brute Force, czyli atak siłowy – w naszym przypadku w odniesieniu do wykorzystania tej metody ataku do przeprowadzenia ataku Session Hijacking, polega na próbie odgadnięcia przez hakera klucza aktywnej sesji użytkownika. Tą metodę ataku można wykorzystać jedynie w przypadku, gdy dana witryna używa krótkich lub przewidywalnych identyfikatorów sesji, przykładowo opartych o aktualną datę, godzinę czy adres IP użytkownika. Warto zaznaczyć, że obecnie ta metoda ataku w zasadzie nie jest już wykorzystywana, ponieważ nowoczesne aplikacje webowe generują losowo długie identyfikatory sesji, wobec czego ich odgadnięcie staje się praktycznie niemożliwe.
  5. Złośliwe oprogramowanie – często wykorzystywanym sposobem na przejęcie ciasteczek zawierających klucze aktywnych sesji użytkownika jest instalacja na komputerze ofiary złośliwego oprogramowania służącego do wyszukiwania takich plików cookie i przesyłania ich do atakującego. Oprogramowanie takie może zostać zainstalowane bez wiedzy ofiary, po wejściu przez nią na złośliwą lub zainfekowaną witrynę, kliknięciu w zainfekowany załącznik, czy pobraniu pliku z niezaufanego źródła.
  6. Bezpośredni dostęp do plików cookie zawartych w tymczasowej pamięci lokalnej przeglądarki ofiary. Dostęp taki może odbywać się za pośrednictwem złośliwego oprogramowania lub poprzez bezpośrednie połączenie się atakującego (zdalnie lub lokalnie) z urządzeniem ofiary.

Zapobieganie atakom Session Hijacking:

Aby ustrzec się przed przejęciem sesji, warto przestrzegać poniższych zasad, które odnoszą się do właścicieli aplikacji webowych oraz użytkowników tych aplikacji:

  1. Należy używać bezpiecznego i szyfrującego komunikację protokołu HTTPS w całej witrynie, a nie tylko, np. na stronach logowania. Ponadto użytkownicy powinni weryfikować, czy nawiązywane połączenie jest bezpieczne i używa protokołu HTTPS (charakterystyczny symbol kłódki widoczny obok pasku adresu przeglądarki), czy początek adresu URL rozpoczyna się od „https://”.
  2. Powinny być używane długie i losowe identyfikatory sesji, co zdecydowanie zmniejsza ryzyko odgadnięcia takiego identyfikatora przy wykorzystaniu ataku Brute Force.
  3. Należy ponownie generować identyfikator sesji po zalogowaniu, dzięki czemu od razu po zalogowaniu się użytkownika do aplikacji webowej zmienia się identyfikator sesji. Nawet jeżeli haker przejmie identyfikator logowania, to po chwili stanie się on bezwartościowy.
  4. Zawsze należy się wylogowywać ze swoich kont po zakończeniu na nich pracy, ponieważ minimalizuje to ryzyko ataku.
  5. Należy używać aktualnego oprogramowania antywirusowego zapobiegającego przejęciu sesji poprzez blokowanie złośliwego oprogramowania, wykradającego pliki cookie.
  6. Sesje powinny się dezaktualizować po przekroczeniu określonego limitu czasu (jest to wykorzystywane np. w bankowościach elektronicznych, gdzie po upływie określonego czasu bezczynności użytkownik zostaje automatycznie wylogowany), dzięki czemu zostaje zmniejszone okno czasowe do przeprowadzenia ataku.
  7. Należy unikać łączenia się z publicznym Wi-Fi, a jeśli takie połączenie jest konieczne, to nie należy podawać swoich danych i nie należy logować się do swoich kont.
  8. Zawsze powinno się aktualizować oprogramowanie, ponieważ kolejne aktualizacje zawierają łatki niwelujące podatności w oprogramowaniu.
  9. Należy używać VPN podczas logowania się do aplikacji webowych, ponieważ ustanowienie szyfrowanego tunelu VPN znacznie zmniejsza ryzyko przejęcia sesji. Jednakże ważne jest, aby wybierać VPN ze sprawdzonego źródła.
  10. Zawsze powinno się dokładnie czytać wyświetlane komunikaty i przerwać logowanie, jeżeli natrafi się na cokolwiek niepokojącego. Dla przykładu może pojawić się komunikat o certyfikacie, który został prawidłowo wystawiony, ale przez urząd certyfikujący niezaliczony do grupy zaufania. W takim przypadku należy natychmiast przerwać połączenie, bo ten komunikat najprawdopodobniej świadczy o próbie przejęcia sesji.

SSL Stripping, czyli usuwanie SSL:

Usuwanie SSL, tzw. SSL Stripping, SSL Deleting, polega na obniżeniu przez hakera jakości komunikacji pomiędzy klientem a serwerem do formatu niezaszyfrowanego, aby móc przeprowadzić atak Man-in-the-Middle. Przebieg ataku wygląda następująco: gdy ofiara chce połączyć się z serwerem, haker przechwytuje takie żądanie i tworzy niezależne legalne połączenie z serwerem za pośrednictwem protokołu HTTPS. Gdy haker otrzyma odpowiedź serwera, przekazuje ją ofierze w niezaszyfrowanym formacie, podszywając się pod serwer. Ofiara, myśląc, że komunikuje się z legalną stroną będzie kontynuowała wysyłanie pakietów, które następnie haker przekaże do właściwego serwera. W ten sposób haker ma dostęp do wszystkich pakietów w ramach komunikacji pomiędzy klientem i serwerem, w tym do plików cookie zawierających klucze sesji. Jednakże z łatwością można dostrzec, że stało się ofiarą ataku SSL Stripping, ponieważ komunikacja odbywa się za pomocą nieszyfrowanego protokołu HTTP, a nie bezpiecznego protokołu HTTPS, co można zauważyć w pasku adresu przeglądarki.

Zapobieganie atakom SSL Stripping:

W celu zapobiegania atakom SSL Stripping należy odpowiednio zabezpieczyć sieć lokalną przed nieupoważnionym dostępem osób trzecich, a na poziomie korporacyjnym skonfigurować silne zapory ogniowe (firewalle) i właściwie przydzielać uprawnienia pracownikom w ramach sieci firmowej. Ponadto warto stosować rozszerzenia przeglądarki, które wymuszają komunikację HTTPS tam, gdzie jest to możliwe, np. HTTPS Everywhere.

SSL Spoofing, czyli fałszowanie SSL:

Atak SSL Spoofing polega na niezgodnym z prawem pozyskaniu przez hakera certyfikatu, który wiąże klucz publiczny atakującego z nazwą domeny docelowej witryny, czyli w efekcie fałszuje bezpieczny adres strony tak, aby przeglądarka ofiary zaufała sfałszowanemu certyfikatowi. Dzięki temu haker przejmuje komunikację pomiędzy ofiarą a serwerem strony, do której haker chce uzyskać dostęp, jednocześnie ukrywając złośliwą stronę za istniejącym i zaufanym adresem URL. Pozwala to osobie atakującej na przeglądanie wszystkich pakietów przesyłanych w ramach takiej komunikacji, w tym przechwytywanie ciasteczek zawierających klucze sesji, co umożliwia hakerowi przejęcie konta użytkownika, do którego zalogował się poprzez sfałszowaną komunikację SSL.

SSL Hijacking, czyli wykradanie SSL:

Atak typu Session Hijacking, czyli przejęcie SSL, polega na wygenerowaniu fałszywych certyfikatów dla domen witryn HTTPS, które będzie próbowała odwiedzić ofiara. W rezultacie ofiara uważa, że nawiązała bezpieczne połączenie z prawdziwą witryną docelową, ale w rzeczywistości połączyła się z serwerem hakera hostującym sklonowaną lub pośredniczącą witrynę kontrolowaną przez atakującego. Następnie taki serwer przekazuje cały ruch do serwera docelowego przechowującego właściwą stronę internetową oraz ruch powrotny, umożliwiając atakującemu odczytywanie i modyfikowanie przekazywanych danych.
Warto zaznaczyć że do prawidłowego przeprowadzenia tego ataku haker musi najpierw użyć innego typu ataku Man-in-the-Middle, aby przechwycić połączenie między ofiarą (atakowanym użytkownikiem) a celem (atakowaną stroną). Można to zrobić, np. za pomocą opisanych powyżej metod ataku, takich jak ARP Spoofing, IP Spoofing, czy DNS cache poisoning. Próbując odwiedzić stronę docelową, ofiara faktycznie nawiązuje połączenie z serwerem kontrolowanym przez atakującego.

Dlaczego atak SSL Hijacking jest trudny do przeprowadzenia?

Z uwagi na sposób działania infrastruktury klucza publicznego (PKI), którą dokładnie omówiłem w tym artykule, przeglądarki ufają tylko certyfikatom podpisanym przez zaufany urząd certyfikacji (CA). Jeżeli przedstawiany przez jakąś witrynę certyfikat nie jest podpisany przez zaufany urząd certyfikacji, przeglądarka wyświetli ostrzeżenie lub odmówi otwarcia takiej strony internetowej. Przeglądarki czerpią informacje o zaufanych urzędach certyfikacji z list przechowywanych w systemach operacyjnych urządzeń, na których pracują, jednakże użytkownik może samodzielnie dodać do zaufanych inny urząd certyfikacji. Jest to wykorzystywane przez hakerów, którzy w celu powodzenia ataku SSL Hijacking dodają swój urząd certyfikacji do magazynu zaufanych certyfikatów w systemie operacyjnym. Jednakże ten element ataku musi zostać wykonany z wykorzystaniem innych wektorów ataków i luk w zabezpieczeniach, takich jak phishing czy cross-site scripting, co sprawia, że atak polegający na przejęciu SSL jest niezwykle trudny do wykonania, stąd też hakerzy zdecydowanie częściej przeprowadzają ataki SSL Stripping.

Przykładowy atak SSL Hijacking:

W naszym przykładzie celem hakera (o imieniu Michał) będzie przejęcie komunikacji pomiędzy Iwoną (osoba atakowana) oraz serwerem hostującym stronę internetową www.xyz.pl.
W tym celu Michał przeprowadza udany i ukierunkowany atak phishingowy na Iwonę, a wykorzystując luki w zabezpieczeniach JavaScript doprowadza do pobrania i zainstalowania wygenerowanego przez siebie certyfikatu CA. Pozwala to Michałowi na generowanie certyfikatów TLS/SSL, którym będzie ufała przeglądarka Iwony.
Następnie Michał konfiguruje swój serwer WWW tak, aby działał jako niewidoczny serwer proxy, czyli pośredniczący w przekazywaniu komunikacji (w obie strony) pomiędzy Iwoną a stroną www.xyz.pl.
Z uwagi na to że komputer Iwony został skonfigurowany do korzystania z pamięci podręcznej DNS lokalnego dostawcy Internetu, Michał przeprowadza atak DNS cache poisoning (będący odmianą ataku DNS Spoofing) na serwery DNS lokalnego dostawcy Internetu, co powoduje, że komputer Iwony przechowuje w pamięci podręcznej adres IP Michała jako adres IP serwera hostującego stronę www.xyz.pl. Dopóki pamięć lokalna komputera Iwony nie zostanie wyczyszczona, będzie łączyć się z kontrolowanym przez Michała adresem IP za każdym razem, gdy spróbuje nawiązać połączenie z witryną www.xyz.pl.
Stąd też, gdy Iwona wpisze „https://www.xyz.pl” w pasku adresu, jej przeglądarka wyszuka adres IP w lokalnej pamięci podręcznej swojego komputera i zamiast z właściwą stroną połączy się z adresem IP Michała, po czym zaakceptuje fałszywy certyfikat SSL/TLS dla witryny www.xyz.pl. Żadne ostrzeżenie nie zostanie wyświetlone, ponieważ przeglądarka pomyślnie weryfikuje fałszywy certyfikat SSL/TLS przy użyciu zainstalowanego wcześniej przez Michała certyfikatu CA. W związku z tym przeglądarka Iwony tworzy połączenie SSL z serwerem Michała, dzięki czemu Michał odszyfrowuje cały ruch SSL, rejestruje go, a następnie oddzielnie przekazuje do prawdziwego serwera przechowującego stronę www.xyz.pl za pośrednictwem bezpiecznego połączenia po stronie tego serwera. W związku z tym ani Iwona, ani serwer hostujący stronę www.xyz.pl nie mogą wiedzieć, że jest doszło do ataku MITM.
Na zakończenie warto dodać, że hakerzy mogą wykorzystać informacje zebrane podczas ataku SSL Hijacking do przeprowadzenia innych ataków. Mogą na przykład użyć klucza sesji z przechwyconych sesyjnych plików cookie do przeprowadzania w przyszłości ataków polegających na przejęciu sesji, potencjalnie umożliwiając im łączenie się z uwierzytelnionymi obszarami witryny, np. wskazanej w naszym przykładzie www.xyz.pl, przy użyciu identyfikatora sesji użytkownika po zakończeniu ataku MITM.

W jaki sposób wykryć atak SSL Hijacking?

Niestety po stronie docelowej witryny nie ma możliwości wykrycia ataku przejęcia SSL. Dla docelowego serwera WWW jest to prawidłowe połączenie SSL/TLS, niezależnie od tego, że pochodzi ono od atakującego, a nie od pierwotnego użytkownika.
Jeśli ofiara nie zainstalowała fałszywego certyfikatu CA, może łatwo wykryć próby przejęcia SSL, ponieważ w takich przypadkach przeglądarka ostrzega, że certyfikat jest nieważny.
Jeżeli natomiast ofiara ma zainstalowany w systemie fałszywy certyfikat CA, wykrycie ataku SSL Hjacking jest praktycznie niemożliwe. Co prawda nadal można odkryć, że stało się ofiarą ataku SSL Hijacking, dokładnie weryfikując certyfikat TLS/SSL i sprawdzając jego wystawcę, datę wydania, itp. W praktyce jest jednak mało prawdopodobne, aby dokonać analizy każdego certyfikatu dla odwiedzanych witryn nawiązujących połączenie HTTPS, zwłaszcza w przypadku stron, które są znane użytkownikowi i często przez niego odwiedzane.

Czy można zapobiegać atakom SSL Hijacking?

Nie ma jednej zasady, której przestrzeganie uchroni nas przed atakiem SSL Hijacking. Można nawet śmiało wysnuć twierdzenie, że ofiara nie ma możliwości zapobiec przeprowadzeniu ataku polegającego na przejęciu SSL. Podobnie sytuacja wygląda po stronie serwera hostującego daną witrynę, gdyż nie ma możliwości odróżnienia połączenia pochodzącego od prawdziwego użytkownika od połączenia pochodzącego z serwera proxy atakującego.
Jedynymi sposobami obrony przed atakiem SSL Hijacking są: nieinstalowanie podejrzanego oprogramowania, które przemyca fałszywy certyfikat CA, unikanie niezabezpieczonych sieci, takich jak publiczne Wi-Fi, czy używanie VPN.
Należy zauważyć, że zapora sieciowa (WAF, Web Application Firewall) może zapobiegać przechwytywaniu SSL tylko wtedy, gdy jest zainstalowana na oddzielnej maszynie (na przykład na routerze) lub jeśli korzysta z innego magazynu certyfikatów niż główny system operacyjny. Jeśli WAF polega na certyfikatach CA w systemie operacyjnym ofiary w celu weryfikacji autentyczności domeny, haker może go oszukać dokładnie w taki sam sposób, jak przeglądarkę.

Sniffing, czyli podsłuchiwanie ruchu sieciowego:

Co do zasady sniffing polega na monitorowaniu i analizowaniu ruchu sieciowego w celu przechwytywania komunikacji sieciowej dla pozyskiwania ważnych danych i informacji. W związku z tym działania takie mogą być zarówno legalne jak i nielegalne. Legalnie mogą podsłuchiwać ruch sieciowy administratorzy sieci, w tym dostawcy usług internetowych, którzy w ten sposób szybciej mogą wykryć problemy związane z przepustowością łącz i płynnością przepływu danych, a w związku z tym szybciej zapobiec powstającym błędom lub sprawniej je naprawić.
Natomiast hakerzy wykorzystują sniffing w celach przestępczych do kradzieży poufnych danych, w tym tajemnic handlowych, informacji biznesowych, wiadomości mailowych, haseł, ustawień routerów, itp. Z uwagi na charakter pozyskiwanych informacji ataki sniffingowe dotyczą przeważnie instytucji rządowych, czy firm operujących na wrażliwych danych, jak np. danych do logowania, hasłach bankowych, czy numerach kart płatniczych.

Czym jest sniffer?

Do skutecznego ataku sniffingowego należy użyć sniffera, który jest oprogramowaniem lub urządzeniem służącym do przechwytywania i analizowania ruchu sieciowego. Jednakże należy wyraźnie rozróżnić „Sniffera” od „sniffera”. „Sniffer” pisany przez duże „S”, to legalne, komercyjne opatentowane i chronione znakiem towarowym narzędzie sieciowe istniejące na rynku od końca lat ’80 XX wieku. Natomiast „sniffer” pisane przez małe „s” odnosi się do każdego narzędzia sieciowego służącego do monitorowania i gromadzenia pakietów danych przesyłanych w ramach komunikacji sieciowej, niezależnie czy jest ono komercyjne, czy otwarto źródłowe.
Samo działanie sniffera można zawrzeć w następującej sekwencji, mianowicie zbieranie danych poprzez nasłuchiwanie ruchu w sieci i rejestrację danych nieinterpretowanych, kolejno konwersję zebranych danych poprzez ich przetworzenie w format czytelny dla człowieka, a następnie analizę danych dokonywaną poprzez weryfikację i filtrowanie zdarzeń, maszyn czy protokołów. Należy zaznaczyć, że część snifferów nie posiada funkcji analizy danych i do tego celu wymagają zainstalowania dodatkowego oprogramowania. Przykładami popularnych snifferów są narzędzia, takie jak Wireshark, Tcpdump czy dSniff.

Jak przebiega atak sniffingowy?

Co do zasady do skutecznego przeprowadzenia ataku konieczne jest pozyskanie dostępu do sieci lokalnej przez hakera oraz użycie sniffera w celu śledzenia ruchu sieciowego. W związku z tym rozróżnia się dwa rodzaje sniffingu:

  1. snifing pasywny – jest to atak, w którym haker nie wchodzi w interakcję z ofiarą, lecz podłącza się do sieci i przechwytuje całą komunikację; ten typ ataku jest szczególnie skuteczny w sieciach opartych na koncentratorach (hub) i w sieciach bezprzewodowych; atak ten opiera się na specyficznym działaniu koncentratora, który odbiera dane na jednym porcie, a następnie rozsyła je do urządzeń podłączonych do pozostałych portów, bez weryfikacji, czy są one adresatami tych danych, czy też nie; taka konstrukcja koncentratora, który jest centrum sieci, umożliwia umieszczenie w nim sniffera i podsłuchiwanie całej komunikacji sieciowej dystrybuowanej przez hub; z uwagi na to, że obecnie już nie buduje się sieci przewodowych opartych o koncentratory, ten typ ataku staje się coraz mniej popularny,
  2. sniffing aktywny – jest to atak, w którym haker musi wykonać określone czynności, np. nawiązać interakcję z ofiarą w celu zaatakowania pamięci asocjacyjnej switcha (CAM), a dokładniej tablicy CAM, która jest odpowiedzialna za przechowywanie adresów MAC urządzeń działającej w sieci lokalnej i podłączonych do atakowanego przełącznika; na podstawie tablicy CAM przełącznik decyduje które urządzenie jest adresatem danego pakietu danych i przekazuje mu te dane; przeprowadzając ten atak haker zalewa przełącznik fałszywymi żądaniami w celu przepełnienia tablicy CAM, ponieważ po jej przepełnieniu switch zacznie działać jak hub i będzie wysyłał pakiety do wszystkich portów, w tym do tych kontrolowanych przez hakera.

Jak wykryć sniffera?

Należy zaznaczyć, że rozpoznanie obecności sniffera jest bardzo trudne, ponieważ działalność sniffera nie daje wyraźnych objawów, gdyż nie obciąża nadmiernie sieci i nie powoduje spowolnienia jej działania. Stąd też jego wykrycie wymaga zaawansowanej wiedzy informatycznej i przeprowadzania testów ruchu DNS, czy odwrotnego przeszukiwania DNS przez administratorów sieci. Jednakże nawet zastosowanie tych środków nie daje 100% pewności odnalezienia sniffera, dlatego też sniffing jest jedną z najbardziej nieuchwytnych form przechwytywania informacji.

Profilaktyka, czyli jak zabezpieczyć się przez sniffingiem?

Kluczem do zabezpieczenia się przed atakiem sniffingowym jest profilaktyka, polegająca na:

  1. unikaniu publicznych hotspotów Wi-Fi, ponieważ najczęściej sniffery występują w kiepsko zabezpieczonych publicznych sieciach,
  2. korzystaniu z usługi VPN w trakcie połączenia z siecią publiczną, ponieważ dane przesyłane tunelem VPN są szyfrowane, lecz niektóre programy do sniffngu zawierają obsługę dekryptażu niektórych protokołów,
  3. nieklikaniu w podejrzane odnośniki, ponieważ mogą one przekierowywać do IP sniffera, przez co ofiara przekaże swój adres IP hakerowi, dzięki czemu będzie on mógł podsłuchiwać komunikację sieciową prowadzoną przez ofiarę,
  4. korzystaniu wyłącznie z bezpiecznych i szyfrowanych komunikatorów i serwisów pocztowych, dzięki czemu odczytanie przesyłanych poufnych informacji przez osoby niepowołane w zasadzie będzie niemożliwe,
  5. sprawdzaniu protokołu używanego do transmisji danych, tzn. czy jest to nieszyfrowana komunikacja (przedrostek „http” przed adresem danej strony internetowej), czy szyfrowana komunikacja (przedrostek „https” przed adresem danej strony internetowej) – co świadczy o tym, że data strona posiada certyfikat SSL/TLS dowodzący jej autentyczności i szyfrowaniu przesyłanych danych,
  6. stałym monitorowaniu i przeprowadzaniu skanów sieci firmowej w celu wykrycia potencjalnych zagrożeń,
  7. zastosowaniu biometrii behawioralnej, polegającej na ciągłej analizie zachowań użytkownika, a w przypadku wykrycia anomalii zablokowanie dostępu takiemu użytkownikowi.

Wariacje ataku Man-in-the-Middle:

Niezależnie od wymienionych powyżej rodzajów ataku Man in the Middle możemy wyróżnić także różne warianty i odmiany tego ataku. Zaliczamy do nich:

  1. Man-in-the-browser (MITB),
  2. Man-in-the-mobile (MITMo),
  3. Man-in-the-cloud (MITC).

Atak Man-in-the-Browser (MITB):

Atak Man-in-the-Browser (MITB) jest jednym z typów (wariacji) ataku MITM. Celem tego ataku jest przeglądarka internetowa używana przez ofiarę. Do zainfekowania przeglądarki haker używa wirusa typu koń trojański proxy, jednocześnie wykorzystując luki w zabezpieczeniach przeglądarki umożliwiające przechwytywanie i manipulowanie połączeniami pomiędzy plikiem wykonywalnym głównej aplikacji (np. przeglądarką) a jej mechanizmami bezpieczeństwa lub dynamicznie ładowanymi bibliotekami. Dzięki temu haker ma możliwość modyfikowania stron internetowych, treści transakcji lub wprowadzania dodatkowych transakcji w sposób niezauważalny zarówno dla użytkownika, jak i hosta danej aplikacji internetowej.
Najczęstszym celem ataku MITB jest dokonanie oszustwa finansowego poprzez manipulowanie transakcjami w systemach bankowości internetowej, nawet jeśli zastosowane są dodatkowe czynniki uwierzytelniające, w związku z czym na powodzenie tego ataku nie mają wpływu takie mechanizmy bezpieczeństwa, jak używanie certyfikatu SSL w ramach PKI, a także uwierzytelnianie dwuetapowe (2FA) lub wieloetapowe (MFA).
Warto zaznaczyć, że zainstalowany wcześniej koń trojański (trojan horse) działa pomiędzy przeglądarką a mechanizmem bezpieczeństwa przeglądarki, podsłuchując lub modyfikując transakcje, które są tworzone w przeglądarce, lecz nadal wyświetlając użytkownikowi wykonywaną przez niego transakcję.
Niestety z uwagi na swoje wyrafinowanie, atak ten jest niezwykle trudny do wykrycia przez użytkownika, ponieważ nie widzi on jego efektu (w trakcie przeprowadzania ataku), ponieważ atakowane są takie komponenty przeglądarki jak:
– Browser Helper Objects, czyli dynamicznie ładowane biblioteki podczas uruchamiania przeglądarki (w przeglądarce Internet Explorer),
– Extensions (Rozszerzenia), czyli dynamicznie ładowane biblioteki podczas uruchamiania przeglądarki (w przeglądarce Mozilla Firefox),
– API-Hooking, czyli technika używana do wykonywania ataku MITM między wykonywalną aplikacją (.exe) a jej bibliotekami (.dll),
– JavaScript, czyli wykonanie ataku za pomocą złośliwego robaka Ajax, który jest również snifferem.

Przykłady ataków typu „człowiek w przeglądarce”:

  1. Zeus to trojan, który kradnie dane logowania do bankowości internetowej i przeprowadza nieautoryzowane transfery środków. Był również używany do przeprowadzania oszustw związanych z pomocą techniczną. Ataki były przeprowadzane w przeglądarkach Mozilla Firefox i Internet Explorer (IE), a ich celem były konta takich gigantów, jak Amazon, Bank of America, Departament Transportu Stanów Zjednoczonych i Cisco. Ataki MITB mogą być również przeprowadzane w przeglądarkach urządzeń mobilnych, czego przykładem może być wirus Zeus w smartfonie.
  2. OddJob to trojan wyspecjalizowany w atakowaniu stron bankowych. Atak jest przeprowadzany z wykorzystaniem takich przeglądarek jak Mozilla Firefox czy Internet Explorer, a sam wirus aktywuje się, gdy zainfekowany użytkownik otworzy stronę bankową. Celem ataku jest token identyfikatora sesji użytkownika w czasie rzeczywistym w celu dokonania transakcji na koncie bankowym. Atak ten jest trudny do wykrycia, ponieważ wirus nie jest przechowywany na dysku zainfekowanego urządzenia.
  3. SpyEye to trojan, który prosi użytkownika o podanie informacji, takich jak konta bankowe, hasła, nazwy użytkownika lub numery kart kredytowych. Wpływa na działanie wielu przeglądarek internetowych, w tym takich jak: Google Chrome, Mozilla Firefox, Internet Explorer i Opera. Warto zaznaczyć, że ten wirus ten może również działać jako keylogger. Ponadto znana jest wersja SpyEye na urządzenia mobilne, co jest kolejnym przykładem ataku MITB na urządzenia mobilne, w tym przypadku wymierzonym w użytkowników Androida.

Jakie są oznaki ataku typu „człowiek w przeglądarce”?

Ataki typu Man-in-the-Browser są trudne do wykrycia, ponieważ niezależnie od tego, że strona internetowa została utworzona lub zmieniona przez hakera, to adres URL tej strony internetowej może być poprawny, a sama strona internetowa może wyglądać podobnie do jej prawidłowej wersji.
Jednakże można wskazać na oznaki wskazujące na trwający atak MITB, należą do nich:
– wykrywanie złośliwego oprogramowania przez systemy antywirusowe,
– nagłe wylogowanie użytkownika z konta,
– otrzymywanie powiadomień o logowaniu z lokalizacji oddalonych od urządzenia użytkownika,
– strona internetowa nie jest w pełni załadowana (brakuje na niej określonych elementów) lub zawiera dodatkowe elementy.

Jak zapobiegać atakom typu Man-in-the-Browser?

Pomimo tego, że ataki MITB są trudne do wykrycia, to można im zapobiegać poprzez:
– wykrywanie e-maili phishingowych, ponieważ to właśnie phishing jest główną metodą inicjowania ataku MITB,
– używanie oprogramowania antywirusowego lub zabezpieczającego, które może wykrywać trojany i ataki MITM, a tym samym może również wykrywać ataki MITB; przykładami takiego oprogramowania mogą być Mimecast i Codesealer,
– używanie uwierzytelniania poza pasmem, które jest rodzajem uwierzytelniania dwuskładnikowego, wymagającego wtórnej metody weryfikacji poprzez oddzielny kanał komunikacyjny wraz z typowym identyfikatorem i hasłem, co utrudnia hakowanie konta; jednak ta metoda nie jest w 100% niezawodna, ponieważ niektóre trojany mogą również przechwytywać przychodzące wiadomości tekstowe,
– wykrywanie potencjalnie złośliwych stron internetowych oraz weryfikowanie przez użytkowników, czy znajdują się na stronie internetowej z poprawnym odpowiadającym jej adresem URL i że nic w takiej witrynie nie jest nie na miejscu ani nie zostało zmienione,
– używanie wirtualnej sieci prywatnej, ponieważ VPN zasłania przesyłany lub odbierany ruch sieciowy i ogranicza zdolność hakera do modyfikowania ruchu.

Warianty ataku Man-in-the-Browser:

Możemy wyróżnić następujące odmiany ataku MITB:

  1. Boy-in-the-Browser (BITB) to wariant ataku Man-in-the-Browser, w którym atakujący wykorzystuje złośliwe oprogramowanie do zmiany routingu sieci komputerowej użytkownika. Po przekierowaniu złośliwe oprogramowanie samo się usuwa, aby utrudnić wykrycie tego ataku,
  2. Browser-in-the-Browser (BITB), to atak, w którym atakujący próbuje zasymulować okno przeglądarki w przeglądarce, aby sfałszować legalną domenę. Celem tego typu ataku jest pomyślne przeprowadzenie skutecznych ataków phishingowych, które dla ofiary będą wyglądały jak najbardziej wiarygodnie.

Atak Man-in-the-Mobile (MITMo):

Atak Man-in-the-Mobile, zwany również Man-in-the-Phone oraz MITMo jest odmianą ataku Man-in-the-Middle, która pojawiła się wraz z rozwojem telefonów komórkowych, które zaczęły się stawać urządzeniami komputerowymi. Taki rozwój technologii komórkowej umożliwił dystrybucję złośliwego oprogramowania dedykowanego na smartfony. Najprostszym kanałem dystrybucji stały się zainfekowane aplikacje mobilne. Można było i cały czas można je pobrać w oficjalnych sklepach z aplikacjami (choć należy zaznaczyć, że aplikacje przed umieszczeniem w danym sklepie są weryfikowane, a jeśli zostanie odkryty zawarty w nich złośliwy kod, to są natychmiast usuwane) lub klikając w link zawarty w wiadomości phishingowej. Takie szkodliwe oprogramowanie potrafi przechwytywać cały ruch SMS, w tym kody autoryzacji i przekazuje je hakerom, dzięki czemu możliwe jest ominięcie opartych na SMS-ach systemów autoryzacji poza pasmem oraz inicjowanie przelewów niezgodnych z wolą właściciela konta. Ponadto hakerzy mogą odsłuchiwać i nagrywać rozmowy głosowe, mieć dostęp do historii przeglądania stron internetowych, a nawet przejąć kontrolę nad urządzeniem mobilnym. Niestety zarówno uwierzytelnianie poza pasmem, jak i jednorazowe hasła są łatwo łamane przez takie oprogramowanie.
Atak MITMo jest niezwykle trudny do wykrycia i zdecydowanie lepiej mu zapobiegać. Tutaj środki ochrony są w zasadzie podobne do tych z innych rodzajów ataku MITM, czyli niewchodzenie na podejrzane strony internetowe, nieklikanie w linki zawarte w wiadomościach od nadawców, których nie znamy lub w wiadomościach, których się nie spodziewany, ostrożne i rozważne instalowanie aplikacji pochodzących wyłącznie z oficjalnych sklepów, np. AppleStore czy GooglePlay.

Atak Man-in-the-Cloud (MITC):

Man-in-the-Cloud (MITC), czyli człowiek w chmurze, to stosunkowo nowa odmiana ataku Man-in-the-Middle, która pojawiła się wraz z rozwojem technologii chmurowych. Korzyści płynące z tych usług, takie jak automatyczne tworzenie kopii danych firmowych poza jej siedzibą, udostępnianie plików, współpraca i niezależny od systemu dostęp do danych w chmurze z każdego miejsca w dowolnym czasie, nie pozostały niezauważone przez hakerów, którzy wymyślili właśnie atak MITC wykorzystujący korzyść płynącą z dostępu do danych z dowolnego miejsca w dowolnym czasie.

Technika ataku MITC:

Sposób przeprowadzenia ataku Man-in-the-Cloud jest stosunkowo prosty i opiera się na aplikacji, która synchronizuje się z usługą w chmurze poprzez wykorzystanie tokenu synchronizacji w celu uzyskania dostępu do właściwego konta i danych. Następnie haker umieszcza złośliwe oprogramowanie w systemie docelowym (zwanym przełącznikiem) często za pomocą ataku socjotechnicznego (phishingowego) w formie wiadomości email zawierającej złośliwy załącznik. Kolejno, ofiara po otwarciu załącznika automatycznie uruchamia złośliwe oprogramowanie, które przenosi token synchronizacji ofiary do rzeczywistego folderu synchronizacji danych. Następnie oprogramowanie to zastępuje oryginalny token innym stworzonym przez atakującego. Nowy token wskazuje konto, do którego ma dostęp atakujący. W związku z tym, gdy zaatakowana aplikacja następnym razem zsynchronizuje folder synchronizacji danych, oryginalny token synchronizacji jest kopiowany do lokalizacji w chmurze atakującego, skąd może zostać pobrany, a następnie przez niego wykorzystany. Takie działanie umożliwia hakerowi dostęp do danych zapisanych w chmurze ofiary z dowolnego urządzenia. Ponadto haker ma możliwość synchronizowania szkodliwych plików, zainfekowanych złośliwym oprogramowaniem, z powrotem do lokalnego folderu synchronizacji danych ofiary, a nawet zastępowania często używanych plików, którym ofiara ufa. Obrazując skalę niebezpieczeństwa tego ataku warto wskazać na używane przez hakerów złośliwe oprogramowanie Switcher, które może z powrotem skopiować oryginalny token synchronizacji i usunąć się w dowolnym momencie, skutecznie usuwając większość dowodów ataku. Dodatkowo hakerzy mogą modyfikować sposób przeprowadzenia tego ataku, dostosowując go do docelowej platformy chmurowej, np. uzupełniając atak o dodatkowe funkcje, jak np. instalacja backdoora.

Czy można wykryć atak Man-in-the-Cloud?

Wykrycie ataku MITC jest trudne i nigdy nie mamy 100% pewności, że poczynione przez nas działania będą w pełni skuteczne w wykryciu tego ataku. Oczywiście można logować się do usługi w chmurze przy użyciu innego tokenu synchronizacji, co jest jednoznaczne z logowaniem się jako inny użytkownik, jednakże bez dalszego kontekstu związanego ze zdarzeniem, dzienniki IDS lub serwera proxy wykażą co najwyżej, że nastąpiła pozornie uzasadniona synchronizacja z chmurą, co nie uzasadnia rozpoczęcia alarmu. Oczywiście uważny użytkownik platformy chmurowej mógłby przeanalizować historię geolokalizacji logowania za pośrednictwem różnych platform, lecz metoda ta nie daje pełnej gwarancji wykrycia ataku Man-in-the-Cloud.
Znacznie większa szansa na wykrycie ataku MITC pojawia się na etapie rzeczywistego ataku phishingowego za pośrednictwem poczty e-mail. W tym przypadku tradycyjne (behawioralne) oprogramowania antywirusowe w większości przypadków powinny wykryć złośliwy kod zawarty w załączniku do takiej wiadomości. Zaletą polegania na tych technologiach jest to, że atak jest wykrywany na wczesnym etapie procesu, dzięki czemu może zostać zablokowany ręcznie lub automatycznie.

Mitygacja, czyli łagodzenie skutków ataku MITC:

Aby można było załagodzić skutki ataku Man-in-the-Cloud, najpierw należy choćby częściowo wykryć ten atak, a następnie zebrać odpowiednie dowody. W przypadku zakończonego ataku wykwalifikowany haker cofa wszystkie zmiany systemowe i usuwa wszystkie powiązane z atakiem pliki zawierające złośliwe oprogramowanie. Lecz czasem zdarza się, że hakerzy nie sprzątają po ataku, zostawiając tym samym dowody. Może też zajść sytuacja, w której albo atak, albo następujący po nim proces oczyszczania kończy się niepowodzeniem, co także pozostawia po sobie ślad. Prowadząc mitygację należy bezwzględnie usunąć wszystkie pliki związane ze złośliwym oprogramowaniem. Ponadto należy zamknąć zhakowane konto w chmurze i zastąpi go nowym. Takie działanie gwarantuje, że skradziony token synchronizacji nigdy więcej nie zostanie użyty z uwagi na usunięcie konta, z którym był związany. Jest to o tyle istotne, że haker, posiadając prawidłowy token, może się logować na zhakowane konto ofiary z dowolnego urządzenia, bez konieczności dostępu do systemu osoby zaatakowanej.

Jak zapobiegać atakom MITC?

Co zasady możemy wyróżnić cztery podstawowe zasady, których przestrzeganie uniemożliwi lub znacząco utrudni przeprowadzenie ataku Man-in-the-Cloud.
Do tych zasad zaliczamy:

  • Dane przechowywane w chmurze powinny być zaszyfrowane – co prawda samo szyfrowanie nie chroni przed atakiem, jednakże może zminimalizować naruszenia danych, które mogą mieć miejsce w następstwie skutecznego przeprowadzenia ataku MITC. Jednakże niezwykle istotne jest, aby kluczy szyfrowania nie przechowywać w docelowej usłudze chmurowej, gdyż tylko w takim przypadku dane, do których haker uzyskał dostęp w wyniku ataku MITC, pozostaną dla niego zaszyfrowane.
  • Należy zawsze stosować minimum uwierzytelnianie dwuskładnikowe (2FA) lub uwierzytelnianie wieloskładnikowe (MFA). 2FA oraz MFA są dostępne w wiodących usługach chmurowych, takich jak Office 365, a także w specjalistycznych rozwiązaniach zabezpieczających stworzonych w celu weryfikacji tożsamości użytkowników we wszystkich zasobach chmurowych organizacji. Uwierzytelnianie wieloskładnikowe dodaje dodatkową warstwę zabezpieczeń, która może łatwo udaremnić atak Man-in-the-Cloud, który nie ma możliwości uwierzytelnienia poza tokenem OAuth.
  • Powinno się używać brokera bezpieczeństwa dostępu do chmury, czyli Cloud Access Security Broker (CASB). Jest to jeden z najbardziej wszechstronnych sposobów ochrony przed atakami MITC, ponieważ CASB pośredniczą w całym ruchu między aplikacjami chmurowymi organizacji a urządzeniami końcowymi, tym samym automatycznie zastępują tokeny OAuth każdej aplikacji. Gdy urządzenie próbuje uzyskać dostęp do aplikacji w chmurze, unikalny, zaszyfrowany token jest prezentowany CASB, który odszyfrowuje go i przekazuje do aplikacji. W konsekwencji, jeśli token użytkownika miałby zostać zastąpiony tokenem hakera, złośliwy token nie przeszedłby weryfikacji i odszyfrowania na serwerze proxy, co wiąże się z odmową dostępu do konta ofiary i tym samym udaremnia atak.
  • Należy prowadzić regularne szkolenia w zakresie bezpieczeństwa, co jest jednym z najprostszych i najskuteczniejszych środków bezpieczeństwa, lecz niestety często pomijanych. Jak już wyżej wspomniałem sukces ataków MITC opiera się na socjotechnice. Stąd też dobrze wyszkolony, czujny pracownik jest znacznie mniej skłonny do kliknięcia w złośliwy link lub podejrzany załącznik w phishingowej wiadomości e-mail.

Jak rozpoznać atak MITM

Zgodnie z tym, co napisałem na temat rozpoznawania poszczególnych odmian i rodzajów ataków Man-in-the-Middle, rozpoznanie tego ataku jest niezwykle trudne, co nie oznacza, że niemożliwe.
Dla przykładu można posłużyć się atakiem MITM na sesję SSL, gdzie w przypadku trwającego ataku na etapie próby przejęcia połączenia, czyli w momencie autoryzacji, ofiara zobaczy komunikat o prawidłowości wystawionego certyfikatu, jednak wystawionego przez urząd certyfikacji niezaliczany do grupy zaufania. Na podobnej zasadzie można rozpoznać atak MITM na sesję SSH, ponieważ również i w tym przypadku urządzenie ofiary wyświetli stosowny komunikat informujący o zmianie certyfikatu.
Kolejnym sposobem na wykrycie ataku Man-in-the-Middle jest śledzenie czasu odpowiedzi serwera i weryfikacja pojawiających się rozbieżności. Jeśli odpowiedzi serwera docierają wyjątkowo długo, może to świadczyć o aktualnie przeprowadzanym ataku, ponieważ w takim przypadku komunikacja odbywa się poprzez urządzenie hakera, które w tym przypadku działa jak serwer proxy.
W przypadku ataku, do przeprowadzenia którego haker wstrzykuje kod JavaScript do strony, z której korzysta ofiara, osoba zaatakowana zobaczy komunikat informujący o utracie połączenia z serwerem i prośbą o ponowne zalogowanie.
W przypadku próby przejęcia DNS następuje fałszowanie adresu z minimalnie zauważalnymi zmianami, np. przykładowy adres www.dobrastrona.com, może zostać zastąpiony adresem www.dobrastroma.com lub www.dobra-strona.com. Niestety jest to niezwykle skuteczna metoda ataku, ponieważ większość użytkowników Internetu nie sprawdza dokładnie adresów stron i tym samym nie zwraca uwagi na drobne zmiany.
Ponadto częste rozłączanie się połączenia z Internetem, czy też znaczące spowolnienie transferu danych może świadczyć nie tylko o problemach z siecią, ale może także wskazywać na trwający atak Man-in-the-Middle.
Także o przeprowadzanym ataku MITM świadczy tablica ARP zawierająca takie same adresy MAC dla urządzeń z różnymi adresami IP.

Sposoby obrony przed MITM

Najlepszym zabezpieczeniem przed różnego rodzaju wersjami i odmianami ataku Man-in-the-Middle jest skuteczna ochrona, która uniemożliwi lub znacząco utrudni przeprowadzenie takiego ataku.
Do podstawowych zasad obrony i ochrony przez atakami MITM można zaliczyć:

  • unikanie niezabezpieczonych i publicznych sieci W-Fi,
  • używanie VPN, gdyż szyfruje ono komunikację, a próba włamania się do tunelu VPN skutkuje jego zawaleniem i stworzeniem nowego prowadzącego poprzez inne routery,
  • wylogowywanie się ze swoich kont po zakończeniu aktywności, gdyż często samo zamknięcie przeglądarki utrzymuje aktywną sesję, dzięki czemu po przejęciu ruchu przez hakera może on zalogować się na nasze konto,
  • niezapisywanie haseł w przeglądarkach, ponieważ mogą one w łatwy sposób umożliwić dostęp hakerowi do konkretnych kont,
  • stosowanie unikalnych haseł dla każdego konta, które są odpowiednio silne oraz zmienianie ich co najmniej co 3 – 4 miesiące,
  • stosowanie uwierzytelniania wieloskładnikowego (MFA),
  • stosowanie silnego algorytmu szyfrowania w komunikacji pomiędzy klientem a serwerem, jednak do tego serwer musi mieć włączone szyfrowanie przesyłanych (serwowanych) danych,
  • używanie dedykowanych wtyczek bezpieczeństwa, takich jak np. HTTPS Everywhere lub ForceTLS, które zawsze, kiedy to możliwe, wymuszają nawiązanie bezpiecznego połączenia,
  • posiadanie aktywnego i aktualnego programu antywirusowego, który zapobiega atakom MITM,
  • bieżące aktualizowanie oprogramowania, ponieważ kolejne wydania zawierają łatki niwelujące podatności na ataki danej aplikacji (takie podatności mogą tworzyć furtkę do skutecznego przeprowadzenia ataku MITM),
  • odpowiednią konfigurację routera, bieżącą aktualizację jego oprogramowania oraz zabezpieczenie go za pomocą silnego hasła i standardu szyfrowania WPA3 oraz niepozostawianie domyślnych danych logowania producenta,
  • nieklikanie w podejrzane linki i załączniki, nawet jeśli wiadomość wygląda wiarygodnie, w szczególności, jeśli jest się proszonym o aktualizację hasła lub podanie innych poświadczeń logowania,
  • przerwanie nawiązanej sesji (w serwisach wymagających logowania) w każdym niepokojącym przypadku oraz uważne czytanie wszystkich pojawiających się komunikatów,
  • zdobywanie wiedzy na temat cyberzagrożeń, w tym dotyczących ataków Man-in-the-Middle.

Podsumowanie

W tym miejscu wyraźnie pragnę zaznaczyć, że zdecydowanie i stanowczo sprzeciwiam się wszelkiej nielegalnej działalności w cyberprzestrzeni. Podane w niniejszym artykule nazwy oprogramowania oraz przykłady przeprowadzonych ataków mają jedynie charakter edukacyjny, aby Czytelnik zdobył szerszą i bardziej dogłębną wiedzę na temat niezwykle powszechnego zagrożenia, jakim są ataki Man-in-the-Middle oraz dowiedział się w jaki sposób ataki te są przeprowadzane i jak można im zapobiegać.
Jednocześnie na zakończenie dodam, że pomimo tego, iż ataki MITM stanowią coraz poważniejsze zagrożenie oraz są stosunkowo łatwe do przeprowadzenia, to podstawowa higiena informatyczna oraz stosowanie się do zasad i reguł bezpiecznego korzystania z sieci Internet uniemożliwi lub znacząco utrudni przeprowadzenie takiego ataku. Także osoby odpowiedzialne za cyberbezpieczeństwo organizacji i przedsiębiorstw nie stoją na przegranej pozycji. Z odpowiednią wiedzą oraz wspomagani profesjonalnym oprogramowaniem mogą skutecznie stawić czoła hakerom starającym się przejąć ruch sieciowy.

Autor: Michał Mamica

ŹródłoMITM
Zobacz również

SKOMENTUJ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj

Artykuły

Komentarze