Ten artykuł będzie poświęcony studium przypadku (case study) zawirusowanej strony opartej na CMS JOOMLA. Trafił nam się klient, który poprosił o aktualizacje Joomla do najwyższej możliwej wersji. Z miłą chęcią zlecenie zostało przyjęte. Ale otóż podczas oględzin strony zostały wykryte nieprawidłowości w działaniu strony. Głębsza analiza wykazała, iż wdała się infekcja na stornie, a klient nawet nie był tego świadomy! Bardzo często się zdarza, żę wirusy (malware) ukrywają swoje działanie tak, aby zostać, jak najdłużej niewykryte. 

CASE STUDY 

W opisywanym case study pokaże Ci jak może ukrywać się wirus i udawać rozszerzenie, którym nie jest. Wskaże również błędy, jakie zostały popełnione przez opiekuna strony. Tak dobrze czytasz była osoba, która miała pieczę nad tą stroną. 

Jeśli oddajemy klientowi stronę trzeba go uświadomić jak należy o nią dbać. Świętą rzeczą jest przekazać podstawy, a nie liczyć tylko na profity z "opieki nad stroną". Jak widać w tym wypadku na nic ta opieka się nie zdała! 

wirus case study - JOOMLA

Taki prosty kawałek kodu na każdej stronie został ukryty. Dlaczego został ukryty, bo wykorzystuje diva z marginesem  -999999px dla oka ludzkiego pozostaje w ukryciu, ale każdy bot przeglądarkowy spokojnie rozczyta linki do stron pornograficznych. Po pierwsze z tego tytułu wyszukiwarka Google oznacza nas jako strona promująca pornografię. Więc automatycznie nasze treści nie zgadzają się z wychodzacymi linkami nasza pozycja spada. A jeśli na tych stronach z pornografią są złośliwe kody to i nasza strona zostaje ukryta w wynikach wyszukiwania oraz zostaje oflagowana jako niebezpieczna! 

UKRYTY AGENT

To nie jest jedyna rzecz, jaka spotkała tę konkretną stronę. Wirus był symulantem i ukrywał się pod rozszerzeniem. 

malware 2 case study - Joomla

Czy jesteś w stanie powiedzieć, która wersja katalogu jest prawdziwa? Podchwytliwe pytanie. Daj znać w komentarzu czy dobrze odgadłeś. Analiza rozszerzeń, modułów wykryła moduł, do którego wejść się nie dało, ponieważ zwracał błąd. Komunikat błędu jest tutaj najmniej istotną rzeczą. Każda osoba, która kiedyś miła odczynienia z błędem w pierwszej kolejności szuka nowszej wersji. Następnie ją instaluje licząc na to że błąd zniknie tak działają niemal, że wszyscy. Ponieważ kto ma czas na analizę czemu to nie działa. Mój cms ma działać tu i teraz. Po instalacji nowej wersji okazało się, że nagle na zapleczu mamy dwa moduły. 

malware 3 case study - Joomla

Dwa identyczne moduły oba wyłączone z taką samą nazwą i nawet tym samym typem. Ponieważ niedziałającą wersje można usunąć bez przeszkód to większość z was tak by zrobiła. Ale czy macie świadomość, że usunięcie z tej pozycji modułu nie usuwa go FIZYCZNIE z naszego serwera? Pewnie nie.

Z tej pozycji tego zrobić się nie da, ale nawet nie wiemy, czy my ten moduł potrzebujemy. Większość osób boi się grzebać po stronie! To nie oni ją zbudowali tylko ktoś i dał im do obsługi. Pewnie znajdą się tacy, żeby go odinstalowali. A przynajmniej próbowali niestety brak pliku manifestu skutecznie to uniemożliwił. Więc tylko działanie ręczne na bazie danych i serwerze. Tutaj smutna wiadomość dla wszystkich, którzy podejmują się sami napraw. Nie w każdym przypadku da się to po prostu zrobić, a przeoczenie jednego pliku skutkuje najczęściej nawrotem infekcji. 

Okey wgłębiając się w infekcje to ten moduł starał się dostać do plików konfiguracyjnych. 

XXXXXXXXXXXXX."/sym/root/home/".$user['name']."/public_html/configuration.php"; XXXXXXXXXXXXX."/sym/root/home/".$user['name']."/public_html/blog/configuration.php"; XXXXXXXXXXXXX."/sym/root/home/".$user['name']."/public_html/joomla/configuration.php";

A jak już ma dostęp do configuration.php to ma dostęp do wszystkiego, bo tam są przechowywane najważniejsze newralgiczne dane do naszej strony. Co prawda nie ma loginu i hasła administratora, ale jest dostęp do bazy danych więc utworzenie nowego konta z prawami administracyjnymi nie stanowi problemu. Mało tego nasze dane mogą krążyć sobie po sieci.

malware 1 case study Joomla

Jeśli zwrócimy uwagę na pliki to możemy zauważyć, że jest to całkiem rozbudowany program. Posiada obsługę wysyłania maili czy też ściągania z innych lokalizacji innych plików. W tym wypadku plik configuration.php został skopiowany. Więc naprawa samej strony to za mało! Należało również zmienić dane do bazy danych, jak i tajny klucz.

Ukryty agent, czyli rozszerzenie sprytnie symulujące, że jest częścią Joomla. Ten moduł nie odpowiadał za  wstrzykiwanie kodu na podstrony. Robił to zupełnie inny złośliwy kod, który zmodyfikował jeden z plików index.php

ZANIEDBANIA

Zaniedbania, jakie można zarzucić osobie, która opiekowała się stroną to:

  • Wersja PHP 5.5 - jej żywot zakończył się w roku 2016! Mamy 2019!
  • Migracja z wersji 2.5 to wersji 3.x. Nie wy instalowano rozszerzeń niezgodnych z wersją 3.x
  • Wersja Joomla to 3.4 obecnie najnowsza to 3.9.10
  • Pozostawione rozszerzenia, które nie wspierają aktualizacji przez zaplecze administracyjne.
  • Pozostawione rozszerzenia, które nie były aktualizowane przez ponad 3 lata, a twórcy tych rozszerzeń je porzucili.

Jak widzisz prawie wszystkie błędy, jakie można było popełnić zostały popełnione. Oczywiście właściciel swojego internetowego biznesu nie jest bez winy. Stosujmy zawsze zasadę ograniczonego zaufania i logujmy się do naszej witryny częściej niż raz na rok lub wówczas gdy cos przestanie działać. Sprawdzajmy, czy osoba, której zleciliśmy opiekę nad stroną ją aktualizuje i jest rzetelna w tym co robi. 

PODSUMOWANIE

Drogi czytelniku infekcja może być bardzo prosta od wstrzykiwania kodu z ukrytym linkiem poprzez wyrafinowane narzędzie, które potrafi wysłać Twoje dane newralgiczne jak hasło do bazy danych wraz z użytkownikiem, a nawet cały plik configuration.php. I tym samym jesteś narażony na atak z opóźnieniem lub infekcja będzie wracać niczym bumerang. Jeśli się nie znasz lub nie chcesz się doktoryzować z oczyszczania strony po ataku. Zleć to zadanie osobie, która zjadała na tym już zęby. Tutaj masz link do artykułu jak wykryć malware (wirusa) https://bit.ly/2MDIZM4 i 10 porad jak się ustrzec. Oczywiście te skanery online mogą pomoc w odnalezieniu infekcji, ale mogą wiele rzeczy też przeoczyć. Niektóre hostingi oferują skanery plików i warto z nich korzystać, ponieważ to hostingodawca dba o bazę sygnatur takiego narzędzia. Znacznie to podnosi bezpieczeństwo strony od strony nieumyślnego wgrywania różnych rozszerzeń na przykład niebędących w katalogu rozszerzeń Joomla na https://extensions.joomla.org

Jeśli miałeś/aś ciekawe przypadki infekcji strony opartej na Joomla podziel się swoim doświadczeniem w komentarzu.

Przydatne strony:

Wersje PHP do, kiedy są wspierane. https://www.php.net/supported-versions.php

Rozszerzenia, do których nie istnieją łatki bezpieczeństwa. https://vel.joomla.org/live-vel

Skanowanie i usuwanie wirusów. https://joomlaguru.pl/uslugi/usuwanie-wirusow

Warto polubić ten Fanpage, na bieżąco publikują podatne na ataki rozszerzenia. https://www.facebook.com/velteam/

Warto polubić nasz Fanpage. https://www.facebook.com/joomlagurupl

Warto dołączyć do grupy i dyskutować o problemach z Joomla https://www.facebook.com/groups/345518026198456/