Kradzież sesji. Dlaczego hasło czasem już nie wystarcza

blackweb.pl 4 min

Zmieniasz hasło po wycieku i czujesz ulgę. Potem ktoś nadal siedzi na koncie. Nie zgadł nowego hasła. Wziął sesję, która już była otwarta. Po zalogowaniu serwis wystawia token albo cookie: ten przeglądarkowy kontekst jest zaufany. Kto skopiuje ten token na inną maszynę, często omija ponowne podanie hasła i drugi czynnik, dopóki sesja żyje.

To zwykły model sieciowych aplikacji, tylko oglądany od strony ataku. W słowniku opisałem cookie sesyjne krótko. Tu rozbijam, dlaczego po MFA hasło bywa już nieaktualne i co robić, gdy podejrzewasz kradzież sesji.

Sesja po MFA

Wieloskładnikowe logowanie chroni moment wejścia. Wpisujesz hasło, potwierdzasz aplikacją albo kluczem, serwer uznaje Cię za Ciebie i wydaje sesję. Od tej chwili większość kliknięć nie pyta ponownie o MFA. Inaczej korzystanie z poczty czy panelu byłoby nie do życia.

Atakujący, który wejdzie w posiadanie ważnego cookie lub tokenu odświeżającego, dziedziczy ten stan „już zalogowany”. Nie musi łamać 2FA w tej chwili. Korzysta z faktu, że Ty już je przeszedłeś.

Komunikaty w stylu „mam MFA, jestem bezpieczny” są więc niepełne. MFA podnosi koszt kradzieży hasła. Nie unieważnia automatycznie skradzionych sesji i nie chroni przed malware, które zbiera cookie z dysku. Nie chroni też przed sytuacją, w której zatwierdzisz logowanie pod naciskiem, a potem sesja żyje tygodniami na cudzej maszynie. Osobno pisałem o zmęczeniu push MFA; tu temat jest inny: sekret po udanym logowaniu.

Długość życia sesji bywa liczona w dniach. „Zapamiętaj mnie na tym urządzeniu” wydłuża okno. Wygodne w domu. Kosztowne, gdy domowy komputer zbiera stealer.

Skąd biorą się sesje w obrocie

Najczęstszy cywilny wektor, o którym piszę w tym dzienniku, to infostealery. Malware na komputerze ofiary pakuje zapisane hasła, pliki cookie, czasem tokeny rozszerzeń. Paczka trafia do obrotu. Kupujący nie „łamie Google”. Importuje sesję i sprawdza, co jeszcze żyje.

Bywają też XSS, złośliwe rozszerzenia, przejęte urządzenia domowe, źle wylogowane przeglądarki na cudzym sprzęcie. Mechanizm jest ten sam: sekret sesji opuścił zaufane środowisko.

Narzędzi do replayu cookie tu nie rozpisuję. Wystarczy skutek: hasło na serwerze może być już inne, a sesja sprzed zmiany nadal ważna, jeśli serwis jej nie unieważnił.

Reakcja, która ma sens

Po podejrzeniu infekcji albo wycieku sesji sama zmiana hasła to za mało. Potrzebujesz unieważnienia sesji po stronie usług: „wyloguj wszystkie urządzenia”, „revoke sessions”, lista aktywnych logowań. Potem nowe hasło, sprawdzenie metod 2FA (czy ktoś nie dopisał sobie klucza), przegląd przekierowań poczty i aplikacji OAuth.

Kolejność bywa ważna. Jeśli atakujący ma sesję poczty, może przejąć reset do innych kont, zanim skończysz sprzątać. Zaczynaj od konta, które trzyma tożsamość: zwykle poczta, potem bankowość i reszta. Z urządzenia, któremu ufasz, nie z podejrzanego laptopa.

Przy potwierdzonym stealerze: reinstall albo przynajmniej dokładne czyszczenie, rotacja haseł z menedżera, unieważnienie sesji wszędzie, gdzie da się kliknąć. Szczegóły zawartości logów rozbijam w tekście o infostealerach. Tu zostaje jedna reguła: sesja to klucz dostępu, nie pamiątka po logowaniu.

Co mogą zrobić serwisy

Wiązanie sesji z urządzeniem, krótszy czas życia, ponowne MFA przy wrażliwych operacjach, wykrywanie logowań z nowej geolokalizacji czy nowej przeglądarki. Nic z tego nie jest doskonałe. Wszystko podnosi koszt replayu. Jako użytkownik wybierasz usługi, które w ogóle pokazują listę sesji i pozwalają je zabić jednym klikiem.

Passkeys i niektóre modele tokenów sprzętowych utrudniają klasyczny eksport „hasło plus cookie” w tej samej postaci, ale nie zdejmują z Ciebie obowiązku dbania o urządzenie. Skradziony laptop z odblokowaną sesją to nadal skradziony laptop.

Co widać po stronie ofiary

Czasem nic. Sesja działa równolegle: Ty czytasz pocztę, ktoś inny zmienia reguły przekierowania. Czasem wylogowanie znikąd, alert o nowym urządzeniu, dziwne logowania w historii. Przy kontach bez listy sesji sygnałem bywa dopiero skutek: pusta skrzynka robocza, przelew, zmieniony numer odzyskiwania.

Warto raz na jakiś czas kliknąć „aktywne sesje” na poczcie i w menedżerze haseł, zanim przyjdzie kryzys. Higiena nudna wygrywa z higieną panikową.

Hasło nie jest całym kontem

Kradzież sesji uczy pokory wobec checklisty „silne hasło + 2FA = koniec tematu”. To dobry start. Koniec tematu następuje dopiero wtedy, gdy umiesz też zabić sesje, zauważyć obce urządzenia i założyć, że malware interesuje się cookie tak samo jak hasłami.

W obrocie stealera session cookie bywa droższe od samego hasła właśnie dlatego, że skraca drogę. Hasło wymaga jeszcze przejścia bramki. Żywa sesja często już za nią jest. Stąd w tekście o infostealerach powtarzam: po infekcji rotujesz sekrety i zabijasz sesje, nie tylko wymieniasz string w menedżerze.

Przy każdym SMS o nowym logowaniu nie panikuję. Panikuję, gdy ktoś bagatelizuje cookie, bo „przecież mam MFA”. Po zalogowaniu MFA już swoje zrobiło. Reszta należy do higieny sesji.

Powiązane

← Archiwum