WordPress jest używany przez ogromną część wszystkich stron internetowych na świecie. To ogromna zaleta - dojrzały, sprawdzony, wspierany przez tysiące programistów. Ale ta sama popularność sprawia, że jest numerem jeden na liście celów automatycznych botów, które non-stop skanują internet w poszukiwaniu słabych instalacji.

Nie musisz prowadzić sklepu za milion złotych ani być politykiem, żeby stać się celem ataku. Wystarczy, że masz stronę na WordPressie i nie zadbałeś o trzy podstawowe rzeczy. W tym artykule wyjaśniam, czym jest atak brute-force, dlaczego login "admin" to katastrofa i jak w 15 minut ustawić podstawy, których brakuje większości nowych instalacji.

Dlaczego WordPress jest tak często atakowany

Wyobraź sobie, że produkujesz kłódkę, z której korzysta co trzecia osoba na świecie. Złodzieje nie kupują kłódki i uczą się jej otwierać raz, żeby obrobić jeden magazyn. Uczą się jej otwierać raz, żeby mieć dostęp do setek milionów magazynów.

Tak samo działa to z WordPressem. Automatyczne skrypty codziennie skanują miliony adresów IP, szukają pliku wp-login.php (strony logowania) i wp-admin (panelu administracyjnego). Nie szukają Twojej strony konkretnie. Szukają WordPressa. I kiedy go znajdą, zaczynają próbować się zalogować.

Jeśli masz stronę na WordPressie, bez względu na jej wielkość czy tematykę, ta strona jest regularnie odwiedzana przez boty próbujące odgadnąć Twoje hasło.

40+procent wszystkich stron na świecie działa na WordPressie
98procent luk w WordPress pochodzi z wtyczek, nie z rdzenia
15minut zajmuje wdrożenie trzech podstawowych kroków bezpieczeństwa

Co to jest atak brute-force

Atak brute-force (z ang. "siłowy") to metoda, która nie wymaga żadnej wiedzy o ofierze. Bot po prostu testuje tysiące kombinacji loginów i haseł jedna po drugiej, aż trafi na właściwą.

Podstawowa lista, od której każdy bot zaczyna, wygląda tak:

  • login: admin, hasło: admin
  • login: admin, hasło: password
  • login: admin, hasło: 123456
  • login: admin, hasło: nazwa domeny
  • login: admin, hasło: wordpress

Widzisz wzorzec? Pierwszy człon (login) prawie zawsze to admin. I nie bez powodu - to domyślna nazwa użytkownika sugerowana przez WordPress podczas instalacji. Znaczna część właścicieli stron po prostu ją zostawia.

Domyślnie WordPress nie ogranicza liczby prób logowania. Bot może testować setki kombinacji na minutę bez żadnych konsekwencji, dopóki ktoś tego nie zablokuje.

Jeśli Twój login to "admin" i hasło to cokolwiek prostego, Twoja strona jest aktywnie atakowana w tej chwili - i kwestią czasu jest kiedy bot trafi.

Krok pierwszy: silne hasło

Silne hasło to nie jest Imię123! ani data urodzenia. Silne hasło to coś, czego człowiek nie zapamięta bez pomocy - i to jest właśnie dobry znak.

Co charakteryzuje naprawdę silne hasło:

Cechy silnego hasła

  • Minimum 16 znaków - każdy dodatkowy znak wielokrotnie zwiększa czas potrzebny do złamania
  • Losowe znaki: wielkie litery, małe litery, cyfry, znaki specjalne (!@#$%)
  • Żadnych słów ze słownika w żadnym języku
  • Żadnych dat, imion, nazw firm, nazwy domeny
  • Inne dla każdego serwisu - nie używasz tego samego hasła nigdzie indziej

WordPress ma wbudowany generator haseł. Kiedy edytujesz użytkownika w panelu administracyjnym (Użytkownicy - Twój profil, sekcja "Zarządzanie kontem"), zobaczysz przycisk "Generuj hasło". Wygenerowane w ten sposób hasło jest naprawdę silne i losowe.

Jedyny problem: jak je zapamiętać? Nie zapamiętasz - i nie musisz. Do tego służą menedżery haseł. Aplikacje takie jak Bitwarden, 1Password czy KeePass przechowują Twoje hasła zaszyfrowane i wypełniają je automatycznie przy logowaniu. Korzystam z nich przy każdym projekcie klienta i szczerze polecam - to jeden z najprostszych kroków, który realnie podnosi bezpieczeństwo.

U klienta, któremu przejmowałem stronę po poprzednim webmasterze, hasło do panelu brzmiało firma2018. Zmiana na 24-znakowe losowe hasło zajęła dosłownie 30 sekund. Próby logowania botów nie ustały, ale stały się zupełnie niegroźne.

Krok drugi: zmień login administratora z "admin" na cokolwiek innego

Jeśli Twój login to admin i bot zna już jedną z dwóch zmiennych (login), musi tylko odgadnąć hasło. Jeśli login jest losowy, bot musi odgadnąć obie zmienne jednocześnie. Matematycznie to przepaść.

WordPress nie pozwala zmienić nazwy użytkownika przez panel - pole jest zablokowane. Są dwa sposoby obejścia tego:

Sposób 1 (prosty, dla nowych stron): Utwórz nowego użytkownika z rolą Administratora i wybraną przez siebie nazwą. Zaloguj się na to nowe konto. Usuń stare konto "admin" - WordPress zapyta, co zrobić z treściami przypisanymi do usuwanego użytkownika; wybierz przeniesienie ich na nowe konto.

Sposób 2 (dla istniejących stron z dużą zawartością): Skorzystaj z wtyczki do zmiany nazwy użytkownika lub poproś developera o zmianę bezpośrednio w bazie danych.

Login admin vs. własny login

KryteriumLogin: adminLogin: własny
Czy bot zna pierwszą zmienną?Tak, zawszeNie
Liczba kombinacji do sprawdzeniaMiliony (tylko hasła)Miliardy (login + hasło)
Czas potrzebny na złamanieMinuty/godziny przy słabym haślePraktycznie nieskończony
Ryzyko przy prostym haśleBardzo wysokieWysokie
Ryzyko przy silnym haśleNiskieMinimalne

Jak wybrać dobry login? Tak samo jak hasło - coś co nie jest oczywiste. Nie Twoje imię, nie nazwa firmy, nie skrót od domeny. Może być pseudonim, losowy ciąg liter, cokolwiek, czego nie przewidzi słownik botów.

Krok trzeci: aktualizuj WordPress, motywy i wtyczki

Wiele osób instaluje WordPress, konfiguruje stronę i zapomina o aktualizacjach. To błąd, który codziennie kończy się włamaniami.

Dlaczego aktualizacje są tak ważne? Kiedy badacze bezpieczeństwa odkrywają lukę w WordPressie lub popularnej wtyczce, twórcy wydają poprawkę. Ale jednocześnie informacja o luce staje się publiczna - co oznacza, że boty i hakerzy natychmiast zaczynają szukać stron, które tej poprawki jeszcze nie mają.

Okno zagrożenia to czas między opublikowaniem informacji o luce a momentem, gdy Ty ją załatasz. Im dłużej czekasz, tym większe ryzyko.

Plusy

  • Aktualizacje zamykają znane luki bezpieczeństwa
  • Nowe wersje działają szybciej i bardziej stabilnie
  • Wtyczki i motywy zachowują kompatybilność między sobą
  • WordPress może aktualizować drobne poprawki automatycznie

Minusy

  • Duże aktualizacje mogą czasem zepsuć zgodność z przestarzałymi wtyczkami
  • Wymagają wcześniejszego wykonania backupu
  • Niesprawdzone na środowisku testowym mogą powodować problemy na produkcji

Praktyką, którą stosuję u klientów, jest włączenie automatycznych aktualizacji dla drobnych wersji bezpieczeństwa (np. z 6.4.1 na 6.4.2) i ręczna, świadoma aktualizacja przy dużych skokach wersji - po wcześniejszym backupie i szybkim teście. To rozsądny kompromis między bezpieczeństwem a stabilnością.

Dobrą praktyką jest też usuwanie wtyczek i motywów, których aktywnie nie używasz. Dezaktywowana wtyczka nadal istnieje na serwerze - jej pliki są dostępne i mogą zawierać nieaktualne, dziurawe funkcje. Deinstalacja to jedyna pewna eliminacja ryzyka.

O tym, jak bezpiecznie robić kopie zapasowe i co powinny zawierać, napisałem w osobnym artykule - polecam go jako uzupełnienie tych kroków.

Co jeszcze możesz zrobić od razu

Trzy powyższe kroki to absolutne minimum. Jeśli masz chwilę więcej, dorzuć do tego:

Dodatkowe kroki po wdrożeniu podstaw

  • Zainstaluj wtyczkę ograniczającą liczbę prób logowania (np. Limit Login Attempts Reloaded)
  • Włącz uwierzytelnianie dwuskładnikowe (2FA) dla konta administratora
  • Sprawdź, czy wszystkie nieużywane wtyczki i motywy są odinstalowane, a nie tylko dezaktywowane
  • Upewnij się, że masz działający backup - najlepiej automatyczny, codziennie na zewnętrzne miejsce
  • Zainstaluj certyfikat SSL (HTTPS), jeśli jeszcze go nie masz

Uwierzytelnianie dwuskładnikowe zasługuje na osobne wspomnienie. Nawet jeśli bot jakoś odgadnie Twój login i hasło, bez drugiego składnika (kodu z aplikacji na telefonie) i tak nie wejdzie. To bardzo skuteczna warstwa ochrony, a konfiguracja przez wtyczkę zajmuje kilka minut.

Jeśli masz stronę na WordPressie i nie wiesz, jak ustawić te rzeczy samodzielnie, skontaktuj się ze mną - konfiguruję to w ramach wdrożenia strony i mogę też sprawdzić istniejącą instalację pod kątem podstawowych zagrożeń.

Czego NIE robić - błędy, które widzę najczęściej

Po ponad dekadzie pracy z WordPressem i setkach wdrożonych projektów mam listę błędów, które powtarzają się u klientów, którzy przychodzą do mnie po włamaniu:

1. Hasło identyczne z loginem lub nazwą domeny.
2. Jedno hasło do WordPressa, hostingu, FTP, e-maila - włamanie do jednego serwisu to włamanie do wszystkich.
3. Wtyczki zapomniane (zainstalowane, dezaktywowane, niepaktualizowane od lat). Każda z nich to potencjalny punkt wejścia.
4. Brak backupu. Nawet perfekcyjne zabezpieczenia nie dają gwarancji. Jeśli włamanie nastąpi, backup to jedyna rzecz, która pozwoli odtworzyć stronę w stanie sprzed ataku.
5. Plugin "security" zamiast podstaw. Wtyczki do bezpieczeństwa są pomocne, ale nie zastąpią silnego hasła i aktualizacji. Widziałem strony z Wordfencem i hasłem admin123.

Jeśli dopiero zaczynasz swoją przygodę z WordPressem, polecam też artykuł czym jest WordPress i jak działa - tłumaczy fundamenty, na których budujesz całą dalszą konfigurację. A jeśli zastanawiasz się nad wyborem platformy, zerknij na porównanie WordPress.com vs WordPress.org.

Bezpieczeństwo to proces, nie jednorazowe działanie

Największy błąd myślenia o bezpieczeństwie strony to przekonanie, że raz skonfigurowane nie wymaga uwagi. Internet się zmienia, nowe luki są odkrywane regularnie, a boty stają się coraz bardziej zaawansowane.

Kroki opisane w tym artykule są fundamentem. Silne hasło, inny login niż admin, bieżące aktualizacje - to nie gwarantuje, że nic się nie stanie, ale radykalnie zmniejsza ryzyko. Większość włamań to ataki oportunistyczne: bot trafia na słabą instalację i wchodzi. Jeśli Twoja instalacja jest choćby minimalnie zahardowana, bot idzie dalej - do łatwiejszego celu.

Pomyśl o tym jak o zamku w drzwiach. Nie zabezpiecza przed zdeterminowanym włamywaczem z tydzień czasu i pełnym zestawem narzędzi. Ale sprawia, że losowy złodziej na Twojej ulicy wybiera drzwi bez zamka. A taki właśnie jest 99% ataków na WordPressa.

Jeśli prowadzisz sklep internetowy lub stronę firmową, zadbaj o te podstawy zanim zaczniesz martwić się o SEO, prędkość czy design. Bez tego reszta nie ma sensu. Możesz też napisać do mnie, jeśli chcesz, żebym sprawdził Twoją instalację i wskazał priorytety.

Najczęstsze pytania

Czy WordPress jest bezpieczny?

Rdzeń WordPressa jest regularnie audytowany i uważany za bezpieczny. Problem leży gdzie indziej - w przestarzałych wtyczkach, słabych hasłach i braku aktualizacji. Ponad 90% włamań wynika z zaniedbań konfiguracyjnych, a nie z wad samego WordPressa.

Skąd boty wiedzą, że mam stronę na WordPressie?

Automatyczne skanery internetu przeglądają miliony adresów IP dziennie i szukają charakterystycznych plików WordPressa, takich jak wp-login.php czy wp-admin. Nie atakują Cię osobiście - atakują każdą instalację WordPress, na którą natrafią.

Jak zmienić login administratora w WordPress, skoro nie można go edytować?

WordPress nie pozwala zmienić nazwy użytkownika przez panel. Najprostsze wyjście to stworzenie nowego konta administratora z docelową nazwą, zalogowanie się na to nowe konto, a następnie usunięcie starego konta 'admin'. Treści przypisane do usuniętego konta można przenieść na nowe.

Jak długie powinno być silne hasło do WordPress?

Minimum 16 znaków, a idealnie 20 lub więcej. Hasło powinno zawierać losowe znaki - duże i małe litery, cyfry, znaki specjalne. Unikaj słów ze słownika, dat urodzenia i imion. Najlepiej użyj wbudowanego generatora haseł WordPress lub osobnego menedżera haseł.

Czy zmiana adresu logowania wp-admin poprawia bezpieczeństwo?

Tak, ale jest to dodatkowa warstwa, nie zamiennik dla silnego hasła. Zmiana domyślnego adresu /wp-login.php utrudnia botom trafienie w formularz logowania i zmniejsza obciążenie serwera spowodowane atakami brute-force. Samo to nie wystarczy - należy połączyć z silnym hasłem i nowym loginem.

Jak często aktualizować WordPress?

Drobne aktualizacje bezpieczeństwa warto instalować od razu po wydaniu - najlepiej w ciągu jednej doby. Większe aktualizacje (nowa wersja główna) przetestuj najpierw na kopii lub środowisku testowym, żeby sprawdzić zgodność z Twoimi wtyczkami i motywem.

Czym jest uwierzytelnianie dwuskładnikowe i czy potrzebuję go na WordPressie?

Uwierzytelnianie dwuskładnikowe (2FA) wymaga podania drugiego potwierdzenia tożsamości po wpisaniu hasła - najczęściej kodu z aplikacji na telefonie. Dla każdego konta administratora to bardzo dobry pomysł. Wymaga zainstalowania wtyczki, ale konfiguracja zajmuje kilka minut i znacząco podnosi bezpieczeństwo logowania.