Czy zdajesz sobie sprawę, że cyberprzestępca może wykonywać w Twoim imieniu transakcje bankowe lub robić zakupy w internecie, nie wyłudzając przy tym Twoich danych logowania?
Pliki cookie często kojarzą się z monitorowaniem aktywności i natrętnymi reklamami, ale przechowują one także informacje o Twoich zapytaniach, co umożliwia Ci przeglądanie stron bez konieczności każdorazowego wpisywania nazwy użytkownika i hasła.
Jednakże, jeśli niepowołana osoba zdobędzie dostęp do Twojego pliku cookie, może to skutkować groźnym cyberatakiem, zwanym przejęciem sesji. Taki atak może wystawić Twoje wrażliwe dane na niebezpieczeństwo i spowodować poważne szkody, zanim w ogóle zorientujesz się, co się dzieje.
Przekonajmy się, czym dokładnie jest ten atak i jak możesz się przed nim bronić!
Czym jest przejęcie sesji?
Przejęcie sesji ma miejsce, gdy atakujący przejmuje kontrolę nad ustanowionym połączeniem między Tobą a serwerem, takim jak serwer WWW, sesja Telnet, czy dowolne inne połączenie wykorzystujące protokół TCP. Sesja rozpoczyna się w momencie zalogowania do serwisu lub aplikacji, na przykład do platformy społecznościowej.
Sesja trwa, gdy przeglądasz swój profil, uczestniczysz w dyskusji, i kończy się w momencie wylogowania z systemu. Ale w jaki sposób serwer identyfikuje, że każde kolejne zapytanie pochodzi właśnie od Ciebie?
Właśnie tutaj pojawiają się pliki cookie. Gdy się logujesz, wysyłasz swoje dane uwierzytelniające do serwera. Serwer potwierdza Twoją tożsamość i przesyła Ci identyfikator sesji w postaci pliku cookie, który jest z Tobą powiązany przez cały czas trwania sesji. Dlatego nie wylogowujesz się z aplikacji za każdym razem, gdy przeglądasz czyjś profil, a sklep internetowy pamięta zawartość Twojego koszyka nawet po odświeżeniu strony.
Niestety, cyberprzestępcy mogą przejąć sesję, wykorzystując techniki manipulacji sesją lub kradnąc plik cookie. W ten sposób mogą wprowadzić serwer w błąd, sprawiając, że będzie on myślał, że żądania pochodzą od Ciebie, czyli od autoryzowanego użytkownika.
Zjawisko przejmowania sesji zyskało na popularności na początku XXI wieku, ale wciąż stanowi jedną z częściej stosowanych metod ataków przez hakerów.
Przykładem może być grupa Lapsus$, która w bieżącym roku znalazła się na liście najbardziej poszukiwanych przez FBI. Wykorzystują oni infekcje złośliwym oprogramowaniem typu InfoStealer do przejmowania sesji.
Podobnie GenesisStore, sklep dostępny tylko na zaproszenie, prowadzony przez grupę o tej samej nazwie, zajmuje się sprzedażą przejętych danych z plików cookie. Ich baza danych przekracza 400 000 zainfekowanych komputerów.
Rodzaje przejmowania sesji
Przejęcie sesji możemy podzielić na dwie główne kategorie, w zależności od działań podjętych przez atakującego.
Aktywne: W przypadku ataku aktywnego, atakujący przejmuje kontrolę nad sesją, przechwytując aktywne połączenie klienta z zasobem. W zależności od rodzaju sesji, haker może robić zakupy online, zmieniać hasła lub odzyskiwać konta. Typowymi przykładami ataków aktywnych są ataki brute force, XSS, a nawet DDoS.
źródło: OSWAP
Pasywne: W ataku pasywnym, atakujący nie przejmuje kontroli nad sesją ani jej nie modyfikuje. Zamiast tego, dyskretnie monitoruje przepływ danych między Twoim urządzeniem a serwerem, gromadząc wrażliwe informacje. Do przeprowadzania ataków pasywnych często wykorzystuje się fałszowanie adresów IP oraz wstrzykiwanie złośliwego oprogramowania.
źródło: OSWAP
Jak działa przejęcie sesji?
HTTP to protokół bezstanowy, co oznacza, że serwer nie przechowuje informacji o poprzednich operacjach klienta. Każde nowe zapytanie HTTP jest traktowane jako osobna jednostka pracy. W prostych słowach, serwer udostępnia strony użytkownikowi, nie pamiętając jego wcześniejszych żądań.
Jednak podczas przeglądania internetu, aplikacje doskonale wiedzą, kim jesteśmy. Dzięki tej „pamięci” serwera możliwe jest tworzenie zaawansowanych funkcji, takich jak strefy użytkowników w serwisach internetowych, systemy bankowości online czy usługi poczty e-mail.
Aby to było możliwe, wprowadzono mechanizm, który przekształca protokół bezstanowy, jakim jest HTTP, w protokół stanowy: są to pliki cookie.
Sesje stanowe
Po zalogowaniu się, aplikacje internetowe wykorzystujące sesje stanowe pozostawiają w przeglądarce plik cookie sesyjny. Używają one tego pliku cookie do śledzenia klienta. W pliku cookie przechowywany jest unikatowy kod, który umożliwia identyfikację użytkownika, np.:
SESSIONID=ACF3D35F216AAEFC
Każda osoba, która posiada powyższy identyfikator sesji, będzie traktowana przez serwer jako autoryzowany użytkownik. Jeśli atakujący wejdzie w posiadanie tego identyfikatora, może wykorzystać sesję, która została już uwierzytelniona. Może to zrobić poprzez podsłuchanie legalnej sesji, a nawet całkowite przejęcie jej kontroli. Identyfikator sesji jest zazwyczaj umieszczany w adresie URL, w ukrytym polu formularza lub w plikach cookie.
OSWAP
Sesje bezstanowe
Wraz z rozwojem internetu pojawiły się metody zarządzania „pamięcią” serwera bez konieczności korzystania z plików cookie sesyjnych. W przypadku aplikacji internetowej, w której front-end i back-end są wyraźnie oddzielone i komunikują się wyłącznie za pośrednictwem API, optymalnym rozwiązaniem może być JWT (JSON Web Token). Jest to podpisany token, który pozwala front-endowi korzystać z API dostarczanych przez back-end.
Zazwyczaj token JWT jest zapisywany w obszarze pamięci sessionStorage przeglądarki, który jest aktywny do momentu zamknięcia zakładki. W rezultacie otwarcie nowej zakładki powoduje utworzenie nowej sesji (w przeciwieństwie do tego, co dzieje się w przypadku plików cookie).
Kradzież tokena identyfikacyjnego klienta umożliwia przejęcie sesji i przeprowadzenie ataku. Ale w jaki sposób taki token może zostać skradziony?
Obecnie najczęściej stosowane przez hakerów metody to:
#1. Przechwytywanie sesji po stronie klienta
Ta metoda wykorzystuje niezabezpieczone sieci w celu uzyskania identyfikatora sesji. Atakujący używa oprogramowania typu „sniffing”, aby śledzić dane przesyłane w sieci, i często atakuje publiczne sieci Wi-Fi lub strony internetowe bez certyfikatu SSL, które są znane ze słabego poziomu bezpieczeństwa.
#2. Utrwalanie sesji
Ofiara używa identyfikatora sesji utworzonego przez atakującego. Może to nastąpić w wyniku ataku phishingowego (za pomocą złośliwego linku), który „podmienia” Twój identyfikator sesji.
#3. Atak Brute Force
Jest to najbardziej czasochłonna i nieefektywna metoda. W tym ataku, haker nie kradnie plików cookie. Zamiast tego, próbuje wszystkich możliwych kombinacji, aby odgadnąć identyfikator sesji.
#4. XSS, czyli skrypty między witrynami
Haker wykorzystuje luki w zabezpieczeniach stron internetowych lub aplikacji, aby wstrzyknąć złośliwy kod. Kiedy użytkownik odwiedza witrynę, skrypt aktywuje się, kradnie pliki cookie użytkownika i wysyła je do atakującego.
#5. Wstrzyknięcie złośliwego oprogramowania
Złośliwe oprogramowanie może wykonywać na urządzeniu nieautoryzowane działania w celu kradzieży danych osobowych. Jest również często wykorzystywane do przechwytywania plików cookie i przesyłania ich do cyberprzestępcy.
#6. Fałszowanie adresu IP
Cyberprzestępca zmienia adres IP pakietu danych tak, aby wyglądał, jakby pochodził od Ciebie. Z powodu sfałszowanego adresu IP, serwer WWW myśli, że to Ty, i sesja zostaje przejęta.
Jak chronić się przed przejęciem sesji?
Możliwość przejęcia sesji zazwyczaj wynika z poziomu zabezpieczeń stron internetowych lub aplikacji, z których korzystasz. Istnieją jednak kroki, które możesz podjąć, aby się chronić:
- Unikaj publicznych sieci Wi-Fi, ponieważ darmowe punkty dostępu są idealne dla cyberprzestępców. Zazwyczaj mają słabe zabezpieczenia i mogą być łatwo sfałszowane przez hakerów. Ponadto, są one często pełne potencjalnych ofiar, których dane są narażone na ryzyko.
- Każda strona internetowa, która nie korzysta z certyfikatu SSL, naraża Cię na niebezpieczeństwo, ponieważ nie może szyfrować przesyłanych danych. Sprawdź, czy strona jest bezpieczna, szukając symbolu kłódki obok adresu URL.
- Zainstaluj oprogramowanie chroniące przed złośliwym oprogramowaniem, które będzie monitorować Twoje urządzenie i chronić je przed wirusami, które mogą kraść dane osobowe.
- Pobieraj aplikacje tylko z oficjalnych sklepów lub stron internetowych, aby uniknąć instalowania złośliwego oprogramowania.
- Jeśli otrzymasz wiadomość z prośbą o kliknięcie w nieznany link, nie rób tego. Może to być atak typu phishing, który może zainfekować urządzenie i wykraść dane osobowe.
Użytkownik ma ograniczony wpływ na ochronę przed atakiem typu Session Hijacking. Jednak aplikacja może wykryć, że inne urządzenie połączyło się z tym samym identyfikatorem sesji. Na tej podstawie można opracować strategie łagodzenia ataku, takie jak:
- Powiązanie każdej sesji z unikatowym identyfikatorem technicznym lub parametrami urządzenia, aby wykrywać zmiany w zarejestrowanych ustawieniach. Informacje te muszą być zapisane w pliku cookie (dla sesji stanowych) lub w JWT (dla sesji bezstanowych) i całkowicie zaszyfrowane.
- W przypadku sesji opartych na plikach cookie, ustawienie dla pliku cookie atrybutu HTTPOnly, aby uniemożliwić jego dostęp w przypadku ataku XSS.
- Wdrożenie systemu wykrywania włamań (IDS), systemu zapobiegania włamaniom (IPS) lub oprogramowania do monitorowania sieci.
- Niektóre usługi przeprowadzają dodatkowe kontrole tożsamości użytkownika. Na przykład serwer sieciowy może za każdym razem sprawdzać, czy adres IP użytkownika jest zgodny z adresem IP używanym podczas ostatniego zapytania w ramach tej sesji. Nie zapobiega to jednak atakom ze strony osób, które mają ten sam adres IP i może być frustrujące dla użytkowników, których adres IP może ulec zmianie w trakcie sesji.
- Innym rozwiązaniem jest zmiana wartości pliku cookie przy każdym zapytaniu. Drastycznie skraca to czas, w którym atakujący może działać i ułatwia identyfikację, czy doszło do ataku. Może to jednak powodować inne problemy techniczne.
- Używanie różnych metod uwierzytelniania wieloskładnikowego (MFA) dla każdej sesji użytkownika.
- Aktualizacja wszystkich systemów przy pomocy najnowszych poprawek i aktualizacji zabezpieczeń.
Często zadawane pytania
Jaka jest różnica między przejęciem sesji a fałszowaniem sesji?
Przejęcie sesji polega na podszywaniu się pod użytkownika, natomiast fałszowanie sesji polega na zastąpieniu użytkownika. W ostatnich latach niektórzy specjaliści ds. bezpieczeństwa zaczęli klasyfikować fałszowanie sesji jako rodzaj przejęcia sesji.
Słowo na zakończenie
Częstotliwość ataków polegających na przejęciu sesji wzrosła w ostatnich latach, dlatego tak ważne jest, aby zrozumieć istotę tych ataków i stosować środki zapobiegawcze. Wraz z rozwojem technologii, ataki stają się coraz bardziej wyrafinowane, dlatego konieczne jest opracowywanie proaktywnych strategii łagodzenia skutków przejmowania sesji.
Być może zainteresuje Cię również, ile warte są Twoje dane w darknecie.
newsblog.pl