| Termin | Definicja |
|---|---|
| podatność na spam / ataki bruteforce przez formularz | Podatność formularza na spam i brute force wynika z braku ograniczeń liczby zgłoszeń i mechanizmu weryfikacji. Jak powstaje podatność formularza na spam i brute forceFormularz internetowy jest podatny na spam wtedy, gdy aplikacja przyjmuje dowolną liczbę zgłoszeń bez skutecznego rozpoznawania automatycznych żądań. Atakujący może wysyłać formularz wielokrotnie za pomocą skryptu, narzędzia do testowania żądań HTTP albo zainfekowanych urządzeń. Jeżeli każde żądanie powoduje zapis w bazie danych, wysłanie wiadomości e-mail lub utworzenie zadania dla pracownika, duża liczba zgłoszeń może obciążyć aplikację i zaciemnić prawdziwe wiadomości. Samo ukrycie formularza, zmiana jego adresu lub dodanie pola niewidocznego dla użytkownika nie stanowi wystarczającej ochrony, ponieważ takie elementy mogą zostać odtworzone albo pominięte przez automatyczny klient. Atak brute force, czyli próba siłowa, polega na wielokrotnym sprawdzaniu kolejnych haseł, kodów lub innych danych uwierzytelniających. Formularz logowania, resetowania hasła, potwierdzania kodu jednorazowego albo wyszukiwania informacji o koncie może stać się punktem takiego ataku, gdy serwer nie ogranicza częstotliwości prób i nie reaguje na powtarzalny wzorzec żądań. Problem nie musi wynikać z błędu w samym formularzu HTML. Kluczowe znaczenie ma logika po stronie serwera, która powinna kontrolować liczbę prób, poprawność danych, czas między kolejnymi żądaniami oraz skutki nieudanych operacji. Ograniczanie liczby zgłoszeń i prób logowaniaPodstawowym mechanizmem ochronnym jest rate limiting, czyli limitowanie częstotliwości żądań. Limit może być liczony dla adresu IP, identyfikatora konta, sesji, klucza aplikacyjnego albo połączenia kilku tych cech. Sam adres IP nie zawsze wystarcza, ponieważ wiele osób może korzystać ze wspólnego adresu, na przykład za pośrednictwem routera lub sieci firmowej. Z drugiej strony atakujący może zmieniać adresy źródłowe, dlatego ochrona powinna uwzględniać również konto, nazwę użytkownika, adres formularza i charakterystyczne parametry żądania. Po przekroczeniu limitu serwer może zwrócić kod HTTP 429 Too Many Requests oraz czas oczekiwania przed kolejną próbą. W formularzach logowania stosuje się także opóźnienia narastające po kolejnych nieudanych próbach, czasowe blokady oraz dodatkowe uwierzytelnienie. Ważne jest, aby blokada nie pozwalała łatwo unieruchomić cudzego konta przez celowe wysyłanie błędnych haseł. Bezpieczniejsze bywa ograniczanie tempa prób i wymaganie dodatkowego potwierdzenia niż bezterminowe blokowanie użytkownika. Należy również kontrolować formularze wysyłające wiadomości, tworzące konta, generujące linki resetujące lub wykonujące kosztowne operacje, ponieważ te funkcje mogą być nadużywane nawet wtedy, gdy nie służą bezpośrednio do logowania. Weryfikacja żądania i rozpoznawanie automatyzacjiMechanizm CAPTCHA lub jego odpowiednik może utrudnić automatyczne wysyłanie formularzy, ale nie powinien być jedyną warstwą zabezpieczenia. Weryfikacja powinna odbywać się po stronie serwera, ponieważ kod JavaScript działający w przeglądarce można wyłączyć albo zastąpić własnym klientem HTTP. Formularz powinien sprawdzać między innymi poprawność typu danych, długość pól, dozwolone znaki, wymagane wartości i zgodność z oczekiwanym formatem. Token CSRF chroni przed niektórymi żądaniami wymuszonymi z innej strony, lecz nie zastępuje limitowania częstotliwości ani ochrony przed botami. Przydatne jest łączenie kilku sygnałów: czasu wypełnienia formularza, liczby żądań, powtarzalności treści, liczby błędów walidacji, nagłówków HTTP oraz zachowania sesji. Pole typu honeypot, niewidoczne dla zwykłego użytkownika, może wykrywać proste boty, które wypełniają wszystkie pola. Nie należy jednak traktować go jako ochrony kompletnej. Automaty mogą analizować strukturę strony, naśladować przeglądarkę i omijać przewidywalne reguły. Wysyłane dane powinny być dodatkowo filtrowane pod kątem niepożądanych treści, a wiadomości generowane przez formularz powinny mieć kontrolowany format, aby ograniczyć ryzyko wykorzystania formularza jako narzędzia do rozsyłania spamu. Diagnostyka śladów nadużycia i przywrócenie prawidłowego działaniaRozpoznanie problemu wymaga porównania logów aplikacji, serwera HTTP i mechanizmu wysyłki wiadomości. Należy sprawdzić, czy w krótkim czasie pojawiają się serie żądań z tych samych adresów, powtarzalne wartości pól, wiele nieudanych logowań lub nietypowe kody odpowiedzi. Istotne są także nagłe wzrosty liczby rekordów w bazie, wiadomości wychodzących, błędów walidacji i odpowiedzi 429. Analiza powinna odróżniać zwykły ruch użytkowników od automatyzacji, ponieważ nadmiernie restrykcyjne reguły mogą blokować prawidłowe zgłoszenia. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC i podzespołów, a w ramach diagnostyki można przeanalizować objawy związane z działaniem formularza na używanym komputerze, przeglądarką, złośliwym oprogramowaniem lub konfiguracją systemu. W przypadku problemu po stronie samej aplikacji konieczne jest sprawdzenie jej kodu, konfiguracji serwera i mechanizmów uwierzytelniania przez osobę odpowiedzialną za utrzymanie serwisu. Prawidłowa naprawa powinna obejmować nie tylko usunięcie pojedynczego źródła spamu, lecz także test limitów, obsługi błędów, rejestrowania zdarzeń i zachowania formularza po kolejnych próbach. |