Złośliwy kod na stronie potrafi miesiącami pracować po cichu - rozsyłać spam, doklejać linki i podmieniać przelewy, zanim ktokolwiek zauważy. Malware na WordPressie to nie egzotyka: to najpopularniejszy silnik stron na świecie, więc automaty włamywaczy skanują go non stop w poszukiwaniu nieaktualnych wtyczek. Ten tekst jest o samym kodzie: jak sprawdzić, czy strona jest zainfekowana, gdzie malware lubi się chować i jak go usunąć. Jeśli włamanie już rozkręciło się na dobre - obce przekierowania, czerwony ekran w Google, blokada od hostingu - zacznij od szerszego planu ratunkowego dla zhakowanej strony, a tu wróć na etap czyszczenia.
Jak sprawdzić, czy strona ma malware
Od najszybszego do najdokładniejszego:
- Skanery online - wpisujesz adres, dostajesz raport. Google Safe Browsing pokaże, czy strona jest na czarnej liście; zewnętrzne skanery (np. typu Sucuri SiteCheck) sprawdzą widoczną część strony pod kątem znanych sygnatur. Ograniczenie: widzą tylko to, co widzi odwiedzający - malware ukryty w plikach na serwerze może przejść niezauważony
- Wtyczka bezpieczeństwa ze skanerem - instalowana w WordPressie, porównuje pliki silnika i wtyczek z oryginałami z oficjalnego repozytorium i wskazuje każdą różnicę. To najlepszy stosunek efektu do wysiłku dla nie-technicznego właściciela
- Skan po stronie hostingu - wiele paneli ma wbudowany skaner antywirusowy plików; bywa, że hosting sam wysyła raport z listą zainfekowanych plików (potraktuj go poważnie, to nie spam)
- Search Console - zakładka „Problemy dotyczące bezpieczeństwa” pokaże, czy Google już coś znalazło. Warto mieć ją podpiętą, zanim będzie potrzebna
Do tego trzy objawy, które wychodzą bez żadnych narzędzi: nagłe spowolnienie strony bez zmian z Twojej strony, dziwne wyniki po wpisaniu w Google site:twojadomena.pl (podstrony, których nie tworzyłeś, często w obcych językach) i maile od klientów, że „coś dziwnego przyszło z Waszej domeny”.
Gdzie malware się chowa
Wiedza o kryjówkach oszczędza godziny szukania:
- Pliki silnika i wtyczek - doklejone linijki na początku lub końcu plików PHP. Najłatwiejsze do wykrycia (różnią się od oryginału) i najłatwiejsze do naprawy: pliki WordPressa i wtyczek z repozytorium można po prostu nadpisać świeżymi kopiami z oficjalnych źródeł
- Folder
uploads- powinien zawierać tylko media (zdjęcia, PDF-y). Każdy plik.phpwwp-content/uploadsto niemal na pewno tylne wejście intruza - Motyw - zwłaszcza plik
functions.php; modyfikacje bywają zamaskowane jako niewinne funkcje - Baza danych - doklejone skrypty w treści wpisów, obce konta administratorów, zaplanowane zadania (cron), które odtwarzają infekcję po każdym czyszczeniu
wp-config.phpi.htaccess- wpisy przekierowujące ruch albo dociągające kod z zewnątrz
To dlatego „wyczyściłem to, co znalazł skaner” tak często kończy się nawrotem po tygodniu: automat znajduje doklejki w plikach, ale tylne wejście w uploads albo zadanie w bazie zostaje i odtwarza całość.
Usuwanie - kolejność, która działa
- Backup obecnego stanu (tak, zainfekowanego) - punkt odniesienia i materiał do analizy, gdyby coś poszło źle
- Zmiana wszystkich haseł - panel WordPressa, FTP, hosting, baza. Bez tego czyszczenie to wylewanie wody z łódki bez łatania dziury
- Nadpisanie silnika i wtyczek świeżymi kopiami - WordPress z wordpress.org (bez folderu
wp-content), wtyczki ponownie z repozytorium. Wtyczek kupionych poza repozytorium nie nadpisuj „z internetu” - tylko z konta u ich producenta; pirackie kopie wtyczek premium to zresztą jedna z częstszych dróg infekcji - Ręczny przegląd kryjówek -
uploadspod kątem plików PHP,functions.phpmotywu, konta użytkowników, zaplanowane zadania. Tu automat nie wystarcza i to jest zwykle moment, w którym sprawę warto oddać komuś, kto robi to regularnie - Aktualizacja wszystkiego + usunięcie nieużywanych wtyczek i motywów - dziura, którą weszli, prawie na pewno siedzi w czymś nieaktualnym. Jak ustawić bezpieczny rytm aktualizacji, opisuję w checkliście
- Ponowny skan + zgłoszenie w Search Console, jeśli Google zdążyło oznaczyć stronę - ostrzeżenie znika zwykle w kilka dni po czystym skanie
Co pomaga: po czyszczeniu zostaw włączony skaner z powiadomieniami mailowymi i monitoring zmian w plikach. Nawrót infekcji w pierwszych tygodniach to klasyka - lepiej dowiedzieć się o nim z maila po godzinie niż od Google po miesiącu. U klientów pod stałą opieką taki monitoring chodzi na okrągło.
Najczęstsze pytania
Czy darmowy skaner wystarczy?
Do wykrycia - często tak. Do usunięcia - połowicznie: automaty dobrze czyszczą doklejki w plikach silnika, słabo radzą sobie z tylnymi wejściami w uploads, motywie i bazie. Skan traktuj jako diagnozę, nie pełną kurację.
Czy malware na stronie zagraża moim klientom? Może - część infekcji atakuje właśnie odwiedzających (przekierowania na fałszywe strony, skrypty w formularzach). Dlatego zainfekowanej strony nie zostawia się „bo jakoś działa” - każda doba zwiększa i ryzyko dla ludzi, i szkody w Google.
Ile kosztuje profesjonalne czyszczenie? Zależy od skali: świeża infekcja z dobrym backupem to godziny, zapuszczona - dzień lub dwa. Po przejrzeniu strony podaję konkretną kwotę na piśmie, przed rozpoczęciem pracy.
Powiązane: Strona zhakowana - plan ratunkowy · Checklista bezpiecznych aktualizacji · Stała opieka nad stroną