Co to jest przejmowanie sesji? Jak zapewnić prywatność sesji?
Opublikowany: 2021-07-13Między logowaniem a wylogowaniem może się wiele wydarzyć.
Atakujący szukają sesji, w których mogą uzyskać nieautoryzowany dostęp do Twoich kont i wykorzystać Twoje dane. Powinieneś upewnić się, że Twoje dane logowania są uwierzytelniane w bezpiecznym środowisku i chronić się przed atakami polegającymi na przejmowaniu sesji.
Możesz użyć zapory sieciowe aplikacji internetowych do wykrywania anomalii w ruchu przychodzącym i blokowania potencjalnie złośliwego ruchu, gdy się pojawia. Aby jednak naprawić solidne zabezpieczenia, kluczowe jest szczegółowe zrozumienie przejmowania sesji, jego rodzajów oraz narzędzi, których atakujący mogą użyć do penetracji kont użytkowników.
Co to jest przejmowanie sesji?
Przejmowanie sesji , znane również jako przejmowanie plików cookie, to proces przejmowania kontroli nad sesją użytkownika poprzez uzyskanie lub wygenerowanie identyfikatora sesji, gdy sesja jest jeszcze w toku.
Osoba atakująca może użyć skryptów krzyżowych (XSS), brute force, inżynierii wstecznej lub różnych innych metod, aby uzyskać dostęp do plików cookie sesji i uzyskać nieautoryzowany dostęp do kont użytkowników.
Sesja rozpoczyna się, gdy logujesz się do usługi, takiej jak aplikacja internetowa, a kończy się, gdy się wylogujesz. Hypertext Transfer Protocol (HTTP) jest protokołem bezstanowym, co oznacza, że każde żądanie przenosi niezależnie, bez odwoływania się do żadnego poprzedniego żądania, co wymaga od użytkownika uwierzytelniania za każdym razem, gdy przegląda stronę internetową. Aby uniknąć monitowania użytkownika o zalogowanie się za każdym razem, serwer przypisuje identyfikator sesji, aby zapewnić bezproblemową obsługę sieci Web po uwierzytelnieniu.
Atakujący próbują ukraść identyfikator sesji celu lub nakłonić ich do kliknięcia złośliwego łącza, które przeniesie ich do prefabrykowanej sesji w celu przeprowadzenia ataku polegającego na przejmowaniu sesji. Gdy użytkownik zostanie uwierzytelniony na serwerze, cyberprzestępcy mogą przejąć sesję i nakłonić serwer do uznania ich sesji za ważną.
Gdy osoba atakująca obiera za cel plik cookie sesji, jest to związane z przejęciem sesji aplikacji sieci Web, a nie przejęciem sesji protokołu TCP (Transmission Control Protocol). TCP to protokół transportowy, który jest używany jako dodatek do IP, aby zapewnić niezawodną transmisję pakietów. Aplikacja internetowa zwraca plik cookie sesji po pomyślnym uwierzytelnieniu, które osoba atakująca wykorzystuje do przejęcia sesji. Nie ma to nic wspólnego z połączeniem TCP między urządzeniem użytkownika a serwerem.
Metody przejmowania sesji
Atakujący zazwyczaj mają do wyboru kilka metod podczas przejmowania sesji. Mogą używać ich pojedynczo lub w połączeniu, aby przejmować konta użytkowników i przeprowadzać złośliwe działania.
Skrypty między witrynami
W ataku typu cross-site scripting (XSS) złośliwy haker nakłania komputer celu do wykonania kodu podszywającego się pod zaufany kod należący do serwera. Umożliwia atakującemu uzyskanie kopii pliku cookie w celu wykonania złośliwych działań. Zazwyczaj strony internetowe są osadzane za pomocą JavaScript. Bez odpowiednich zabezpieczeń i narzędzia bezpieczeństwa aplikacji, ujawnia poufne informacje użytkowników, jeśli skrypty są wykonywane.
Jeśli serwer nie ustawi atrybutu HTTPOnly w plikach cookie sesji, skrypty mogą narazić je na atak.
Wstrzyknięcie złośliwego oprogramowania
Niektóre złośliwe oprogramowanie lub trojany są zaprogramowane do kradzieży plików cookie przeglądarki i wykonywania złośliwych działań bez wiedzy użytkownika. Na przykład, gdy użytkownik odwiedza złośliwą witrynę internetową lub klika niechciany link, złośliwe oprogramowanie skanuje ruch sieciowy, zbiera sesyjne pliki cookie i wysyła je do złych podmiotów. Atakujący mający dostęp do pamięci lokalnej mogą ukraść klucze sesji z tymczasowej pamięci lokalnej przeglądarki (jar z plikami cookie) lub mogą uzyskać zawartość pliku lub pamięci serwera lub komputera użytkownika.
Brutalna siła
Atakujący mogą wykonać atak brute force, aby odgadnąć klucz sesji użytkownika. Gdy aplikacja używa sekwencyjnego lub przewidywalnego klucza sesji, naraża sesję na przejęcie. W przeszłości była to preferowana metoda z wyboru, ale w przypadku nowoczesnych aplikacji identyfikatory sesji są długie i losowo generowane, co zapewnia znaczną odporność na ataki typu brute force.
Podnoszenie po stronie sesji
W przypadku przechwytywania po stronie sesji atakujący wykorzystuje sniffowanie pakietów, aby odczytać ruch sieciowy i wykraść plik cookie sesji. Zazwyczaj strony internetowe używają szyfrowania Secure Sockets Layer/Transport Layer Security (SSL/TLS) na swoich stronach uwierzytelniania. Mimo to niektórzy nie używają go w całej witrynie po uwierzytelnieniu, umożliwiając atakującym przechwycenie danych wymienianych między serwerem a stronami internetowymi.
Gdy atakujący dostaną pliki cookie sesji, mogą przejąć sesje użytkowników w celu przeprowadzenia złośliwych operacji. Na przykład zły aktor atakujący użytkownika podłączonego do niezabezpieczonej sieci Wi-Fi może łatwo odczytać dane lub ruch współdzielony między innymi węzłami i punktami dostępowymi.
Utrwalanie sesji
Atakujący mogą czasami stworzyć zamaskowaną sesję i nakłonić użytkownika do uwierzytelnienia się na podatnym serwerze. Na przykład aktor groźby może użyć Inżynieria społeczna (phishing) lub podobna metoda przekonania użytkownika do kliknięcia łącza prowadzącego do spreparowanej sesji ze znanym plikiem cookie sesji. Po uwierzytelnieniu użytkownika osoba atakująca może użyć znanego klucza sesji, aby przejąć sesję użytkownika.
Atakujący może również nakłonić użytkowników do wypełnienia gotowego formularza logowania, który zawiera ukryty i stały identyfikator sesji.
Poziomy ataków polegających na przejmowaniu sesji
Istnieją dwa poziomy ataków polegających na przejmowaniu sesji. Ataki te mogą być ze sobą powiązane, ponieważ udany atak na warstwę sieci przekaże atakującemu informacje umożliwiające wykorzystanie rzeczywistego użytkownika na poziomie aplikacji.
Porwanie warstwy transportowej
Przejęcie warstwy transportowej występuje w połączeniach TCP, w których atakujący przechwytuje wymianę danych między serwerem sieciowym a użytkownikiem, odgradzając ustawiony między nimi kanał komunikacyjny. Następnie źli aktorzy wysyłają złośliwe pakiety danych podszywające się za legalne zarówno do klienta, jak i serwera, przejmując sesję użytkownika.
Powszechną metodą przejmowania warstwy transportowej jest spoofing IP , w którym atakujący używa sfałszowanego adresu IP zamaskowanego jako zaufany, aby komunikować się z komputerami w sieci. Wykorzystują pakiety IP kierowane według źródła do przechwytywania aktywnej komunikacji między dwoma węzłami. Spoofing IP wykorzystuje nadmierną korzyść z jednorazowego uwierzytelniania na początku sesji TCP.
Przechwytywanie warstwy aplikacji
W przejmowaniu warstwy aplikacji osoba atakująca kradnie identyfikator sesji użytkownika po uwierzytelnieniu się użytkownika w aplikacji. Ataki typu man-in-the-middle to typowe przykłady przejmowania sesji w warstwie aplikacji, w których porywacz przechwytuje kanał komunikacji między klientem a serwerem.
Ataki proxy również podlegają przejmowaniu warstwy aplikacji. Atakujący kieruje ruch do serwera proxy ze wstępnie zdefiniowanym identyfikatorem sesji, aby przechwycić komunikację podczas tych ataków.
3 rodzaje przejmowania sesji
Przejmowanie sesji polega na zgadywaniu lub przechwytywaniu plików cookie sesji w istniejącej sesji lub nakłanianiu użytkownika do uwierzytelnienia w sesji prefabrykowanej. Istnieją trzy rodzaje ataków polegających na przejmowaniu sesji.
1. Aktywny
W aktywnym przejmowaniu sesji atakujący przejmuje aktywne połączenie w sieci. Mogą wyciszyć wszystkie urządzenia i przejąć kanał komunikacji między klientem a serwerem. Następnie puszczają powiązania między serwerem a urządzeniem użytkownika.
Napastnik może przerwać komunikację między klientem a serwerem na kilka sposobów. Zazwyczaj intruzi wysyłają ogromny ruch, aby zaatakować prawidłową sesję i spowodować atak typu „odmowa usługi” (DoS) .
2. Pasywny
Pasywne przechwytywanie sesji jest podobne do aktywnego, z tą różnicą, że osoba atakująca monitoruje komunikację między klientem a serwerem. Atakujący nie blokuje rzeczywistego użytkownika z sesji, ale nadzoruje trwającą wymianę komunikacyjną.
Podstawowym motywem ataków pasywnych jest kradzież wymienianych informacji i wykorzystywanie ich do złośliwych celów.
3. Hybrydowy
Hybrydowe ataki polegające na przejmowaniu sesji są kombinacją ataków aktywnych i pasywnych. W ataku hybrydowym atakujący monitorują ruch sieciowy do momentu znalezienia problemu, a następnie przejmują sesję i zaczynają podszywać się pod legalnych użytkowników.

Ataki hybrydowe zależą od spoofingu i są dalej klasyfikowane do następujących typów:
- Atak ślepego fałszowania polega na tym, że atakujący atakują ofiarę bez zakłócania sesji. Przechwytują pakiety danych wymieniane między serwerem a użytkownikiem i próbują złamać sekwencje pakietów TCP.
- Atak non-blind spoofing obejmuje monitorowanie ruchu między serwerem a użytkownikiem w celu przewidzenia kolejnego paktu w celu prognozowania zakresu sekwencji TCP. Atakujący przejmuje sesję na poziomie aplikacji i tworzy nową sesję, używając tokenu sesji, który może zostać skradziony lub przewidywalny.
Przejmowanie sesji a podszywanie się pod sesję a powtórka sesji
Podstawową różnicą między przejmowaniem sesji a fałszowaniem sesji jest czas ataku.
Ataki polegające na przejmowaniu sesji są przeprowadzane po uwierzytelnieniu się użytkowników w aplikacji. Atak może prowadzić do opóźnień lub nietypowego zachowania w aplikacjach. Dzieje się tak, ponieważ osoba atakująca wykorzystuje Twoje dane, gdy nadal jesteś zalogowany. Jeśli aplikacja często ulega awarii, może to sugerować atak polegający na przejmowaniu sesji.
W przypadku podszywania się pod sesję ofiary nie są świadome ataku. Osoby atakujące mogą używać skradzionych lub sfałszowanych identyfikatorów sesji i podszywać się pod prawdziwych użytkowników bez konieczności przeprowadzania uwierzytelniania przez użytkownika.
Powtórka sesji jest nieco inna.
Podczas odtwarzania sesji atakujący mają już pliki cookie sesji (zebrane w wyniku przejmowania sesji) i mogą z nich korzystać w dowolny sposób. Mogą nakłonić ofiarę do ponownego przesłania wcześniej ważnego żądania, na przykład kupowania wielu ilości przedmiotów, o które pierwotnie prosiła o jedną jednostkę.
Narzędzia do przechwytywania sesji
Kilka narzędzi może pomóc atakującemu w przeprowadzeniu ataku polegającego na przejmowaniu sesji. Możesz ich używać w testy penetracyjne i sprawdź, czy Twoje systemy i aplikacje są odporne na ataki.
Oto niektóre z popularnych narzędzi do przejmowania sesji używanych do przeprowadzenia ataku.
* Tych narzędzi należy używać wyłącznie do celów etycznych, aby testować i wzmacniać systemy przed przejęciem sesji.
Chomik i Fretka
Hamster działa jak serwer proxy, który manipuluje danymi zebranymi przez Ferret, który przechwytuje sesyjne pliki cookie, które przechodzą przez sieć.
Oto przykład użycia Chomika przedstawiony przez Narzędzia Kali:
root@kali:~# chomik
--- Podnośnik boczny HAMPSTER 2.0 ---
Ustaw przeglądarkę tak, aby używała proxy http://127.0.0.1:1234
DEBUGOWANIE: set_ports_option(1234)
DEBUGOWANIE: mg_open_listening_port(1234)
Proxy: słuchanie 127.0.0.1:1234
początek wątku
T-Sight
T-Sight został początkowo opracowany jako narzędzie do monitorowania sieci do działania na platformie Windows. Jednak podczas monitorowania sieci można przejąć sesję, ponieważ cała komunikacja w sieci jest kopiowana w czasie rzeczywistym, zapewniając precyzyjne wyjście transmisji danych. Z tego powodu Engrade, twórca T-Sight, udostępnia teraz licencje na oprogramowanie tylko dla wcześniej określonych adresów IP.
Juggernaut
Juggernaut to narzędzie do sniffowania sieci, które może zostać złośliwie wykorzystane do przeprowadzenia ataku polegającego na przejmowaniu sesji. Możliwe jest skonfigurowanie Juggernauta, aby obserwował cały ruch sieciowy w sieci lokalnej (LAN) lub nasłuchiwał konkretnego tokena sesji. Można go ustawić tak, aby rejestrował ruch sieciowy po próbie zalogowania się ofiary.
Juggernaut różni się od zwykłych snifferów sieciowych, które rejestrują cały ruch sieciowy w ogromnych plikach dziennika. Juggernaut utrzymuje bazę danych połączeń, która pozwala atakującemu obserwować wszystkie połączenia oparte na protokole TCP, a nawet przejąć sesję. Narzędzie do przechwytywania sesji zapewnia również wbudowaną funkcję składania pakietów. Atakujący wykorzystują tę funkcję do fragmentacji pakietów w celu uniknięcia systemów wykrywania włamań i zapór sieciowych.
Oto przykład użycia Juggernauta po uruchomieniu go za pomocą wiersza poleceń systemu Linux:
Juggernaut ?) Pomoc 0) Informacje o programie 1) Baza danych połączeń 2) Szpiegowanie połączenia 3) Resetowanie połączenia 4) Demon automatycznego resetowania połączenia 5) Przejęcie połączenia Simplex 6) Interaktywne przejęcie połączenia 7) Moduł składania pakietów 8) Numer opcji Souper sekret osiem 9) Zejdź w dół
- Baza danych połączeń pokazuje aktywne połączenie.
- Szpiegowanie połączenia pozwala monitorować ruch sieciowy w otwartych kanałach komunikacyjnych i zapewnia opcję przechowywania dzienników.
- Resetowanie połączenia zamyka sesję, wysyłając pakiet RST do źródła.
- Demon automatycznego resetowania połączenia umożliwia skonfigurowanie hosta na podstawie adresu IP i pakietu RST do źródła za każdym razem, gdy host próbuje nawiązać sesję.
- Przejęcie połączenia Simplex umożliwia wprowadzenie pojedynczego polecenia do celu. Atakujący używają go, aby zapobiec wykryciu.
- Interaktywne przejęcie połączenia umożliwia przeprowadzenie pełnego przejęcia sesji i stworzenie dużej burzy ACK.
- Moduł składania pakietów pozwala na stworzenie własnego pakietu.
- Souper sekret opcja numer osiem nie ma żadnej funkcjonalności.
- Step down umożliwia wyjście z programu.
Były to niektóre z narzędzi, których atakujący używają do przeprowadzania ataków polegających na przejmowaniu sesji.
Musisz wzmocnić swoje sieci i systemy przed podobnymi narzędziami, takimi jak Hunt, TTY-Watcher, IP-Watcher, 1164, Wireshark, SSHMITM, Hjksuite, C2MYAZZ, których atakujący używają do wykorzystywania sesji użytkownika.
Jak zapobiec przejmowaniu sesji
Przejmowanie sesji może mieć tragiczne konsekwencje dla organizacji, w tym straty finansowe i utratę reputacji po latach budowania dobrej reputacji i wiernej obsługi w branży.
Firmy muszą ustalić strategiczne środki bezpieczeństwa, aby uniknąć stania się celem ataków polegających na przejmowaniu sesji. Środki te obejmują:
- Szyfrowanie całej transmisji danych na stronie internetowej
- Wdrażanie certyfikacji Hypertext Transfer Protocol Secure (HTTPS) na stronach internetowych
- Regularne aktualizowanie i łatanie przeglądarek
- Wdrażanie narzędzi cyberbezpieczeństwa, takich jak oprogramowanie do ochrony przed atakami DDoS i technologia oszustwa
- Ostrożnie logując się i wylogowując z każdej sesji
- Włącz frameworki internetowe zamiast tworzyć wewnętrzny system zarządzania sesjami
- Zregeneruj klucz sesji po uwierzytelnieniu, aby uniemożliwić hakerom wykorzystanie identyfikatora sesji wygenerowanego podczas logowania
- Wzmocnij weryfikację tożsamości, włączając dodatkowe kontrole, takie jak weryfikacja zwykłego adresu IP użytkownika lub trendów użytkowania aplikacji
- Korzystaj wyłącznie z bezpiecznych sieci bezprzewodowych i unikaj korzystania z publicznych sieci Wi-Fi
- Maskuj swój adres IP za pomocą oprogramowania wirtualnej sieci prywatnej (VPN) i chroń swoje sesje
Posiadanie protokołu HTTPS obejmującego całą witrynę jest prawdopodobnie najważniejszym mechanizmem zapobiegawczym. Jeśli martwisz się problemami z wydajnością, możesz wdrożyć SSL na stronach logowania do witryny oraz w innych wrażliwych obszarach. Innym ważnym środkiem zapobiegawczym byłoby zaszyfrowanie wartości sesji przechowywanej w pliku cookie sesji.
Chroń swoje sesje
Przejęcie sesji może być kłopotliwe. Bądź proaktywny i ustaw odpowiedni mechanizm obronny, aby chronić się przed atakami polegającymi na przejmowaniu sesji oraz chronić swoje konto i dane.
Ponieważ hakerzy stale opracowują nowe metody przełamywania barier ochronnych organizacji, zapewnienie 100% bezpieczeństwa może być jeszcze trudniejsze.
Dowiedz się więcej o reagowaniu na incydenty oraz o tym, jak zarządzać cyberincydentem, gdy osoba atakująca uzyska dostęp do Twojego konta lub danych.