Skaner online sprawdzi tylko to, co strona udostępnia przeglądarce. Nie zobaczy większości plików PHP, backdoorów ani zmian zapisanych w bazie danych. Przy podejrzeniu infekcji potrzebujesz skanowania lokalnego z dostępem do serwera przez FTP, SFTP lub SSH.
Dlaczego skanery online nie wykrywają całego malware?
Zewnętrzny skaner odwiedza adres strony podobnie jak bot wyszukiwarki. Analizuje wyrenderowany kod HTML, arkusze CSS, JavaScript, ramki iframe, obrazy, linki i część zasobów ładowanych przez przeglądarkę. Może wykryć przekierowanie, podejrzany skrypt, phishing, spam SEO albo obecność domeny na czarnej liście.
Nie ma jednak dostępu do katalogów instalacji WordPressa. Nie odczyta bezpośrednio pliku functions.php, ukrytego skryptu wtyczki, dodatkowego pliku w wp-content/uploads ani złośliwego wpisu w tabeli wp_options. Malware PHP może uruchamiać się tylko przy określonym adresie IP, ciasteczku, nagłówku HTTP albo ścieżce żądania. W takiej sytuacji strona może wyglądać poprawnie podczas zwykłego testu.
Dlatego fraza „malware WordPress scanner online” prowadzi zwykle do narzędzia pomocniczego, a nie pełnej diagnostyki. Skaner zewnętrzny warto traktować jako drugi etap kontroli. Pierwszy powinien obejmować pliki serwera, integralność instalacji, bazę danych i logi.
Skaner online a skaner działający na serwerze
Różnica między tymi metodami wynika przede wszystkim z zakresu dostępu. Narzędzie lokalne może odczytać pliki i porównać je z czystą wersją WordPressa, wtyczki lub motywu. Może też analizować kod według sygnatur i reguł heurystycznych.
| Cecha | Skaner online | Skaner lokalny lub wtyczka |
|---|---|---|
| Dostęp do plików | Brak bezpośredniego dostępu, analiza odpowiedzi HTTP | Dostęp do plików przez instalację WordPressa, FTP, SFTP lub SSH |
| Wykrywanie backdoorów PHP | Ograniczone, zależne od tego, czy kod zostanie uruchomiony | Możliwe przez analizę plików, sygnatur i zachowania kodu |
| Weryfikacja integralności | Zwykle niedostępna | Porównanie sum kontrolnych z czystymi plikami referencyjnymi |
| Obciążenie serwera | Niewielkie po stronie witryny, ale skan jest powierzchowny | Może być większe, zwłaszcza podczas pełnego skanowania |
| Skuteczność diagnostyczna | Dobra przy widocznych przekierowaniach i ostrzeżeniach | Większa przy infekcjach plików, kodu PHP i części zmian w bazie |
Jak rozpoznać infekcję i przygotować czyszczenie?
Pojedynczy objaw nie przesądza jeszcze o obecności malware. Spowolnienie może wynikać z konfiguracji hostingu, a ostrzeżenie przeglądarki może dotyczyć zewnętrznego skryptu reklamowego. Kilka sygnałów występujących równocześnie wymaga jednak szybkiej diagnostyki.
Najczęstsze oznaki naruszenia strony to:
- Nieoczekiwane przekierowania użytkowników na obce domeny.
- Nagłe spowolnienie witryny lub nietypowe zużycie zasobów serwera.
- Ostrzeżenie przeglądarki, Google Safe Browsing lub Google Search Console.
- Nieznane pliki, konta administratorów, wpisy, skrypty albo zmiany wyglądu strony.
- Spamowe podstrony i linki, których nie utworzył administrator.
Przed usuwaniem kodu nie kasuj podejrzanych plików bez kopii. Najpierw przygotuj materiał do analizy i możliwość powrotu do stanu wyjściowego:
- Wykonaj kopię wszystkich plików, w tym
wp-config.php,.htaccess, kataloguwp-contenti plików ukrytych. - Wyeksportuj bazę danych do pliku SQL, najlepiej poza zainfekowanym hostingiem.
- Zapisz raporty, daty wykrycia, podejrzane adresy oraz logi dostępne w panelu hostingu.
- Przełącz witrynę w tryb konserwacji albo ogranicz jej dostęp do zaufanych adresów IP.
Nie traktuj kopii wykonanej po infekcji jako czystego backupu. Może być potrzebna do analizy, ale nie powinna automatycznie zastępować sprawdzonej kopii sprzed ataku.
Jeżeli strona obsługuje płatności, przechowuje dane klientów lub nie masz pewności, które pliki są oryginalne, ogranicz samodzielne kasowanie do wykonania kopii i izolacji. Dalsze działania lepiej prowadzić na kopii roboczej albo z pomocą administratora, który ma dostęp do serwera i logów.
Jak szukać złośliwego kodu w plikach WordPress?
Weryfikacja integralności plików
Wtyczki i skrypty bezpieczeństwa mogą porównywać pliki rdzenia WordPressa oraz komponentów pochodzących z oficjalnego repozytorium z ich czystymi odpowiednikami. Porównanie sum kontrolnych wykrywa zmianę nawet wtedy, gdy w pliku dodano niewielki fragment kodu.
Niezgodność sumy nie jest jednak automatycznie dowodem infekcji. Plik mógł zostać legalnie zmodyfikowany przez motyw potomny, konfigurację hostingu albo dostawcę komercyjnej wtyczki. Przy komponentach spoza repozytorium potrzebujesz zaufanego archiwum referencyjnego od producenta. Wynik trzeba ocenić wraz z lokalizacją pliku i jego zawartością.
Analiza sygnatur i heurystyki
Skanowanie sygnaturowe szuka znanych wzorców złośliwego kodu. Analiza heurystyczna ocenia zestaw cech, które często występują w backdoorach, na przykład dekodowanie długiego ciągu znaków, dynamiczne wykonywanie kodu i pobieranie danych z obcej domeny. Heurystyka pomaga wykrywać nieznane odmiany malware, ale może generować fałszywe alarmy.
Do lokalnej analizy można wykorzystać skaner PHP, taki jak PHP Malware Scanner lub PHP-Antimalware-Scanner, o ile narzędzie jest aktualne i pochodzi z zaufanego źródła. Taki skrypt wymaga dostępu do plików serwera przez SSH, SFTP lub panel plików. Sam raport nie usuwa infekcji, a jego wynik trzeba sprawdzić ręcznie.
Najczęściej analizowane są funkcje i konstrukcje, które mogą służyć do ukrywania albo wykonywania kodu:
eval()może wykonywać kod PHP przekazany jako tekst.base64_decode()bywa używane do ukrywania treści, choć samo kodowanie Base64 nie jest malware.exec()isystem()mogą uruchamiać polecenia systemowe.file_get_contents()lub żądania sieciowe mogą pobierać dane z zewnętrznego serwera.move_uploaded_file()wymaga kontroli, gdy aplikacja przyjmuje pliki od użytkowników.
Żadna z tych funkcji nie jest samodzielnym dowodem infekcji. Legalne wtyczki również mogą korzystać z części z nich. Podejrzany jest raczej ich kontekst: losowe nazwy zmiennych, bardzo długie zakodowane ciągi, kod zapisany w nietypowym miejscu, warunki zależne od adresu IP oraz pliki dodane bez związku z funkcją wtyczki.
Sprawdź także wp-content/uploads, katalogi tymczasowe, pliki .htaccess i bazę danych. Plik PHP w katalogu przeznaczonym na obrazy lub dokumenty wymaga wyjaśnienia. W bazie szczególną uwagę zwracają nieautoryzowane konta, zmienione opcje, skrypty w treści wpisów oraz obce adresy w polach konfiguracyjnych.
Najlepszy wynik daje połączenie trzech metod: porównania z czystymi plikami, analizy heurystycznej i ręcznego przeglądu zmian. Żadna pojedyncza wtyczka ani skaner online nie potwierdzi czystości całej instalacji.
Jak naprawić zainfekowaną stronę?
Po zabezpieczeniu kopii i zebraniu dowodów możesz przejść do odbudowy. Kolejność ma znaczenie, ponieważ usunięcie samego widocznego skryptu często nie likwiduje konta, backdoora ani zmiany w bazie danych.
- Odtwórz rdzeń WordPressa. Zastąp katalogi
wp-adminiwp-includesoraz pliki rdzenia czystą wersją zgodną z używaną instalacją. Nie nadpisuj bez analizywp-config.phpani kataloguwp-content. - Oczyść
wp-content. Usuń nieużywane wtyczki i motywy, a używane komponenty wgraj ponownie z oficjalnego repozytorium lub od dostawcy. Przejrzyj motyw, wtyczki, uploady i nieznane pliki. - Sprawdź bazę danych. Przejrzyj użytkowników,
wp_options, treść wpisów, komentarze i ustawienia przekierowań. Masowe zapytania SQL stosuj dopiero po wykonaniu kopii i dokładnym ustaleniu wzorca, który ma zostać usunięty. - Zmień wszystkie dane dostępowe. Dotyczy to kont WordPress, FTP lub SFTP, SSH, panelu hostingu i bazy danych. Jeśli zmieniasz hasło bazy, zaktualizuj je także w
wp-config.php. - Zaktualizuj środowisko. Zainstaluj aktualne, wspierane wersje WordPressa, wtyczek, motywów i PHP, ale wcześniej sprawdź kompatybilność na kopii lub środowisku testowym.
- Przeskanuj stronę ponownie. Uruchom skaner lokalny, sprawdź logi i dopiero potem użyj skanera zewnętrznego oraz Google Search Console do kontroli widocznych ostrzeżeń.
Automatyczne czyszczenie lub kwarantanna mogą pomóc przy prostych przypadkach, ale nie powinny działać bez kopii i przeglądu raportu. Usunięcie pliku używanego przez wtyczkę może wyłączyć część strony, a pozostawienie backdoora w innym katalogu spowoduje ponowną infekcję.
Jak ograniczyć ryzyko kolejnej infekcji?
Po oczyszczeniu utrzymuj możliwie małą i aktualną instalację. Każda nieużywana wtyczka, motyw i konto zwiększa powierzchnię ataku. Regularnie testuj również przywracanie kopii, ponieważ niezweryfikowany backup nie daje pewności odzyskania strony.
Najważniejsze działania po naprawie to:
- Włącz 2FA dla kont administracyjnych i używaj unikalnych, długich haseł.
- Aktualizuj WordPress, wtyczki, motywy i PHP po sprawdzeniu zgodności.
- Ustaw restrykcyjne uprawnienia plików, ogranicz zapis tam, gdzie nie jest potrzebny, i chroń
wp-config.php. - Twórz kopie plików oraz bazy danych w odseparowanej lokalizacji i okresowo testuj ich odtwarzanie.
- Monitoruj nowe pliki, logowania, zmiany użytkowników i nietypowe obciążenie serwera.
Czy darmowa wtyczka wystarczy do skanowania?
Darmowa wtyczka może wykryć zmianę pliku, znaną sygnaturę albo podejrzany kod i jest użyteczna jako element monitoringu. Nie zastępuje jednak dostępu do logów, analizy bazy danych, porównania z wiarygodną wersją referencyjną ani oceny administratora. Przed instalacją sprawdź, czy projekt jest utrzymywany, a po zakończeniu jednorazowej diagnostyki usuń niepotrzebne narzędzia.
Jak często skanować WordPress?
Częstotliwość zależy od częstotliwości zmian, liczby użytkowników i znaczenia strony. Automatyczne skanowanie okresowe może szybko wykryć nowe lub zmodyfikowane pliki, ale jego raporty trzeba przeglądać. Skanowanie warto uruchomić także po aktualizacji, zmianie administratora, instalacji komponentu z zewnętrznego źródła i każdym nietypowym zachowaniu witryny.
Najlepszy skaner WordPress nie jest wyłącznie narzędziem online. Skan zewnętrzny pokazuje objawy widoczne z Internetu, natomiast realna diagnostyka malware wymaga analizy plików, bazy danych i logów na serwerze. Zacznij od izolacji oraz pełnej kopii, a dopiero potem usuwaj podejrzany kod i odbudowuj instalację.
Artykuł ma charakter informacyjny i nie zastępuje audytu bezpieczeństwa. Jeśli strona przetwarza dane klientów, obsługuje płatności lub infekcja obejmuje bazę danych i konta dostępowe, skorzystaj z pomocy administratora lub specjalisty ds. bezpieczeństwa.