Dwie proste metody, instrukcje krok po kroku, porady i wsparcie...

Brak produktów w koszyku.
jak zabezpieczyć wordpressa
Krzysztof Wojteczko

Krzysztof Wojteczko

Jak zabezpieczyć WordPress’a – poradnik (2018)

Bezpieczeństwo w Sieci jest zagadnieniem istotnym, ale także często ignorowanym przez właścicieli zarówno tych małych jak i większych witryn. Wynika to chyba po części z poczucia niskiej wartości takiej inwestycji – mam na myśli stronę internetową. Jeśli zrobisz ją samodzielnie i nie wydasz przynajmniej kilku tysięcy złotych, to nie specjalnie czujesz jej wartości pomimo, że być może poświęciłeś jej całkiem sporo czasu. Ale często nawet jeśli zlecamy wykonanie strony i płacimy te kilka tysięcy złotych, to nie przychodzi nam do głowy aby podjąć dodatkowy wysiłek i należycie ją zabezpieczyć.

Weźmy dla kontrastu np. zakup domu. Inwestujesz w niego kilkaset tysięcy złotych albo więcej. Czujesz więc, że taką inwestycję bezwzględnie trzeba odpowiednio zabezpieczyć – poszła gruba kasa. Ubezpieczasz go, instalujesz system alarmowy, być może także całodobowy monitoring z kamer, w co znowu inwestujesz, ale przecież nie chcesz żeby ktoś Ci się włamał i narobił szkód. Dmuchasz i chuchasz.

Pomimo, że strona internetowa zwłaszcza w formie wizytówki firmowej z niewielkim blogiem nie kosztuje tyle co dom, to także inwestycja. Inwestycja w własną firmę, jej przyszłość i wizerunek. Inwestycja, którą powinieneś chronić, bo pomimo, że koszty początkowe nie były wielkie w porównaniu do naszego przykładowego domu, to konsekwencje włamania mogą być równie dotkliwe, a niekiedy nawet bardziej niż wyniesienie z domu wartościowego sprzętu elektronicznego. Dlaczego więc nie robimy zbyt wiele aby nasze strony internetowe były bezpieczniejsze? Wynika to także z braku świadomości. Wydaje nam się, że stworzona strona z gruntu jest bezpieczna, a jeśli coś się wydarzy to nie my za to odpowiadamy tylko ktoś inny, np. dostawca usług hostingowych, firma która stronę dla nas wykonała, producent oprogramowania, itd…

Zwiększ bezpieczeństwo swojego WordPress'a

Samo oprogramowanie WordPress’a jest bezpieczne choć są tacy, którzy powiedzą że nie. Nie zgodzę się jednak z nimi, ponieważ WordPress jest nieustannie kontrolowany przez setki programistów na całym świecie i wszelkie luki w nim wykryte są szybko usuwane w kolejnych aktualizacjach bezpieczeństwa. Trzeba mieć świadomość, że w rzeczywistości nie ma systemów całkowicie bezpiecznych. Każdy ma jakieś słabe punkty, które jak w przypadku wspomnianych aktualizacji WordPress’a są eliminowane, ale to wcale nie znaczy że w to miejsce nie wskakują inne, które dopiero za jakiś czas będą zidentyfikowane. Z tego względu trudno mówić o całkowitym wyeliminowaniu ryzyka włamania, ale można mówić o jego znacznym zminimalizowaniu. O tym przeczytasz w tym artykule.  

Dlaczego bezpieczeństwo WordPress'a jest tak ważne?

Zhakowanie strony internetowej wiąże się bardzo często z poważnymi konsekwencjami takimi jak straty finansowe (spadek przychodów) i pogorszeniem wizerunku firmy. Hakerzy włamując się na Twoją stronę mogą wykraść dane Twoich Klientów, a także rozpowszechniać za pośrednictwem Twojej strony złośliwe oprogramowanie czy wręcz wykorzystywać ją jako miejsce umożliwiające przeprowadzanie ataków na inne strony.

Jeśli zdarzy się, że akurat Twoja witryna zostanie zhakowana, w dość krótkim czasie trafi na czarne listy, a to oznacza mocny cios w reputację Twojej firmy ponieważ Klientom zostaną wyświetlone informacje o tym, że strona np. rozpowszechnia niebezpieczne treści. Taki cios może Cię sporo kosztować.

Każdego tygodnia Google umieszcza na czarnych listach po kilkadziesiąt tysięcy stron za złośliwe oprogramowanie i kilkadziesiąt tysięcy za phishing. Nie jest to więc zjawisko o marginalnym zasięgu i może dotknąć każdego. Także Ciebie.

Jako właściciel strony internetowej masz obowiązek ją należycie chronić. Firma hostingowa może Cię w tym zakresie wspomóc stosowanymi technologiami na swoich serwerach, ale to nie załatwia wszystkiego. Bezpieczeństwo Twojej strony jest przede wszystkim w Twoich rękach.

Omówmy najważniejsze aspekty związane z bezpieczeństwem strony działającej na WordPress’ie. Wbrew pozorom odpowiednie jej zabezpieczenie, nawet jeśli nie masz o tym zielonego pojęcia nie jest trudne i nie wymaga od Ciebie zaawansowanej wiedzy.

Dbaj o aktualizacje WordPress'a

WordPress jak już wspomniałem jest bezpiecznym oprogramowaniem, ponieważ bardzo szybko pojawiają się aktualizacje, które eliminują wykryte luki. Tu jednak warto zwrócić uwagę na to, że WordPress jest niezwykle popularnym systemem Open Source. Na tyle popularnym, że praktycznie co trzecia witryna w sieci działa właśnie na WordPress’ie. Tak duża ilość stron jest łakomym kąskiem dla hakerów, którzy wykorzystując niewiedzę właścicieli stron i znane luki bezpieczeństwa mogą hurtowo atakować duże ilości witryn.

Właśnie dlatego aktualizacje są tak niezwykle istotnym czynnikiem mającym kluczowe znaczenie na polu bezpiecznego użytkowania WordPress’a.

Ale sam WordPress to nie wszystko. Zapewne instalując WordPress’a wykorzystasz na nim także jakiś motyw i wtyczki rozszerzające jego możliwości. One także powinny być aktualizowane tak często jak to możliwe. Im więcej wtyczek tym więcej potencjalnych niebezpieczeństw, dlatego poza aktualizacjami staraj się odpowiednio dobierać to co instalujesz, a wtyczki czy motywy z których nie korzystasz zawsze usuwaj.

Ostatnio trafił do mnie Klient prowadzący sklep internetowy na Woocommerce z kobiecymi akcesoriami (kosmetyczki, torebki itp). Okazało się, że firma, która sklep przygotowała dorzuciła wtyczkę ukrywającą informację o dostępnych aktualizacjach. Zapytałem Klienta czy to działanie ma jakieś konkretne uzasadnienie, ale nie potrafił odpowiedzieć. Po prostu nie miał o tym pojęcia za co trudno go winić bo nie został o tym poinformowany. Firma zrobiła sklep, oddała go, a skoro działał, to w oczach Klienta wszystko wydawało się być w porządku. Domyślam się, że motywem takiej konfiguracji były ręczne modyfikacje kodu niektórych wtyczek jakie firma tworząca sklep wprowadziła. Doszli zapewne więc do wniosku, że jeśli odetną możliwość aktualizacji środowiska, Klient nie nadpisze wprowadzonych przez nich modyfikacji i sklep się nie wysypie. Takie działanie dla mnie osobiście jest karygodne, bo firma oddająca taki sklep Klientowi w sposób świadomy naraziła go na poważne konsekwencje. Pół biedy gdyby mieli umowę w ramach której sami dokonywaliby aktualizacji, ale tak nie było. Gdyby coś się stało i gdybym to ja był właścicielem takiej strony nie miałbym skrupułów, aby wystąpić na drogę sądową. Nie mógłbym jednak cofnąć już wygenerowanych strat, a co najważniejsze utraty reputacji.

Aktualizacje WordPressa, jego motywów i wtyczek to podstawowy czynnik podnoszący bezpieczeństwo strony. Nie zaniedbuj tego pod żadnym pozorem. Proces aktualizacji nie jest trudny. WordPress sam informuje o tym, że jest nowa wersja takiego czy innego elementu i wystarczy jedynie kliknąć w przycisk aktualizacji. To wszystko.

Używaj silnych haseł

Bardzo często do włamania na stronę dochodzi za sprawą używania prostych, słownikowych haseł. Wynika to po prostu z faktu, że nie lubimy zapamiętywać skomplikowanych haseł, dlatego ułatwiamy sobie życie korzystając z prostego hasła, a niekiedy nawet jest to hasło jakie stosujemy w wielu innych miejscach np. logując się do profili społecznościowych, na innych swoich stronach itd… Namawiam do zmiany przyzwyczajeń i do stosowania możliwie złożonych haseł do każdego miejsca w sieci. Z pomocą przychodzą tu rozmaite narzędzia, które umożliwiają przechowywanie haseł do różnych stron i systemów w jednym miejscu. Wykorzystaj chociażby darmowy KeePass lub poszukaj podobnych narzędzi, co ułatwi Ci zarządzanie swoimi hasłami i nie będziesz musiał ich wszystkich pamiętać.

W sytuacji gdy masz np. kilka stron na WordPress’ie i chcesz zarządzać nimi z poziomu jednego panelu przyjrzyj się rozwiązaniu o nazwie ManageWP. Jeśli podepniesz do niego swoje strony będziesz mógł logować się do nich wszystkich z jednego miejsca. Co więcej ManageWP będzie także kontrolował zarządzanie aktualizacjami wszystkich Twoich stron, a więc z jednego panelu wykonasz aktualizacje WordPress’a, motywów i wtyczek na wszystkich swoich stronach.

Silne hasła stosuj także do konta hostingowego, kont FTP, poczty – wszędzie.

Rola hostingu

Usługodawca hostingu odgrywa znacząca rolę w temacie zabezpieczeń choć tak jak wspomniałem nawet najlepszy dostawca hostingu nie jest w stanie zagwarantować Ci pełnego bezpieczeństwa jeśli sam o nie nie zadbasz.

Operatorzy usług hostingowych stosują bardzo różne mechanizmy zabezpieczeń. Jedni ograniczają się do minimum inni wdrażają systemy monitorujące i reagujące w tle na wypadek różnych zdarzeń. W przypadku usług współdzielonych ważne jest także to, aby twoja strona działała w odseparowanym środowisku, co eliminuje możliwość ataku na Twoje konto z innego „sąsiedniego”.

Na kontach hostingowych Didwear znajdziesz nie tylko odseparowane środowisko dla każdego konta, ale także systemy monitorujące Twoją stronę pod kątem takich zagrożeń jak wirusy, ataki brute force, malware oraz zaawansowany algorytm Proacive Defence chroniący przed atakami z wykorzystaniem skryptów PHP. Znajdziesz tu także monitoring określonych zachowań, które blokują podejrzanemu dostęp do strony i całego konta wykorzystując przy tym niewidoczny mechanizm Google Captcha rozpoznający czy zachowanie pochodziło od człowieka (zdejmuje blokadę) czy automatu (zostaje zablokowany).

Innymi alternatywami zapewniającymi wysoki poziom bezpieczeństwa po stronie serwerów są konta hostingowe całkowicie dedykowane stronom działającym na WordPress’ie. Tu rekomenduję WPEngine.

Zadbaj o kopie bezpieczeństwa

Kopie plików strony są pierwszą linią obrony czy raczej reakcji na skutki włamania. Podkreślam to raz jeszcze. Nie ma stron w 100% bezpiecznych bez względu na podjęte środki. Skoro hakerom poddają się strony rządowe i strony wielkich korporacji, to także Twoja. Backup pozwoli Ci jednak szybko cofnąć spustoszenie jakiego dokonają hakerzy i uniknąć sytuacji w której sprawcy zażądają od Ciebie dużych kwot w zamian za przywrócenie strony do jej pierwotnego stanu.

Operatorzy kont hostingowych zazwyczaj udostępniają kopie bezpieczeństwa, jednak dobrze jest zadbać także o własne nad którymi mamy kontrolę. Do tego celu możesz wykorzystać dodatkowe wtyczki, które w określonych odstępach czasu mogą wykonywać kopie bezpieczeństwa bazy danych i ważnych plików. Istotne jest tu to żeby tych plików nie przechowywać na koncie hostingowym. Innymi słowy skonfiguruj wtyczkę w taki sposób aby kopie danych były przesyłane na zewnątrz np. na DropBox’a, Google Drive czy innej lokalizacji do której masz dostęp. Chodzi o to, że w sytuacji zhakowania strony sprawcy mogą uzyskać dostęp do wszystkich zasobów na koncie więc w takiej sytuacji zapewne stracisz też swoje kopie – zwłaszcza jeśli celem ataku będzie wyciągnięcie od Ciebie pieniędzy za odtworzenie strony.

Dobrym rozwiązaniem w przypadku zewnętrznych kopii bezpieczeństwa jest np. JetPack w wersji Premium lub Professional, nad którym czuwa Automattic, a więc firma twórcy WordPress’a. W zależności od wybranego planu masz możliwość wykonywania dziennych kopii bezpieczeństwa lub nawet kopii wykonywanych w czasie rzeczywistym. Sprawdź na VaultPress.

WordPress i najlepsze wtyczki bezpieczeństwa

Kolejnym elementem, który trzeba uwzględnić to rozszerzenie, które będzie czuwało nad pozostałymi aspektami związanymi z bezpieczeństwem strony na WordPress’ie. Jeśli Twoja strona zostanie zainfekowana wówczas zmianie ulegają określone pliki. Wtyczki monitorujące ich integralność wyłapią zmianę bardzo szybko i poinformują Cię o tym fakcie. Dzięki temu będziesz mógł zareagować zanim wprowadzone zmiany narobią rzeczywistych szkód.

Dodatkowo tego typu wtyczki oferują bardzo często o wiele szerszy zakres ochrony, np. przed atakami brute force, oferują dwuwarstwową autoryzację, czy firewall w modelu WAF.

Przetestowałem wiele tego typu rozwiązań i mam swoje dwa ulubione, które także Tobie rekomenduję do sprawdzenia i ostatecznie wdrożenia jednego z nich.

Sucuri

Mój zdecydowany faworyt. W wersji darmowej załatwia praktycznie wszystkie najważniejsze elementy związane z integralnością plików, odpieraniem ataków brute force, monitorowaniem strony pod kątem złośliwego oprogramowania.

W wersji płatnej wzbogacamy stronę dodatkowo o potężny firewall (WAF) i co najważniejsze firewall działający w chmurze. W praktyce oznacza, to przefiltrowanie ruchu kierowanego na stronę pod katem różnego rodzaju ataków w tym DDOS, szkodliwych botów itp… jeszcze na etapie zanim zastuka na Twój serwer. Ta forma ochrony poza samym odfiltrowaniem szkodliwego ruchu, nie tylko nie ma negatywnego wpływu na wydajność strony (nie obciąża serwera), ale przyczynia się do jej poprawy dzięki wykorzystaniu mechanizmów cache w chmurze i serwowaniu danych statycznych poprzez sieć CDN.

Sucuri wykorzystuję zarówno na tej stronie jak również na stronach moich Klientów, którzy zdecydowali się na wdrożenie tej formy ochrony. Korzyści są fenomenalne.

Na potrzeby tego artykułu zrobiłem test wyłączając na jeden dzień wtyczkę na tym blogu, żeby sprawdzić jaki to będzie miało wpływ na wydajność i jakie będzie generowało obciążenia. Dzień w którym wtyczka była wyłączona zaowocował wykorzystaniem procesora na poziomie blisko 30%.

dzień bez sucuri

W kolejnym dniu ponownie aktywowałem wtyczkę i efekt jej działania natychmiast przełożył się na stadek obciążenia poniżej 1%. Trzydziestokrotny spadek obciążenia dzięki wyeliminowaniu szkodliwego ruchu i ataków.

wtyczka sucuri włączona

Już same dane dotyczące wykorzystania zasobów obliczeniowych serwera mówią bardzo wiele o skuteczności tego rozwiązania. W sytuacji gdy Twoja strona generuje spory ruch, a w ślad za tym obciążenia, a operator konta hostingowego zaczyna Cię upominać czy wręcz blokuje Twoje konto, zastosowanie tego rozwiązania może diametralnie odwrócić Twoje położenie.

W ciągu każdego dnia Sucuri niweluje skutki ataków DDOS, odpiera ataki brute-force, eliminuje boty próbujące wbijać komentarze i rozmaite inne niebezpieczne i zarazem niepożądane zdarzenia. Na JZS odpiera w ten sposób ponad pół tysiąca ataków dziennie.

Dla mnie to narzędzie numer jeden. Niestety jego wadą jest cena. O ile wersja darmowa pozwala na monitoring integralności plików, skanuje stronę pod kątem zagrożeń malware i udostępnia jeszcze kilka innych wartościowych funkcji bezpieczeńśtwa o tyle firewall, który robi najlepszą robotę jest już usługą płatną zaczynającą się od niecałych 10 dolarów miesięcznie. Jeśli jednak możesz sobie pozwolić na taki wydatek rozwiązanie jest warte zdecydowanie warte każdej wydanej na nie złotówki.

WordFence

Druga wtyczka na mojej liście polecanych rozszerzeń związanych z bezpieczeństwem. W wersji bezpłatnej oferuje naprawdę bardzo dużo włącznie z zaawansowanym Firewallem (WAF) z tą jednak różnicą, że firewall działa bezpośrednio na WordPressie, co eliminuje szkodliwy ruch w momencie kiedy dociera do strony, co ma wpływ na jej wydajność. Dodatkowo skanery poszukujące zmian w plikach także potrafią podnieść poziom obciążenia. Wiem, że niektórzy operatorzy współdzielonych usług hostingowych wręcz zabraniają korzystania z tej wtyczki z uwagi na pokaźne wykorzystanie zasobów obliczeniowych maszyn. I choć producent nieustannie optymalizuje procesy ochrony stosowane przez wtyczkę, to jednak tarcza działa bezpośrednio na stronie a nie tak jak w przypadku Sucuri poza nią, co chcąc nie chcąc musi generować obciążenia, a także spowalniać stronę (ma więcej pracy do wykonania).

Poza powyższym wtyczka działa rewelacyjnie i całkowicie spełnia swoje zadanie. W wersji PRO mamy dostęp w czasie rzeczywistym do danych o szkodliwych adresach IP, botach itp… gromadzonych w całej sieci WordFence. Gdyby nie fakt, że wtyczka miewała wpływ na wydajność z pewnością nie interesowałbym się innymi rozwiązaniami. Przez kilka lat WordFence skutecznie chronił JZS i choć teraz robi to Sucuri, to WordFence nadal zalicza się w mojej ocenie do topowych narzędzi zabezpieczających WordPress’a.

Wynik WordFence w moim teście jest także świetny. Odpierając ataki i szkodliwy ruch zmniejszył obciążenie generowane przez bloga prawie dziesięciokrotnie.

Moja sugestia. Jeśli masz poważny projekt biznesowy, gdzie wydajność i bezpieczeństwo ma kluczowe znaczenie wykorzystaj Sucuri. W sytuacji gdy masz mniejszą witrynę, której wewnętrzne skanery WordFence nie będą musiały intensywnie skanować wybierz WordFence. W większości sytuacji wersja bezpłatna jest w zupełności wystarczająca.

O czym jeszcze warto pamiętać

Jeśli zadbałeś o wszystko o czym już napisałem jest rewelacyjnie, ale oczywiście zawsze jeszcze można coś zrobić. Im bardziej utrudnisz hakerom próby złamania Twojej strony tym lepiej. 

Zmień domyślną nazwę administratora

Bardzo często pozwalamy aby login głównego konta administracyjnego miał oklepaną nazwę „admin”. Instalując WordPress’a nie myśl, że skoro instalator podpowiada Ci akurat taką a nie inną nazwę, to taka powinna zostać. Wręcz przeciwnie! Hakerzy w pierwszej kolejności wykorzystują w atakach ten login licząc na to, że nie tylko nie zmieniłeś domyślnie proponowanego loginu, ale do tego użyłeś niezbyt skomplikowanego hasła. Połączenie tych dwóch rzeczy jest bardzo niebezpieczne.

Jeśli dopiero jesteś na etapie instalacji WordPress’a od razu na dzień dobry ustaw inny login administratora, a jeśli już masz stronę i taki login zmień go. W tym drugim wypadku WordPress uniemożliwia dokonanie zmiany loginu z poziomu edycji użytkownika, dlatego w takiej sytuacji masz trzy wyjścia.

  • Założenie nowego użytkownika z prawami administratora, a następnie usunięcie użytkownika admin.
  • Zmianę nazwy użytkownika przy wykorzystaniu wtyczki, która to umożliwia
  • Wprowadzenie zmiany bezpośrednio w bazie danych w tabeli użytkowników korzystając np. z phpMyAdmin'a, który prawdopodobnie masz na swoim koncie hostingowym

Gdy już to zrobisz, a korzystasz z WordFence sugeruję Ci przejść do ustawień jego konfiguracji i odszukać miejsce gdzie można wpisać loginy, po których użyciu delikwent zostanie z miejsca zablokowany. Wpisz tu admin, root, administrator itp.. po czym zapisz zmiany.

blokowanie admina

Od tej pory każdy kto spróbuje się zalogować korzystając z loginu admin zostanie natychmiast odcięty od Twojej strony.

Wyłącz możliwość edycji plików z poziomu panelu WordPress'a

Wordpress umożliwia modyfikację kodu plików zarówno motywów jak i wtyczek bezpośrednio z panelu administracyjnego. Warto tę funkcjonalność wyłączyć np. jednym kliknięciem jeśli korzystasz z Sucuri,  ale można to zrobić także z palca dodając do pliku konfiguracyjnego WP (config.php), mały fragmentu kodu:

define( ‚DISALLOW_FILE_EDIT’, true );

Kontroluj ilość prób logowania się

Standardowo WordPress dopuszcza dowolna ilość prób logowania się do Panelu zarządzania co jest skwapliwie wykorzystywane przez atakujących, którzy próbują trafić w nazwę użytkownika i hasło. Takich prób jeśli masz już stronę od jakiegoś czasu masz zapewne dziennie spora ilość choć być może o tym nawet nie wiesz.

Jesli korzystasz z Sucuri lub WordFence, to temat masz praktycznie ogarnięty. W WordFence możesz nawet ustawić bardzo restrykcyjnie tego typu ochronę i wyciąć logującego się już nawet po jednej nieudanej próbie. 

limit logowań

Ja zazwyczaj dopuszczam 5 nieudanych prób logowania się ale oczywiście mam projekty gdzie ten limit jest mniej restrykcyjny. Możesz tym sobie dowolnie sterować.

W sytuacji gdy nie korzystasz z WordFence lub Sucuri ani z jakiegokolwiek innego skryptu zapewniającego Ci szeroka ochronę w tym także ochronę przed tego typu zdarzeniami, zainstaluj wtyczkę Login LockDown, która pozwoli Ci na wprowadzenie podobnych limitów.

Wyłącz XML-RPC

Zablokowaliśmy nieudane próby logowania się jednak tylko za pośrednictwem standardowej strony WordPress’a. Jest jednak jeszcze jeden kanał komunikacji, który został wprowadzony do WordPressa w wersji 3.5, który umożliwia integrację systemu z zewnętrznymi aplikacjami. Żeby to lepiej zobrazować, to nasz przykładowy haker gdyby chciał standardowo wykonać powiedzmy 500 prób logowania się wykorzystując różne wariacje loginu i hasła musiałby to zrobić 500 razy przy czym nasze wcześniejsze zabezpieczenie zablokowałoby mu dostęp już po piątej próbie. Jeśli jednak użyje do tego celu kanału XML-RPC i system.multicall  będzie mógł przetestować kilkaset różnych haseł przy pomocy zaledwie kilku żądań.

Dlatego jeśli nie wykorzystujesz XML-RPC zdecydowanie zalecam aby go wyłączyć. Możesz to zrobić korzystając z Firewalla WAF lub dodając odpowiedni regułkę do pliku .htaccess:

<Files xmlrpc.php>
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
</Files>

Tu gdzie wstawiłem krzyżyki możesz wpisać adres IP z którego dopuścisz komunikację do pliku xmlrpc.php dając tym samym dostęp do niego tylko wybranym przez siebie systemom.

Jak zabezpieczyć WordPress’a – poradnik (2018)
5 (100%) głosów: 8

Udostępnij na Facebooku
Udostępnij na Twitterze

UDOSTĘPNIJ TEŻ W INNYCH MIEJSCACH

Autor

Krzysztof Wojteczko

Krzysztof Wojteczko

Szkoleniowiec, miłośnik nowych technologii, WordPress'a i wszystkiego co ma związek z marketingiem internetowym. Swoją pierwszą stronę stworzył w 1996 roku.

Dołącz do dyskusji