Płatne wtyczki i motywy „premium” dla WordPressa są zwykle bardziej rozbudowane i lepsze jakościowo niż ich darmowe odpowiedniki, które możemy znaleźć w oficjalnym repozytorium. Ceny dodatków nie są zwykle wygórowane – porządny motyw możemy kupić już za 40 dolarów; ceny wtyczek są nieco bardziej zróżnicowane.
Nie wszyscy właściciele serwisów internetowych są jednak skłonni zapłacić za potrzebną wtyczkę lub szablon i wolą pobrać je za darmo z nie do końca legalnych źródeł. Nie wszyscy jednak wiedzą, że takie „darmowe” wersje płatnych dodatków często zawierają ukrytą niespodziankę, która w najgorszym wypadku może doprowadzić do utraty kontroli nad własną stroną.
Tekst poświęcony złośliwym skryptom w „pirackich” wersjach wtyczek i motywów leży w moich szkicach od dobrych kilku miesięcy. Ponieważ ostatnio nie narzekam na nadmiar wolnego czasu (co widać po małej aktywności na blogu), szanse na jego szybkie ukończenie są bardzo małe. Kilka dni temu specjaliści od bezpieczeństwa z firmy Sucuri opublikowali ciekawe opracowanie na praktycznie taki sam temat – postanowiłem więc o nim wspomnieć, bo zagadnienie jest ciekawe.
Ekipa Sucuri przeanalizowała kod kilku „pirackich” wersji płatnych wtyczek, z których niektóre to dość popularne produkty (na przykład GravityForms czy Restrict Content Pro). Dodany do nich złośliwy kod wygląda w każdym z analizowanych przypadków dość podobnie, co może sugerować, że wyszedł spod ręki tego samego autora.
Opracowanie zawiera analizę trzech złośliwych skryptów, znalezionych w trzech różnych wtyczkach. W każdym przypadku celem „dodatku” było wysłanie do autora wiadomości e-mail, zawierającej adres strony, na której zainstalowano zainfekowaną wtyczkę, oraz (co ważniejsze) utworzenie nowego konta z uprawnieniami administratora. W praktyce pozwala to na całkowite przejęcie kontroli nad stroną, a nawet nad serwerem.
Rzut oka na złośliwy kod pozwala przypuszczać, że został on napisany przez amatora lub niechlujnego programistę. Wysyła on wiadomość e-mail przy każdym wyświetleniu strony, w związku z czym może być łatwo wykryty przez administratora serwera jako skrypt rozsyłający spam (a przecież autorowi powinno zależeć na tym, aby jego narzędzie było jak najlepiej ukryte).
Można natknąć się na kilka wariantów tego kodu – wszystkie działają podobnie, a różnią się tylko adresem e-mail, na który są wysyłane wiadomości, oraz nazwą parametru, który aktywuje procedurę tworzenia konta administratora (np. http://moja-strona.pl/?cms=jjoplmh lub http://moja-strona.pl/?cms=go).
Niektóre wariacje złośliwych skryptów dodają również do zainfekowanej strony własny kod. I o ile umieszczanie kodu wyświetlającego reklamy ma swoje uzasadnienie (mimo że z etycznego punktu widzenia jest naganne), o tyle wstawianie kodu Google Analytics (a to też się zdarza) jest co najmniej zastanawiające.
Jak zabezpieczyć się przed tego typu złośliwymi skryptami?
Metoda jest prosta – nie instalować płatnych wtyczek i motywów pobranych za darmo z niezaufanych źródeł. Jeśli nie chcesz wydać kilkunastu lub kilkudziesięciu dolarów na szablon czy dodatek do WordPressa, to najwyraźniej nie jest Ci on naprawdę potrzebny.