Hosting

Jak zabezpieczyć WordPressa w 14 krokach

Im bardziej popularna aplikacja, tym większa szansa na próbę złamania jej zabezpieczeń przez hakerów. WordPress napędza obecnie ponad 25% stron internetowych na całym świecie. O jego sukcesie zdecydowała przede wszystkim otwarta struktura, umożliwiająca tworzenie dodatków (wtyczek), które rozwijają i poszerzają możliwości stron internetowych – zarówno pod względem graficznym jak i funkcjonalnym.

Niestety, liczba instalacji WordPressów niesie również za sobą pewien niechlubny wynik. Według raportu Sucuri z 2016 roku na 4 zhakowane strony internetowe, aż 3 dotyczyły właśnie postawionych na WordPressie. WordPress stał się więc ofiarą swojej popularności – jest łatwy do opanowania, elastyczny, przystępny i jednocześnie niezwykle atrakcyjny w oczach cyberprzestępców. Znamienny jest tutaj przypadek ze stycznia, kiedy okazało się, że CMS w wersji 4.7.0 posiada poważną lukę, umożliwiającą przejęcie strony przez trzeciego użytkownika bez jakiejkolwiek znajomości loginu lub hasła. Twórcy aplikacji robią co mogą, aby WordPress był bezpieczny – dlatego też średnio co 40 dni wydają aktualizację, usuwając poważniejsze błędy w kodzie.

Ale nawet łatanie aplikacji nie jest gwarantem bezpieczeństwa. Warto zadbać o swój serwis WWW samodzielnie. Można to zrobić zgodnie z naszymi wskazówkami poniżej. Im więcej ich zastosujesz, tym mniejsza szansa, iż Twoja strona padnie kiedyś ofiarą ataku. Pamiętaj jednak, że część rozwiązań wymaga przynajmniej podstawowej wiedzy w zakresie obsługi panelu phpMyAdmin, w którym możemy edytować bazę danych używaną w aktualnym WordPressie. Niewłaściwa operacja na tabelach może wiązać się z częściową niedostępnością strony lub nawet całego serwisu.

1. Aktualizuj WordPressa najszybciej jak to możliwe


Brzmi banalnie? Może i tak, ale podstawa to zadbanie, aby nasz WordPress “nie zestarzał się”. Począwszy od wersji 3.7 WordPress posiada opcję automatycznej aktualizacji nie tylko aplikacji, ale również motywów i wtyczek. Kilka wpisów wcześniej pokazaliśmy w jaki sposób wyłączyć tę funkcjonalność, nie mniej odkładanie aktualizacji w czasie jest bardzo ryzykowne.

2. Zmień domyślny prefix wp_ dla tabel w bazie danych.

Upraszczając język programistyczny prefix to przedrostek do tabel w bazie MySQL, dzięki którym aplikacja może rozpoznać, które dane faktycznie “należą” do niej (w końcu z jednej bazy danych może korzystać wiele aplikacji). Jedną ze słabszych stron WordPressa i niejako użytkowników jest pozostawianie w bazie domyślnego przedrostka wp_ , co ułatwia hakerom modyfikacje w takiej bazie. Dlatego w tej sytuacji najlepiej zmienić ten przedrostek na inny, mniej charakterystyczny. Można to zrobić na 2 sposoby – przy samej instalacji WordPressa oraz po instalacji logując się do bazy MySQL przez panel phpMyAdmin.

Dzięki tej zmianie strona WWW oparta na WordPressie będzie mniej podatna na ataki typu SQL Injection.

AKTUALIZACJA – Zmiana nazwy prefixu tabel wymaga także modyfikacji wpisów w dwóch tabelach WordPressa: xltw4_options oraz xltw4_usermeta. Można to wykonać poprzez dwa polecenia SQL (niezbędne jest tutaj wskazanie samodzielnie zaproponowanych przedrostków):

SELECT * FROM `xltw4_options` WHERE `option_name` LIKE '%wp_%';
SELECT * FROM `xltw4_usermeta` WHERE `meta_key` LIKE '%wp_%';

Pamiętaj, aby po tej zmianie zmodyfikować dodatkowo plik wp-config.php w linijcie, w której podajemy prefix:

 

3. Zmień login odraz ID administratora

Domyślny login proponowany przez WordPressa to “admin” – nietrudno zgadnąć, że taki login jest bardzo łatwy do odgadnięcia przez kogoś kto próbuje się zalogować do Kokpitu. A to przecież już połowa drogi do uzyskania dostępu. Przy instalacji warto go zmienić na inny, mniej “logiczny” z punktu widzenia użytkownika zewnętrznego. Pamiętaj, że login nie będzie wyświetlać się pod artykułami na blogu, gdyż nazwę wyświetlaną konfiguruje się indywidualnie w panelu WordPressa.

Zmianę loginu już po instalacji zmienimy poprzez phpMyAdmin w tabeli (twój-prefix)_users:


W tym samym miejscu zmienimy także ID konta. Najlepiej wprowadzić wysoką liczbę z losowym ciągiem cyfr (np. zamiast 333333 wpisać 158062).

4. Ogranicz dostęp do panelu WordPressa za pomocą .htaccess

Ograniczenie dostępu do strony logowania jest bardzo rozsądnym wyjściem. w pliku .htaccess wystarczy skonfigurować dozwolone połączenia do wybranego (lub wybranych) adresu IP. Poniżej zamieszczamy poprawną formułę do zamieszczenia w treści:

AuthName “Example Access Control”

AuthType Basic

order deny,allow

deny from all

allow from adresIP

W miejsce “adresIp” należy wpisać adres z którego chcemy mieć dostęp do panelu. Adres IP komputera możesz sprawdzić np. na stronie https://home.pl/test .

5. Zmień adres logowania do zaplecza WordPressa

Złośliwe skrypty atakują w pierwszej kolejności podstrony związane z treścią i jej edycją tj. /wp-admin . Dlatego warto rozważyć zmianę tego adresu na inny, bardziej przyjazny dla Ciebie, a mniej oczywisty dla cyberprzestępców.  Zainstaluj wtyczkę WPS Hide Login i skonfiguruj ją według własnych potrzeb. Nowy adres do logowania panelu będzie dostępny od razu.

6. Zmień metodę logowania na adres email

Dostęp do panelu WordPressa można zabezpieczyć dodatkowo zmieniając sposób, w który aplikacja weryfikuje użytkownika. Zainstaluj w tym celu wtyczkę WP Email login i zastąp nazwę logowania adresem email przypisanym do użytkownika. Po zapisaniu zmian zalecane jest wykonanie jeszcze jednej operacji – zmianę loginu standardowego na zestaw losowych znaków (dotyczy to zwłaszcza sytuacji, gdy posługiwaliśmy się kontem “admin”).

 

7. Wyłącz edycję plików wtyczek i motywów

Stworzyłeś stronę, uruchomiłeś wtyczki? Zabezpiecz pliki uniemożliwiając dalszą edycję kodu w panelu WordPressa. Aby tego dokonać – dodaj w pliku wp-config.php jedną linijkę:

define(‘DISALLOW_FILE_EDIT’, true);

8. Wyłącz rejestrację użytkowników

WordPress domyślnie pozwala na rejestrację użytkowników na utworzonym blogu, ale jeśli prowadzisz serwis, który w ogóle nie korzysta z tej opcji (jest wyłącznie nakierowany na czytanie) to lepiej ją zablokować. Na szczęście nie trzeba posiadać dużej wiedzy na temat edycji plików czy baz MySQL, gdyż stosowna opcja dostępna jest…w ustawieniach WordPressa. Bardzo dużo użytkowników na początku ją pomija i zapomina o niej, a przecież to kolejne “okno” do potencjalnej próby ataku.

 

9. Włącz dwustopniowe uwierzytelnianie

Dodatkowy poziom zabezpieczeń przy logowaniu jeszcze nikomu nie zaszkodził. Dzięki wtyczce Two Factor Authentication skonfigurujesz podwójne logowanie do panelu polegające na podaniu loginu z hasłem, a następnie unikalnego kodu, który zostanie przesłany na Twój smartfon.  Pamiętaj jednak, że to rozwiązanie wymaga również instalacji na smartfonie aplikacji Google Authenticator, dostępnej na Androidzie oraz iOS. Jeżeli więc posiadasz telefon starszej generacji lub z innym systemem operacyjnym – dwustopniowe uwierzytelnianie nie będzie dla Ciebie dostępne.

 

10. Rozważ instalację dodatkowych wtyczek zabezpieczających

Na rynku znajduje się kilka dodatkowych wtyczek, które zawierają kilka powyższych funkcjonalności oraz dodatkowo zabezpieczają WordPressa przed atakami typu brute force i innych. Oszczędzają więc czas (wystarczy zainstalować jedną z nich i w kilka minut ustawić), ale nie zapominajmy, iż jest to po prostu kolejna wtyczka. A to może wpłynąć na wydajność CMSa. Warto także wiedzieć, że wtyczki typu Wordfence, Sucuri czy iThemes Security istnieją również w wersji płatnej, oferując o wiele większe możliwości.

 

11. Wykonuj dodatkowe kopie danych

Na serwerach home.pl kopia zapasowa wykonywana jest cyklicznie w godzinach nocnych, w sposób punktowy – oznacza to, że wszystkie pliki oraz bazy danych w kopii są odzwierciedleniem stanu serwera z danej godziny. W każdym przypadku użytkownik może przywrócić takie dane z 3 ostatnich dni. Jeżeli Twój serwis jest dynamiczny, publikujesz na nim wiele treści (np. w formie portalu z ogłoszeniami) – zainstaluj dodatkowe aplikacje do tworzenia kopii zapasowych w WordPressie. Jedną z nich jest Updraft, dzięki któremu zaprogramujesz backup nawet co 60 minut. Pamiętaj jednak, że każda operacja tworzenia kopii jest bardzo dużym obciążeniem dla serwera. Uruchamianie tego typu wtyczki w godzinach szczytu nie jest najlepszym rozwiązaniem.

12. Usuwaj zbędne wtyczki i motywy

WordPress pozwala na stworzenie strony internetowej o dowolnym przeznaczeniu. Nic więc dziwnego, że będziesz testować na nim nowe motywy oraz wtyczki. Pamiętaj jednak, aby po ich wyłączeniu i (ostatecznym) porzuceniu usunąć je z aplikacji. Statystyka nie kłamie – nieaktualna wtyczka może być powodem ataku na Twoją stronę. Zwróć również uwagę, czy dodatek pochodzi z zaufanego źródła. Nie musi to być koniecznie oficjalne repozytorium WordPressa (https://pl.wordpress.org/plugins/), bo w wyszukiwarce Google można znaleźć wiele serwisów zajmujących się legalną sprzedażą elementów do budowy strony w CMS. Unikaj jednak pluginów wysyłanych przez email, czy hostowanych w darmowych serwisach z plikami – nie przechodzą one bowiem żadnej weryfikacji, nie podlegają także kontroli.

13. Skorzystaj z certyfikatu SSL

Twórcy WordPressa zapowiedzieli kilka miesięcy temu pełne wsparcie dla szyfrowanego połączenia https przez przeglądarkę. Począwszy od 2017 roku aplikacja CMS wymaga od serwera obsługi tego protokołu. Nie bez znaczenia pozostaje fakt, iż Google od jakiegoś czasu włącza obecność certyfikatu SSL strony internetowej do pozycjonowania. Na dodatek najpopularniejsza przeglądarka na świecie, czyli Google Chrome, od kilku tygodni zaczęła oznaczać strony WWW bez certyfikatu SSL jako “niezabezpieczone” z czerwonym kolorem. Z psychologicznego punktu widzenia jest to równoznaczne ze zniechęceniem użytkownika do odwiedzenia witryny w przyszłości.

14. Korzystaj z długich haseł dostępu

Im dłuższe i bardziej urozmaicone hasło, tym lepiej. WordPress z automatu proponuje zapisać hasło w postaci kilkunastu znaków bez słownikowych fraz. Zazwyczaj w tym kroku chcemy zaproponować swoje hasło, ale w większości przypadków nie będzie ono wystarczająco silne. Aczkolwiek po zaznaczeniu akceptacji na słabszą kombinację znaków modyfikacja zostanie zapisana.