WordPress jest oprogramowaniem typu open source, co oznacza, że wdrożone zabezpieczenia przed nieautoryzowanym użyciem muszą być zgodne z zasadą Kerckhoffsa. Ta podstawowa zasada współczesnej kryptografii mówi, że system musi być niemożliwy do zhakowania, nawet jeśli znamy wszystkie szczegóły działania jego mechanizmów bezpieczeństwa.
Prowadzenie strony internetowej wydaje się w dzisiejszych czasach tak proste, że zapominamy o potencjalnych niebezpieczeństwach, które na co dzień czyhają na nas w Internecie. Wycieki danych, phishing, ataki hakerskie itp. to wciąż realne kwestie, które powinniśmy wziąć pod uwagę, projektując i rozwijając stronę internetową. Ponadto każde oprogramowanie ma swoje słabości, którymi należy się zająć. W przypadku WordPressa dużo się mówi na przykład o kłopotliwych wtyczkach, których jakość kodu jest w większości dość słaba, co stwarza szereg luk w zabezpieczeniach. Projektowanie, instalowanie i publikowanie strony internetowej zwykle nie wystarcza. Jeśli interesuje nas bezpieczna witryna WordPress, musimy skupić się na kilku zadaniach, które są ważne na różnych etapach (nie tylko przed wdrożeniem witryny, ale także po nim).
Czy WordPress to zagrożenie
W żadnym razie! WordPress po prostu ułatwia instalowanie różnych komponentów i właśnie tam hakerzy często trafiają do Twojej witryny. Wiele osób uważa również, że skrypt open source jest podatny na różne ataki. Dlaczego? Z prostego powodu – potencjalni hakerzy mogą przeglądać kod źródłowy i szukać potencjalnych luk w oprogramowaniu. Ale to nie do końca prawda. WordPress ma bardzo dużą społeczność, która szybko reaguje. Jeśli taka podatność rzeczywiście istnieje w systemie, aktualizacja nowej wersji WordPressa pojawi się bardzo szybko. Wszystko, co musisz zrobić, to odświeżyć witrynę. Dotyczy to większości właścicieli witryn WordPress.
Typy ataków na WordPress
Ataki można podzielić na kilka rodzajów. Obrona polega na pisaniu i aktualizowaniu kodu zgodnie z dobrymi praktykami i najnowszą wiedzą na temat bezpieczeństwa cyfrowego, z uwzględnieniem między innymi ataków:
Authentication and Session Management Attack
Podstawowe oprogramowanie WordPress zarządza kontami użytkowników i uwierzytelnianiem, a informacje takie jak nazwa użytkownika i hasło są zarządzane na serwerze. WordPress używa plików cookie w celu usprawnienia systemu logowania. Hasła są łamane przy użyciu standardowych technik salt i hash. Istniejące sesje są likwidowane po wylogowaniu z wersji WordPressa.
SQL Injection
WordPress ma wiele funkcji i interfejsów API, które pomagają programistom zablokować dodawanie nieautoryzowanego kodu, a także weryfikować i czyścić dane. Najlepsze praktyki w tym zakresie są dostępne w ramach WordPress to: kontrola i czyszczenie danych: wejście i wyjście HTML, adresy URL, nagłówki HTTP, interakcje z bazą danych, operacje na systemie plików.Administratorzy mogą również ograniczyć dodatkowe filtry do typów plików, które można pobrać dalej.
XSS. WordPress oferuje kilka funkcji, które zapewniają bezpieczeństwo informacji generowanych przez użytkowników. Zaufani użytkownicy (tj. administratorzy i moderatorzy) mogą w razie potrzeby publikować niefiltrowany kod HTML lub JavaScript, na przykład w poście lub na stronie. Natomiast treści zamieszczane przez niezaufanych użytkowników (np. w komentarzach) są domyślnie filtrowane w celu usunięcia niebezpiecznych podmiotów za pomocą biblioteki KSES poprzez funkcję wp_kses().
Insecure Direct Object Reference. WordPress często zapewnia bezpośrednie odniesienia do obiektów, takie jak unikalne identyfikatory numeryczne kont użytkowników, zawartość adresów URL lub pól formularzy. Tagi te pokazują bezpośrednie informacje o systemie, ale odpowiednie mechanizmy WordPressa i dobrze rozwinięty system kontroli dostępu zapobiegają nieautoryzowanemu dziedziczeniu tego typu informacji.
Sensitive Data Exposure. Hasła do kont użytkowników WordPress są solone i haszowane poprzez przenośną platformę haszowania haseł PHP. System uprawnień WordPress służy do kontroli dostępu do prywatnych informacji, takich jak dane osobowe zarejestrowanych użytkowników, adresy e-mail komentujących, prywatnie publikowane treści itp. W WordPress 3.7 do podstawowego oprogramowania dołączono miernik siły hasła. Strona związana z ustawieniami konta użytkownika zawiera taką procedurę i wskazówki, jak zwiększyć siłę haseł. WordPress ma również opcjonalne ustawienie, które wymaga protokołu HTTPS.
Kontrola dostępu bez poziomu. WordPress weryfikuje autoryzacje i uprawnienia dla żądań dostępu na poziomie funkcji przed uruchomieniem funkcji. Uzyskiwanie dostępu lub przeglądanie administracyjnych adresów URL, menu i stron bez odpowiedniego uwierzytelniania jest ściśle zintegrowane z systemem uwierzytelniania, aby zapobiec nieautoryzowanemu dostępowi. Użytkownik, który nie ma uprawnień administracyjnych, nie może wykonywać operacji wymagających uprawnień administracyjnych.
Bezpieczne motywy WordPress
Aby wyświetlić zawartość w interfejsie użytkownika, WordPress wymaga włączenia motywu. Domyślny motyw dostarczany z rdzeniem WordPress (obecnie „Twenty Twenty One”) został dokładnie sprawdzony i przetestowany pod kątem bezpieczeństwa zarówno przez zespół programistów motywów, jak i główny zespół programistów.
Motyw domyślny może być użyty jako punkt wyjścia do opracowania motywu niestandardowego, a programiści WWW mogą utworzyć motyw potomny, który zawiera pewne dostosowania, ale używa motywu domyślnego dla większości funkcji i zabezpieczeń. Administrator może łatwo usunąć domyślny motyw, jeśli nie jest potrzebny.
Zabezpieczamy naszego WordPressa
Jak widać, sam WordPress jest bardzo bezpieczny i musiałbyś go mocno zignorować, aby haker przejął całą Twoją witrynę. Aby jednak zmniejszyć to ryzyko, powinieneś zmusić siebie i swoich użytkowników do przestrzegania dobrych praktyk bezpieczeństwa. Jednocześnie możesz skupić się na mechanizmach, które zmniejszają obciążenie hostingu i chronią przed różnego rodzaju spamem.
Aktualizacje. Regularne i szybkie aktualizacje WordPressa to podstawa bezpieczeństwa. Najnowsze wersje systemu obsługują automatyczne aktualizacje, które powinny być aktywne, jeśli logujesz się do dashboardu stosunkowo rzadko – na przykład rzadziej niż raz w tygodniu. Jeśli logujemy się na strony prawie codziennie, nie ma potrzeby aktywowania automatycznych aktualizacji, ponieważ możemy je uruchomić w dowolnym momencie, np. późno w nocy, kiedy ruch zaczyna się zmniejszać, a aktualizacja nie blokuje strony. Dlaczego aktualizacje WordPressa są tak ważne? Załóżmy, że programiści WordPressa znaleźli lukę, która może przyczynić się do włamań lub niestabilności witryny w określonych sytuacjach. Następnym krokiem zespołu WordPressa jest stworzenie odpowiedniej aktualizacji, która naprawia ten błąd. Przyjęte praktyki bezpieczeństwa wymagają, aby informacje o luce były udostępniane tylko wtedy, gdy poprawka jest dostępna dla użytkowników. Jeśli jednak ktoś nie aktualizuje WordPressa przez dłuższy czas i utrzymuje witrynę internetową o wysokiej wartości i dużym ruchu, szanse na niezałatane luki prowadzące do włamań lub innych niepożądanych zakłóceń witryny rosną.
Strong passwords. Hasło jest jedyną rzeczą, która pozwala silnikowi WordPress odróżnić właściciela witryny od innych użytkowników. Klucz, aby stworzyć długie i trudne do odgadnięcia hasło, jest tak oczywisty: nie może być kombinacją imienia i nazwiska, nazwy firmy ani samej strony internetowej. Nie może to być również słowo z dodaną liczbą i wykrzyknikiem. Dobre hasło powinno mieć co najmniej 8 znaków i zawierać kombinację liter, cyfr i znaków specjalnych.Istnieje wiele sposobów na łamanie haseł. Na przykład atakujący zna hasło do usługi, z której korzysta inny administrator – możliwe jest, że używa on jednego hasła do kilku usług, w tym panelu WordPress. Inną opcją są ataki słownikowe i ataki siłowe. Im dłuższe hasło, tym dłużej trwa jego złamanie, ponieważ trzeba wypróbować więcej kombinacji. Dobrą praktyką jest również zmiana hasła od czasu do czasu. Na przykład ustawienie nowego, złożonego hasła co kwartał sprawia, że jego złamanie jest prawie niemożliwe.
Odpowiednie wtyczki i motywy. Wtyczki i motywy mogą uruchamiać dowolny kod na naszej stronie. Mogą dokonywać zmian w plikach, bazie danych, a także łączyć się z usługami zewnętrznymi. Korzystaj ze sprawdzonych wtyczek, biorąc pod uwagę ich popularność lub zaufanie ich twórcy. WordPress zaleca minimalizm podczas korzystania z wtyczek oraz prostą zasadę dezaktywacji i usuwania motywów i wtyczek, których już nie używamy.
wp-admin / wp-login.php. Aby złamać hasło, musimy wielokrotnie żądać określonych adresów. Jednym z typów żądań jest ścieżka do oryginalnego skryptu logowania wp-login.php lub interfejsu XML-RPC. Dobrą praktyką jest zablokowanie całego katalogu za pomocą .htaccess i skonfigurowanie go tak, aby używał tylko naszego adresu IP lub dodanie ochrony hasłem. W przypadku częstych ataków typu brute force przydatna może być zmiana adresu logowania na znany tylko administratorowi witryny.
Zapora. Regularne prośby o nieistniejące zasoby witryny to nic innego jak sprawdzenie witryny pod kątem potencjalnych luk w zabezpieczeniach. Ciągły ruch – nawet jeśli otrzyma odpowiedź 0 – niepotrzebnie zużywa procesor, powodując obciążenie i tym samym zwiększając koszty hostingu. Rozwiązaniem tych problemów jest firewall zaimplementowany na serwerze, aplikacji lub usługach zewnętrznych. Sprawdź, co mają do zaoferowania CloudFlare, Sucur i Incapsula.
Wyeliminowanie możliwości edycji wtyczek i motywów. Panel administracyjny WordPressa umożliwia administratorom edycję plików PHP, które są domyślnie dostarczane z wtyczkami i motywami. Często jest to pierwsze narzędzie, z którego korzysta osoba atakująca po pomyślnym zalogowaniu. WordPress posiada standard, który uniemożliwia edycję plików w desce rozdzielczej.
Umieszczenie takiej linii w wp-config.php oznacza usunięcie uprawnień edit_themes, edit_plugins, edit_files dla wszystkich użytkowników: define(’DISALLOW_FILE_EDIT’, true).
Kopie zapasowe. Za każdym razem, gdy aktualizujesz WordPress lub dużą wtyczkę, taką jak WooCommerce, dobrym pomysłem jest skorzystanie z metody tworzenia kopii zapasowych. Najlepiej byłoby mieć nieograniczony dostęp do automatycznych kopii zapasowych plików i baz danych przynajmniej raz w tygodniu. Sklepy internetowe mogą korzystać z migawek robionych raz dziennie lub częściej. Backup umożliwia przywrócenie stanu strony w przypadku większych zakłóceń, włamań lub innych niechcianych zmian, które uważamy za nieodwracalne lub trudne do odwrócenia.
Dobry hosting – clue Twojego sukcesu
Wszystkie te działania i najlepsze praktyki nie mogą chronić naszego WordPressa w 100%, jeśli nasz hosting nie pomaga w zachowaniu bezpieczeństwa.
Jeśli Twój hosting nie spełnia poniższych kryteriów, korzystasz z hostingu niskiej jakości:
darmowy SSL,
monitoring i logi do wykrywania skanów i ataków brute force,
Oprócz wyżej wymienionych sposobów bez wątpienia również możemy zastosować różnego rodzaju wtyczki, które pozwolą nam czuć się bezpieczniej. Oto kilka z najpopularniejszych.
iThemes Security. Według twórców ta wtyczka chroni Twoją witrynę przed hakerami na 30 różnych sposobów. Korzystanie z wtyczki jest bardzo proste i intuicyjne. Włączamy pełną ochronę jednym kliknięciem. Wtyczka została pobrana ponad 700 000 razy, co dużo mówi. Dzięki integracji reCAPTCHA od Google możesz dodać dodatkową ochronę logowania do swojego pulpitu nawigacyjnego.
All In One WP Security & Firewall. Jedna z najbardziej funkcjonalnych wtyczek tego rodzaju. Ma bardzo przejrzysty interfejs. Za pomocą ciekawych liczników określa siłę bezpieczeństwa strony i sugeruje, co zrobić, aby je poprawić. Funkcje dostępne w rozszerzeniu są podzielone na trzy kategorie: Basic, Intermediate i Advanced. Rozszerzenie blokuje możliwość zgadywania haseł i chroni bazę danych oraz pliki. Ta wtyczka jest całkowicie darmowa, bez dodatkowych funkcji.
Jetpack. Funkcja bezpieczeństwa jest jedną z wielu funkcji tej wtyczki. Posiada wiele modułów, na przykład moduł „Chroń” jest darmowy, zapewnia przyzwoitą ochronę i blokuje podejrzane działania. Jedną z jej wad jest to, że wpływa ona na szybkość ładowania strony.
BulletProof Security. W wersji darmowej wtyczka jest pełna funkcji dla przeciętnej strony internetowej: kontrola logowania, tworzenie kopii zapasowych i przywracanie bazy danych, kontrola złośliwego oprogramowania, narzędzia antyspamowe, ukryte foldery wtyczek, dziennik bezpieczeństwa, tryb konserwacji.
Podsumowanie
Zwykła witryna WordPress lub sklep WooCommerce nie potrzebuje zewnętrznych usług czy narzędzi oferowanych przez zewnętrzne firmy – do zabezpieczenia strony czy sklepu wystarczają usługi oferowane przez sam WordPress. Nigdy nie miałem do czynienia z hakowaniem lub spamowaniem wirusami w moich witrynach lub witrynach moich klientów.
Strony WordPress – szczególnie te najpopularniejsze, które otrzymują ruch organiczny, są w większości atakowane przez boty – nie wymagają też zaawansowanych technik bezpieczeństwa. Aby zapobiec popularnym atakom typu brute force, wystarczy ograniczyć liczbę prób logowania, wyłączyć XML-RPC lub zmienić adres wp-login.php. Jeśli nie przeszkadza nam sztuczny ruch robotów – wystarczy długie hasło, aby zapobiec tego typu atakom, nawet jeśli nie stosujemy dodatkowych zabezpieczeń.
Czy w ramach usługi SEO zajmujecie się również zabezpieczaniem wordpressa?
Obecnie w ramach usług nie zajmujemy się bezpośrednio zabezpieczaniem stron, ale wykorzystujemy nasze doświadczenie do jak najlepszej optymalizacji serwisów opartych na WordPress.