Włamanie na stronę rzadko wygląda jak w filmie - częściej to dziwne przekierowania, obce linki w Google i mail od hostingu. Strona niby działa, ale klienci trafiają z niej do podejrzanego sklepu z lekami, w wynikach wyszukiwania pojawiają się podstrony po chińsku, a Chrome zaczyna straszyć czerwonym ekranem. To wszystko objawy tego samego: ktoś dopisał swój kod do Twojej strony i używa jej do własnych celów.
Dobra wiadomość: ogromna większość włamań na WordPressa to automaty wykorzystujące dziurawe wtyczki, nie ukierunkowany atak na Twoją firmę. Da się po tym posprzątać i wrócić do normalności. Zła wiadomość: samo „skasuję to, co widzę” prawie nigdy nie wystarcza, bo intruz zostawia sobie tylne wejścia.
Jak rozpoznać, że to włamanie
- Przekierowania na obce strony (czasem tylko z telefonu albo tylko z Google - to celowy kamuflaż)
- Obce treści i linki, których nikt nie dodawał; nowe konta administratorów
- Ostrzeżenie „Ta witryna może być niebezpieczna” w Google albo czerwony ekran w przeglądarce
- Mail od hostingu o złośliwym kodzie albo o zablokowaniu konta
- Nagły spadek ruchu z Google bez innej przyczyny
- Wysyłka spamu z Twojej domeny - klienci dostają dziwne maile „od Ciebie”
Jeśli strona po prostu leży z komunikatem błędu, ale bez powyższych objawów - to raczej zwykła awaria; zacznij od tekstu o błędzie krytycznym albo błędzie 500.
Plan ratunkowy - kolejność ma znaczenie
- Zabezpiecz dostęp. Zmień hasła: do panelu WordPressa (wszystkie konta administratorów), do hostingu, do FTP i do bazy danych. Włamywacz z działającym hasłem będzie wracał szybciej, niż Ty sprzątasz. Sprawdź listę użytkowników i usuń konta, których nie znasz.
- Zrób kopię obecnego stanu. Brzmi przewrotnie - po co kopiować zainfekowaną stronę? Po pierwsze: dowód i materiał do analizy, którędy weszli. Po drugie: gdyby sprzątanie poszło źle, masz punkt odniesienia. Kopia leży obok, nie nadpisuje niczego.
- Ustal, kiedy to się stało. Data ostatniej „czystej” kopii zapasowej to Twoja najważniejsza informacja. Jeśli masz backup sprzed infekcji - najpewniejszą drogą jest przywrócenie go, a potem natychmiastowe załatanie dziury (aktualizacje!), inaczej za tydzień będziesz w tym samym miejscu. Jak mieć backupy, które naprawdę ratują, opisuję w checkliście aktualizacji z kopią zapasową.
- Bez czystego backupu: skan i czyszczenie. Skaner (np. wtyczka bezpieczeństwa albo skan po stronie hostingu) znajdzie podmienione pliki silnika i podejrzane wstawki. Pliki WordPressa i wtyczek można bezpiecznie nadpisać świeżymi kopiami z oficjalnych źródeł - to usuwa większość doklejonego kodu. Najtrudniejsze są tylne wejścia ukryte w folderze
uploads, w motywie i w samej bazie danych - tu automat często nie wystarcza i to jest zwykle moment, w którym warto oddać sprawę specjaliście. Cały etap wykrywania i czyszczenia rozpisałem szczegółowo w osobnym tekście o malware na WordPressie. - Zaktualizuj wszystko. WordPress, wtyczki, motyw, wersja PHP. Włamanie niemal na pewno weszło przez znaną dziurę w czymś nieaktualnym - jeśli zostawisz starą wersję, sprzątanie było na darmo.
- Odwołaj się w Google. Jeśli Google oznaczyło stronę jako niebezpieczną: w Search Console (zakładka „Problemy dotyczące bezpieczeństwa”) zgłoś stronę do ponownej oceny po czyszczeniu. Ostrzeżenie znika zwykle w ciągu kilku dni. Bez tego kroku nawet czysta strona dalej odstrasza klientów czerwonym ekranem.
Co pomaga: przy sklepie z danymi klientów włamanie to także temat RODO - jeśli mogło dojść do wycieku danych osobowych, masz 72 godziny na ocenę i ewentualne zgłoszenie do UODO. Nie panikuj, ale nie zamiataj: odnotuj, co się stało, kiedy i jakie dane mogły być dostępne.
Czego nie robić
- Nie kasuj strony w całości „bo łatwiej postawić od nowa” - tracisz treści, zamówienia i pozycje w Google, a dziurę i tak można powtórzyć na świeżej instalacji
- Nie przywracaj backupu bez łatania - wrócisz do stanu sprzed włamania razem z dziurą, którą weszli
- Nie zostawiaj „bo działa” - strona z tylnym wejściem prędzej czy później wyśle spam z Twojej domeny albo trafi na czarne listy, a to boli dłużej niż samo włamanie
Jak nie przechodzić przez to drugi raz
Prawie każde włamanie, które sprzątałem, miało ten sam rodowód: wtyczki nieaktualizowane miesiącami, brak kopii zapasowych i hasło „firma2019”. Recepta jest nudna i właśnie dlatego działa: regularne aktualizacje w stałym rytmie, backupy trzymane poza serwerem strony, silne hasła z dwuskładnikowym logowaniem dla administratorów i coroczny przegląd wtyczek - co realnie jest używane, a co wisi „bo kiedyś się przyda”. U klientów pod stałą opieką ten rytm chodzi automatycznie, razem z monitoringiem, który wyłapuje podmienione pliki, zanim zauważy je Google.
Najczęstsze pytania
Ile trwa czyszczenie zhakowanej strony? Proste przypadki (świeża infekcja, dobre backupy) - godziny. Zaniedbane (infekcja sprzed miesięcy, zero kopii) - dzień lub dwa, bo trzeba przejrzeć znacznie więcej. Wycenę podaję po obejrzeniu, na piśmie.
Czy klienci mogli coś stracić? Zależy od typu infekcji. Większość masowych włamań podmienia treści i rozsyła spam, nie kradnie danych. Ale przy sklepie z płatnościami trzeba to sprawdzić, nie zakładać.
Strona wróci do Google po czyszczeniu? Tak. Po usunięciu kodu i zgłoszeniu w Search Console ostrzeżenia znikają w ciągu dni, a pozycje zwykle wracają w kilka tygodni - o ile strona nie leżała zainfekowana przez pół roku.
Powiązane: Błąd krytyczny WordPressa · Checklista bezpiecznych aktualizacji · Stała opieka nad stroną