| Termin | Definicja |
|---|---|
| brak timeoutu sesji | Brak timeoutu sesji to luka bezpieczeństwa pozostawiająca aktywne połączenie bezterminowo, niezależnie od bezczynności użytkownika. Brak timeoutu sesji – czym jest ta podatnośćBrak timeoutu sesji oznacza, że aplikacja internetowa, panel administracyjny, system obsługi klienta albo inne narzędzie sieciowe nie kończy aktywnej sesji po określonym czasie bezczynności. Po zalogowaniu użytkownik otrzymuje identyfikator sesji, zwykle zapisany w ciasteczku przeglądarki albo przekazywany za pomocą mechanizmu nagłówków. Identyfikator ten pozwala serwerowi rozpoznać kolejne żądania jako pochodzące od już uwierzytelnionego użytkownika. Jeżeli sesja pozostaje aktywna bezterminowo, osoba mająca dostęp do otwartej przeglądarki, zapisanych danych logowania lub przejętego identyfikatora może korzystać z konta znacznie dłużej, niż powinno to wynikać z rzeczywistej aktywności. Nie chodzi wyłącznie o brak automatycznego wylogowania widocznego na ekranie. Problem może dotyczyć kilku powiązanych ustawień: czasu życia identyfikatora sesji, okresu ważności ciasteczka, limitu bezczynności, maksymalnego czasu trwania sesji oraz sposobu unieważniania sesji po wylogowaniu lub zmianie hasła. Bezpieczne rozwiązanie powinno rozróżniać sesję bezczynności od sesji maksymalnej. Pierwsza wygasa po określonym okresie braku działań, a druga kończy się po ustalonym czasie niezależnie od tego, czy użytkownik wykonuje kolejne operacje. Samo zamknięcie karty nie zawsze rozwiązuje problem. Zależy to od konfiguracji ciasteczka, aplikacji oraz serwera. Jeżeli identyfikator został ustawiony jako trwały, może pozostać zapisany w profilu przeglądarki. Jeżeli nie ma skutecznego unieważnienia po stronie serwera, nadal może być akceptowany nawet po użyciu przycisku wylogowania. Dlatego brak timeoutu sesji należy traktować jako problem kontroli dostępu, a nie tylko niedogodność interfejsu. Brak timeoutu sesji w kontekście uwierzytelniania i ochrony kontaW prawidłowo zaprojektowanym systemie logowanie jest początkiem kontrolowanego cyklu życia sesji. Po uwierzytelnieniu serwer powinien wygenerować nowy, trudny do odgadnięcia identyfikator, przypisać mu ograniczony czas ważności oraz przechowywać stan sesji po swojej stronie. Każde kolejne żądanie powinno być sprawdzane pod kątem ważności identyfikatora, statusu konta i ewentualnych zdarzeń wymagających ponownego logowania. Brak jednego z tych mechanizmów może sprawić, że sesja będzie funkcjonowała zbyt długo. Timeout bezczynności ogranicza ryzyko wynikające z pozostawienia odblokowanego komputera. Timeout maksymalny ogranicza natomiast czas wykorzystania przejętej sesji, nawet jeśli aplikacja jest regularnie używana. Wrażliwe operacje, takie jak zmiana danych kontaktowych, modyfikacja uprawnień, eksport informacji albo zmiana hasła, mogą wymagać dodatkowego potwierdzenia tożsamości. Dzięki temu długotrwała sesja nie daje automatycznie pełnego dostępu do wszystkich funkcji. W porównaniu z krótkim timeoutem brak ograniczenia jest wygodniejszy podczas wielogodzinnej pracy, ale zwiększa zakres skutków incydentu. Zbyt krótki timeout może powodować częste logowania i omijanie zasad przez użytkowników, natomiast zbyt długi lub nieistniejący timeout utrudnia odebranie dostępu po zagubieniu urządzenia. W praktyce potrzebny jest kompromis zależny od rodzaju danych, sposobu korzystania z aplikacji i poziomu uprawnień. Konto z dostępem do ustawień administracyjnych powinno być chronione bardziej restrykcyjnie niż konto przeznaczone wyłącznie do odczytu. Warto odróżnić brak timeoutu sesji od innych problemów związanych z logowaniem. Nieprawidłowe ustawienia atrybutów Secure, HttpOnly i SameSite dotyczą sposobu przesyłania ciasteczka, ale nie zastępują limitu czasu. Rotacja identyfikatora po zalogowaniu pomaga ograniczyć ryzyko utrwalenia sesji, lecz również nie kończy jej po bezczynności. Z kolei unieważnienie tokenu po stronie serwera powinno być możliwe niezależnie od tego, czy token ma jeszcze formalnie odległy termin wygaśnięcia. Brak timeoutu sesji a typowe objawy i problemyNajbardziej widocznym objawem jest możliwość powrotu do aplikacji po długiej przerwie bez ponownego podania hasła. W przeglądarce można zamknąć kartę, uruchomić ją ponownie i nadal uzyskać dostęp do konta. Innym sygnałem jest działanie tego samego panelu po pozostawieniu komputera na wiele godzin lub po wznowieniu pracy z uśpienia. W niektórych systemach użytkownik widzi komunikat o wylogowaniu dopiero wtedy, gdy spróbuje wykonać operację, mimo że wcześniejsze widoki nadal zawierają dane konta. Ryzyko rośnie, gdy z urządzenia korzysta więcej niż jedna osoba, komputer znajduje się w miejscu dostępnym dla osób postronnych albo używany jest wspólny profil przeglądarki. Przejęcie aktywnej sesji może nastąpić także na skutek złośliwego rozszerzenia, niewłaściwego zabezpieczenia urządzenia, wycieku ciasteczka lub błędnej konfiguracji aplikacji. Nie trzeba znać hasła, jeżeli system uznaje sam identyfikator sesji za wystarczający dowód uprawnień. Występują również problemy pośrednie. Użytkownik może uznać, że konto zostało poprawnie wylogowane, podczas gdy serwer nadal akceptuje poprzedni identyfikator. Sesja może pozostać ważna na innym urządzeniu, mimo zmiany hasła. Mogą też powstawać równoległe sesje, których nie da się zobaczyć ani zakończyć z poziomu ustawień konta. Szczególnej uwagi wymagają aplikacje zapisujące w sesji informacje o rolach, uprawnieniach lub ostatniej weryfikacji tożsamości.
Brak timeoutu sesji – praktyczne sprawdzanie i ograniczanie ryzykaWstępne sprawdzenie można wykonać bez ingerowania w kod aplikacji. Po zalogowaniu należy zanotować moment rozpoczęcia sesji, pozostawić konto bez aktywności, a następnie po określonym czasie spróbować otworzyć stronę wymagającą uwierzytelnienia. Test powinien być wykonywany na koncie testowym, bez korzystania z rzeczywistych danych klientów. Warto powtórzyć go po zamknięciu przeglądarki, po ponownym uruchomieniu urządzenia oraz z użyciem drugiego okna, aby ustalić, czy sesja jest przechowywana tylko tymczasowo. W przypadku aplikacji firmowej należy sprawdzić dokumentację dostawcy i ustawienia panelu administracyjnego. Istotne są wartości określające czas bezczynności, maksymalny wiek sesji, ważność ciasteczek oraz zachowanie po wylogowaniu. Konfiguracja powinna być oceniana razem z mechanizmem odświeżania tokenów. Automatyczne odnawianie sesji bez aktywności użytkownika może w praktyce zniwelować ustawiony timeout, jeżeli każde żądanie w tle przedłuża ważność identyfikatora. Ograniczenie ryzyka zwykle obejmuje ustawienie rozsądnego limitu bezczynności, maksymalnego czasu sesji, rotację identyfikatora po zalogowaniu, unieważnianie sesji po wylogowaniu oraz zakończenie sesji po zmianie hasła lub uprawnień. Ciasteczko powinno mieć odpowiednie atrybuty ochronne, a transmisja danych powinna odbywać się przez szyfrowane połączenie. Warto także wdrożyć ponowne potwierdzenie tożsamości przed operacjami o większym znaczeniu i zapewnić możliwość zdalnego zakończenia wszystkich aktywnych sesji. Ważne jest prowadzenie testów po każdej zmianie konfiguracji. Zbyt agresywne ustawienia mogą powodować utratę formularzy, przerwanie długich operacji lub masowe ponowne logowania. Zbyt łagodne ustawienia mogą pozostawić podatność mimo pozornego działania wylogowania. Wynik testu powinien obejmować czas rozpoczęcia, czas wygaśnięcia, rodzaj użytego konta, zachowanie po wylogowaniu i rezultat próby ponownego użycia starego identyfikatora. Kiedy brak timeoutu sesji wymaga zgłoszenia do serwisuDo sprawdzenia konfiguracji warto zgłosić się wtedy, gdy konto pozostaje dostępne po wielogodzinnej bezczynności, po zmianie hasła albo po użyciu wylogowania. Pomoc jest szczególnie uzasadniona, gdy z jednego komputera korzysta kilka osób, urządzenie zawiera dane klientów lub dokumenty, a także wtedy, gdy nie ma pewności, czy problem dotyczy przeglądarki, aplikacji czy ustawień systemowych. Przed przekazaniem urządzenia nie należy podawać osobom postronnym haseł ani wysyłać aktywnych ciasteczek sesyjnych. Warszawskie Pogotowie Komputerowe 24/7 może zostać wskazane jako miejsce konsultacji w sprawie bezpiecznego korzystania z laptopa lub komputera PC, oceny podstawowych ustawień oraz przygotowania listy informacji potrzebnych administratorowi aplikacji. Do analizy przydatne są między innymi nazwa używanej aplikacji, rodzaj konta, moment wystąpienia problemu, informacja o współdzieleniu urządzenia oraz opis tego, co dzieje się po wylogowaniu. Nie powinno się przekazywać pełnych danych logowania, kodów jednorazowych ani aktywnych tokenów. Jeżeli istnieje podejrzenie, że ktoś korzystał z konta podczas nieobecności użytkownika, należy w pierwszej kolejności użyć zaufanego urządzenia do zmiany hasła, zakończyć wszystkie aktywne sesje i sprawdzić historię logowań, o ile aplikacja ją udostępnia. Następnie powinno się zweryfikować uprawnienia, reguły automatycznego logowania i ustawienia przeglądarki. Brak timeoutu sesji nie jest problemem ograniczonym do jednego przycisku w programie; dotyczy całego łańcucha od uwierzytelnienia, przez przechowywanie identyfikatora, aż po jego unieważnienie po zakończeniu pracy. |