Skip to content

Wszystko o WordPressie, tworzeniu stron — i nie tylko

🔍 Jak sprawdzić stronę na WordPress na wirusy i szkodliwy kod

🔍 Jak sprawdzić stronę na WordPress na wirusy i szkodliwy kod

Wchodzą Państwo rano do panelu administracyjnego, a tam przekierowanie na stronę phishingową. Albo Google oznacza wszystkie wyniki wyszukiwania czerwonym komunikatem „strona może być zhakowana". Albo hosting wysyła wiadomość o przekroczeniu obciążenia: czyjś skrypt rozsyła spam z Państwa serwera.

Złośliwy kod w WordPress rzadko ujawnia się głośno. Miesiącami po cichu zbiera hasła, osadza ukryte linki, kopie kryptowaluty na cudzych procesorach. Według danych z badań bezpieczeństwa WordPress 96% podatności w ekosystemie WordPress dotyczy wtyczek i motywów, a średni czas między wykryciem podatności a rozpoczęciem jej wykorzystania skrócił się do 48 godzin. Bez regularnego skanowania dowiedzą się Państwo o problemie jako ostatni, gdy wyszukiwarki już zbanowały domenę, a hosting zablokował konto.

Dobra wiadomość: sprawdzić stronę pod kątem wirusów i podejrzanego kodu może każdy administrator, bez głębokiej ekspertyzy w cyberbezpieczeństwie. Wystarczy odpowiednia wtyczka i 15 minut. Poniżej trzy główne narzędzia, które realizują to zadanie, oraz plan działania krok po kroku, jeśli infekcja już się potwierdziła.

💡 Szybki przegląd:

  • Zainstaluj Sucuri Scanner do szybkiego sprawdzenia integralności plików i monitorowania zmian, porównuje on bieżący stan rdzenia i wtyczek z oficjalnym repozytorium.
  • Uruchom Wordfence do głębokiego skanowania: backdoory, złośliwe adresy URL, znane sygnatury infekcji i wbudowana zapora aplikacyjna.
  • Użyj Anti-Malware Security (GOTMLS) do kompleksowego sprawdzenia wszystkich folderów i plików, w tym .htaccess i ukrytych katalogów, z ręczną weryfikacją znalezisk.
  • W przypadku wykrycia wirusów: zmień hasła → wykonaj kopię zapasową → uruchom profesjonalne czyszczenie lub działaj według listy kontrolnej z ostatniej sekcji.

Oznaki, że strona WordPress wymaga skanowania

Najlepszy moment na pierwsze skanowanie to po prostu teraz. Większość właścicieli stron odkłada instalację skanera „na później", a złośliwy kod w tym czasie robi swoje. Regularne sprawdzanie raz w tygodniu to podstawowa higiena, jak kopie zapasowe czy aktualizacje.

Są jednak wskaźniki, które wymagają natychmiastowego uruchomienia pełnego skanu:

  • Google Search Console wysyła ostrzeżenia o złośliwej treści lub stronach phishingowych, których Państwo nie publikowali.
  • Gwałtowny skok obciążenia serwera bez wzrostu ruchu: cudzy skrypt kopie kryptowalutę lub rozsyła spam.
  • Nieznani administratorzy w sekcji Użytkownicy, zwłaszcza z uprawnieniami, których Państwo nie nadawali.
  • Samoczynne przekierowania na obce strony, szczególnie u odwiedzających z wyszukiwarek.
  • Podejrzane pliki w katalogu głównym strony lub folderze /wp-content/uploads/ z niestandardowymi rozszerzeniami, takimi jak .php wśród obrazów.
  • Zmodyfikowane pliki rdzenia, których Państwo nie ruszali: WordPress sam o tym poinformuje podczas próby aktualizacji.

Nawet jeśli nie ma żadnej oznaki, cotygodniowe skanowanie wyłapuje zagrożenie na etapie wdrożenia, zanim zaszkodzi ono reputacji i pozycjom w wyszukiwarkach.

1. Sucuri Security, audyt integralności i monitorowanie zmian

Dashboard wtyczki Sucuri Security z wynikami skanowania WordPress

Sucuri to jedno z najbardziej autorytatywnych narzędzi w ekosystemie bezpieczeństwa WordPress. Darmowa wersja wtyczki realizuje trzy kluczowe zadania: monitorowanie integralności plików (porównuje hashe z wzorcem z repozytorium), wykrywanie podejrzanego kodu oraz twarde blokowanie szeregu wektorów ataku poprzez hardening bezpieczeństwa.

Wtyczka skanuje rdzeń, motywy i wtyczki pod kątem rozbieżności z oficjalnymi wersjami. Jeśli plik został zmodyfikowany, widzą Państwo konkretną linię i mogą podjąć decyzję: legalna poprawka czy iniekcja. Sucuri sprawdza również obecność ukrytych iframe, złośliwych linków w treści oraz anomalnej aktywności w logach dostępu.

Plusy:

  • Darmowe skanowanie integralności i monitorowanie zmian bez ograniczeń.
  • Płatne plany obejmują zaporę DNS, która blokuje atak, zanim dotrze on do serwera, jest to skuteczniejsze niż zapory aplikacyjne.
  • Płatne plany obejmują ręczne czyszczenie strony przez specjalistów Sucuri bez dodatkowej opłaty, co jest krytyczne dla biznesu.

Minusy:

Sucuri na WordPress.org | Oficjalna strona Sucuri

2. Wordfence, głębokie skanowanie i zapora na poziomie aplikacji

Strona skanowania Wordfence z postępem sprawdzania plików WordPress

Wordfence jest zainstalowany na ponad 4 milionach stron i należy do piątki najczęściej pobieranych wtyczek WordPress w historii. Jego główna zaleta to połączenie głębokiego skanera i zapory endpoint w jednej bezpłatnej wtyczce.

Skaner Wordfence sprawdza pliki rdzenia, motywów i wtyczek pod kątem zgodności z oficjalnym repozytorium, szuka znanych sygnatur złośliwego kodu, backdoorów (eval, base64_decode), podejrzanych adresów URL w treści i komentarzach. Po zakończeniu skanowania otrzymują Państwo raport z pogrupowaniem znalezisk: krytyczne, ostrzeżenia, informacyjne.

Zapora działa na poziomie aplikacji: analizuje przychodzące żądania przed ich przetworzeniem przez WordPress, blokuje ataki brute-force, skanowanie podatności i próby wykorzystania znanych luk we wtyczkach. W wersji premium dodawane są sygnatury zagrożeń w czasie rzeczywistym (reguły aktualizowane są natychmiast, a nie z 30-dniowym opóźnieniem).

Plusy:

  • Głębokie skanowanie i zapora za darmo, rzadkość na rynku.
  • Automatyczna naprawa zmodyfikowanych plików rdzenia i wtyczek: zastąpienie oryginałem z repozytorium jednym kliknięciem.
  • Szczegółowe raporty z rekomendacjami dla każdego punktu.

Minusy:

  • Wersja bezpłatna otrzymuje sygnatury zapory z 30-dniowym opóźnieniem, użytkownicy płatni widzą nowe reguły natychmiast.
  • Zapora na poziomie aplikacji działa wewnątrz WordPress: jeśli serwer został skompromitowany na poziomie hostingu, Wordfence nie pomoże.

Wordfence na WordPress.org | Strona Wordfence

3. Anti-Malware Security (GOTMLS), kompleksowe sprawdzanie każdego pliku

Interfejs wtyczki Anti-Malware Security z ustawieniami pełnego skanowania witryny

Anti-Malware Security od GOTMLS to mniej znany, ale niezwykle drobiazgowy skaner. Nie ogranicza się do standardowych katalogów WordPress: wtyczka sprawdza absolutnie wszystkie pliki i foldery w Państwa instalacji, w tym .htaccess, ukryte katalogi i pliki konfiguracyjne serwera.

Algorytm szuka znanych wzorców infekcji, złośliwych skryptów, zaciemnionego kodu, ukrytych iniekcji eval oraz anomalii w strukturze plików. Autor aktywnie aktualizuje bazę definicji: nowe sygnatury pojawiają się w miarę wykrywania świeżych zagrożeń w środowisku naturalnym.

Główny niuans to wysoka czułość. Wtyczka często generuje fałszywe alarmy, szczególnie w przypadku niestandardowych motywów i wtyczek o niekonwencjonalnej architekturze. Każde znalezisko trzeba ręcznie porównać z oryginałem, co wymaga pewnego poziomu przygotowania technicznego i czasu.

Plusy:

  • Skanuje wszystkie katalogi serwera, nie tylko WordPress.
  • Aktywnie aktualizowane definicje złośliwego kodu, baza jest żywa i uzupełniana co tydzień.
  • Zawiera opcję zapory na poziomie aplikacji w wersji bezpłatnej.

Minusy:

  • Dużo fałszywych alarmów: bez ręcznej weryfikacji znalezisk nie można się obejść.
  • Interfejs spartański, raporty mniej szczegółowe niż w Wordfence czy Sucuri.
  • Wymaga od administratora zrozumienia struktury plików WordPress.

Anti-Malware Security na WordPress.org

Co robić, gdy skaner znajdzie wirusy: plan czyszczenia krok po kroku

Proces czyszczenia zhakowanej witryny WordPress przez panel bezpieczeństwa

Skaner pokazał krytyczne znaleziska? Proszę nie panikować. Przemyślane, spokojne działania przywrócą stronę do porządku szybciej niż chaotyczne usuwanie plików na oślep.

Krok 1: Proszę zmienić wszystkie hasła. Natychmiast proszę zaktualizować konta administratorów WordPress, dostęp do panelu hostingowego, FTP/SFTP oraz hasło do bazy danych. Jeśli atakujący uzyskał dostęp przez skompromitowane hasło, ten krok zakończy jego sesję.

Krok 2: Proszę wykonać pełną kopię zapasową. Proszę pobrać kopię plików przez FTP i bazy danych przez phpMyAdmin, nawet zainfekowaną. Jeśli coś pójdzie nie tak podczas czyszczenia, będzie Pan/Pani mieć punkt przywracania. Kopię zapasową należy wykonać przed rozpoczęciem jakichkolwiek manipulacji.

Krok 3: Proszę odizolować stronę. Proszę włączyć tryb konserwacji przez wtyczkę lub plik .maintenance. Jeśli hosting na to pozwala, proszę tymczasowo ograniczyć dostęp do strony po adresie IP, zostawiając tylko swój. To zatrzyma dalsze rozprzestrzenianie się infekcji na odwiedzających.

Krok 4: Proszę uruchomić profesjonalne czyszczenie. To nie jest przypadek, w którym warto oszczędzać. Usługi takie jak Sucuri (w ramach płatnego planu) i Wordfence Care obejmują ręczne czyszczenie przez specjalistów: znajdują oni i usuwają wszystkie ślady włamania, w tym ukryte backdoory, które amatorskie oko przeoczy. Koszt: od 199 USD rocznie (Sucuri) do 490 USD rocznie (Wordfence Care), co jest porównywalne z dniem lub dwoma przestoju firmy.

Krok 5: Samodzielne czyszczenie (jeśli jest Pan/Pani pewna swoich umiejętności). Proszę przywrócić rdzeń WordPress ze świeżej dystrybucji, zastąpić wszystkie wtyczki i motywy oryginalnymi wersjami z repozytorium, ręcznie sprawdzić katalog /wp-content/uploads/ pod kątem plików PHP i usunąć wszystko, czego nie powinno tam być. Po czyszczeniu należy wykonać ponowne skanowanie: strona musi być czysta.

Krok 6: Proszę wzmocnić ochronę. Proszę wdrożyć uwierzytelnianie dwuskładnikowe dla wszystkich administratorów, ograniczyć liczbę prób logowania, wyłączyć XML-RPC, jeśli nie jest potrzebny, i skonfigurować automatyczne aktualizacje rdzenia i wtyczek. Zapora sieciowa na poziomie DNS (Sucuri lub Cloudflare) zapewni dodatkową linię obrony przed serwerem.

⁉️🤔 Często zadawane pytania

Czy darmowe wtyczki wystarczą do ochrony, czy koniecznie trzeba kupić wersję premium?

Darmowe wersje Wordfence i Sucuri Scanner doskonale radzą sobie z wykrywaniem zagrożeń, znajdują większość infekcji. Jednak automatyczne usuwanie, zapora czasu rzeczywistego i ręczne czyszczenie przez specjalistów są dostępne tylko w płatnych planach. Jeśli strona przynosi dochód, wersja premium zwraca się przy pierwszym udaremnionym ataku.

Jak często należy uruchamiać skanowanie?

Raz w tygodniu, to absolutne minimum higieny dla każdej strony na WordPress. Jeśli aktywnie instaluje Pan/Pani nowe wtyczki lub przyjmuje treści od użytkowników, lepiej skonfigurować codzienne automatyczne skanowanie w Wordfence lub Sucuri. Obie wtyczki potrafią wysyłać raporty na e-mail.

Czy można używać dwóch skanerów jednocześnie?

Technicznie tak, ale w praktyce zapory dwóch wtyczek mogą ze sobą kolidować, a podwójne skanowanie generuje nadmierne obciążenie serwera. Optymalny schemat: jedna główna wtyczka z zaporą (Wordfence) i okresowa kontrola drugim skanerem (Sucuri Free lub GOTMLS) raz w miesiącu, aby poznać drugą opinię.

Co robić, jeśli złośliwy kod pojawia się ponownie po czyszczeniu?

Ponowna infekcja po czyszczeniu to oznaka pozostawionego backdoora. Proszę sprawdzić plik wp-config.php pod kątem nieznanych stałych, katalog /wp-content/mu-plugins pod kątem ukrytych wtyczek typu must-use oraz zadania crona przez WP-CLI (wp cron event list). Proszę zresetować wszystkie klucze API i sole w wp-config.php. Jeśli po tych krokach problem powraca, należy zaangażować specjalistów Sucuri lub Wordfence: samodzielne polowanie na złożony backdoor może zająć wiele dni.

Czy wtyczka bezpieczeństwa wpływa na szybkość strony?

Zapora na poziomie DNS (Sucuri, Cloudflare) przyspiesza stronę dzięki buforowaniu i CDN, żądania nie docierają do serwera. Zapora na poziomie aplikacji (Wordfence) dodaje 50-150 ms do przetwarzania żądania na stronach niebuforowanych. Skanowanie według harmonogramu obciąża serwer tylko w momencie działania, zwykle w nocy, i nie wpływa na odwiedzających.

Czy skanować stronę ręcznie, czy zaufać wtyczce?

Ręczne sprawdzanie każdego pliku PHP pod kątem backdoorów jest możliwe, ale pozbawione sensu: współczesny złośliwy kod maskuje się jako legalne konstrukcje, wykorzystuje wielostopniową obfuskację i ukrywa się w ciągach base64 wewnątrz plików multimedialnych. Skaner w formie wtyczki z aktywną bazą sygnatur wykonuje tę pracę w kilka sekund i nie pomija znanych wzorców.

W praktyce optymalny zestaw dla większości stron wygląda następująco: Wordfence jako główny skaner i zapora (głębokie skanowanie, natychmiastowe powiadomienia, darmowa automatyczna naprawa plików rdzenia) oraz Sucuri Free do krzyżowej kontroli integralności raz w miesiącu. Jeśli budżet na to pozwala, platforma Sucuri za 199 USD/rok całkowicie rozwiązuje wszystkie kwestie: zapora DNS, monitorowanie, usuwanie złośliwego kodu i CDN w jednym pakiecie.

Proszę uruchomić pierwsze skanowanie już dziś. Nawet jeśli strona jest czysta, uzyska Pan/Pani punkt odniesienia dla wszystkich przyszłych kontroli. A jeśli skaner znajdzie problem, dowie się Pan/Pani o nim, zanim dowie się o nim Google.