| Termin | Definicja |
|---|---|
| niezabezpieczony endpoint (HTTP) | Niezabezpieczony endpoint HTTP to interfejs przyjmujący dane bez szyfrowania, podatny na podsłuch. Niezabezpieczony endpoint HTTP – czym jest ten problemNiezabezpieczony endpoint HTTP to punkt komunikacji aplikacji, pod który można wysłać żądanie lub z którego można odebrać odpowiedź bez ochrony zapewnianej przez szyfrowanie połączenia. Może to być adres obsługujący logowanie, formularz kontaktowy, wyszukiwanie, płatność, przesyłanie pliku albo pobieranie danych z aplikacji. Sam endpoint nie musi być błędem konstrukcyjnym. Ryzyko pojawia się wtedy, gdy przez zwykłe HTTP przepływają informacje, które powinny pozostać poufne albo nie powinny być zmieniane w trakcie przesyłania. W praktyce przeglądarka lub inny program wysyła żądanie do określonego adresu, a urządzenie po drugiej stronie zwraca odpowiedź. Przy braku szyfrowania zawartość tej wymiany może być możliwa do odczytania dla osoby, która uzyska dostęp do ruchu w sieci. Dotyczy to między innymi danych formularza, identyfikatorów sesji, tokenów dostępowych, adresów poczty elektronicznej, treści wiadomości oraz informacji przesyłanych w nagłówkach. Nawet jeśli użytkownik nie wpisuje hasła, endpoint może ujawnić dane pozwalające rozpoznać jego konto lub śledzić kolejne działania. Istotne jest rozróżnienie między samym adresem a sposobem transportu danych. Endpoint może być poprawnie zaprojektowany pod względem funkcji, lecz nadal narażony na przechwycenie, jeśli działa wyłącznie przez HTTP. Ocenie podlega więc nie tylko to, jakie odpowiedzi zwraca aplikacja, ale także to, czy cała ścieżka od przeglądarki do punktu docelowego jest zabezpieczona, czy połączenie jest przekierowywane do HTTPS oraz czy aplikacja nie miesza bezpiecznych i niezabezpieczonych zasobów. Niezabezpieczony endpoint HTTP a HTTPS, poufność i wiarygodność odpowiedziNajważniejszą różnicą między HTTP a HTTPS jest ochrona połączenia za pomocą protokołu TLS. HTTPS szyfruje dane przesyłane między klientem a adresem aplikacji, ogranicza możliwość ich odczytania po drodze i pozwala potwierdzić, że połączenie prowadzi do właściwej domeny. Nie oznacza to, że sama obecność kłódki w przeglądarce rozwiązuje wszystkie problemy. Szyfrowanie transportu nie zastępuje kontroli dostępu, sprawdzania danych wejściowych, ochrony kont ani poprawnego zarządzania sesją. Przy zwykłym HTTP zagrożona jest poufność, ale także integralność komunikacji. Osoba mająca możliwość obserwowania lub modyfikowania ruchu może próbować podmienić odpowiedź, wstrzyknąć niepożądaną treść albo skierować użytkownika do innego miejsca. W sieci publicznej ryzyko może wzrosnąć, szczególnie gdy urządzenie łączy się z nieznanym punktem dostępu. W sieci domowej również nie powinno się zakładać, że każdy element pośredni jest zaufany. Warto odróżnić kilka sytuacji:
Bezpieczny endpoint powinien mieć poprawny certyfikat, aktualne ustawienia TLS, właściwą konfigurację ciasteczek sesyjnych oraz reguły uniemożliwiające niezamierzone przejście na HTTP. Pomocne bywają mechanizmy wymuszające korzystanie z HTTPS, lecz ich skuteczność zależy od poprawnego wdrożenia i od tego, czy wszystkie zasoby aplikacji są obsługiwane zgodnie z przyjętą polityką bezpieczeństwa. Niezabezpieczony endpoint HTTP i typowe objawy podatnościProblem może zostać zauważony podczas ręcznej kontroli adresu, testów aplikacji albo analizy ruchu sieciowego. Jednym z sygnałów jest adres zaczynający się od Podatność może wystąpić także wtedy, gdy główna strona korzysta z HTTPS, lecz jeden z dodatkowych adresów aplikacji pozostaje dostępny przez HTTP. Dotyczy to na przykład osobnego formularza, starszej ścieżki API, funkcji przesyłania plików albo adresu używanego przez starszą wersję programu. W takim przypadku użytkownik może nie zauważyć problemu, ponieważ podstawowa część witryny wygląda na zabezpieczoną. W analizie endpointu warto zweryfikować, czy:
Niezabezpieczony endpoint nie zawsze powoduje natychmiastową awarię. Częściej jest słabością, którą można wykorzystać w określonych warunkach. Skutkiem może być ujawnienie treści komunikacji, przejęcie aktywnej sesji, zmiana przesyłanych danych, przekierowanie na fałszywą stronę lub utrata zaufania do aplikacji. Ocena wpływu zależy od rodzaju danych, sposobu uwierzytelniania i tego, czy połączenie przebiega przez sieć, nad którą użytkownik nie ma kontroli. Niezabezpieczony endpoint HTTP – praktyczne wskazówki ochronyPierwszym krokiem powinno być ustalenie pełnej listy endpointów oraz sprawdzenie, które z nich przyjmują lub zwracają informacje wrażliwe. Następnie należy włączyć HTTPS dla całej aplikacji, poprawić przekierowania i usunąć odwołania do zwykłego HTTP. Nie powinno się ograniczać prac do strony głównej, ponieważ jeden pominięty adres może nadal przenosić dane bez szyfrowania. Warto ustalić jednolite zasady dla wszystkich środowisk, w których działa aplikacja. Adres testowy, wersja robocza i starsza ścieżka nie powinny pozostawać dostępne bez ochrony tylko dlatego, że nie są często używane. Przy zmianach należy sprawdzać zarówno żądania odczytujące dane, jak i żądania modyfikujące dane. Szczególnej uwagi wymagają logowanie, zmiana hasła, obsługa sesji, przesyłanie dokumentów oraz integracje z innymi aplikacjami. Ochrona transportu powinna być uzupełniona przez bezpieczne nagłówki, właściwe ustawienia ciasteczek, ograniczenie czasu ważności sesji i kontrolę pochodzenia żądań. Trzeba też unikać umieszczania haseł i tokenów w adresach URL. Adresy bywają przechowywane w historii przeglądarki, dziennikach diagnostycznych, narzędziach statystycznych i nagłówkach przekazywanych do kolejnych zasobów. Dane dostępowe powinny być przesyłane w sposób przewidziany dla bezpiecznej komunikacji, a po stronie aplikacji należy ograniczać zakres uprawnień. Po wdrożeniu zmian potrzebne są testy z kilku perspektyw. Należy sprawdzić zachowanie w przeglądarce, w aplikacji używającej interfejsu programistycznego oraz na różnych rodzajach połączeń. Warto potwierdzić, że nie występują ostrzeżenia o mieszanej zawartości, że certyfikat jest rozpoznawany poprawnie i że przekierowanie nie powoduje utraty danych formularza. Przydatne jest także okresowe powtarzanie kontroli, ponieważ nowe funkcje mogą wprowadzić kolejny endpoint z odmienną konfiguracją. Kiedy niezabezpieczony endpoint HTTP wymaga zgłoszenia do serwisuDo serwisu warto zgłosić się wtedy, gdy ostrzeżenie o niezabezpieczonym połączeniu pojawia się na używanym komputerze, gdy przeglądarka blokuje formularz albo gdy połączenie jest niestabilne po zmianie ustawień certyfikatu. Pomoc może być potrzebna również wtedy, gdy problem dotyczy konfiguracji urządzenia, przeglądarki, sieci domowej lub programu wykorzystywanego do pracy. Należy zachować komunikat błędu, adres strony bez haseł i tokenów oraz informację o tym, kiedy pojawiło się ostrzeżenie. Warszawskie Pogotowie Komputerowe 24/7 wykonuje naprawy z reguły do 3 dni roboczych, dlatego można przekazać urządzenie do sprawdzenia, gdy problem z niezabezpieczonym endpointem towarzyszy innym objawom, takim jak nieoczekiwane przekierowania, częste komunikaty certyfikatu, samoczynne otwieranie stron lub kłopoty z dostępem do aplikacji. Przed przekazaniem sprzętu nie należy udostępniać haseł, kodów jednorazowych ani pełnych danych logowania. W razie potrzeby można przygotować opis problemu i zrzut komunikatu z ukrytymi danymi osobowymi. Jeżeli niezabezpieczony endpoint dotyczy aplikacji należącej do firmy lub używanego serwisu internetowego, sama naprawa komputera może nie usunąć źródła problemu. W takiej sytuacji potrzebna jest także osoba odpowiedzialna za konfigurację witryny, domeny i połączeń HTTPS. Serwis komputerowy może pomóc ustalić, czy ostrzeżenie wynika z ustawień urządzenia lub przeglądarki, oraz wskazać, jakie informacje warto przekazać administratorowi aplikacji. Dzięki rozdzieleniu tych dwóch obszarów łatwiej ustalić, czy przyczyną jest konfiguracja po stronie użytkownika, czy nieprawidłowo zabezpieczony endpoint. |