Blog 24/7

ochrona przed atakami brute force

TAB. 1Hasłoobie formy
Po angielskubrute force protection
Którą formą pisaćobie formy Obie formy są w obiegu. Przy pierwszym wystąpieniu pisz „polski termin (english term)”, dalej sam polski.
Inne formyochrona przed atakiem siłowym · atak siłowy (sama nazwa ataku) · zgadywanie haseł metodą siłową · ograniczanie liczby prób logowania
KategoriaStrony WWW, WordPress i hosting

Ochrona przed atakami brute force (brute force protection) to zestaw mechanizmów, które utrudniają zgadywanie haseł i innych danych logowania. Atak siłowy (brute-force) polega według CERT Polska na systematycznym sprawdzaniu kolejnych możliwych wartości danych uwierzytelniających, aż do znalezienia poprawnej [1]. Ochrona nie polega na jednym zabezpieczeniu. Łączy limity prób, opóźnienia, blokady, weryfikację, że po drugiej stronie jest człowiek, oraz drugi składnik logowania. Brak takich mechanizmów MITRE opisuje jako słabość CWE-307: produkt nie stosuje wystarczających środków, by zapobiec wielu nieudanym próbom uwierzytelnienia w krótkim czasie [5].

Jak działa

Podstawą jest licznik nieudanych prób. CERT Polska zaleca ograniczać częstotliwość prób uwierzytelnienia i liczyć je jednocześnie dla konta oraz dla źródła żądania [1]. Po przekroczeniu limitu stosuje się narastające opóźnienia, blokadę czasową, dodatkową weryfikację albo CAPTCHA [1]. Reakcja rośnie więc stopniowo, co pokazuje schemat poniżej.

RYS. 1Stopniowana reakcja na nieudane logowania

OWASP opisuje politykę blokady trzema parametrami: liczbą nieudanych prób, po której konto jest blokowane, oknem czasu, w którym te próby się liczą, oraz czasem trwania blokady [3]. Wymienia też blokadę wykładniczą, która zaczyna się od bardzo krótkiego czasu, na przykład sekundy, i podwaja go po każdej kolejnej nieudanej próbie [3].

NIST w wytycznych SP 800-63B wymaga, by liczba kolejnych nieudanych prób dla jednego uwierzytelniacza na jednym koncie nie przekraczała 100 [4]. To górna granica; organizacje mogą ustalać niższe [4]. Zamiast twardej blokady NIST dopuszcza test wykrywający boty, oczekiwanie rosnące wraz ze zbliżaniem się do limitu, na przykład od 30 sekund do godziny, oraz techniki oparte na ocenie ryzyka [4].

Odmiany ataków

Licznik prób działa różnie w zależności od tego, co atakujący zmienia między próbami. OWASP rozróżnia trzy zautomatyzowane odmiany [3].

OdmianaCo jest testowaneKtóry licznik ją widzi
brute forcewiele haseł z jednego konta [3]licznik na koncie
credential stuffingpary login–hasło z wycieków z innych serwisów [3]głównie licznik na źródle i analiza wzorców
password sprayingjedno słabe hasło na wielu kontach [3]licznik na źródle; licznik konta rośnie powoli

Dlatego CERT Polska zaleca liczenie prób jednocześnie dla konta i źródła, a zarazem przestrzega przed poleganiem wyłącznie na ograniczeniach opartych na adresie IP [1]. Ataki rozproszone przez botnet korzystają z wielu adresów naraz.

W WordPressie

Sekurak w poradniku z 2017 roku zauważył, że WordPress nie ma wbudowanych zabezpieczeń przed atakami słownikowymi [6]. Formularz logowania rdzenia nie ogranicza więc sam liczby prób; robią to wtyczki, serwer lub usługa przed stroną. Dokumentacja WordPressa ostrzega, że ataki są zautomatyzowane i często rozproszone, więc nawet nieudane mogą przeciążyć stronę [2].

Zalecenia z dokumentacji rdzenia obejmują kilka warstw [2]:

Dokumentacja dopuszcza wtyczki bezpieczeństwa ograniczające próby logowania, ale zaleca, by tam, gdzie to możliwe, robić to na brzegu sieci albo na serwerze [2]. Wtyczka obsługuje każde żądanie dopiero po uruchomieniu WordPressa, więc przy dużym ataku sama zużywa zasoby. Tę rolę pełni WAF albo rate limiting w serwerze WWW.

CERT Polska sprawdza podatność stron na zgadywanie haseł także w praktyce. System Artemis ma moduł wordpress_bruter, który próbuje odgadnąć dane logowania do WordPressa metodą brute-force [7].

Zagrożenia i skutki

Udany atak kończy się przejęciem konta; przy koncie administratora oznacza to kontrolę nad całą stroną. Sama ochrona też ma koszt. OWASP ostrzega, że mechanizm blokady trzeba zaprojektować tak, by nie dało się go użyć do blokowania kont innych użytkowników [3]. Atakujący, który zna loginy, na przykład dzięki enumeracji użytkowników, mógłby celowo wyczerpywać ich limity i odcinać ich od panelu. To powód, dla którego NIST wymienia opóźnienia i testy na boty jako alternatywy dla twardej blokady [4].

Dobre praktyki

Zalecenia CERT Polska wykraczają poza formularz logowania [1]:

  • te same limity we wszystkich miejscach uwierzytelniania, także w API, panelach administracyjnych i usługach sieciowych;
  • limity również przy resetowaniu hasła i weryfikacji drugiego składnika;
  • uwierzytelnianie wieloskładnikowe dla kont administracyjnych;
  • wymóg odpowiednio długich haseł i blokowanie haseł popularnych oraz znanych z wycieków, zgodnie z zasadami bezpiecznych haseł;
  • monitorowanie nieudanych prób według konta, źródła, urządzenia, czasu i wzorca aktywności.

MITRE wśród typowych mechanizmów ochrony wymienia rozłączenie po kilku nieudanych próbach, limit czasu, zablokowanie atakowanego konta i wymaganie od użytkownika zadania obliczeniowego [5]. W WordPressie najprostszy zestaw to limit prób logowania na serwerze, drugi składnik dla administratorów oraz zamknięcie nieużywanych kanałów logowania.

# ilustracja: dostęp do wp-login.php tylko z biura
<Files "wp-login.php">
  Require ip 192.0.2.10
</Files>

Taka biała lista adresów IP odcina większość zautomatyzowanych prób, ale wymaga stałego adresu u wszystkich osób, które się logują.

Historia i przykłady

Niebezpiecznik 20 listopada 2013 roku opisał atak na konta w serwisie GitHub. Według wpisu serwis zablokował kilka kont, a powodem były słabe hasła ich właścicieli oraz botnet z około 40 000 unikatowych adresów IP, który próbował logować się, zgadując hasła [8]. Przypadek pokazuje oba problemy naraz: rozproszony atak omija proste limity liczone tylko dla jednego adresu, a słabe hasło pozostaje najsłabszym punktem nawet w dużym serwisie.

TAB. 2

Przypisy

8
  1. [1] Ataki brute force · CERT Polska
  2. [2] Brute Force Attacks — Advanced Administration Handbook · WordPress.org
  3. [3] Authentication Cheat Sheet · OWASP
  4. [4] NIST SP 800-63B-4: Digital Identity Guidelines — Authentication and Authenticator Management · NIST
  5. [5] CWE-307: Improper Restriction of Excessive Authentication Attempts · MITRE
  6. [6] Jak zabezpieczyć WordPress – poradnik krok po kroku · Sekurak
  7. [7] Artemis · CERT Polska
  8. [8] Ataki brute-force na GitHuba · Niebezpiecznik
TAB. 3

Hasła w tym artykule

17
TAB. 4

Linkują tutaj

8

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com