Po co regularnie skanować WordPress
Infekcje WordPress rzadko dają o sobie znać od razu. Backdoor potrafi siedzieć w plikach miesiącami, zanim atakujący go wykorzysta do rozsyłania spamu, przekierowań albo ataków na inne strony. Regularne skanowanie wykrywa te zmiany, zanim eskalują w blokadę od Google, ostrzeżenie hostingu albo utratę zaufania klientów. To najtańsza forma profilaktyki, jaką możesz wdrożyć samodzielnie.
Co obejmuje dobre skanowanie WordPress
Pojedyncza wtyczka rzadko wykrywa wszystko. Kompletne skanowanie sprawdza cztery obszary:
- Pliki rdzenia, wtyczek i motywu, porównanie z oryginałem pod kątem nieautoryzowanych zmian.
- Znane podatności (CVE), nieaktualne wtyczki i motywy z publicznie ujawnionymi lukami.
- Baza danych, wstrzyknięty kod w treściach, opcjach lub kontach użytkowników.
- Reputację domeny, czy Google, przeglądarki lub czarne listy spamowe już oznaczyły stronę jako niebezpieczną.
Jak skanować WordPress krok po kroku
Krok 1: Skan wtyczką bezpieczeństwa
Zainstaluj Wordfence, MalCare lub Sucuri Security i uruchom pełny skan (nie szybki). Wordfence porównuje pliki core z oficjalnym repozytorium WordPress.org i oznacza wszystkie odstępstwa, MalCare dodatkowo skanuje po stronie chmury, co odciąża Twój hosting. Wynik przeglądaj ręcznie, część ostrzeżeń bywa fałszywym alarmem (np. zmodyfikowany przez Ciebie plik motywu).
Krok 2: Ręczne porównanie plików core
Dla pewności pobierz świeżą kopię WordPressa z wordpress.org/download i porównaj z instalacją przez SSH:
diff -rq ~/wordpress-clean/wp-includes ~/public_html/wp-includes
Foldery /wp-admin/ i /wp-includes/ nie powinny się różnić ani o jeden znak, każda różnica to sygnał do dalszego sprawdzenia. Więcej o tej metodzie i o tym, co zrobić, gdy znajdziesz coś podejrzanego, opisuję w poradniku jak usuwać złośliwy kod (malware) WordPress.
Krok 3: Skan zewnętrzny, spoza Twojego serwera
Uzupełnij skan wewnętrzny narzędziami, które sprawdzają stronę z zewnątrz, dokładnie tak, jak widzi ją Google i odwiedzający:
- Sucuri SiteCheck (darmowy, online), skanuje pod kątem malware, blacklist i przestarzałego oprogramowania.
- Google Search Console, sekcja „Problemy z bezpieczeństwem", pokazuje, czy Google już wykrył coś niepokojącego.
- VirusTotal, sprawdza domenę względem kilkudziesięciu silników antywirusowych i list blokowych naraz.
Krok 4: Sprawdzenie bazy danych
Malware równie chętnie chowa się w bazie, co w plikach. W phpMyAdmin sprawdź tabelę wp_posts pod kątem wstrzykniętych skryptów:
SELECT ID, post_title FROM wp_posts
WHERE post_content LIKE '%<script%'
OR post_content LIKE '%eval(%'
OR post_content LIKE '%base64_%';
Sprawdź też tabelę wp_options (wiersze siteurl, home, active_plugins) pod kątem nieautoryzowanych zmian.
Krok 5: Lista użytkowników z rolą administratora
W panelu Użytkownicy sprawdź, czy nie ma tam kont, których nie rozpoznajesz. Utworzenie ukrytego konta administratora to jeden z najczęstszych celów ataku, dający atakującemu trwały dostęp nawet po wyczyszczeniu plików.
Jak często skanować WordPress
Wordfence i podobne wtyczki pozwalają ustawić automatyczny skan cykliczny, codziennie dla stron z logowaniem klientów lub sklepem, raz w tygodniu dla mniejszych wizytówek. Ustaw też powiadomienia e-mail przy wykryciu zmian w plikach, żeby nie musieć sprawdzać ręcznie. Skan zewnętrzny (Sucuri SiteCheck, Search Console) warto przeglądać przynajmniej raz w miesiącu.
Co zrobić, gdy skan wykryje malware
Nie panikuj i nie usuwaj plików na oślep. Zrób najpierw backup aktualnego (zainfekowanego) stanu, przyda się do analizy, a potem postępuj zgodnie z poradnikiem jak usuwać złośliwy kod (malware) WordPress. Jeśli infekcja wraca mimo czyszczenia, oznacza to zwykle ukryty backdoor, którego automatyczny skaner nie wykrył.
Kiedy lepiej zadzwonić do specjalisty
Jeśli skan zwraca sprzeczne wyniki, nie masz pewności, czy ostrzeżenie jest realne, albo strona już trafiła na czarną listę Google, warto sięgnąć po pełny audyt bezpieczeństwa WordPress, ręczną analizę zamiast polegania wyłącznie na automatach. Zadzwoń: 577 020 415, reakcja w 1h, bezpłatna wstępna diagnoza.