Złośliwy kod w motywach i wtyczkach Wordpresa

.

Do napisania tego tekstu zmotywował mnie wpis jaki ostatnio miałem okazję czytać na blogu ottopress.com (odnośnik do oryginalnego tekstu na końcu wpisu). Jego autor poświecił nieco czasu aby szczegółowo przedstawić zaawansowany system służący spamowaniu, który umieszczono we wszystkich motywach dla Wordpresa hostowanych na stronie top-themes.com.

Złośliwy kod przedstawiony przez Otto był dość złożony i dopracowany, tymczasem prosta funkcjonalność, która umożliwia choćby pozyskanie hasła administratora bloga lub podmianę zawartości atrybutu href odnośników we wszystkich jego wpiasach możliwa jest do uzyskania w mniej więcej 5 liniach kodu PHP.

W przypadku motywów kod implementujący ich podstawową funkcjonalność nie jest zazwyczaj zbyt skomplikowany. Każdy kto posiada nieco doświadczenie w zakresie programowania z użyciem PHP powienien sobie poradzić z wykrycie podejrzanej funkcjonalności.

Naszą czujność powinno wzbludzić wykorzystanie w kodzie motywu funkcji służących do komunikacji z systemem operacyjnym, użycie biblioteki cURL dla PHP, kod kasujący lub przenoszący pliki motywu lub silnika Wordpresa, rozsyłający maile, korzystający z gniazd, pracujący na kodzie binarnym.

O ile namierzenie i zrozumienie kodu pliku functions.php motywu nie musi być zbyt skomplikowane i czasochłonne nawet dla przeciętnego użytkownika Wordpresa, o tyle sprawa może okazać się trudniejsza do przeprwadzenia w przypadku bardziej złożonych wtyczek.

Funkcjonalność zawarta w aktywnych wtyczka Wordpresa jest ładowana przed załadowaniem plików motywu (w functions.php) i niestety niezbyt często sprawdzana pod kątem bezpieczeństwa. Załóżmy, dla przykładu, że jedna z wersji wtyczki All In One SEO Pack zawiera jedną złośliwą funkcję. Dla milionów blogów z niej korzystających będzie oznaczało to nieliche problemy. Naszą szczególną uwagę powinny przykuć te same rzeczy,które wymieniłem wyżej w kontekście motywów.

Patrząc na cały problem złośliwego kodu w Wordpresie nieco szerzej, chciałoby się, aby deweloperze odpowiedzialni za wtyczki i designerzy tworzący motywy dla Wordpresa podjeli choćby minimalne środki ostrożności, tj. wraz z wypuszczeniem w świat nowej wersji oprogramowania udostępniali także sumy kontrolne lub podpisywali paczki prywatnym kluczem.

Niestety, żyjemy w świecie w jakim żyjemy i zastosowania takiego modelu na szerszą skalę pewnie szybko się nie doczekamy. Po pierwsze dlatego, że wiele osób po prostu nie wie co to jest suma kontrolna i jak ją sprawdzić. Nieliczni mają także choćby blade pojęcie o kryptografii asymetrycznej i sposobach zabezpieczenia informacji z użyciem par kluczy.

Skoro nie możemy polegać na innych, sami dołóżmy starań i poświęćmy trochę czasu na analizę tego o co rozszerzamy nasz blog. Nieuwaga lub zaniechania w tym względzie mogą zakończyć się utratą danych, zafałszowaniem informacji na blogu, zaspamowaniem obcych witryn czy skrzynek email … limit zniszczeń wyznacza jedynie wyobraźnia twórcy złośliwego kodu.

WordPress w wersji 3.0 posiada blisko 1500 haków (akcji i filtrów), wszystkie one są jak furtki do systemu. Wystarczy, że do któregoś z nich zostanie podczepiona jedna funkcja zawierająca złośliwy kod by zniszczyć miesiące lub nawet lata pracy. Pamiętajmy o tym dodając nową funkcjonalność.

http://ottopress.com/2010/anatomy-of-a-theme-malware/


Komentarze ( 5 )


Każdy blogger a dokładniej blog developer (ciekawie brzmi) na początku przezywa fascynację prostotą i ogromną ilością wtyczek dostępny i rozszerzających funkcjonalność jego bloga. Faktycznie dopiero gdy któraś z wtyczek będzie tak zaprojektowana aby dawała projektantowi możliwość opublikowania na przykład linków site-wide za atrybutem display:none, po spadkach pozycji w wyszukiwarce, zauważymy że coś jest nie tak. Cóż człowiek jest taką istotą, że musi się uczyć na błędach.


A jak ty zabezpieczasz swój blog przed atakami?


Korzystam z własnego motywu, minimalnej ilości wtyczek, własnego kodu ... itd, itp ;))


Podziel się proszę wtyczkami z których korzystasz


Świetny artykuł ale realia są takie, że admini blogów postawionych na wordpress'ie będą instalować w dalszym ciągu "wszystko co im wpadnie w ręce" i będzie dostatecznie interesujące :)


Twój komentarz





Niektóre tagi XHTML są dozwolone
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>