Najlepsze praktyki bezpieczeństwa WordPress

Opublikowany: 2022-03-10

Istnieje wiele mitów i FUD (strach, niepewność i wątpliwości) na temat bezpieczeństwa WordPressa. I jest wiele do rozważenia podczas zabezpieczania strony internetowej przed potencjalnymi atakami. Jak więc firmy mogą poznać najlepsze praktyki bezpieczeństwa WordPress, które zapewnią im najlepszą możliwą ochronę sieci?

W zeszłym tygodniu zorganizowałem rozmowę webinarową, aby wyjaśnić obawy związane z bezpieczeństwem WordPressa. W sesji dołączyli do mnie Ayush Malakar (programista full-stack i WordPress w Fresh Consulting) oraz Sean O'Shaughnessy (kierownik ds. inżynierii rozwiązań VIP WordPress).

Za pomocą czterech pytań przewodnich ci dwaj eksperci zbadali najlepsze praktyki bezpieczeństwa, o których powinni pamiętać twórcy, administratorzy, właściciele witryn i kadra kierownicza. Podsumujmy, o czym rozmawialiśmy.

Czy oprogramowanie open source jest bezpieczne?

Nie wszystkie open source są sobie równe. Ale ponieważ WordPress istnieje od 18 lat i obsługuje ponad 40% stron internetowych na świecie, jasne jest, że popularność rośnie. Jednak nawet w przypadku najpopularniejszego na świecie oprogramowania typu open source pojawiają się pytania dotyczące jego luk w zabezpieczeniach. Czy cały ten kod nie jest podatny na ataki?

Niekoniecznie, mówi Ayush: „Skoro mamy tak wiele oczu, które się w nią wpatrują, jest to bezpieczniejsze”.

Chociaż może się to wydawać sprzeczne z intuicją, oprogramowanie open source może być w rzeczywistości bezpieczniejsze niż oprogramowanie zamknięte, zastrzeżone. Dlatego.

Więcej oczu na potencjalne zagrożenia

Ponieważ open source działa na otwartej przestrzeni, nie ma nic do ukrycia. Wielu programistów w społeczności patrzy na to i wprowadza aktualizacje, wzbudzając zaufanie i zaufanie. Jeśli zostanie znaleziona luka w zabezpieczeniach, jest ona łatana tak szybko, jak to możliwe — często w ciągu jednego lub dwóch dni.

Ciągłe testowanie kodu i nagrody za błędy

Każdy może wnieść swój wkład do WordPressa, a kod jest testowany przez społeczność tysięcy głównych współtwórców WordPressa. Ponieważ kod jest stale testowany, jest coraz bardziej niezawodny.

Ponadto programy bug bounty zachęcają społeczeństwo do znajdowania dziur i luk w zabezpieczeniach, w tym ataków brute force, DDoS, phishingu i innych.

Aktualizacje bezpieczeństwa

Gdy pojawiają się aktualizacje zabezpieczeń, to twórcy witryn muszą zadbać o to, aby podstawowy kod był aktualizowany i chroniony przed najnowszymi wektorami ataków. Dostępne są również aktualizacje automatyczne, a programiści powinni rozważyć, czy są one właściwym wyborem dla każdego projektu.

Czy mój kod jest bezpieczny?

Rdzeń WordPressa to tylko jeden z „pakietów” kodu, które składają się na witrynę WordPress. Na wierzchu oprogramowania opracowanego przez społeczność znajduje się kod aplikacji witryny — jej motyw lub interfejs oraz wtyczki.

Podczas gdy główny kod WordPressa o otwartym kodzie źródłowym jest opracowywany przez społeczność, kod aplikacji napisany lub wdrożony na poszczególnych stronach internetowych może również wprowadzać luki w zabezpieczeniach.

Istnieją różne środki, które można podjąć, aby zapewnić, że kod aplikacji jest maksymalnie zabezpieczony przed atakami. Chociaż możesz podejmować różne decyzje dla różnych projektów, w zależności od poziomu akceptowalnego ryzyka, najważniejszą rzeczą jest świadomość potencjalnych wektorów ataku.

Tutaj nasi eksperci od webinarów mają kilka rad.

Narzędzia do bezpieczeństwa WordPress

Istnieją różne narzędzia, które programiści mogą wykorzystać, aby pomóc zidentyfikować luki w zabezpieczeniach zarówno w kodzie własnym, jak i zewnętrznym.

„Za każdym razem, gdy mówimy o narzędziach, musimy zrozumieć, jakie są zalety i wady tych narzędzi oraz jak najlepiej wykorzystać narzędzia na naszą korzyść?”

— Ayush Malakar, Fresh Consulting

Narzędzia te mogą przeprowadzać statyczną lub dynamiczną analizę kodu. Analiza statyczna jest wykonywana bez wykonywania żadnego kodu i zwykle może wykryć około 85% błędów w kodzie. Dynamiczna analiza kodu opiera się na badaniu zachowania kodu podczas wykonywania i ma dodatkową możliwość znajdowania problemów związanych z bezpieczeństwem spowodowanych interakcją kodu z innymi składnikami systemu, takimi jak bazy danych SQL, serwery aplikacji lub usługi internetowe.

Ważne jest, aby rozważyć korzyści płynące z analizy kodu przez ludzi i maszyny. Uczenie maszynowe (ML) i sztuczna inteligencja (AI) mogą być wykorzystywane jako pierwsza linia obrony, aby zapewnić identyfikację wspólnych papierów wartościowych. Ale warto też później spojrzeć na kod z ludzkiego punktu widzenia. Gwarantuje to, że ludzie mogą pracować nad różnymi aspektami, takimi jak podatność oparta na funkcjach, przypadki brzegowe itp.

Niektóre narzędzia polecane przez naszych ekspertów:

  • WPScan to narzędzie CLI, którego programiści mogą używać do skanowania kodu w poszukiwaniu luk w zabezpieczeniach. Ayush zaleca programistom uruchomienie tego w cronie.
  • PHP_CodeSniffer (PHPCS) sprawdza kod i zwraca uwagę na problemy, od składni po luki w zabezpieczeniach. Istnieje zestaw określonych standardów dla WordPressa. Można to skonfigurować tak, aby działało w potoku ciągłej integracji (CI) i działa we wszystkich repozytoriach VIP WordPress.
  • Sonar Cloud, używany przez Fresh Consulting do statycznej analizy kodu, skanuje zarówno kod PHP, jak i JS w poszukiwaniu luk i bezpieczniejszej implementacji.

„Czy wykonujemy odpowiednią ilość walidacji danych wejściowych? Czy właściwie oczyszczamy jakiekolwiek dane wyjściowe, które będziemy mieć w naszym kodzie?

— Sean O'Shaughnessy, WordPress VIP

Wtyczki bezpieczeństwa i WordPress

Wybierając wtyczki innych firm, szukaj wtyczki, która ma dobre recenzje i oceny, dużą liczbę pobrań i elastyczność w użyciu w Twojej witrynie. Upewnij się, że wtyczka jest zaktualizowana i zgodna z najnowszą wersją WordPressa.

Nie używaj wtyczki, którą możesz napisać samodzielnie. Zwłaszcza w przypadkach, gdy potrzebna jest tylko niewielka ilość kodu, napisz ten kod w swoim motywie zamiast używać wtyczki. Zapewni to, że podczas aktualizacji wtyczki nie zostaną wprowadzone żadne luki.

„Poleciłbym pisanie kodu w samym motywie, ponieważ to, co widziałem w przeszłości, to wtyczki, które wykonują bardzo minimalną pracę, aby dokonać jakichkolwiek aktualizacji. I są szanse, że wraz z rozwojem technologii te wtyczki nie. Potencjał tych wtyczek, które wprowadzają luki w zabezpieczeniach, może być wyższy niż przewidujemy.”

— Ayush Malakar, Fresh Consulting

Jak zawsze, ważne jest, aby aktualizować kod. Uważaj na aktualizacje rdzeni i wtyczek oraz aktualizuj WordPress, wtyczki i motywy.

Bezpieczeństwo i punkty końcowe WordPress

XML-RPC i REST API to punkty końcowe, których WordPress używa do komunikacji z innymi systemami lub interfejsem aplikacji. Ważne jest, aby zrozumieć te punkty końcowe i wiedzieć, czy będą one ważne dla aplikacji, ponieważ są potencjalnymi wektorami ataku, które można wyłączyć, jeśli nie są potrzebne.

XML-RPC jako potencjalny wektor ataku

XML-RPC to specyfikacja, która umożliwia komunikację między WordPressem a innymi systemami. We wczesnych wersjach WordPressa XML-RPC był domyślnie wyłączony. Ale od wersji 3.5 jest domyślnie włączony. Głównym tego powodem było umożliwienie aplikacji mobilnej WordPress komunikowanie się z Twoją instalacją WordPress.

REST API jako potencjalny wektor ataku

Upewnij się, że korzystasz z najlepszych praktyk bezpieczeństwa podczas korzystania z WordPress REST API. Chociaż firmy mogą być zmuszone do ich otwarcia, na przykład w architekturze bezgłowej, w której zawartość musi przepływać do oddzielonego interfejsu użytkownika, upewnij się, że osoby, które pozostają narażone, mają odpowiednie uwierzytelnianie i autoryzację.

„Masz ten zamek, WordPress, swoją aplikację, a obecność mostu zwodzonego nie zapewnia bezpieczeństwa aplikacji. Ale to jest aleja. To droga do tego zamku. Tak więc samo dobre zrozumienie, znajomość i rozliczanie tych rzeczy jest zdecydowanie niezbędne do uzyskania lepszej postawy w zakresie bezpieczeństwa aplikacji”.

— Sean O'Shaughnessy, WordPress VIP

Czy mój hosting jest bezpieczny?

Przy ustalaniu, czy Twój host jest wystarczająco bezpieczny dla Twoich potrzeb, należy wziąć pod uwagę wiele kwestii. Dobrym pomysłem jest rozważenie wszystkich dostępnych opcji bezpieczeństwa i nie zapominaj o znaczeniu szybkiego wsparcia w sytuacjach awaryjnych — takich jak aktualizacja wtyczki powodująca incydent bezpieczeństwa.

„Czy Twój dostawca usług hostingowych oferuje szybkie i proaktywne wsparcie? Dodatkowo, jak reagują, gdy publikowane są luki w aplikacjach lub wtyczkach?”

— Sean O'Shaughnessy, WordPress VIP

Ogólnie rzecz biorąc, poszukaj platformy, która uwzględnia współodpowiedzialność za hosting. Niektóre funkcje do rozważenia obejmują:

Uprawnienia systemu plików

Niektóre hosty oferują system plików tylko do odczytu, zamiast możliwości zapisywania plików. Uniemożliwia to użytkownikom procesów sieciowych zapisywanie plików w dowolnym miejscu, zamykając potencjalny wektor ataku.

Konteneryzacja

Poszukaj hosta, który izoluje zasoby Twojej witryny od witryn innych klientów. Chociaż nie jest to kompleksowy środek bezpieczeństwa, konteneryzacja zapewnia podstawową miarę bezpieczeństwa. Jako bonus umożliwia również dedykowane zasoby do skalowania w poziomie, a nawet w pionie.

Kontrola wersji

Kiedy platforma hostingowa WordPress blokuje SFTP i pozwala na aktualizacje kodu za pośrednictwem systemu z kontrolą wersji, zmniejsza to powierzchnię ataku Twojej aplikacji. Ponadto zarządzanie kodem źródłowym aplikacji za pomocą kontroli wersji zapewnia „nieskazitelną” kopię kodu jako źródło prawdy, wraz z pełną, podlegającą audytowi, bogatą w kontekst historią tego kodu.

Jak moja firma może egzekwować zabezpieczenia WordPress?

Bezpieczeństwo to nie tylko kwestia na poziomie kodu lub hosta. Istnieją również czynniki ludzkie, a firmy mogą tworzyć takie procesy, jak regularne kontrole bezpieczeństwa i zasady higieny haseł, które znacznie poprawią bezpieczeństwo Twojej witryny.

„Na poziomie organizacji ważne jest, aby myśleć w kategoriach wprowadzenia wielu warstw ciągłego uwierzytelniania lub walidacji”.

— Sean O'Shaughnessy, WordPress VIP

Zarządzanie dostępem z zerowym zaufaniem i najniższymi uprawnieniami

Dzięki starannie przemyślanym rolom i zarządzaniu dostępem, organizacje mogą wyposażyć ludzi do wykonywania ich pracy z możliwie najmniejszymi uprawnieniami — a więc z najmniejszym możliwym ryzykiem. Upewnij się, że właściwie zdefiniowałeś i przypisałeś role i możliwości użytkowników. Ta funkcja jest dostarczana z WordPress po wyjęciu z pudełka i można ją rozszerzyć w dowolnym przypadku użycia.

Higiena hasła

Użytkownicy powinni tworzyć unikalne i trudne do odgadnięcia hasła dla każdej aplikacji. Sean szczególnie lubi ten komiks, w którym zaleca się używanie zbioru losowych słów, a nie kombinacji liter, cyfr i symboli:

Komiks XKCD

Weryfikacja dwuetapowa i jednokrotne logowanie

Chociaż technologie uwierzytelniania dwuskładnikowego (2FA) i jednokrotnego logowania (SSO) z natury nie zwiększają bezpieczeństwa Twojej witryny, oferują korzyści w postaci scentralizowanego zarządzania użytkownikami we wszystkich obsługiwanych aplikacjach.

Kluczowe wskazówki dotyczące bezpieczeństwa WordPress

  • Open source ma zalety w zakresie bezpieczeństwa
  • Aktualizuj WordPress i wtyczki
  • Użyj kontroli wersji
  • Zrozum punkty końcowe WordPress
  • Poszukaj hosta, który zapewnia bezpieczeństwo
  • Przyjęcie dojrzałych praktyk bezpieczeństwa na poziomie organizacji

Podczas godzinnego webinaru omówiliśmy znacznie więcej informacji na temat bezpieczeństwa WordPressa. Jeśli przegapiliście to na żywo, zachęcam do obejrzenia nagrania tutaj.