Przekierowania na obce strony, spamowe podstrony w Google, nieznane konta administratorów albo ostrzeżenie przeglądarki mogą oznaczać infekcję WordPressa. Nie usuwaj jednak plików na oślep. Bezpieczne czyszczenie obejmuje kopię do analizy, sprawdzenie plików i bazy danych, usunięcie backdoora, zmianę dostępów oraz zamknięcie luki, przez którą doszło do włamania.
Jak rozpoznać, że WordPress został zainfekowany?
Nie każda awaria oznacza złośliwy kod. Konflikt wtyczek, błąd PHP albo nieudana aktualizacja również mogą unieruchomić stronę. Podejrzenie infekcji rośnie jednak wtedy, gdy pojawia się kilka nietypowych objawów naraz.
Najczęstsze sygnały ostrzegawcze to:
- przekierowanie użytkowników na obce lub podejrzane domeny,
- nowe treści, reklamy albo linki, których nie dodawałeś,
- nieznane konta z uprawnieniami administratora,
- obce wtyczki, motywy lub pliki na serwerze,
- ostrzeżenie Google, przeglądarki albo programu antywirusowego,
- dziwne tytuły i podstrony w wynikach wyszukiwania,
- nagłe spowolnienie strony lub duża ilość spamu wysyłanego z domeny.
W przypadku sklepu WooCommerce zareaguj szczególnie szybko. Przekierowania, złośliwe skrypty lub przejęcie konta mogą wpływać na zamówienia i dane klientów. Jeżeli istnieje podejrzenie dostępu do danych osobowych, trzeba niezależnie ocenić zakres incydentu i obowiązki związane z bezpieczeństwem informacji.
Co zrobić w pierwszej godzinie?
Najpierw ogranicz szkody i zachowaj materiał do analizy. Zapisz, kiedy pojawiły się objawy, jakie działania wykonywano wcześniej i czy problem dotyczy wszystkich użytkowników. Sprawdź też, czy na tym samym koncie hostingowym działają inne witryny.
Nie kasuj przypadkowych plików i nie przywracaj bez sprawdzenia najnowszego backupu. Kopia może zawierać już złośliwy kod, ale nadal będzie potrzebna do analizy lub odtworzenia danych. Wykonaj kopię plików i bazy danych przed rozpoczęciem zmian, a jeśli strona aktywnie przekierowuje, wyświetla phishing albo wysyła spam, czasowo ogranicz jej dostępność.
Z bezpiecznego urządzenia zmień najważniejsze hasła, przynajmniej tymczasowo. Dotyczy to WordPressa, hostingu, FTP lub SFTP, poczty i innych kont administracyjnych. Przeskanuj komputery osób mających dostęp do strony. Po pełnym czyszczeniu hasła trzeba zmienić ponownie, ponieważ pierwszy reset mógł zostać wykonany na nadal zainfekowanym urządzeniu.
Gdzie szukać złośliwego kodu?
Objaw często wskazuje obszar, od którego warto zacząć, ale nie zastępuje pełnej analizy. Złośliwy kod może znajdować się jednocześnie w plikach, bazie danych i zadaniach automatycznych.
| Typ infekcji | Gdzie szukać | Co sprawdzić |
|---|---|---|
| SEO Spam | Baza danych, treści wpisów, pliki motywu i wtyczek | Obce linki, tytuły, skrypty i spamowe podstrony |
| Redirect Hack | .htaccess, wp-config.php, motyw, baza danych |
Reguły przekierowań i warunkowe ładowanie kodu |
| Backdoor | wp-content, uploads, mu-plugins, cron |
Nieznane pliki, ukryte skrypty i mechanizmy odtwarzające infekcję |
| Przejęte konto | Użytkownicy WordPressa, hosting, FTP/SFTP | Nowych administratorów, logowania i zmiany uprawnień |
Jak usunąć złośliwy kod z WordPressa krok po kroku?
- Przygotuj kopię i środowisko do pracy – zachowaj kopię plików oraz bazy danych, zapisz objawy i ogranicz dostęp do witryny. Nie traktuj zainfekowanej kopii jako bezpiecznej wersji do późniejszego użycia.
- Porównaj WordPress Core z czystą wersją – pobierz tę samą wersję WordPressa z zaufanego źródła i porównaj pliki rdzenia. Możesz użyć sum kontrolnych lub narzędzi dostępnych na serwerze. Zwykle bezpieczniej jest zastąpić katalogi
wp-adminiwp-includesczystymi plikami niż ręcznie poprawiać każdą linię. - Sprawdź pliki konfiguracyjne – przeanalizuj
wp-config.php,.htaccess, głównyindex.phporaz inne pliki konfiguracji serwera. Nie usuwaj automatycznie każdego wystąpieniaevalczybase64_decode. Takie funkcje mogą występować w legalnym kodzie, ale połączenie ich z kodem pobierającym lub wykonującym treść z zewnątrz wymaga dokładnej weryfikacji. - Wyczyść
wp-content– sprawdź wtyczki, motywy, katalogmu-pluginsiuploads. Pliki PHP w katalogu przeznaczonym na obrazy są podejrzane, ale przed usunięciem porównaj je z kopią i sprawdź, czy nie są częścią legalnego rozwiązania. Wtyczki i motywy pobierz ponownie z zaufanego źródła, a nieużywane elementy usuń zamiast tylko dezaktywować. - Przejrzyj bazę danych – sprawdź tabele użytkowników, opcji i treści, zwykle odpowiadające za konta, ustawienia, wpisy i strony. Szukaj nieznanych administratorów, obcych adresów URL, skryptów JavaScript, zmienionych adresów witryny oraz wpisów, które mogą ponownie ładować złośliwy kod.
- Usuń backdoory i sprawdź cron – backdoor to ukryta droga dostępu, dzięki której atakujący może wrócić po usunięciu widocznych objawów. Sprawdź zadania WP-Cron i cron serwera, nieznane pliki oraz mechanizmy pobierające lub odtwarzające kod. Samo usunięcie przekierowania bez znalezienia backdoora często kończy się reinfekcją.
- Zweryfikuj użytkowników i sesje – usuń nieznane konta, ogranicz role osób, które nie potrzebują uprawnień administratora, i unieważnij aktywne sesje. Wymień klucze bezpieczeństwa w
wp-config.php, a następnie ponownie zmień hasła do WordPressa, hostingu, FTP/SFTP, bazy danych i poczty. - Zamknij przyczynę włamania – zaktualizuj WordPressa, motyw, wtyczki i wspieraną wersję PHP zgodną z używaną instalacją. Usuń porzucone rozszerzenia, sprawdź uprawnienia plików i przeanalizuj logi serwera. Jeżeli przyczyną była luka wtyczki, przywrócenie starej wersji z backupu bez aktualizacji może doprowadzić do natychmiastowej reinfekcji.
Notatka administratora: automatyczny skaner pomaga znaleźć odstępstwa, lecz nie rozstrzyga samodzielnie, czy kod jest złośliwy. Wynik porównaj z czystą wersją pliku, historią zmian i logami. W przypadku sklepu, wielu zainfekowanych witryn, powracającej infekcji albo braku pewności, które pliki można usunąć, bezpieczniej zaangażować specjalistę.
Jak sprawdzić, czy infekcja nie wraca?
Brak przekierowania po czyszczeniu nie oznacza jeszcze, że strona jest bezpieczna. Obserwuj ją przez kolejne dni i sprawdź nie tylko wygląd witryny, lecz także logi serwera. To one mogą pokazać próby logowania, wywołania podejrzanych plików, nietypowe żądania i moment ponownej modyfikacji plików.
Po zakończeniu prac przejdź przez tę checklistę:
- sprawdź zadania WP-Cron i cron serwera,
- porównaj listę użytkowników WordPressa oraz użytkowników Google Search Console,
- przejrzyj logowania do panelu, hostingu, FTP lub SFTP,
- skontroluj daty modyfikacji plików i nieznane pliki w katalogach strony,
- uruchom ponowny skan lokalny oraz zewnętrzny, na przykład Sucuri SiteCheck,
- poproś hosting o sprawdzenie ruchu wychodzącego, spamu i pozostałych witryn na koncie.
Jeżeli po czyszczeniu ponownie pojawia się ten sam plik, konto administratora albo przekierowanie, przerwij kolejne ręczne kasowanie. Taki wzorzec zwykle wskazuje na pozostawiony backdoor, aktywny dostęp albo niezałataną lukę.
Jak odzyskać zaufanie Google?
Usunięcie malware nie usuwa automatycznie ostrzeżeń i spamowych adresów z indeksu. W Google Search Console otwórz raport Problemy dotyczące bezpieczeństwa i sprawdź, czy Google nadal widzi malware, phishing albo zhakowane treści.
- Usuń przyczynę ostrzeżenia i upewnij się, że strona działa poprawnie.
- Sprawdź spamowe adresy URL, mapę XML oraz najważniejsze podstrony w narzędziu sprawdzania adresów.
- Jeśli raport nie pokazuje już problemu, wyślij prośbę o ponowne sprawdzenie witryny i opisz wykonane działania.
- W razie potrzeby użyj narzędzia tymczasowego usuwania adresów, ale nie traktuj go jako zamiennika trwałego usunięcia treści.
Usunięte podstrony powinny przestać istnieć i zwracać właściwy kod HTTP, najczęściej 404 albo 410, gdy nie mają odpowiednika. Nie zmieniaj masowo wszystkich poprawnych stron 404 tylko po to, aby przyspieszyć porządkowanie indeksu.
Jak zabezpieczyć WordPress po infekcji?
Po czyszczeniu ogranicz liczbę elementów, które mogą zostać wykorzystane przy kolejnym ataku. Największe znaczenie mają aktualizacje, kontrola dostępów i możliwość szybkiego odtworzenia sprawdzonej kopii.
Wdroż następujące działania:
- aktualizuj WordPressa, motyw, wtyczki i wspierane PHP,
- usuwaj nieużywane rozszerzenia oraz nieznane konta,
- stosuj długie, unikalne hasła i włącz 2FA dla kont administracyjnych,
- ogranicz liczbę administratorów i nadaj użytkownikom tylko potrzebne uprawnienia,
- rozważ WAF, który może blokować część niebezpiecznych żądań przed dotarciem do aplikacji,
- wykonuj kopie plików i bazy danych poza serwerem produkcyjnym oraz sprawdzaj ich odtwarzanie,
- oddzielaj różne witryny działające na jednym koncie hostingowym,
- monitoruj logowania, zmiany plików, użytkowników i nietypowy ruch wychodzący.
Nie instaluj kilku dodatków wykonujących te same funkcje ochronne bez sprawdzenia ich zgodności. WAF ani wtyczka bezpieczeństwa nie zastąpią aktualizacji, bezpiecznych haseł i usunięcia źródła włamania.
Jeżeli infekcja dotyczy sklepu, wraca mimo czyszczenia, obejmuje kilka stron albo nie masz pewności, czy w bazie danych pozostał złośliwy kod, zleć analizę administratorowi bezpieczeństwa. Najważniejszy następny krok to nie samo skasowanie widocznego pliku, lecz potwierdzenie, że zamknięto drogę ponownego dostępu.
Artykuł ma charakter informacyjny. W przypadku podejrzenia naruszenia danych osobowych, przejęcia kont lub infekcji sklepu internetowego skonsultuj incydent ze specjalistą ds. bezpieczeństwa oraz, gdy jest to wymagane, z osobą odpowiedzialną za ochronę danych.