Strona na WordPressie zaatakowana, co robić i jak zapobiegać
Strona na WordPressie zaatakowana? Dowiedz się, co robić krok po kroku i jak wdrożyć bezpieczeństwo WordPress, żeby atak się nie powtórzył.
Strona na WordPressie zaatakowana, co zrobić w pierwszej kolejności
Jeśli Twoja strona na WordPressie jest zaatakowana, pierwsza zasada jest prosta: nie panikuj i działaj według ustalonej kolejności. Typowy atak polega albo na wstrzyknięciu złośliwego kodu, albo na przejęciu konta administratora, albo na instalacji backdoora ukrytego w plikach. We wszystkich tych przypadkach kolejność działań jest podobna. Najpierw odizolowanie i ocena, potem wyczyszczenie i przywrócenie, a na końcu zabezpieczenie, żeby historia się nie powtórzyła.
Ten artykuł przeprowadzi Cię przez oba etapy, czyli reagowanie na incydent i wdrożenie bezpieczeństwa WordPress na stałe. Jeśli jeszcze nie miałeś włamania, ale chcesz zabezpieczyć stronę zanim do niego dojdzie, ten tekst jest też dla Ciebie.
Zaatakowana strona traci widoczność w Google
Google oznacza zainfekowane strony jako niebezpieczne i usuwa je z wyników wyszukiwania. Przywrócenie pozycji po długo działającym złośliwym kodzie może zająć tygodnie. Im szybciej zareagujesz, tym mniejsze straty.
Skąd wiadomo, że strona WordPress została zaatakowana
Nie każde włamania jest widoczne gołym okiem. Część ataków celowo pozostaje niewidoczna dla właściciela, bo atakujący woli traktować serwer jako narzędzie do spamowania, phishingu lub kopania kryptowalut bez wzbudzania podejrzeń.
Sygnały, które powinny wywołać reakcję:
- Strona wyświetla nieznane treści, reklamy lub przekierowania na inne adresy
- Google Search Console pokazuje ostrzeżenie o złośliwym oprogramowaniu
- Hosting zablokował konto lub zawiesił stronę bez wcześniejszego zgłoszenia
- W wynikach wyszukiwania pod Twoim adresem pojawiają się opisy w innych językach lub niezwiązane z Twoją działalnością
- Wysyłanie formularza kontaktowego powoduje błąd, choć wcześniej działało
- Panel administracyjny WordPress jest niedostępny lub pokazuje błąd
- Dostajesz alerty od Google o nieznanych weryfikacjach w Google Search Console
Krok po kroku, jak postępować po wykryciu włamania
Nie próbuj działać na zainfekowanej stronie bez wcześniejszego zabezpieczenia. Oto właściwa kolejność.
- 01Umieść stronę w trybie konserwacjiJeśli masz dostęp do panelu WordPress, włącz tryb konserwacji lub zablokuj dostęp przez plik .htaccess albo z poziomu hostingu. Dzięki temu nikt nie zainfekuje się, odwiedzając Twoją stronę w czasie naprawy, a Google nie zindeksuje kolejnych zainfekowanych podstron.
- 02Zrób kopię zapasową stanu zainfekowanej stronyZanim cokolwiek zmienisz, zrób pełną kopię plików i bazy danych. Brzmi to paradoksalnie, ale ta kopia może być potrzebna do analizy i porównania z czystą wersją. Nie traktuj jej jako kopii do przywrócenia, tylko jako archiwum do analizy.
- 03Zmień wszystkie hasła natychmiastHasło do panelu WordPress, hasło do bazy danych w pliku wp-config.php, hasło do FTP lub SSH, hasło do panelu hostingowego. Wszystkie naraz, zanim zaczniesz cokolwiek naprawiać. Stare hasła mogą być już w rękach atakującego.
- 04Przywróć kopię zapasową z okresu przed atakiemJeśli masz regularną kopię zapasową sprzed włamania, to jest najszybsza droga do czystej strony. Upewnij się, że kopie robisz na zewnętrzny serwer lub chmurę, a nie tylko na ten sam hosting. Kopia na tym samym serwerze może być zainfekowana razem ze stroną.
- 05Zeskanuj stronę wtyczką do bezpieczeństwaJeśli nie masz czystej kopii do przywrócenia, zainstaluj Wordfence Security i uruchom pełne skanowanie. Wordfence porównuje pliki WordPress z oryginalnymi wersjami z repozytorium i wskazuje zmienione lub dodane pliki. Zmodyfikowane pliki rdzenia WordPress wymagają zastąpienia oryginałami.
- 06Sprawdź użytkowników administratorówZaloguj się do panelu i sprawdź listę użytkowników z rolą Administrator. Usuń każde konto, którego nie rozpoznajesz. Atakujący często dodają konto administratora jako backdoor, żeby zachować dostęp po usunięciu złośliwego kodu.
- 07Zgłoś do Google prośbę o ponowny przeglądJeśli strona trafiła na listę złośliwego oprogramowania i wyświetla ostrzeżenie w przeglądarce, po wyczyszczeniu złóż wniosek o ponowny przegląd w Google Search Console przez sekcję Problemy z bezpieczeństwem. Google zazwyczaj reaguje w ciągu kilku dni.
Jak oczyścić zainfekowany WordPress bez kopii zapasowej
Sytuacja jest trudniejsza, gdy nie masz czystej kopii. Można ją jednak rozwiązać metodycznie.
Zastąpienie plików rdzenia WordPress
Pobierz czystą wersję WordPress z wordpress.org w tej samej wersji, co zainfekowana instalacja. Zastąp pliki rdzenia, czyli katalogi wp-admin i wp-includes oraz pliki w katalogu głównym z wyjątkiem wp-config.php i .htaccess. Nie dotykaj katalogu wp-content, bo tam są Twoje treści, motywy i wtyczki.
Sprawdzenie katalogu wp-content
Katalog wp-content zawiera motywy, wtyczki i pliki mediów. To tutaj najczęściej ukrywa się złośliwy kod. Każdą wtyczkę i motyw, który nie pochodzi z oficjalnego repozytorium lub od sprawdzonego producenta, traktuj jako podejrzany. Usuń wtyczki i motywy, których nie używasz. Zainstaluj je od nowa z czystych źródeł zamiast próbować naprawiać zainfekowane pliki.
Sprawdzenie bazy danych
Złośliwy kod może być wstrzyknięty do bazy danych, szczególnie do treści wpisów, widgetów lub ustawień motywu. Szukaj podejrzanych wpisów zawierających tagi script, eval, base64_decode lub zewnętrzne adresy URL w polach, gdzie ich nie powinno być. Wordfence lub Sucuri Scanner potrafią przeskanować też bazę danych.
Kiedy warto zlecić sprzątanie specjalistom
Jeśli nie czujesz się pewnie przy pracy z FTP, bazą danych i plikami konfiguracyjnymi, oddaj stronę specjalistom. Koszt profesjonalnego wyczyszczenia to zwykle kilkaset złotych. Próba samodzielnego naprawiania bez wiedzy technicznej może zakończyć się utratą treści lub pozostawieniem backdoora, który atakujący wykorzysta ponownie.
Bezpieczeństwo WordPress, jak zapobiegać atakom na stałe
Włamania na strony WordPress niemal nigdy nie są przypadkowe. Atakują boty, które automatycznie skanują internet w poszukiwaniu znanych luk w popularnych wtyczkach i nieaktualnych instalacjach. Jeśli Twoja strona ma niezałataną lukę, bot ją znajdzie w ciągu godzin lub dni od jej upublicznienia.
Dobra wiadomość jest taka, że zdecydowana większość ataków można zatrzymać przez kilka podstawowych działań.
Aktualizacje, fundament bezpieczeństwa WordPress
Badania branżowe konsekwentnie pokazują, że 96 procent podatności w ekosystemie WordPress pochodzi z wtyczek, a nie z rdzenia systemu. 39 procent zaatakowanych stron było nieaktualnych w chwili ataku. Jeśli aktualizujesz wtyczki i motyw regularnie, eliminujesz główne wejście dla atakujących.
Praktyczna zasada: aktualizacje rdzenia WordPress i krytyczne poprawki wtyczek wdrażaj jak najszybciej po publikacji. Pozostałe aktualizacje raz w miesiącu, po sprawdzeniu, że nie ma doniesień o konfliktach.
Automatyczne aktualizacje rdzenia są domyślnie włączone dla drobnych poprawek bezpieczeństwa. Dla dużych aktualizacji wersji (np. WordPress 6.4 do 6.5) warto przeprowadzić je ręcznie, po wcześniejszym wykonaniu kopii zapasowej.
Aktualizacja bez ryzyka
Przed każdą większą aktualizacją: kopia zapasowa całej strony, sprawdzenie kompatybilności wtyczek z nową wersją WordPress, aktualizacja na stronie testowej jeśli masz, potem na produkcyjnej. Ogranicza to ryzyko przestoju do minimum.
Silne hasła i uwierzytelnianie dwuskładnikowe
Ataki brute force na panel WordPress to jeden z najczęstszych rodzajów ataków, które boty przeprowadzają automatycznie. Próbują dziesiątek tysięcy kombinacji loginu i hasła na godzinę. Dwa działania całkowicie je neutralizują.
Po pierwsze, unikalne i trudne hasło dla każdego konta administratora. Minimum 16 znaków, losowe, przechowywane w menedżerze haseł. Żadne słownikowe słowo ani kombinacja z datą urodzin.
Po drugie, uwierzytelnianie dwuskładnikowe (2FA). Wtyczka Two Factor Authentication lub Wordfence dodaje drugi krok przy logowaniu, który wymaga kodu z aplikacji na telefonie. Bez tego kodu nawet znajomość hasła nie wystarczy, żeby się zalogować.
Zmiana domyślnej nazwy użytkownika "admin" na unikalną nazwę to kolejne działanie, które eliminuje połowę zadania dla atakujących. WordPress pozwala to zmienić po zalogowaniu lub przez bazę danych.
Zabezpieczenie pliku wp-config.php i .htaccess
Plik wp-config.php zawiera dane dostępowe do bazy danych i klucze bezpieczeństwa WordPress. Plik .htaccess kontroluje reguły dostępu na poziomie serwera. Oba powinny być chronione.
Podstawowe zabezpieczenia przez .htaccess:
# Blokuj bezpośredni dostęp do wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
# Wyłącz przeglądanie katalogów
Options -Indexes
# Zablokuj dostęp do pliku xmlrpc.php jeśli nie jest używany
<files xmlrpc.php>
order deny,allow
deny from all
</files>
Plik xmlrpc.php to kolejna częsta droga włamania. Jeśli nie korzystasz z aplikacji mobilnej WordPress ani z Jetpack, możesz go całkowicie zablokować.
Hosting jako pierwsza linia obrony
Dobry hosting oferuje zaporę sieciową (WAF), skanowanie plików i automatyczne blokowanie znanych wzorców ataków na poziomie serwera, zanim żądanie dotrze do WordPress. Sprawdź, co oferuje Twój dostawca hostingu w zakresie bezpieczeństwa. Tani współdzielony hosting często nie daje żadnej ochrony poza podstawowymi uprawnieniami plików.
Wpływ włamania na pozycje w Google
Zaatakowana strona to problem nie tylko techniczny, ale też widoczności w wyszukiwarce. Google regularnie skanuje strony w poszukiwaniu złośliwego kodu i przekierowań. Strona zidentyfikowana jako niebezpieczna trafia na listę Safe Browsing Google i zaczyna wyświetlać ostrzeżenie w przeglądarce przed otwarciem.
Konsekwencje dla SEO są poważne. Pierwsze trzy wyniki organiczne zbierają łącznie ponad połowę wszystkich kliknięć na daną frazę (Backlinko, Google CTR Stats). Strona z ostrzeżeniem "Ta strona może być niebezpieczna" zgarnie z tej puli praktycznie zero. Nawet po usunięciu zagrożenia i złożeniu wniosku o ponowny przegląd, odbudowa zaufania Google zajmuje czas.
Złośliwy kod, który generuje ukryte linki wychodzące lub tworzy nowe podstrony ze spamem, może też prowadzić do manualnej kary od Google. Kary manualne wymagają osobnego wniosku o reconsideration i mogą utrzymywać się przez tygodnie po wyczyszczeniu. (Google Search Central)
Jeśli chcesz wiedzieć, jak budować widoczność w wyszukiwarce na solidnym fundamencie technicznym, zajrzyj do naszego przewodnika jak wypozycjonować firmę lokalnie lub sprawdź, jak działamy w Twoim mieście: Warszawa, Kraków, Wrocław, Poznań.
Regularna opieka techniczna, czyli jak nie wracać do tego tematu
Bezpieczeństwo WordPress to nie projekt, który ma koniec. To powtarzalny proces. Strony bez opiekuna technicznego prędzej czy później są atakowane, bo boty skanujące internet nie śpią.
Minimalny zestaw czynności, który chroni typową stronę firmową:
- Aktualizacje wtyczek i motywu raz w miesiącu
- Weryfikacja kopii zapasowych raz w miesiącu, czy są aktualne i kompletne
- Sprawdzenie Google Search Console w poszukiwaniu ostrzeżeń o bezpieczeństwie raz w miesiącu
- Zmiana haseł do panelu WordPress i hostingu raz na pół roku
- Audyt zainstalowanych wtyczek raz na pół roku, usunięcie nieużywanych
Jeśli nie masz czasu ani zasobów, żeby robić to samodzielnie, opieka techniczna prowadzona przez agencję to rozsądna inwestycja. Koszt miesięcznej opieki jest wielokrotnie niższy niż koszt odbudowy strony po skutecznym ataku.
Więcej o tym, co ma sens technicznie przy budowie i utrzymaniu strony, piszemy w artykule wordpress czy strona kodowana. Jeśli zastanawiasz się, jak zbudować stronę pod widoczność lokalną, przeczytaj też jak zbudować stronę pod pozycjonowanie lokalne. Koszty utrzymania strony omawia osobny artykuł: ile kosztuje utrzymanie strony internetowej rocznie.
Najczęstsze pytania
Jak sprawdzić, czy strona WordPress została zaatakowana?
Objawy to między innymi nieznane treści lub przekierowania, ostrzeżenia w Google Search Console, blokada konta przez hosting i zmiany w wynikach wyszukiwania pod Twoim adresem. Możesz też uruchomić darmowy skaner, na przykład Sucuri SiteCheck, który skanuje publicznie dostępne zasoby strony bez logowania do panelu.
Co robić, jeśli nie mam kopii zapasowej przed atakiem?
Zacznij od zmiany wszystkich haseł, zamknięcia dostępu do strony i uruchomienia skanowania przez Wordfence lub Sucuri. Zastąp pliki rdzenia WordPress czystą wersją z oficjalnego źródła. Sprawdź listę użytkowników administratorów i usuń nieznane konta. Jeśli skala infekcji jest duża, rozważ zlecenie sprzątania specjalistom, bo niekompletne wyczyszczenie pozostawia backdoory.
Ile trwa przywrócenie widoczności w Google po ataku?
To zależy od czasu trwania infekcji i zakresu uszkodzeń. Jeśli strona była zainfekowana krótko i złożysz wniosek o ponowny przegląd przez Google Search Console zaraz po wyczyszczeniu, Google zwykle odpowiada w ciągu kilku dni. Jeśli infekcja trwała długo i prowadziła do generowania spamowych podstron lub ukrytych linków, odbudowa może potrwać kilka tygodni.
Czy zmiana motywu lub wtyczki może być przyczyną włamania?
Tak, zwłaszcza jeśli używasz wtyczek lub motywów pobranych z nieoficjalnych źródeł, tak zwanych nulled plugins, czyli pirackich kopii płatnych rozwiązań. Takie paczki bardzo często zawierają celowo wstrzyknięty złośliwy kod. Kupuj wtyczki tylko z oficjalnego repozytorium WordPress.org lub od sprawdzonych producentów przez ich oficjalne strony.