Czy strona na WordPressie jest bezpieczna?

Chcesz bezpieczną stronę? To nie na WordPressie - taką radę słyszeliśmy setki razy. W opinii wielu webdeveloperów WordPress, podobnie jak wszystkie inne otwarte systemy zarządzania treścią, to platforma (na pewno) dziurawa i słabo chroniona, system, który zaraz po uruchomieniu z pewnością zostanie zaatakowany, zainfekowany, a następnie pójdzie do internetowego piekła. Tyle opinia... a jak jest naprawdę?

WordPress to najpopularniejszy na świecie system zarządzania treścią – jak się ocenia, obecnie blisko 43% wszystkich stron internetowych zostało stworzonych właśnie w tym CMSie! Dodatkowo kod WP jest otwarty, co oznacza, że każdy może sobie pobrać paczkę instalacyjną i dokładnie przeanalizować, linijka po linijce, w poszukiwaniu słabych punktów. Wokół WordPressa wyrosła ponadto olbrzymia społeczność programistów, webdeveloperów i webmasterów, a wraz z nią cały ekosystem dodatków, rozszerzeń, czy motywów graficznych.

Nic dziwnego, że w takiej sytuacji rodzi się pytanie: czy jest to system bezpieczny? Przecież, jeżeli weźmiemy pod uwagę wyżej wymienione czynniki, nie sposób oprzeć się wrażeniu, że to po prostu musi hakerów kusić.

I kusi. Specjaliści z Defiant Inc (produkujący wtyczkę Wordfence) ujawnili, że ich zapora zablokowała blisko 19 mld ataków na same hasła! To oczywiście tylko wierzchołek góry lodowej: każdego dnia tysiące złośliwych botów przeczesuje sieć w poszukiwaniu instalacji WordPressa, szukając luk w zabezpieczeniach.

Na szczęście w zdecydowanej większości przypadków jest to… szukanie dziury w całym. Dochodzimy tu bowiem do pewnego paradoksu: olbrzymia ilość ataków na WordPressa sprawiła, że stał się on systemem względnie bezpiecznym. Parafrazując Kubusia Puchatka można powiedzieć, że im bardziej haker szuka w WordPressie dziury, tym bardziej jej tam nie ma.

Warto pamiętać, że WordPress zatrudnia duży zespół światowej klasy analityków i inżynierów zajmujących się bezpieczeństwem, którzy szukają luk w swoim systemie i regularnie publikują aktualizacje bezpieczeństwa. W innym przypadku, przy obecnej konkurencji na rynku systemów zarządzania treścią WordPress by po prostu nie przetrwał.

Skąd zatem bierze się nieufność części środowiska developerskiego wobec WordPressa? Zwykle wynika ona z przekonania, że wszystkie ogólnodostępne systemy zarządzania treścią (w tym nasz WP) są dziurawe i przez to narażone na ataki. W myśl tej opinii tylko systemy dedykowane (pisane „od zera” na zamówienie klienta) mogą być bezpieczne.

Warto jednak pamiętać, że dziś już nikt nie pisze niczego „od zera” – developerzy zwykle wykorzystują systemy aplikacji zwane frameworkami oraz różne wyspecjalizowane kawałki kodu zwane bibliotekami. Same frameworki zbudowane są zresztą z wielu (nierzadko setek) bibliotek, które nawiasem mówiąc też potrafią wykorzystywać inne biblioteki. W tym gąszczu zależności już chyba nikt do końca się nie orientuje, a sami developerzy korzystają po prostu z wygodnych systemów zarządzania pakietami, takich jak npm czy Composer: dziś instalacja biblioteki do strony pisanej „od zera” w pewnym sensie przypomina instalację wtyczki do WordPressa.

Po co to wszystko piszę? Otóż pragnę Cię uświadomić drogi Czytelniku, że jeśli usłyszałeś radę w rodzaju „tylko systemy dedykowane” – uwierz mi, autor tej rady nie do końca wie, co mówi. Przykłady złamania popularnych bibliotek uświadamiają nam po prostu, że dziś nawet kiedy samodzielnie składasz aplikację internetową, możesz nie wiedzieć, że któryś z użytych klocków jest wadliwy. Przykład? Proszę bardzo: niecały miesiąc temu szerokim echem w javascriptowym środowisku odbiło się złamanie biblioteki UAParser.js, odpowiedzialnej za analizowanie danych przeglądarki. Biblioteka siedziała w wielu systemach, te z kolei były implementowane przez jeszcze większe systemy… a na końcu okazało się, że problem włamania dotknął takich gigantów jak Facebook, Apple, Amazon, Microsoft, Slack, IBM, HPE, Dell, Oracle czy Mozilla. Nie muszę chyba dodawać, że żadna z tych organizacji nie zbudowała swoich aplikacji na WordPressie.

Wróćmy jednak na nasze podwórko. Czy zatem strona zbudowana na WP jest bezpieczna? Mam dla Was ulubioną odpowiedź informatyka: to zależy 🙂

O samą platformę możemy być spokojni: ci wszyscy ludzie naprawdę znają się na rzeczy i nie szczędzą starań, aby WordPress był platformą bezpieczną. Problem rodzi się gdzie indziej: jak wspomniałem wcześniej, wokół WordPressa rozwija się olbrzymi ekosystem dodatków, za którymi stoi tysiące programistów z całego świata, o bardzo różnej wiedzy na temat bezpieczeństwa aplikacji. I chociaż zespół specjalistów WordPressa stara się wyłapywać wadliwe rozwiązania, to nie jest możliwe wyłapanie ich wszystkich – tym bardziej, że sporo dodatków znajduje się poza oficjalnym repozytorium, gdzie już w zasadzie nie ma żadnej kontroli.

Można więc powiedzieć, że to, co jest siłą WordPressa – jego otwartość i elastyczność – stanowi też źródło zagrożenia. Niewłaściwie skonfigurowana lub utrzymywana witryna WordPress, na której zainstalowano wtyczki niewiadomego pochodzenia albo po prostu kiepsko napisane (dotyczy to zwłaszcza rozwiązań darmowych, których autorzy często mają zbyt małą wiedzę, aby zrobić dany dodatek na odpowiednim poziomie) jest podatna na niezliczone problemy z bezpieczeństwem.

Kolejnym problemem są aktualizacje, a raczej ich brak: do dziś wśród wielu użytkowników sieci pokutuje przekonanie, że raz utworzona strona internetowa nie wymaga już dalszej pracy, no chyba, że zmieniamy jej treść. Tymczasem praktycznie nie ma tygodnia, by jakaś część naszej witryny opartej na WP nie wymagała aktualizacji. Autorzy dodatków, jak i samego WordPressa, cały czas doskonalą swoje produkty, jednocześnie łatając wykryte w ich oprogramowaniu luki zabezpieczeń. Z drugiej strony codziennie powstają setki złośliwych programów wykorzystujących nowo odkryte luki… sytuacja przypomina klasyczną wojnę, w której stawką jest bezpieczeństwo Twojej strony, Twoich danych i Twojej reputacji. Niestety, olbrzymia liczba właścicieli stron na WP ignoruje konieczność codziennego dbania o stronę. Tymczasem prawda jest brutalna: już dwa tygodnie bez aktualizacji może spowodować, że Twoja witryna będzie miała poważne luki zabezpieczeń. O skali problemu niech świadczy fakt, że 8 na 10 zagrożeń bezpieczeństwa WordPressa zalicza się do „średnich” lub „wysokich” w kwalifikacji Common Vulnerability Scoring System.

Odpowiadając na pytanie, czy strona oparta na WP jest bezpieczna, możemy śmiało odpowiedzieć: jeżeli skonstruujemy ją zgodnie ze sztuką, bez używania słabych narzędzi, a następnie zadbamy, aby jej składowe były zawsze aktualne, Wasza strona będzie niezwykle trudnym orzechem do zgryzienia dla atakujących.

Podany wyżej przykład wpadki systemów dedykowanych uświadamia nam jedno: dziś nie ma już stron całkowicie bezpiecznych czy też w stu procentach odpornych na ataki. Są jednak sposoby, aby naszą witrynę dobrze zabezpieczyć. Jedno jest pewne: dobrze zrobiona i odpowiednio zarządzana strona na WordPressie może być znacznie bardziej bezpiecznym rozwiązaniem, niż nieumiejętnie napisana platforma dedykowana. Trzymając się dobrych praktyk związanych z ekosystemem WP mamy pewność, że za naszym rozwiązaniem stoi cały sztab wybitnych specjalistów od zabezpieczeń, a sama witryna z powodzeniem obroni się przed codziennymi atakami.