Zatrzymywanie credential stuffingu na brzegu sieci
Jak tracio.ai wykrywa zautomatyzowane próby logowania, zanim dotrą do systemu uwierzytelniania — łącząc fingerprinting urządzeń, kontrolę prędkości i sygnały behawioralne.
Credential stuffing
to ataki, które wykorzystują zautomatyzowane narzędzia do testowania skradzionych kombinacji nazwy użytkownika i hasła na stronach logowania. Ataki te mają masową skalę — pojedynczy operator może testować miliony poświadczeń dziennie na setkach docelowych witryn. Tradycyjne mechanizmy obronne, takie jak ograniczanie ruchu i CAPTCHA, są niewystarczające, ponieważ atakujący rozpraszają swoje żądania na tysiące adresów IP i korzystają z usług rozwiązujących CAPTCHA. Oto jak zatrzymujemy credential stuffing na brzegu sieci, zanim żądania dotrą do Twojego systemu uwierzytelniania.
Powierzchnia ataku
Typowa operacja credential stuffingu wykorzystuje listę skradzionych poświadczeń (dostępnych na marketplace'ach w dark webie już za 10 USD za milion rekordów), narzędzie do automatyzacji (zwykle własny skrypt lub narzędzie takie jak OpenBullet) oraz pulę adresów IP proxy (proxy rezydencjalne, które rotują przy każdym żądaniu, aby omijać ograniczanie ruchu oparte na IP).
Atakujący konfiguruje swoje narzędzie tak, aby wysyłało żądania logowania z kontrolowaną szybkością — na tyle wolno, by nie wyzwalać prostych limitów ruchu, ale na tyle szybko, by testować tysiące poświadczeń na godzinę. Każde żądanie pochodzi z innego adresu IP, z innym ciągiem user agent, dzięki czemu wygląda jak strumień legalnych prób logowania od różnych użytkowników.
Dlaczego ograniczanie ruchu zawodzi
Ograniczanie ruchu oparte na IP to pierwsza linia obrony, którą wdraża większość zespołów, i jest ono pierwszym, które zawodzi. Usługi proxy rezydencjalnych zapewniają dostęp do milionów prawdziwych adresów IP — routerów domowych, urządzeń mobilnych i urządzeń IoT — które rotują przy każdym żądaniu. Z perspektywy serwera każda próba logowania pochodzi z unikalnego rezydencjalnego adresu IP, który nie ma historii nadużyć.
Ograniczanie ruchu oparte na koncie (limitowanie prób logowania na nazwę użytkownika) jest skuteczniejsze, ale tworzy wektor odmowy usługi: atakujący może zablokować legalnych użytkowników, celowo wielokrotnie nieudanie logując się na ich nazwy użytkownika.
Fingerprinting urządzeń jako fundament
Fingerprinting urządzeń zmienia sytuację, ponieważ identyfikuje urządzenie przeprowadzające atak, a nie adres IP, którego ono używa. Narzędzie do credential stuffingu działające na pojedynczej maszynie lub farmie maszyn wirtualnych generuje spójny fingerprint urządzenia we wszystkich swoich żądaniach, niezależnie od tego, przez które proxy IP rotuje.
Nasz silnik Bot Detection identyfikuje same narzędzia do automatyzacji. Selenium pozostawia artefakty navigator.webdriver. Puppeteer i Playwright mają charakterystyczne cechy środowiska uruchomieniowego JavaScript. Bezgłowemu Chrome brakuje konkretnych API przeglądarki, które zawiera Chrome z interfejsem graficznym. Nawet niestandardowe klienty HTTP, które nie wykonują JavaScriptu, są wykrywane dzięki fingerprintingowi TLS — ich komunikaty Client Hello ujawniają leżącą u podstaw bibliotekę HTTP.
Śledzenie prędkości per urządzenie
Gdy mamy już stabilny identyfikator urządzenia (poprzez Device Identification), możemy stosować kontrole prędkości na poziomie urządzenia, a nie na poziomie IP. Jeśli pojedyncze urządzenie podejmuje 50 prób logowania w 5 minut — niezależnie od tego, z ilu różnych adresów IP pochodziły te żądania — wzorzec jest jednoznacznie credential stuffingiem.
Nasz moduł IP Intelligence śledzi prędkość w trzech oknach czasowych: 5 minut, 1 godzina i 24 godziny. To podejście wielookienne wychwytuje zarówno agresywne ataki (setki prób na minutę), jak i powolne ataki typu slow-and-low (kilka prób na godzinę utrzymywanych przez wiele dni).
Analiza sygnałów behawioralnych
Poza wykrywaniem botów i śledzeniem prędkości nasza analiza Smart Signals bada sygnały behawioralne, które odróżniają ataki zautomatyzowane od legalnych logowań. Prawdziwi użytkownicy wykazują naturalną zmienność w czasie żądań, szybkości pisania i wzorcach nawigacji. Narzędzia zautomatyzowane zwykle generują mechanicznie spójne odstępy czasu, identyczne nagłówki żądań oraz brak ruchów myszy czy zdarzeń przewijania.
Sprawdzamy również niespójności sygnałów wskazujące na fałszowanie środowiska. Przeglądarka podająca się za Chrome na macOS, ale prezentująca parametry WebGL powiązane z maszyną wirtualną z systemem Linux, jest natychmiast oznaczana. Ciąg user agent, który nie pasuje do fingerprintu TLS, wyzwala alert o manipulacji.
Wdrożenie na brzegu sieci
Kluczem do zatrzymania credential stuffingu jest zatrzymanie go, zanim dotrze do Twojego systemu uwierzytelniania. Nasz agent ładuje się na stronie logowania i zbiera sygnały podczas ładowania strony — zanim użytkownik (lub bot) prześle poświadczenia. Wyniki fingerprintu i wykrywania botów są dostępne w momencie przesłania formularza logowania, co pozwala Twojemu serwerowi natychmiast odrzucać zautomatyzowane próby.
W przypadku celów o dużym wolumenie zalecamy wdrożenie naszej integracji Cloudflare Worker lub CloudFront Lambda@Edge, która uruchamia walidację fingerprintu na brzegu CDN. Oznacza to, że żądania credential stuffingu są blokowane w węźle brzegowym najbliższym atakującemu i nigdy nie docierają do Twoich serwerów origin.
Wyniki
Nasi klienci zgłaszają redukcję wolumenu credential stuffingu o 99% po wdrożeniu tracio.ai na swoich stronach logowania. Pozostały 1% to wysoce wyrafinowane ataki wykorzystujące pełną automatyzację przeglądarki ze starannie sfałszowanymi sygnałami — które są wychwytywane przez naszą wielometodową detekcję w ciągu pierwszych kilkudziesięciu żądań, gdy ujawniają się wzorce prędkości.