| Termin | Definicja |
|---|---|
| brak wygaszenia tokenu po wylogowaniu | Brak wygaszenia tokenu po wylogowaniu to luka bezpieczeństwa pozostawiająca dane uwierzytelniające ważne mimo zakończenia sesji. Brak wygaszenia tokenu po wylogowaniu — czym jest ten problemBrak wygaszenia tokenu po wylogowaniu oznacza sytuację, w której identyfikator potwierdzający zalogowanie pozostaje akceptowany przez aplikację mimo zakończenia pracy użytkownika. Token może być zapisany w pliku cookie, pamięci przeglądarki, pamięci aplikacji mobilnej albo w nagłówku żądania wysyłanego do usługi. Samo przejście do ekranu logowania nie zawsze powoduje unieważnienie takiego identyfikatora po stronie systemu. Jeżeli token nadal zachowuje ważność, osoba mająca do niego dostęp może próbować korzystać z konta bez ponownego podawania hasła. Nie należy utożsamiać wylogowania wyłącznie ze zmianą widoku w interfejsie. Poprawne wylogowanie powinno obejmować zarówno usunięcie lokalnych danych sesyjnych, jak i odrzucenie tokenu przez część systemu odpowiedzialną za uwierzytelnianie. W zależności od zastosowanego rozwiązania może być potrzebne unieważnienie konkretnego tokenu, wszystkich tokenów przypisanych do urządzenia albo całej serii identyfikatorów wydanych danemu użytkownikowi. Znaczenie ma również to, czy system rozpoznaje sesję po krótkotrwałym identyfikatorze, czy po tokenie o dłuższym czasie działania. Ryzyko nie polega wyłącznie na tym, że ktoś zobaczy zapisany ciąg znaków. Jeżeli aplikacja uznaje go za wystarczające potwierdzenie tożsamości, możliwe staje się odczytywanie danych, wykonywanie operacji dostępnych dla konta oraz zmiana ustawień. Zakres skutków zależy od uprawnień użytkownika, rodzaju danych i sposobu sprawdzania tokenu przy każdym żądaniu. Kontekst techniczny braku wygaszenia tokenu po wylogowaniuToken dostępu jest najczęściej przekazywany do kolejnych żądań w ciasteczku lub nagłówku autoryzacyjnym. System po stronie usługi powinien sprawdzać nie tylko jego podpis i datę ważności, lecz także stan sesji. Sam fakt, że token jest formalnie poprawny kryptograficznie, nie oznacza jeszcze, że powinien być akceptowany po wylogowaniu. Jeżeli nie ma mechanizmu odwołania, wylogowanie może mieć jedynie lokalny charakter i nie wpływać na ważność identyfikatora przechowywanego poza urządzeniem. W praktyce spotyka się kilka modeli obsługi sesji. W modelu opartym na sesji przechowywanej po stronie aplikacji wylogowanie może polegać na usunięciu wpisu przypisanego do danego identyfikatora. W modelu opartym na tokenach bezpośrednio zawierających informacje o użytkowniku potrzebna bywa lista unieważnionych identyfikatorów, zmiana wersji klucza sesji albo kontrola znacznika wskazującego moment unieważnienia. Przy tokenach odświeżających istotne jest ich wycofanie oraz odrzucanie całego łańcucha kolejnych tokenów utworzonych na jego podstawie. Podobne zjawisko może wyglądać inaczej w różnych środowiskach. W przeglądarce po wylogowaniu ekran może wyglądać poprawnie, lecz wcześniej wydana karta może nadal działać. W aplikacji mobilnej zapis w bezpiecznym magazynie urządzenia może pozostać dostępny po ponownym uruchomieniu programu. W połączeniu z pamięcią podręczną przeglądarki może wystąpić także wyświetlanie starych danych bez świeżego kontaktu z usługą, co utrudnia rozróżnienie błędu prezentacji od rzeczywistego utrzymania dostępu. Ważne jest porównanie zachowania po zwykłym wylogowaniu, zamknięciu karty, zamknięciu całej aplikacji, zmianie hasła oraz użyciu funkcji wylogowania ze wszystkich urządzeń. Te czynności mogą mieć różne zakresy działania. Dobrze zaprojektowany mechanizm powinien jasno określać, które tokeny pozostają aktywne, a które zostają od razu odrzucone. Typowe problemy związane z brakiem wygaszenia tokenuJednym z częstych problemów jest usunięcie ciasteczka tylko w przeglądarce bez unieważnienia sesji po stronie usługi. W takiej sytuacji ponowne użycie wcześniej skopiowanego tokenu może nadal skutkować uzyskaniem dostępu. Odwrotny błąd również jest możliwy: token zostaje unieważniony, ale interfejs pokazuje nieaktualny ekran, ponieważ przeglądarka wykorzystuje zapisany obraz strony. Wymaga to osobnego sprawdzenia, czy każde żądanie do chronionego zasobu jest ponownie weryfikowane. Ryzyko rośnie, gdy identyfikator ma długi okres ważności, jest przechowywany w łatwo dostępnym miejscu albo może być używany z wielu urządzeń bez dodatkowego sprawdzenia. Nieprawidłowe ustawienia ciasteczek mogą zwiększyć możliwość odczytu lub przesłania danych w niepożądanym kontekście. Znaczenie mają między innymi ograniczenia dotyczące przesyłania wyłącznie przez szyfrowane połączenie, zakres dostępności dla skryptów oraz reguły decydujące, kiedy przeglądarka dołącza ciasteczko do żądania. Problem może także wynikać z niespójności pomiędzy kilkoma składnikami aplikacji. Jeden element może uznawać sesję za zakończoną, a inny nadal akceptować starszy identyfikator. Do podobnych rozbieżności dochodzi przy zmianie hasła, odnowieniu tokenu, błędzie synchronizacji zegara albo zastosowaniu kilku mechanizmów uwierzytelniania jednocześnie. W dziennikach zdarzeń warto szukać operacji wylogowania, późniejszych prób użycia tego samego identyfikatora, adresów źródłowych, urządzeń oraz czasu wykonania żądań. Nie powinno się przekazywać pełnych tokenów w zgłoszeniach, zrzutach ekranu ani wiadomościach. Do analizy wystarcza oznaczenie identyfikatora skrótem, fragmentem niepozwalającym na jego odtworzenie oraz dokładnym opisem kolejności czynności. W razie podejrzenia przejęcia tokenu należy potraktować go jak poufny sekret i nie publikować jego zawartości. Praktyczne wskazówki po wykryciu braku wygaszenia tokenuW pierwszej kolejności warto przerwać aktywne sesje na wszystkich używanych urządzeniach, zmienić hasło i sprawdzić, czy dostępne jest unieważnienie pozostałych sesji. Należy również przejrzeć listę urządzeń, historię logowań oraz powiadomienia o zmianach ustawień. Jeżeli konto umożliwia dodatkowe potwierdzenie tożsamości, powinno zostać włączone zgodnie z dostępnymi możliwościami. Te czynności ograniczają skutki do czasu ustalenia, czy problem dotyczy pojedynczego urządzenia, czy samej usługi. Podczas diagnostyki należy przygotować opis środowiska: rodzaj urządzenia, używaną aplikację, wersję systemu, sposób wylogowania i kolejność późniejszych działań. Przydatne bywa sprawdzenie, czy po wylogowaniu można otworzyć wcześniej używaną kartę, odświeżyć chroniony widok albo wykonać czynność wymagającą autoryzacji. Każdy test powinien być wykonywany wyłącznie na własnym koncie i danych testowych. Nie należy próbować wykorzystywać cudzego tokenu ani modyfikować żądań wobec obcych kont. Po stronie twórców aplikacji zaleca się rozdzielenie tokenu dostępu od tokenu odświeżającego, ograniczenie czasu ważności, rotację identyfikatorów i możliwość natychmiastowego odwołania. Wylogowanie powinno unieważniać właściwy zakres sesji, a odpowiedzi dla przeglądarki powinny usuwać lokalne dane uwierzytelniające. Dodatkową ochronę zapewnia ponowne wymaganie potwierdzenia tożsamości przy czynnościach wrażliwych, kontrola bezczynności oraz rejestrowanie podejrzanych prób użycia wygaszonego identyfikatora. Warto pamiętać, że usunięcie historii przeglądania nie zastępuje unieważnienia tokenu. Nie zastępuje go także samo zamknięcie programu, ponowne uruchomienie urządzenia ani powrót do ekranu logowania. Są to czynności lokalne, podczas gdy właściwe odcięcie dostępu musi zostać rozpoznane przez usługę, która token wydaje i weryfikuje. Kiedy zgłosić brak wygaszenia tokenu po wylogowaniu do serwisuZgłoszenie do serwisu jest uzasadnione, gdy problem powtarza się po poprawnym wylogowaniu, dotyczy kilku przeglądarek lub urządzeń, pojawia się po zmianie hasła albo towarzyszą mu nieznane logowania i zmienione ustawienia konta. Pomoc może być potrzebna również wtedy, gdy nie można ustalić, czy obserwowane dane pochodzą z pamięci podręcznej, czy z nadal aktywnej sesji. W opisie należy podać nazwę usługi, czas wystąpienia, wykonane czynności i sposób odtworzenia sytuacji, bez przekazywania hasła ani pełnej wartości tokenu. W Warszawie takie zgłoszenie można przekazać do firmy Warszawskie Pogotowie Komputerowe 24/7; naprawy z reguły są realizowane do 3 dni roboczych. Przygotowanie urządzenia do sprawdzenia powinno obejmować zapisanie ważnych dokumentów, wylogowanie z prywatnych kont, odłączenie zbędnych nośników oraz zachowanie informacji o komunikatach i czasie występowania błędu. Jeżeli podejrzewa się przejęcie konta, nie należy kasować bez namysłu wszystkich śladów, ponieważ historia zdarzeń może pomóc w ustaleniu przebiegu problemu. Przed przekazaniem sprzętu dobrze jest poinformować o rodzaju konta, używanej aplikacji i tym, czy dostęp pozostawał aktywny po zamknięciu programu. Pozwala to odróżnić błąd aplikacji od niewłaściwej konfiguracji przeglądarki lub lokalnego przechowywania danych. Po zakończeniu prac należy ponownie sprawdzić wylogowanie, unieważnienie sesji na innych urządzeniach i możliwość odrzucenia starszego tokenu. Taka weryfikacja pomaga potwierdzić, że zakończenie sesji oznacza rzeczywistą utratę dostępu, a nie tylko zmianę wyglądu ekranu. |