Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

wyciek tokenów w URL

Termin Definicja
wyciek tokenów w URL

Wyciek tokenów w URL to sytuacja, w której klucz dostępu trafia do logów serwerów lub historii przeglądarki.

Jak token trafia do adresu URL

Wyciek tokenów w URL występuje wtedy, gdy sekret używany do uwierzytelniania lub autoryzacji zostaje umieszczony w części adresu widocznej dla przeglądarki, serwera pośredniczącego albo użytkownika. Najczęściej jest to parametr zapytania, na przykład https://example.com/download?token=.... Taki token może pełnić funkcję klucza okaziciela, czyli wystarczyć do uzyskania dostępu bez ponownego podawania hasła. Dotyczy to między innymi tokenów dostępu, kluczy API, podpisanych odnośników do plików oraz jednorazowych identyfikatorów sesji.

Adres URL jest przetwarzany przez wiele elementów łańcucha komunikacji. Może zostać zapisany w historii przeglądarki, zakładkach, schowku, systemie synchronizacji historii, narzędziach diagnostycznych, plikach dziennika serwera WWW, reverse proxy, load balancera albo systemie analitycznym. Jeżeli strona z takim adresem ładuje zasoby zewnętrzne, adres odwiedzonej strony może również pojawić się w nagłówku Referer, zależnie od polityki przekazywania informacji o źródle. Szyfrowanie HTTPS chroni transmisję przed odczytem po drodze, ale nie usuwa sekretu z logów i historii urządzeń, które prawidłowo obsługują już odszyfrowane żądanie.

Różnica między parametrem zapytania a fragmentem

Parametr zapytania znajduje się przed znakiem # i jest wysyłany do serwera jako część żądania HTTP. Przykład /callback?access_token=abc może więc zostać zapisany bezpośrednio w dzienniku serwera, historii żądań proxy oraz narzędziach monitorujących. Dodatkowym problemem jest przekierowanie: jeżeli aplikacja po odebraniu tokenu prześle użytkownika na inną stronę, nieprawidłowo skonfigurowana aplikacja może utrwalić pełny adres w historii lub przekazać go dalej.

Fragment URL, czyli część po znaku #, nie jest wysyłany do serwera w standardowym żądaniu HTTP. Nie oznacza to jednak automatycznego bezpieczeństwa. Kod JavaScript działający w przeglądarce może odczytać fragment, wysłać go do innego miejsca, zapisać w pamięci aplikacji albo umieścić w logu po stronie klienta. Fragment może też zostać skopiowany przez użytkownika lub przechwycony przez złośliwe rozszerzenie. Współczesne przepływy OAuth zwykle preferują przekazanie kodu autoryzacyjnego, a następnie wymianę go na token po stronie odpowiednio zabezpieczonej aplikacji; dla aplikacji publicznych stosuje się także mechanizm PKCE.

Ślady tokenu w przeglądarce i infrastrukturze

Ocena wycieku wymaga sprawdzenia, gdzie dokładnie pojawia się adres. W przeglądarce należy zweryfikować historię, otwarte karty, zapisane zakładki, dzienniki aplikacji oraz dane narzędzi deweloperskich. W przypadku aplikacji internetowej istotne są logi serwera WWW, proxy, systemów równoważenia ruchu, monitoringu i analityki. Token może zostać utrwalony również przez mechanizm rejestrowania wyjątków, który zapisuje bieżący adres strony razem ze stack trace’em. Sam fakt, że strona używa HTTPS, nie świadczy więc o tym, że sekret nie został zapisany po stronie serwera.

Ograniczanie ryzyka polega przede wszystkim na niewkładaniu tokenu dostępu do adresu. Dla żądań HTTP właściwym miejscem jest zazwyczaj nagłówek Authorization: Bearer, zgodnie z modelem opisanym w RFC 6750, przy czym token musi być chroniony przed ujawnieniem w logach i narzędziach klienckich. Pomocne są także krótkie czasy ważności, ograniczenie zakresu uprawnień, możliwość unieważnienia tokenu oraz jednorazowość kodów używanych w przekierowaniu. Po obsłużeniu przekierowania aplikacja może usunąć wrażliwe parametry z paska adresu przez bezpieczną zmianę historii, ale nie zastępuje to rotacji lub unieważnienia tokenu, który mógł już zostać zapisany.

Postępowanie po wykryciu sekretu w adresie

Jeżeli token pojawił się w URL, należy traktować go jako potencjalnie ujawniony. W pierwszej kolejności trzeba ustalić jego rodzaj, zakres uprawnień, czas ważności oraz miejsca, w których mógł zostać zapisany. Następnie należy unieważnić lub obrócić token, usunąć go z dostępnych logów zgodnie z przyjętą procedurą, sprawdzić przekierowania i ograniczyć dalsze rejestrowanie pełnych adresów. Nie powinno się kopiować takiego adresu do zgłoszeń, komunikatorów ani dokumentacji. Do analizy lepiej używać zanonimizowanego fragmentu, na przykład pierwszych kilku znaków identyfikatora, o ile nie umożliwia to odtworzenia sekretu.

Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, a podczas diagnostyki można sprawdzić działanie przeglądarki, rozszerzeń, zapisanej historii oraz podstawową konfigurację systemu związaną z ujawnianiem adresów. W przypadku tokenu należy jednak pamiętać, że kluczowe działania wykonuje administrator konkretnej aplikacji lub usługi: unieważnia sekret, zmienia konfigurację logowania i ocenia zakres dostępu. Nie należy przekazywać serwisowi aktywnego tokenu ani pełnego adresu zawierającego dane uwierzytelniające.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę