Złośliwe oprogramowanie (ang. malware) atakujące strony oparte o WordPress wyszukuje i wykorzystuje wszelkie luki przede wszystkim we wtyczkach i szablonach. Następnie “wstrzykuje” problematyczny lub uciążliwy kod, który w zależności od typu wirusa będzie wykonywał różne zadania.

Zanim jednak przejdziemy do zabezpieczenia WordPress musimy mieć świadomość, z czym możemy mieć do czynienia.

Spis treści:

Wirus na stronach z silnikiem WordPress

WordPress sam w sobie to bardzo bezpieczna platforma. Nad jego rozwojem pracują programiści z całego świata, dzięki temu w bardzo szybki sposób mogą wykryć ewentualną lukę w systemie i natychmiast ją poprawić.

Skoro WordPress jest bezpieczny to dlaczego najczęściej właśnie tę platformę atakują wirusy? WordPress jest najbardziej popularnym systemem zarządzania treścią, z której korzysta około 40% stron na całym świecie, dlatego też jest ona najbardziej narażona na wszelkiego typu ataki. Słabym punktem WordPress są wtyczki i szablony pisane przez mniej lub bardziej profesjonalne firmy oraz zwykłych użytkowników.

Jak sprawdzić, czy moja strona jest zawirusowana?

1. Wejdź na swoją stronę, poklikaj po niej np. po produktach, kategoriach, ofertach, koszyku itp. Jeśli nie dzieje się nic dziwnego np. nie wyskakują żadne okienka lub nie zostałeś przekierowany na zupełnie inną stronę to wstępnie strona wydaje się w porządku.

2. Za pomocą FTP przeglądnij foldery w poszukiwaniu plików o losowych nazwach, takich np. jak na poniższym screenie.

3. Sprawdź główne pliki index.php, wp-config.php, wp-settings.php czy nie ma w nim złośliwego kodu. Warto do tego celu mieć włączone pokazywanie spacji i tabulatorów w edytorze plików.

Na pierwszy rzut oka jest to normalny plik WordPress, jednakże jeśli mamy włączone w edytorze pokazywanie spacji i tabulatorów to w pierwszej linii widzimy szare kropki oznaczające dużą ilość wciśniętych spacji.

Natomiast jeśli przesuniesz suwakiem okna w prawo lub włączysz zawijanie wierszy to ujrzysz kod:

Jest to tylko fragment złośliwego kodu, który możesz znaleźć także w innych plikach tego systemu.

Przykładami mogą być jeszcze:

4. Sprawdź wyniki organiczne w Google dla swojej strony wpisując: site:moja-domena.pl

Na powyższym screenie widać dające do myślenia wyniki jak na stronę, która produkuje okulary korekcyjne. Można także dopatrzeć się, że Google znalazło 5140 wyników, co jest mało prawdopodobne, aby strona produkująca kilka rodzajów okularów miała aż tyle podstron.

5. Zainstaluj program do wyszukiwania malware np. WebDefender Security – Protection & AntiSpam. Za pomocą tej wtyczki sprawdzisz, czy w twojej stronie nie ukryły się wirusy. Niestety każdy znaleziony problem trzeba indywidualnie sprawdzić i zweryfikować czy to złośliwe oprogramowanie, ponieważ często zdarza się, że wtyczki, z których korzystamy mogą zawierać kod, który zostanie wykryty jako złośliwy.

Jak zabezpieczyć stronę na WordPress?

Poniżej znajduje się lista działań profilaktycznych, które z pewnością utrudniają i zmniejszają ryzyko zarażenia się strony wirusem. W zależności od wirusa czy robotów atakujących zalecenia te mogą być niewystarczające.

1. Hosting

Jednym z najważniejszych elementów każdej strony jest wybór odpowiedniego hostingu. Większość właścicieli stron przy wyborze odpowiedniego serwera kieruje się ceną lub poleceniem od innej osoby. Jednakże wybór nie jest taki prosty. Przede wszystkim należy sprawdzić, czy hosting:

  • posiada najnowszą wersję PHP - obecnie 8.0,
  • czy wykonywane są kopie bazy danych, plików oraz czy mamy do nich bezpłatny dostęp,
  • czy ma ochronę przeciwko atakom DDoS.

Oprócz sprawdzenia rzeczy pod kątem bezpieczeństwa warto też sprawdzić parametry (procesor, pamięć RAM, pojemność, limity), jakie oferuje serwer. Więcej na ten temat znajdziesz tutaj: Co to jest Hosting? oraz Jaki wpływ na SEO ma hosting?

2. Certyfikat SSL

Certyfikat SSL szyfruje wszelkie informacje wysyłane między przeglądarką użytkownika a stroną internetową. Każda profesjonalna firma hostingowa w swoich ofertach posiada płatne i darmowe certyfikaty SSL (np. Let’s Encrypt). Więcej informacji na ten temat możesz przeczytać tutaj: Co to jest SSL?

3. Aktualizacje WordPress

Ciągle wychodzące aktualizacje WP zawierają nie tylko szereg nowych funkcjonalności i możliwość, ale także zawierają istotne poprawki związane z bezpieczeństwem systemu. Aktualizować należy także dodatki. To właśnie wtyczki i szablony najbardziej narażone są na ataki wirusów, dlatego też zawsze powinny być zaktualizowane, aby zmniejszyć ryzyko.

4. Odinstalowanie niepotrzebnych wtyczek i szablonów

Jeśli nie używasz niektórych wtyczek lub są Ci potrzebne sporadycznie - odinstaluj!
Masz zainstalowane więcej szablonów - odinstaluj, są Ci niepotrzebne. Do poprawnego działania potrzebny Ci jest ten, którego aktualnie używasz.
Należy zmniejszać ryzyko wszędzie tam, gdzie jest to możliwe. Nie ułatwiajmy życia hakerom i robotom!

5. Ukrywanie wersji WordPress i wtyczek

WordPress domyślnie wyświetla wersję w źródle strony dodając tag w sekcji HEAD:

<meta name="generator" content="WordPress 5.6.4" />

W przypadku wtyczek WordPress dopisuje do URL plików CSS i JS ?ver=X.X

Za pomocą informacji, o jakich wersjach używamy poszczególnych komponentów na stronie ułatwiamy pracę atakującym naszą stronę.

Wyświetlanie wersji można zablokować dodając poniższy kod do pliku functions.php znajdujący się w naszym szablonie.

remove_action('wp_head', 'wp_generator');
add_filter('the_generator', '__return_empty_string');
function shapeSpace_remove_version_scripts_styles($src) {
    if (strpos($src, 'ver=')) {
        $src = remove_query_arg('ver', $src);
    }
    return $src;
}
add_filter('style_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999);
add_filter('script_loader_src', 'shapeSpace_remove_version_scripts_styles', 9999);

6. Zmiana haseł

Przyjmij sobie założenie, że raz na kilka miesięcy zmieniasz hasła dla wszystkich administratorów swojej strony. Szczególnie gdy Twoim loginem jest: adm, admin, administrator lub nazwa domeny.

7. Zmiana loginu administratora

Najczęściej wybieranym loginem jest admin, dlatego też jeśli Twoim loginem jest adm, admin, administrator lub nazwa domeny powinieneś to zmienić jak najszybciej. Dzięki zmianie ograniczysz możliwość włamania się do strony za pomocą brute-force.

Jak zmienić login w WordPress?

Sposób I:

  • zaloguj się do bazy danych poprzez phpMyAdmin,
  • poszukaj tabelę wp_users,
  • znajdź swoje konto, kliknij edytuj,
  • w kolumnie user_login zmień stary login na nowy.

Sposób II:

  • w panelu WP dodaj nowego użytkownika z uprawnieniami Administratora,
  • zaloguj się na nowe konto,
  • usuń stare konto.

8. Zmiana strony logowania

Standardowo do każdego WordPressa możemy zalogować się za pomocą URL:

  • example.com/wp-login.php
  • example.com/wp-admin/

Dlatego też, aby zmniejszyć ilość ataków typu brute-force za pomocą wtyczki Limit Login Attempts możemy ograniczyć liczbę logowań i zablokować użytkownika na określony czas.

Jeśli jednak chcemy całkowicie zabezpieczyć formularz logowania możemy zmienić jej lokalizację za pomocą wtyczki WPS Hide Login.

9. Blokowanie dostępu do plików

Za pomocą odpowiednich reguł w pliku .htaccess możemy zabezpieczyć dostęp z zewnątrz do konkretnych plików lub folderów.

W głównym folderze WP znajduje się plik xmlrpc.php i wp-config.php, który przechowuje dane do bazy danych MySQL, dlatego też warto dodatkowo zabezpieczyć te pliki dodając poniższą regułę w pliku .htaccess, który znajduje się w tym samym folderze.

<files wp-config.php>
order allow,deny
deny from all
</files>
<files xmlrpc.php>
    order allow,deny
    deny from all
</files>

Dodatkowo w katalogu /wp-content/uploads/ jeśli nie ma to tworzymy plik .htaccess i dodajemy poniższą regułę, która zablokuje wykonywania się niektórych wirusów:

<Files ~ "\.ph(?:p[345]?|t|tml)$">
   deny from all
</Files>

Więcej na temat pliku .htaccess znajdziesz tutaj: Co to jest .htaccess?

10. Wyłączenie niepotrzebnych funkcjonalności

WordPress oferuje wiele różnych funkcjonalności, z których zazwyczaj nie korzystamy, dlatego też część z nich warto wyłączyć.

Jeśli na naszej stronie korzystamy z komentarzy to warto wyłączyć w Ustawienia → Dyskusja dwa pierwsze checkboxy.

Pingbacki mają za zadanie informować administratora strony, że ktoś umieścił na swojej stronie link do Twojego wpisu.

W przypadku gdy nie korzystamy ze wbudowanych komentarzy WordPress warto zainstalować wtyczkę Disable Comments.

11. Wtyczki bezpieczeństwa

Wraz z niemalejącym rozwojem kolejnych ataków i wirusów na strony oparte o system WordPress. Wiele firm wypuściło dodatki, dzięki którym możemy bronić się przed nimi.

Przykładowymi wtyczkami są: Wordfence Security, All In One WP Security & Firewall czy też iThemes Security.
Powyższe wtyczki zapewnią przede wszystkim bezpieczeństwo strony, umożliwią wykrywanie złośliwego oprogramowania czy też zablokują ataki brute-force. Jedyną wadą tych wtyczek jest możliwy spadek szybkości strony.

12. Kopie bezpieczeństwa

Regularnie wykonywana kopia bezpieczeństwa to podstawa, nawet jeśli nasz hostingodawca wykonuje je za nas. Czasem może zaistnieć sytuacja, że wystąpi problem z jej przywróceniem lub z jakiegoś powodu nie została nawet zrobiona. Dlatego mimo wszystko warto zrobić je samemu. Wtyczek do WordPress robiących kopie jest bardzo dużo, ale godna polecenia to UpdraftPlus, dzięki której kopie wykonywane mogą być automatycznie i mogą być wysyłane na inny serwer.

Podsumowanie

Dzięki, że doczytałeś do końca i mam nadzieje, że powyższe porady rozjaśniły Ci problemy, z jakimi spotykać się mogą użytkownicy WordPress. oraz to, że dowiedziałeś, w jaki sposób możesz zabezpieczyć swoją stronę przed ewentualnymi atakami.

Jeśli stałeś się ofiarą takiego ataku i nie umiesz sobie z tym poradzić zadzwoń do nas a my postaramy Ci się pomóc.