Naprawa zhakowanej strony
Usunięcie złośliwego kodu, zdjęcie ostrzeżenia Google, załatanie luki i zabezpieczenie, żeby nie wróciło.
Po czym poznasz, że strona jest zainfekowana
Rozpoznajesz choć jedną z tych sytuacji? Nie czekaj - z każdą godziną rośnie liczba zaindeksowanych śmieciowych podstron i spada zaufanie Google do domeny.
Strona przekierowuje gdzie indziej
Klient wchodzi na Twój adres i ląduje w kasynie, aptece albo na obcym sklepie. Często dzieje się to tylko na telefonach albo tylko przy wejściu z Google, więc na własnym komputerze możesz niczego nie zauważyć.
Ostrzeżenie Google przed stroną
Zamiast witryny pojawia się czerwony ekran „Strona wyłudzająca dane” albo „Ta witryna może wyrządzić szkodę”. Ruch spada do zera w kilka godzin, a przeglądarki blokują wejście jeszcze przed załadowaniem strony.
Obce treści w wynikach wyszukiwania
W Google przy Twojej domenie wyświetlają się tytuły po japońsku, chińsku albo oferty podróbek. To tak zwany spam SEO - podstrony istnieją tylko dla robotów i nie widać ich w panelu WordPressa.
Nieznane konta administratora
W liście użytkowników pojawiają się konta, których nie zakładałeś, albo Twoje własne straciło uprawnienia. To znak, że ktoś ma dostęp do panelu i zdąży wrócić po każdym czyszczeniu, jeśli nie zamknie się luki.
Serwer rozsyła spam
Hosting przysyła ostrzeżenie o wysyłce tysięcy wiadomości albo domena trafia na czarną listę. Efekt uboczny bywa dotkliwszy niż sama infekcja: Twoje zwykłe maile do klientów przestają docierać.
Hosting zablokował konto
Strona zniknęła, bo dostawca wyłączył ją po wykryciu szkodliwego kodu. Do odblokowania potrzebne jest wyczyszczenie plików i odpisanie na zgłoszenie - zajmę się jednym i drugim.
Nikt Cię nie wybrał. Znalazł Cię automat
Przy infekcjach WordPressa prawie nigdy nie chodzi o atak wymierzony w konkretną firmę. Boty skanują miliony adresów w poszukiwaniu znanych luk: nieaktualnej wtyczki, słabego hasła, źle ustawionych uprawnień plików. Kiedy łatka zostaje opublikowana, informacja o dziurze staje się jawna, a masowe próby jej wykorzystania zaczynają się w ciągu godzin.
To dobra wiadomość, bo oznacza, że problem jest powtarzalny i naprawialny. I zła, bo strona wyczyszczona bez zamknięcia luki zostaje zainfekowana ponownie, zwykle w ciągu kilku dni.
Najczęstsze drogi wejścia
- Nieaktualna wtyczka lub motyw z publicznie znaną podatnością
- Motyw lub wtyczka premium pobrana z nielegalnego źródła, z dołożonym kodem
- Słabe hasło administratora albo hasło powtórzone z innego serwisu
- Zainfekowany komputer, z którego zapisywane były dane FTP
- Inna strona na tym samym koncie hostingowym, przez którą przeszła infekcja
Co dokładnie robię przy naprawie
Kolejność ma znaczenie. Czyszczenie bez zamknięcia luki i usunięcia tylnych furtek to strata pieniędzy - infekcja wraca, zwykle w ciągu kilku dni.
Diagnoza i ustalenie zakresu
Zanim cokolwiek usunę, sprawdzam, co dokładnie zostało zmienione i kiedy. Daty modyfikacji plików, logi serwera i wpisy w bazie pokazują moment włamania oraz drogę, którą kod się dostał.
Kopia przed naprawą
Robię pełną kopię plików i bazy w stanie zastanym. Zabrzmi dziwnie przy zainfekowanej stronie, ale to zabezpieczenie: gdyby czyszczenie usunęło coś potrzebnego, mamy do czego wrócić.
Czyszczenie plików
Usuwam wstrzyknięty kod z plików motywu, wtyczek i rdzenia. Pliki systemowe podmieniam na oryginalne z repozytorium, więc masz pewność, że nie zostało w nich nic obcego.
Czyszczenie bazy danych
Złośliwe wpisy potrafią siedzieć w opcjach, treściach postów i tabelach użytkowników. Przeglądam je ręcznie, bo automat równie chętnie skasuje poprawne dane sklepu.
Usunięcie tylnych furtek
Najważniejszy etap. Backdoory to niepozorne pliki pozwalające wrócić w dowolnej chwili, często ukryte w katalogach uploadów albo w zadaniach cron. Bez nich naprawa nie ma sensu.
Zamknięcie luki
Aktualizuję WordPress, motyw i wtyczki, usuwam komponenty bez wsparcia i wymieniam hasła oraz klucze bezpieczeństwa. Bez tego kroku infekcja wraca w ciągu kilku dni.
Zgłoszenie do Google
Po wyczyszczeniu składam wniosek o ponowną weryfikację w Search Console i pilnuję go do skutku. Ostrzeżenie w wyszukiwarce znika zwykle w ciągu 24 do 72 godzin.
Zabezpieczenie na przyszłość
Zapora aplikacyjna, ograniczenie prób logowania, blokada wykonywania kodu w katalogu uploadów i poprawne uprawnienia plików. Plus krótki raport z listą tego, co warto zmienić po Twojej stronie.
Od zgłoszenia do czystej strony
Nie musisz niczego przygotowywać ani diagnozować samodzielnie. Wystarczy adres strony i dostęp do hostingu - resztą zajmuję się ja.
-
1
Zgłoszenie i wstępna ocena
do kilku godzinPiszesz albo dzwonisz, podajesz adres strony i opisujesz, co się dzieje. Sprawdzam witrynę z zewnątrz - przekierowania, stan w Google, widoczne symptomy - i mówię wprost, czy to prosty przypadek, czy głębsza infekcja.
-
2
Dostępy i kopia
ten sam dzieńPotrzebuję dostępu do FTP lub panelu hostingu oraz do WordPressa. Pierwsze, co robię po zalogowaniu, to pełna kopia w stanie zastanym - dopiero potem cokolwiek zmieniam.
-
3
Czyszczenie i zamknięcie luki
zwykle kilka godzinUsuwam złośliwy kod z plików i bazy, wymieniam pliki systemowe na oryginalne, likwiduję tylne furtki i nieznane konta, aktualizuję komponenty i wymieniam hasła oraz klucze.
-
4
Weryfikacja
ten sam dzieńSprawdzam stronę zewnętrznymi skanerami i ręcznie: przekierowania z telefonu i z wyników Google, mapa witryny, lista podstron w indeksie. Testuję też, czy sklep i formularze działają poprawnie po czyszczeniu.
-
5
Zdjęcie ostrzeżenia i raport
24 do 72 godzinSkładam wniosek o ponowną weryfikację w Search Console i pilnuję go do skutku. Na koniec dostajesz raport: co znalazłem, którędy wszedł atakujący i co zrobić, żeby się nie powtórzyło.
Z kim właściwie pracujesz?
Nazywam się Bartosz Ciachurski i od dekady zajmuję się WordPressem od strony kodu, nie tylko panelu administracyjnego. Przy infekcjach to różnica praktyczna: złośliwy kod bywa ukryty tam, gdzie żadna wtyczka nie zagląda, i trzeba go znaleźć czytając pliki.
Dzwonisz i rozmawiasz z osobą, która za chwilę wejdzie w pliki Twojej strony. Nie ma opiekuna klienta, systemu zgłoszeń ani przekazywania sprawy dalej - przy awarii, która kosztuje Cię sprzedaż, to ma znaczenie.
Cena zależy od tego, jak głęboko siedzi infekcja
Dokładną kwotę podaję po obejrzeniu strony, zanim cokolwiek zacznę. Poniżej widełki, w które mieści się większość przypadków.
Naprawa podstawowa
- Jedna strona wizytówkowa lub firmowa
- Typowa infekcja w plikach motywu i wtyczek
- Czyszczenie plików i bazy danych
- Usunięcie tylnych furtek i nieznanych kont
- Aktualizacje i wymiana haseł
- Podstawowe zabezpieczenie po naprawie
Naprawa rozszerzona
- Wszystko z naprawy podstawowej
- Infekcja rozsiana po wielu katalogach i w bazie
- Spam SEO i usunięcie śmieciowych podstron z indeksu
- Zgłoszenie do ponownej weryfikacji w Google
- Kontakt z hostingiem w sprawie odblokowania konta
- Zapora aplikacyjna i utwardzenie konfiguracji
- Raport z drogą wejścia atakującego
Sklep WooCommerce
- Sklepy i serwisy z danymi klientów
- Weryfikacja integralności zamówień i płatności
- Sprawdzenie, czy nie podmieniono numerów kont
- Czyszczenie na kopii testowej, bez przestoju sklepu
- Ocena, czy doszło do wycieku danych osobowych
- Wskazówki do zgłoszenia naruszenia, jeśli jest wymagane
Co warto wiedzieć
- Wszystkie kwoty są netto. Do faktury doliczam 23% VAT.
- Cenę podaję po obejrzeniu strony, przed rozpoczęciem pracy. Nie zdarza się, żeby na fakturze pojawiło się coś, na co się nie zgodziłeś.
- Jeśli po oględzinach okaże się, że strony nie da się uratować, mówię to wprost i nie biorę pieniędzy za samą diagnozę.
- Przez 30 dni od naprawy nawrót tej samej infekcji usuwam bezpłatnie.
- Potrzebuję dostępu do FTP lub panelu hostingu oraz do WordPressa. Hasła zmieniasz po zakończeniu prac.
- Nie przenoszę domeny ani hostingu na siebie. Wszystko zostaje na Twoje dane.
- Zdjęcie ostrzeżenia w Google zależy od terminu weryfikacji po ich stronie, zwykle 24 do 72 godzin od zgłoszenia.
- Naprawa nie zastępuje kopii zapasowych. Jeśli ich nie masz, warto po wszystkim rozważyć stałą opiekę.
Co dostajesz po zakończeniu naprawy
Nie tylko działającą stronę. Chodzi o to, żebyś wiedział, co się stało i dlaczego, i żeby nie powtórzyło się za miesiąc.
Co znalazłem
Lista zainfekowanych plików i wpisów w bazie, moment włamania ustalony z dat modyfikacji i logów, oraz droga, którą kod się dostał.
Stan przed i po
Dwie kopie: strona w stanie zastanym i po wyczyszczeniu. Zostają u Ciebie, żebyś w razie wątpliwości mógł porównać albo pokazać komuś innemu.
Zdjęte ostrzeżenie
Wniosek o ponowną weryfikację złożony i doprowadzony do skutku. Jeśli w indeksie były śmieciowe podstrony, zgłaszam je do usunięcia.
Co zrobić dalej
Krótka lista rzeczy do zmiany po Twojej stronie: hasła, dostępy współpracowników, komponenty bez wsparcia, plan kopii zapasowych.
Ile realnie czekasz na reakcję
Przy infekcji liczy się każda godzina, bo rośnie liczba zaindeksowanych śmieciowych podstron. Poniżej maksymalne czasy, do których się zobowiązuję.
| Sytuacja | Czas reakcji | Co się dzieje dalej |
|---|---|---|
| Strona zablokowana przez hosting Konto wyłączone po wykryciu szkodliwego kodu, witryna niedostępna | Reakcja do 4 h w dni robocze | Czyszczenie i zgłoszenie do hostingu tego samego dnia |
| Ostrzeżenie Google Czerwony ekran w przeglądarce, ruch spada do zera | Reakcja do 4 h w dni robocze | Wniosek o weryfikację po wyczyszczeniu, zdjęcie w 24-72 h |
| Przekierowania i podmiana treści Użytkownicy trafiają na obce strony, głównie z telefonów | Reakcja do 12 h | Naprawa zwykle w ciągu jednego dnia roboczego |
| Spam SEO w wynikach Obce podstrony w indeksie, tytuły w obcym języku | Reakcja do 24 h | Czyszczenie plus wnioski o usunięcie adresów z indeksu |
| Podejrzenie infekcji Coś działa dziwnie, ale nie ma jednoznacznych objawów | Reakcja do 24 h | Bezpłatne sprawdzenie z zewnątrz przed wyceną |
| Dostępy potrzebne do startu | FTP lub panel hostingu | Dodatkowo konto administratora WordPressa |
| Praca w weekend | Przy stronach zablokowanych i ostrzeżeniach Google | Pozostałe zgłoszenia w dni robocze |
To są górne granice, nie średnie. W praktyce odpowiadam zwykle w ciągu dwóch, trzech godzin w dni robocze, bo zgłoszenie trafia bezpośrednio na moją skrzynkę, a nie do kolejki przeglądanej raz dziennie.
Nie obiecuję za to dyżuru całodobowego. Jestem jedną osobą i uczciwiej powiedzieć wprost, że nocą zwykle śpię, niż sprzedać gwarancję, której nie da się dotrzymać. Przy stronach zablokowanych przez hosting reaguję również w weekendy.
Czyszczenie wtyczką czy przez specjalistę?
Wtyczki bezpieczeństwa są przydatne, ale do czego innego. Poniżej różnice, które przy usuwaniu infekcji decydują o tym, czy problem wróci.
| Obszar | Naprawa przeze mnie | Skan wtyczką |
|---|---|---|
| Co jest sprawdzane | Pliki, baza danych, zadania cron, uprawnienia, konta użytkowników i logi serwera - także to, co uruchamia się poza WordPressem | Głównie pliki widoczne dla WordPressa. Kod ukryty poza nim zwykle pozostaje niezauważony |
| Tylne furtki | Szukane ręcznie, bo bywają niepozorne i nie pasują do żadnej sygnatury | Wykrywane tylko wtedy, gdy odpowiadają znanemu wzorcowi |
| Przyczyna włamania | Ustalana z dat modyfikacji i logów, potem zamykana - bez tego infekcja wraca | Nie jest ustalana. Wtyczka usuwa skutek, nie źródło |
| Ryzyko uszkodzenia strony | Zmiany wykonywane po kopii, wątpliwe wpisy oceniane ręcznie | Automat potrafi skasować poprawne dane sklepu razem ze złośliwym wpisem |
| Ostrzeżenie w Google | Wniosek o weryfikację składany i pilnowany do skutku | Zostaje po Twojej stronie, razem z korespondencją z Google |
| Czas | Zwykle jeden dzień roboczy od otrzymania dostępów | Skan trwa minuty, ale nawroty potrafią ciągnąć się tygodniami |
| Koszt | Jednorazowo od 300 zł netto, z raportem i zabezpieczeniem | Darmowa wersja albo abonament za skanowanie, płacony co roku |
| Kiedy wtyczka wystarczy | Jako uzupełnienie po naprawie - do bieżącego monitoringu | To scenariusz, w którym sprawdza się najlepiej |
Powiązane usługi
Naprawa to jedno. Poniżej rzeczy, o które warto zadbać zaraz po niej, żeby nie wracać do tego tematu za pół roku.
Stała opieka WordPress
Najlepsze zabezpieczenie po naprawie: aktualizacje, kopie zapasowe poza serwerem i monitoring. Większość infekcji, które usuwam, nie zdarzyłaby się przy regularnej opiece.
Naprawa awarii i błędów
Biała strona, błąd krytyczny, konflikt wtyczek po aktualizacji. Diagnozuję przyczynę i przywracam działanie, zwykle jeszcze tego samego dnia.
Audyt bezpieczeństwa
Dla stron, które jeszcze nie zostały zainfekowane. Sprawdzam uprawnienia, konta, konfigurację serwera i wersje komponentów, a na koniec dostajesz listę priorytetów.
Odzyskanie strony bez kopii
Gdy infekcja zniszczyła pliki, a kopii zapasowej nie ma. Odtwarzam, co się da, z archiwum internetu, indeksu Google i pozostałości w bazie danych.
Migracja na lepszy hosting
Część infekcji wraca przez sąsiednie strony na tym samym koncie. Przeniesienie na osobne, poprawnie odizolowane środowisko rozwiązuje problem u źródła.
Przyspieszenie strony
Po czyszczeniu warto uporządkować też wydajność: cache, obrazy, zbędne wtyczki i zapytania do bazy. Często okazuje się, że strona była wolna nie przez infekcję.
FAQ - usuwanie infekcji z WordPressa
Ile trwa usunięcie infekcji?
Typowa naprawa zamyka się w jednym dniu roboczym od momentu otrzymania dostępów. Bardziej rozsiane infekcje, zwłaszcza w sklepach z dużą bazą, potrafią zająć dwa dni. Zdjęcie ostrzeżenia w Google to dodatkowo od 24 do 72 godzin, ale to już czas po ich stronie.
Czy stracę treści albo zamówienia?
Nie. Pierwszą rzeczą po zalogowaniu jest pełna kopia w stanie zastanym, a wątpliwe wpisy w bazie oceniam ręcznie, zamiast puszczać automat. Przy sklepach dodatkowo sprawdzam integralność zamówień i danych klientów po czyszczeniu.
Czy infekcja może wrócić?
Może, jeśli nie zamknie się luki, przez którą kod się dostał - i to najczęstszy powód, dla którego ludzie płacą za czyszczenie dwa albo trzy razy. Dlatego zamknięcie drogi wejścia i usunięcie tylnych furtek traktuję jako część naprawy, nie dodatek. Nawrót tej samej infekcji w ciągu 30 dni usuwam bezpłatnie.
Nie mam kopii zapasowej. Da się coś zrobić?
W większości przypadków tak, bo infekcja zwykle dokłada kod, a nie kasuje treści. Trudniej jest, gdy atak zniszczył pliki albo tabele - wtedy odtwarzam, co się da, z archiwum internetu, indeksu Google i pozostałości w bazie. Napisz, sprawdzę bezpłatnie, na czym stoimy.
Czy muszę zmieniać hosting?
Zwykle nie. Wyjątkiem jest sytuacja, gdy infekcja przechodzi z innej strony na tym samym koncie albo gdy dostawca nie izoluje kont od siebie - wtedy czyszczenie samej witryny nie wystarczy i doradzam przeniesienie.
Sam próbowałem wtyczką i nie pomogło. Dlaczego?
Bo wtyczki widzą głównie to, co uruchamia się wewnątrz WordPressa i pasuje do znanych sygnatur. Złośliwy kod potrafi siedzieć w plikach systemowych, w zadaniach cron albo w bazie danych, a tylne furtki bywają na tyle niepozorne, że nie odpowiadają żadnemu wzorcowi. Do tego wtyczka nie ustala, którędy atakujący wszedł.
Czy powiadomić klientów albo UODO?
To zależy od tego, czy doszło do naruszenia danych osobowych - przy zwykłym spamie SEO zwykle nie, przy sklepie z danymi klientów sprawa wygląda inaczej. W raporcie opisuję, co ustaliłem, żebyś miał podstawę do decyzji. Nie jestem prawnikiem, więc przy wątpliwościach warto skonsultować to z kimś, kto nim jest.
Co dokładnie musisz dostać, żeby zacząć?
Dane do FTP lub panelu hostingu oraz konto administratora WordPressa. Jeśli strona jest zablokowana i nie masz dostępu do panelu, wystarczy sam hosting. Po zakończeniu prac zmieniasz wszystkie hasła - to naturalna część procedury.
Ile to kosztuje przy sklepie?
Sklepy wyceniam indywidualnie, bo dochodzi weryfikacja zamówień, płatności i danych klientów, a czyszczenie prowadzę na kopii testowej, żeby nie zatrzymywać sprzedaży. Cenę podaję po obejrzeniu strony, przed rozpoczęciem pracy.
A jeśli okaże się, że strony nie da się uratować?
Mówię to wprost i nie biorę pieniędzy za samą diagnozę. Zdarza się to rzadko, ale wolę powiedzieć, że taniej i szybciej będzie odbudować witrynę od nowa, niż brać wynagrodzenie za ratowanie czegoś, co się nie uda.
Zgłoś stronę do sprawdzenia
Podaj adres i napisz, co się dzieje. Sprawdzenie z zewnątrz jest bezpłatne i nie wymaga żadnych haseł - dostaniesz informację, z czym mamy do czynienia i ile to będzie kosztować. Przy zablokowanych stronach dzwoń śmiało.