Twoja strona oparta o system WordPress została zainfekowana wirusem? Nie jesteś sam. WordPress, będąc najpopularniejszym systemem zarządzania treścią (CMS), jest często celem ataków hakerskich. W tym artykule omówimy, jak krok po kroku usunąć wirusa ze strony oraz jak zadbać o bezpieczeństwo strony, aby zapobiec podobnym problemom w przyszłości.
Jak rozpoznać, że strona jest zainfekowana?
Prawdopodobnie, skoro trafiłeś na ten artykuł, masz już podejrzenia i obawy, że Twoja strona oparta na WordPressie mogła zostać zainfekowana złośliwym oprogramowaniem. Najczęstsze oznaki infekcji to:
- Niespodziewane przekierowania na inne strony.
- Wyświetlanie niechcianych reklam lub wyskakujących okienek.
- Spadek wydajności strony.
- Ostrzeżenia od przeglądarek (np. komunikaty o złośliwym oprogramowaniu).
- Powiadomienia od hostingu o podejrzanej aktywności.
- Nietypowe zmiany w plikach lub wtyczkach WordPressa.
Jeśli zauważasz którykolwiek z powyższych problemów, istnieje duże prawdopodobieństwo, że Twoja strona została zainfekowana. Nie oznacza to jednak, że stałeś się celem wyrafinowanego ataku ze strony zakapturzonych hakerów. Większość takich incydentów to wynik automatycznych ataków wykorzystujących luki w zabezpieczeniach serwera, starszych wersjach WordPressa lub zainstalowanych wtyczkach i motywach.
Czytaj dalej, aby dowiedzieć się, jak usunąć złośliwe oprogramowanie ze strony i zabezpieczyć ją przed podobnymi atakami w przyszłości.
Jak usunąć wirusa ze strony opartej o WordPress?
Jeżeli podejrzewasz, że Twoja strona została zainfekowana, wykonaj poniższe kroki, aby odnaleźć i usunąć złośliwy kod z jej zawartości:
Zrób kopię zapasową strony i bazy danych
Zanim rozpoczniesz działania naprawcze, wykonaj pełną kopię zapasową strony (wraz z bazą danych). Jeśli coś pójdzie nie tak, będziesz mógł przywrócić wcześniejszy stan.
Najprostszym sposobem na wykonanie kopii jest skorzystanie z narzędzi dostarczanych przez Twojego operatora hostingowego. Zaloguj się do panelu do zarządzania serwerem i poszukaj w nim takiej opcji lub skontaktuj się z obsługą bo niekiedy kopie wykonywane są na zlecenie klienta.
Jeżeli jednak chcesz wykonać kopie ręcznie lub nie masz dostępu do narzędzia automatyzującego ten proces, w pierwszej kolejności skopiuj wszystkie pliki strony, np. poprzez klienta FTP/SFTP.
Pamiętaj również o wykonaniu kopii bazy danych. Aby ją wykonać, zaloguj się do bazy poprzez klienta bazodanowego, np. phpMyAdmin (często jest dostępny z poziomu panelu do zarządzania serwerem).
Obszerną instrukcję jak wykonać kopię strony opartej o WordPress znajdziesz tutaj: https://developer.wordpress.org/advanced-administration/security/backup/.
Przeskanuj stronę w poszukiwaniu złośliwego oprogramowania
Skorzystaj z narzędzi do skanowania dedykowanych do stron działających na WordPressie, takich jak:
- Wordfence Security – wtyczka skanująca pliki i bazę danych
- MalCare – automatyczne narzędzie do wykrywania i usuwania malware
Po przeskanowaniu strony jednym z powyższej wymienionych narzędzi usuń wskazane pliki lub zastąp je czystymi kopiami. Dobrą praktyką jest również nadpisanie folderów wp-admin
oraz wp-includes
oryginalnymi plikami - pobierz czysty WordPress w odpowiedniej wersji z oficjalnej strony i wgraj na serwer te katalogi zastępując wszystkie pliki. Da to Ci gwarancje, że będą one czyste od złośliwego kodu.
Infekcją zagrożone są nietylko pliki, ale również zawartość bazy danych. Wymienione wcześniej narzędzia skanują i usuwają złośliwy kod również z bazy danych.
Ręczne poszukiwanie złośliwego kodu
Jeżeli z jakiegoś powodu nie chcesz lub nie możesz wykorzystać automatycznych narzędzi skanujących stronę, możesz spróbować odnaleźć złośliwy kod w plikach lub bazie danych samodzielnie.
Zainfekowane pliki WordPressa mogą wyglądać normalnie na pierwszy rzut oka, ale zawierają ukryty złośliwy kod, zwróć uwagę na:
Złośliwy kod w istniejących plikach
Pliki WordPressa, takie jak wp-config.php
, functions.php
w motywach, czy losowe pliki w katalogach, mogą zawierać:
- Kod PHP zaczynający się od funkcji takich jak
eval()
,base64_decode()
,gzinflate()
lubstr_rot13()
– często używanych do ukrywania złośliwych skryptów - Nietypowe instrukcje, takie jak
<?php /* złośliwy kod */ ?>
Pojawienie się nowych, nieznanych plików
Infekcje często tworzą dodatkowe pliki w katalogach takich jak /wp-content/uploads/
, /wp-includes/
czy /wp-admin/
. Te pliki mogą mieć losowe nazwy, np. a1b2c3.php
, aby utrudnić ich wykrycie.
Złośliwy kod w bazie danych
Złośliwy kod może również znajdować się w bazie danych, szczególnie w tabelach:
wp_posts
– wstrzyknięcie kodu do treści wpisów lub stronwp_options
– dodanie złośliwego kodu do opcji, takich jak siteurl lub homewp_users
– utworzenie fałszywego konta administratorawp_comments
– wstrzyknięcie kodu do komentarzy
Poniżej znajdziesz polecenie SQL, które przeskanuje wszystkie powyżej wymienione tabele w bazie danych w poszukiwaniu złośliwego kodu:
-- Skanowanie tabeli wp_posts (zawiera treści stron i wpisów)
SELECT *
FROM wp_posts
WHERE post_content LIKE '%<script>%'
OR post_content LIKE '%<iframe>%'
OR post_content LIKE '%javascript:%'
OR post_content LIKE '%base64%'
OR post_content LIKE '%eval(%'
OR post_content LIKE '%<?php%'
OR post_content LIKE '%UNION SELECT%'
OR post_content LIKE '%CONCAT(%';
-- Skanowanie tabeli wp_comments (zawiera treści komentarzy)
SELECT *
FROM wp_comments
WHERE comment_content LIKE '%<script>%'
OR comment_content LIKE '%<iframe>%'
OR comment_content LIKE '%javascript:%'
OR comment_content LIKE '%base64%'
OR comment_content LIKE '%eval(%'
OR comment_content LIKE '%<?php%'
OR comment_content LIKE '%UNION SELECT%'
OR comment_content LIKE '%CONCAT(%';
-- Skanowanie tabeli wp_options (przechowuje ustawienia strony)
SELECT *
FROM wp_options
WHERE option_value LIKE '%<script>%'
OR option_value LIKE '%<iframe>%'
OR option_value LIKE '%javascript:%'
OR option_value LIKE '%base64%'
OR option_value LIKE '%eval(%'
OR option_value LIKE '%<?php%'
OR option_value LIKE '%UNION SELECT%'
OR option_value LIKE '%CONCAT(%';
-- Skanowanie tabeli wp_users (przechowuje dane użytkowników)
SELECT *
FROM wp_users
WHERE user_login LIKE '%<script>%'
OR user_email LIKE '%<script>%'
OR user_login LIKE '%base64%'
OR user_email LIKE '%base64%'
OR user_login LIKE '%eval(%'
OR user_email LIKE '%eval(%'
OR user_login LIKE '%javascript:%'
OR user_email LIKE '%javascript:%';
Jeżeli powyższe polecenie zwróci jakieś rekordy, zweryfikuj czy ich treść jest prawidłowa czy też mogła się pojawić na skutek infekcji.
Usuń niepotrzebne wtyczki i motywy
Dezaktywuj i usuń wszystkie wtyczki i motywy, których nie używasz. Zainfekowane wtyczki często są źródłem problemu.
Wykonaj aktualizacje
Upewnij się, że WordPress, wtyczki i motywy są zaktualizowane do najnowszych wersji. Aktualizacje zawierają poprawki zabezpieczeń.
Zmień hasła
Zresetuj wszystkie hasła – do WordPressa, serwera FTP/SFTP, bazy danych, a nawet poczty e-mail powiązanej z kontem admina.
Jak zadbać o bezpieczeństwo strony opartej o WordPress?
Zabezpieczenie strony działającej na WordPress to kluczowy element, który pozwala uniknąć problemów z zainfekowaniem strony w przyszłości. Proces ten wymaga podjęcia kilku działań. Przede wszystkim należy regularnie aktualizować WordPress, wszystkie wtyczki i motywy. Każda aktualizacja zazwyczaj zawiera poprawki zabezpieczeń, które eliminują znane luki w bezpieczeństwie i inne błędy. Warto również unikać korzystania z nieaktualizowanych wtyczek i motywów – ich brak wsparcia często stwarza zagrożenie.
Wtyczki i motywy powinny pochodzić z zaufanych źródeł, takich jak oficjalny katalog WordPress. Przed instalacją warto sprawdzić opinie innych użytkowników oraz upewnić się, że dana wtyczka lub motyw są regularnie aktualizowane.
Wspomniane wcześniej narzędzie Wordfence Security czy MalCare to nie tylko naprawianie już zainfekowanej strony, ale przede wszystkim zapobieganie infekcji strony dzięki regularnie wykonywanym skanom czy innym rozwiązaniom podnoszących jej bezpieczeństwo.
Warto pamiętać również o regularnym (najlepiej automatycznym) wykonywaniu kopii plików strony i bazy danych. Czasami strona może zostać tak zainfekowana, że jej przywrócenie do stanu z przed infekcji będzie bardzo trudne lub wręcz niemożliwe bo złośliwe oprogramowanie spowodowało nadpisanie lub usunięcie danych ze strony.
Monitoring dostępności strony, ważności domeny i certyfikatu to kolejny element o którym nie powinieneś zapominać. Dzięki niemu Twoja strona będzie automatycznie sprawdzana (nawet co minutę) czy działa poprawnie z kilku niezależnych lokalizacji w Polsce. W razie jakichkolwiek problemu zostaniesz o tym fakcie szybko powiadomiony zanim problem dotknie Twoich odwiedzających. Dowiedz się więcej na: https://ping.pl.