| Termin | Definicja |
|---|---|
| nieautoryzowane wywołanie webhooka | Nieautoryzowane wywołanie webhooka to przyjęcie powiadomienia bez weryfikacji podpisu lub źródła żądania. Jak rozpoznać nieautoryzowane wywołanie webhookaWebhook jest żądaniem HTTP wysyłanym automatycznie przez jeden system do adresu URL udostępnionego przez drugi system. Może informować o utworzeniu zamówienia, zmianie statusu płatności, zakończeniu zadania albo wystąpieniu zdarzenia w aplikacji. Sam fakt odebrania żądania przez serwer nie potwierdza jednak, że zostało ono wysłane przez oczekiwanego nadawcę. Nieautoryzowane wywołanie webhooka występuje wtedy, gdy aplikacja przyjmuje dane bez sprawdzenia podpisu kryptograficznego, tokenu, adresu źródłowego lub innego mechanizmu przewidzianego w konfiguracji integracji. Atakujący może wysłać żądanie bezpośrednio na publiczny adres webhooka, używając narzędzia takiego jak Podpis żądania, sekret i kolejność weryfikacjiNajczęściej stosowanym mechanizmem ochrony jest podpis HMAC obliczany z użyciem wspólnego sekretu znanego nadawcy i odbiorcy. Nadawca wylicza skrót z dokładnego surowego ciała żądania, a następnie umieszcza wynik w nagłówku, na przykład Weryfikację podpisu należy wykonać przed przetworzeniem danych i przed wywołaniem operacji powodującej zmianę stanu. Porównanie wartości powinno być odporne na różnice czasu wykonania, dlatego aplikacje stosują porównanie stałoczasowe, dostępne między innymi jako Skutki błędnej obsługi endpointu HTTPNieautoryzowane wywołanie może być wynikiem kilku odrębnych błędów. Endpoint może nie wymagać żadnego uwierzytelnienia, akceptować podpis w dowolnym formacie, porównywać podpis z przetworzonym zamiast surowego ciała albo używać pustego, domyślnego lub ujawnionego sekretu. Błędem jest również uznawanie nagłówka Objawy problemu można znaleźć w logach aplikacji i serwera HTTP. Warto porównać kod odpowiedzi, metodę żądania, ścieżkę, czas, identyfikator zdarzenia, obecność nagłówka podpisu oraz wynik walidacji. Szczególną uwagę należy zwrócić na żądania zakończone kodem Bezpieczne sprawdzenie konfiguracji na laptopie lub komputerzePodczas diagnostyki z komputera użytkownika należy ustalić, która aplikacja wysyła lub odbiera żądania, jaki adres URL jest skonfigurowany oraz czy ruch odbywa się przez HTTPS. Można sprawdzić ustawienia integracji, certyfikat połączenia, reguły zapory i logi klienta, ale nie należy ujawniać sekretu webhooka w zgłoszeniu, zrzucie ekranu ani publicznym repozytorium. Test powinien używać środowiska testowego i kontrolnego komunikatu, a nie ponownie wysyłać produkcyjnego zdarzenia. Po zmianie sekretu trzeba zaktualizować obie strony integracji i zweryfikować, że stare podpisy są odrzucane. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i podzespołów, dlatego podczas problemów z aplikacją kliencką może sprawdzić lokalne połączenie sieciowe, konfigurację systemu, działanie przeglądarki oraz logi dostępne na urządzeniu. Taka diagnostyka pomaga rozdzielić awarię komputera lub sieci od błędu po stronie zdalnego endpointu webhooka. Jeżeli serwer przyjmuje niepodpisane żądania, konieczna jest również korekta konfiguracji i kodu po stronie systemu, który ten endpoint udostępnia. Prawidłowy rezultat testu to odrzucenie żądania z brakującym lub niepoprawnym podpisem przed wykonaniem jakiejkolwiek operacji biznesowej. |