Jak być na bieżąco z lukami bezpieczeństwa w WordPressie, wtyczkach i motywach

WordPress - bugJak już wielokrotnie podkreślałem na WPzen, temat bezpieczeństwa naszych serwisów jest niezwykle ważny. Wraz z popularyzacją WordPressa wzrosła znacząco liczba prób ataków na strony z niego korzystające, a olbrzymia liczba dostępnych wtyczek i motywów powoduje, że coraz łatwiej jest trafić na produkt, w którym znajduje się jakaś luka bezpieczeństwa.

Luki w WordPressie są usuwane bardzo szybko po ich wykryciu, a o aktualność naszych instalacji dba mechanizm automatycznych aktualizacji (lub – jeśli go wyłączymy – powiadomienia w panelu administracyjnym). Nieco inaczej wygląda jednak sytuacja w przypadku wtyczek i motywów dostępnych w oficjalnym repozytorium, a rynek płatnych dodatków premium to już w ogóle wolna amerykanka. Dlatego też dobrze jest trzymać rękę na pulsie i samodzielnie sprawdzać, czy używane przez nas rozszerzenia i szablony nie zagrażają bezpieczeństwu naszego serwisu.

Cykl życia luki bezpieczeństwa

Zacznijmy jednak od początku: co się dzieje gdy we wtyczce znajdującej się w oficjalnym repozytorium zostanie wykryty błąd związany z bezpieczeństwem? Takie rozszerzenie zostaje usunięte z repozytorium do czasu naprawienia usterki przez autora. Problem w tym, że użytkownicy korzystający z danej wtyczki nie są w żaden sposób informowani o zagrożeniu – rozszerzenie jest wciąż aktywne na ich stronach, które tym samym są narażone na ewentualne ataki z wykorzystaniem odkrytej luki.

Oczywiście gdy tylko autor opublikuje nową, wolną od błędu wersję wtyczki, znajdzie się ona z powrotem w repozytorium, a wszyscy jej użytkownicy zostaną poinformowani o dostępnej aktualizacji. Problemem jest jednak okres pomiędzy wykryciem błędu a publikacją poprawki, w którym aktywność skryptów próbujących wykorzystać nową lukę jest najwyższa. Długość tego okresu może być różna w zależności od czasu potrzebnego na usunięcie luki i od dobrych chęci autora (lub ich braku).

Nieco bardziej złożony jest problem płatnych wtyczek i motywów premium. Ich autorzy w różny sposób radzą sobie z uaktualnieniami swoich produktów – niektórzy korzystają z wbudowanego w WordPressa mechanizmu automatycznych aktualizacji, inni tylko powiadamiają swoich klientów o nowej wersji produktu, jeszcze inni nie robią nic poza wrzuceniem nowej wersji na serwer. Tak czy inaczej, również w przypadku dodatków premium istnieje problem okresu pomiędzy wykryciem błędu a jego usunięciemi i wydaniem stosownej aktualizacji.

Samoobrona

Jak już wspomniałem, warto samodzielnie śledzić doniesienia na temat wykrytych luk bezpieczeństwa. Większość z nich pojawia się bardzo szybko, co daje nam szansę na zabezpieczenie swoich serwisów.

Jeśli chodzi o WordPressa i przeznaczone dla niego wtyczki i motywy, to warto obserwować dwa serwisy.

WordPress Exploit

Pierwszym z nich jest WordPress Exploit, czyli baza zawierająca informacje o wypuszczonych do Sieci exploitach. Na tej stronie nie znajdziemy nic poza datą dodania pozycji do bazy i jej krótkim opisem.

WPScan Vulnerability Database

Drugim wartym polecenia źródłem informacji o wykrytych lukach bezpieczeństwa jest serwis WPScan Vulnerability Database, który jest bazą danych tworzoną na potrzeby świetnego narzędzia WPScan, służącego do skanowania stron działających na WordPressie pod kątem między innymi luk bezpieczeństwa (kiedyś opiszę je nieco szerzej). Baza jest podzielona na trzy kategorie: luki w WordPressie, we wtyczkach i w motywach. Każdy wpis zawiera szczegółowe informacje o wykrytej luce wraz z linkami do materiałów źródłowych.

Jeśli używana przez nas wtyczka lub motyw znajdą się na którejś z wymienionych list, to powinniśmy natychmiast sprawdzić używaną przez nas wersję produktu i porównać ją z wersją, w której występuje luka bezpieczeństwa. Jeśli nasza wersja jest taka sama (lub starsza), to powinniśmy natychmiast wykonać aktualizację lub (jeśli autor nie usunął jeszcze błędu) usunąć wtyczkę lub motyw z serwera (dezaktywacja nie wystarcza!).

Bezpośredni link

  • Klasyk

    Pytanie laika: czy to oznacza, że jest droga włamania się na bloga poza hasłem? Do tej pory myślałem, że zawsze musi być trafione hasło? Jak bez złamania hasła można dostać się na bloga przez wtyczkę? Nie rozumiem.

    • Oczywiście, że można „włamać” się na stronę bez znajomości hasła. Świetnym przykładem jest niedawny błąd we wtyczce MailPoet (https://wpzen.pl/krytyczny-blad-wtyczce-mailpoet-wysija-zalecana-natychmiastowa-aktualizacja/ ), pozwalający atakowanemu na przesłanie na serwer dowolnego pliku, w tym również skryptu PHP. A to, jak pewnie się domyślasz, pozwala na zrobienie ze stroną praktycznie wszystkiego bez znajomości hasła administratora.

      • Pewnie z motywami jest podobnie. W lutym omawiany był tu m.in szablon WP Barrister, teraz przymierzam się do niego. Wziąłem go z repozytorium WP, ale jak (czym?) sprawdzić czy nie ma on złośliwego kodu lub innego błędu.

        • Nie musisz obawiać się złośliwego kodu w szablonach pobranych z oficjalnego repozytorium – każdy motyw jest sprawdzany przed publikacją przez moderatorów.

          • Dziękuję za informację.

  • Drugim wartym polecenia źródłem informacji o wykrytych lukach bezpieczeństwa jest serwis WPScan Vulnerability Database,

    A tak brechłateś na początku z tej strony jak dodali na PL grupie WP :D

    PS jeszcze warto dodac blog sucuri, nie tylko wp ale glownie wp, jak cos znajda to dokladnie opisuja jak zyc.

    • Nabijałem się z sortowania luk w WordPressie – jako pierwsza była (i wciąż jest, ale tylko na stronie głównej) luka w wersji 1.5. ;)

      Tak, blog Sucuri (http://blog.sucuri.net ) również jest warty obserwowania.

      • Tylko że to jest sortowanie per data wykrycia (lub dodania do bazy), sortowanie per wersja mogłoby wprowadzić pewien zamęt.

        • Masz rację. Ale zwróć uwagę, że na stronie głównej (https://wpvulndb.com ) sortowanie luk w WordPressie jest inne niż na dedykowanej podstronie (https://wpvulndb.com/wordpresses ).

          • jak to bywa na stronach głównych, treści ułożone wg daty publikacji ;-)

            A jak ktoś chce to wbija na podstronę i sprawdza podatności dla użytkowanej wersji. Mogli tu i tu oddać do użytku oba sortowania i kazdy by sobie sortował jak chciał.

  • Czyli jedną z przyczyn kłopotów z nieaktualnymi wtyczkami do WP, jest fakt iż updater sprawdza tylko czy repozytoria (core, szablony, wtyczki) i nie da się dodania do niego żadnego więcej – np jakiegoś repo płatnego sklepu który sprzedaje wtyczki i szablony.

    • Da się dołożyć do updatera zewnętrzne źródła, ale musi to zrobić autor wtyczki/szablonu, zapewniając jednocześnie po swojej stronie odpowiednią infrastrukturę. Coś takiego udostępnia na przykład Envato (https://github.com/envato/envato-wordpress-toolkit ), ale dołączanie tego do produktów nie jest w tej chwili wymagane – czyli nie każdy szablon/wtyczka to obsługuje.