Olbrzymia popularność WordPress powoduje, że jest wartościowym celem dla zautomatyzowanych ataków hakerskich. Z punktu widzenia osoby, która chce uzyskać korzyści np. w postaci wykradania danych, stworzenia botnetu, albo umieszczania spamerskich linków, napisanie bota przeszukującego internet i wykorzystującego błędy w milionach stron jest niezwykle korzystna. Raz napisany program będzie sukcesywnie i automatycznie włamywał się do stron i robił to, do czego został stworzony, przynosząc korzyści swojemu autorowi. Chyba że załatamy dziurę lub zabezpieczymy się na inne sposoby i nie pozwolimy robotowi na swobodny dostęp do strony.
Statystycznie duża liczba ataków przeprowadzana na WordPress nie wynika z kiepskiej jakości kodu, ale raczej z połączenia popularności, nierzadko amatorskiego podejścia do zarządzania systemem, losowej jakości dodatków oraz kiepskich hostingów. Nie oznacza to jednak, że WordPress nie jest bezpieczny. Aktualizacje bezpieczeństwa są publikowane na bieżąco, instalują się automatycznie i dotyczą nawet starszych wersji systemu. Firmy hostingowe coraz chętniej oferują dedykowane oprogramowanie, filtrujące niepożądane działania, a ponadto dostępne są wtyczki dodające do CMS niestandardowe zabezpieczenia.
Ponad dwa miliony aktywnych użytkowników — taką liczbą instalacji może pochwalić się wtyczka Wordfence Security, będąca dla wielu podstawową linią obrony i zabezpieczania WordPressa. Jest też jedną z pierwszych w wynikach wyszukiwania oficjalnego repozytorium wtyczek na hasła „firewall”, „security” oraz „antivirus”. Nic dziwnego — jej użyteczność, nawet w darmowej wersji, jest bardzo wysoka.
Wordfence Security w wersji darmowej oferuje między innymi:
Ostatnia wersja tej popularnej wtyczki doczekała się kompletnie nowego interfejsu graficznego. Co prawda, u wielu doświadczonych użytkowników ta zmiana powoduje frustracje, ponieważ w konsekwencji doprowadziła do totalnej reorganizacji wszystkich ustawień. Z mojego punktu widzenia jest to jednak bardzo dobre posunięcie. Wyspecjalizowane funkcje posiadają teraz swoje odrębne ekrany — Firewall, Skaner, Narzędzia dodatkowe oraz Ogólne ustawienia wtyczki.
W nagłówku każdej podstrony zobaczymy proste liczniki obrazujące stopień wdrożonych zabezpieczeń. Warto zauważyć, że dla wielu z tych opcji osiągnięcie 100% jest niemożliwe bez zakupienia wersji premium. Odnoszę jednak wrażenie, że autorzy wtyczki podchodzą do tematu bezpieczeństwa w sposób odpowiedzialny i większość opcji premium dotyczy ustawień precyzyjnych, które w wersji darmowej są niedostępne lub zautomatyzowane (nie mamy na przykład możliwości ustawienia harmonogramu automatycznych skanów — Wordfence zadecyduje za nas, kiedy je uruchomić). Odświeżona szata graficzna zyskała na czytelności. Jest bardziej dostępna dla użytkowników, wprowadza wyraźny podział na sekcje strony i korzysta ze spójnej komunikacji za pomocą jednakowych kolorów oraz ikonografii. Cieszy również ograniczenie maksymalnej szerokości interfejsu, co docenią użytkownicy bardzo dużych monitorów.
Choć wtyczka zaprojektowana jest w taki sposób, aby większość jej funkcji działała od razu po instalacji, niektóre wymagają ręcznego włączenia.
Po aktywowaniu wtyczki powinniśmy zobaczyć komunikat wyświetlany na górze strony zapleczowej, zachęcający do skonfigurowania Web Application Firewall. Choć zapora działa od razu po uruchomieniu wtyczki, domyślnie ładuje się jako część systemu WordPress. Zaawansowana konfiguracja tego modułu umożliwia filtrowanie niektórych ataków jeszcze przed uruchomieniem podstawowych funkcji systemu, jest więc bardziej efektywna.
Jeżeli zdecydujemy się na zaawansowaną konfigurację, konfigurator poprowadzi nas przez ten proces, wykrywając rodzaj oprogramowania serwerowego, z którego korzystamy oraz oferując wykonanie kopii zapasowej plików. htaccess, oraz php.ini. Zmiany, które zostaną następnie wprowadzone dotyczą konfiguracji serwera – jeżeli nie mamy dostępu do systemu plików strony przez protokół FTP lub nie wiemy jak w razie awarii przywrócić zmiany w plikach php.ini lub. htaccess — lepiej nie decydujmy się na ten krok, ponieważ może on spowodować, że stracimy dostęp do zaplecza strony. W tym wypadku warto poprosić o pomoc eksperta.
Na szczęście pozostałe funkcje wtyczki możemy konfigurować bez przeszkód korzystając z interfejsu graficznego. Poszczególne ustawienia powinny być dopasowane do naszych potrzeb — niezależnie od tego, warto zmienić domyślne wartości, o których piszę poniżej:
Domyślnie skaner analizuje tylko pliki związane bezpośrednio z CMS WordPress, wykluczając ze skanu zainstalowane wtyczki oraz szablony. Na szczęście w wersji darmowej możemy skorzystać ze skanu również i tych obszarów systemu. Aby zmienić ustawienia skanowania, musimy:
Przy następnym skanie Wordfence będzie analizował nie tylko główne pliki systemu, ale także pliki szablonów oraz wtyczek w poszukiwaniu złośliwego kodu.
Wordfence może przesyłać raporty cykliczne lub natychmiastowe alerty dotyczące bieżących zdarzeń na stronie. Warto włączyć raporty tygodniowe — oferują rozsądny przegląd stanu strony, informując na przykład o nieaktualnych wtyczkach. W celu włączenia raportów musimy:
Przy tak wykonanej konfiguracji, co tydzień na naszej skrzynce e-mail znajdziemy czytelne podsumowanie stanu strony www.
Istnieją rodzaje ataków, które pozwalają na załadowanie dowolnego pliku do folderu uploads, gdzie WordPress domyślnie przechowuje przesłane przez użytkownika pliki. Można jednak zablokować wykonywanie jakiegokolwiek kodu umieszczonego w tym folderze. Aby to zrobić, należy:
Wprowadzone zmiany uniemożliwiają uruchomienie jakiegokolwiek skryptu z poziomu folderu uploads.
Zamiast instalować dodatkową, popularną wtyczkę Limit Login Attempts, można skorzystać z opcji wbudowanych w Wordfence. Firewall pozwala na blokowanie zbyt wielu prób logowania oraz resetowania hasła z możliwością określenia czasu blokowania oraz ilości prób. W celu skonfigurowania blokady należy:
W tym samym obszarze możesz również włączyć automatyczne blokowanie po wpisaniu określonych loginów. Wiele skryptów zaczyna atak od próby zalogowania na konto „admin”, „administrator” lub „root”. Wpisanie tych loginów pomoże zablokować niechciane działania jeszcze przed osiągnięciem limitu. Jeżeli Twoje konto posiada taki login, powinieneś rozważyć jego zmianę na bardziej niestandardową i trudną do odgadnięcia.
Wordfence Security to doskonałe narzędzie uszczelniające WordPress oraz informujące administratorów o zagrożeniach. Warto przy tym pamiętać, że żadna wtyczka nie stanowi panaceum i nie zabezpieczy nas przed każdym możliwym atakiem. Na nic zdadzą się nawet najbardziej wyrafinowane zabezpieczenia, jeżeli logujemy się poprzez konto „admin”, a nasze hasło to „administrator”. Również firmy hostingowe nie pozostają bez winy. Posiadanie dużej ilości skryptów na jednym koncie hostingowym bez domyślnego ograniczenia w postaci „open_basedir” może prowadzić do wzajemnej infekcji i rozprzestrzeniania się złośliwego oprogramowania w obrębie konta hostingowego — nie wszystkie firmy blokują takie działania w standardzie. W takim wypadku zabezpieczanie i czyszczenie jednego systemu z malware jest bezcelowe, skoro złośliwe skrypty mogą radośnie buszować po innych stronach.
Instalacja i konfiguracja tej wtyczki dodaje podstawową warstwę bezpieczeństwa do strony www i co równie ważne — oferuje mailowe raportowanie o napotkanych problemach, umożliwiając przeprowadzenie manualnych działań.
Wordfence nie jest oczywiście jedynym rozwiązaniem tego typu dedykowanym dla CMS WordPress. Jeżeli korzystasz z konkurencyjnego produktu, daj znać, co o nim sądzisz np. w porównaniu do Wordfence. Chętnie przeczytam jakie techniki bezpieczeństwa stosujesz w obrębie swojej strony internetowej.