Jak zabezpieczyć stronę przed atakami (securing WordPress)

Zamieszczając stronę w internecie warto pamiętać o jej zabezpieczeniu.
Skrypt WordPress jest darmowy, ogólnodostępny i niestety nie jest w 100% bezpieczny… Jego popularność sprawiła, że jest często atakowanym skryptem.
Oto kilka rzeczy, na które warto zwrócić uwagę, chcąc uniknąć zhakowania naszej witryny.

Regularne aktualizacje

Przede wszystkim warto trzymać się zasady o bezwzględnej aktualizacji skryptu, jak i wtyczek i używanych szablonów. Ponieważ najczęściej zdarzającym się atakiem jest dostęp przez lukę w nieaktualnej wtyczce.
Wiele hostingów zapewnia automatyczne aktualizacje, żeby chronić de facto również swoje zasoby.
Aby włączyć automatyczne aktualizacje w skrypcie WordPress w pliku wp-config.php powinien znaleźć się zapis:
define ( 'WP_AUTO_UPDATE_CORE', true );
Jednak należy liczyć się z tym, że podczas automatycznych aktualizacji może coś pójść nie tak. Na przykład w przypadku, gdy korzystamy z wtyczek, które modyfikują konfigurację naszej strony, a nie są często aktualizowane…

Kopie zapasowe

Dlatego kolejną ważną zasadą jest regularne tworzenie kopii zapasowych. Można to zrobić z pomocą wtyczek do tego przeznaczonych jak np. BackWPup lub ręcznie kopiując pliki i bazę danych.

Wersja WordPress

Haker łatwo może sprawdzić jaka wersja WORDPRESS jest zainstalowana na stronie. Informacja taka jest w pliku readme.html (który pojawia się po instalacji w głównym katalogu) lub w nagłówku strony naszego motywu: ” />
Dlatego warto ukryć wersję skryptu WordPress. Więcej na ten temat można znaleźć w artykule: Jak nie dac sie hackerom czyli zabezpieczanie wordpressa
Dodatkowo tworząc własny szablon można dodać w pliku functions.php kod
remove_action('wp_head', 'wp_generator');

Raportowanie błędów

Często stosowanym zabezpieczeniem jest wyłączenie raportowania o błędach skryptu PHP czy bazy danych.
W pliku wp-config.php wpisujemy: error_reporting (0);
@ini_set ('display_errors', 0);

Warto ukryć również komunikaty błędów podczas logowania, ponieważ jest to również duże ułatwienie dla hakera, który może się dowiedzieć jaka jest np. nazwa użytkownika. Aby zablokować taki komunikat należy w pliku function.php dodać kod: add_filter('login_errors',create_function('$a', "return null;"));
Jeżeli podczas instalacji wybraliśmy jako nazwę administratora domyślną nazwę „admin”, możemy zawsze ją zmienić w taki sposób: Jak zmienić nazwę administratora bez używania wtyczek

Brute Force Attack

Atak skierowany przeważnie na stronę logowania w celu przejęcia konta np. administratora strony. Sprawdzane są różne kombinację loginu i hasła, aż do skutku. Dlatego warto nie używać oczywistych nazw użytkowników (np. admin czy administrator) i zbyt łatwych do odgadnięcia haseł.
Jedną z metod zapobiegania temu atakowi jest użycie No CAPTCHA reCAPTCHA firmy Google – weryfikacja czy użytkownik nie jest robotem, bez użycia popularnych obrazków (CAPTCHA).
Można również użyć wtyczek do tego przeznaczonych np. Brute force login protection. Wykrywa ona ilość prób logowania z danego adresu IP i umożliwia blokowanie tych adresów.
Dobrą wtyczką do ochrony logowania jest również WP Google Authenticator – podczas logowania dodatkowo wprowadzamy kod wygenerowany przez np. aplikację na komórce.
Kolejnym sposobem jest zabezpieczenie dodatkowym hasłem pliku logowania wp-login (lub calego katalogu wp-admin) wpisując w pliku .htaccess poniższy kod
#Protect wp-login
AuthUserFile ~/.htpasswd
AuthName "Private access"
AuthType Basic
require user mysecretuser

Sposób najbardziej przydatny w przypadku masowego ataku botami.
(Nie polecane mniej zaawansowanym użytkownikom.)

Ograniczenie dostępu do wp-admin tylko dla zaufanych adresów IP – w pliku .htaccess w katalogu wp-admin wpisujemy:
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic

order deny,allow
deny from all

allow from xx.xx.xx.xx

gdzie zamiast xx.xx.xx.xx wpisujemy nasz adres IP skad będziemy się logować.

DDoS Attack

Aby przeciwdziałać temu typowi ataków dobrym sposobem jest wyłączenie interfejsu XML-RPC używając np takiej wtyczki: Disable XML-RPC.
Innym sposobem jest dodanie do pliku function.php kodu: add_filter('xmlrpc_enabled', '__return_false');
aby całkowicie wyłączyć obsługę XML-RPC.

Skanery bezpieczeństwa

Istnieją również wtyczki (i strony) sprawdzające stronę pod kątem zagrożeń.

Aktualna lista luk

W internecie można również znaleźć aktualną listę luk związanych ze skryptem WP oraz wtyczek np.

Wtyczki zabezpieczające stronę

Warto na koniec jeszcze wspomnieć o wtyczkach, które wiele z powyższych wskazówek mogą wykonać za nas

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *