Serwis Joomla! zaatakowany - skrypt z treściami porno!
Masz pewność, że Twój serwis jest bezpieczny? Nie zawsze wiesz od razu, że serwis został zaatakowany!
Spora część ataków na serwisy przeprowadzana jest w taki sposób, aby właściciel nie zorientował się zbyt szybko.
Wyobraź sobie, specjalny skrypt, który umieszcza w treści Twojego serwisu w nagłówku H swoje własne treści, które często nie są widoczne bezpośrednio w serwisie, ponieważ wyświetlane są poza obszarem okna przeglądarki. Treści te są oczywiście indeksowane przez wyszukiwarki (Google) i po jakimś czasie okazuje się, że promujesz treści pornograficzne ;-)
Nieciekawie prawda? Zwłaszcza, kiedy zależy Ci na Twoim dobrym imieniu!
Bez względu na to, jak Twój system jest zabezpieczony i jak często skanujesz pliki programem antywirusowym, nigdy nie będzie 100% gwarancji, że jest on bezpieczny! Dlaczego? Ponieważ nie ma czegoś takiego jak całkowicie bezpieczny system informatyczny, w tym serwis WWW!
Obecne serwisy, to bardzo często niesamowicie zaawansowane i rozbudowane aplikacje webowe. Nie jest możliwe, aby przewidzieć wszystkie możliwe niebezpieczeństwa! Nowe luki pojawiają się co dziennie. Aby je wyeliminować, twórcy systemów, przygotowują co pewien czas aktualizacje zawierające poprawki. Instalacja aktualizacji zawierających poprawki bezpieczeństwa jest podstawową czynnością, jaką należy wykonywać regularnie, aby zmniejszyć podatność serwisu na ataki.
OK, dbasz o aktualizacje samego CMS-a, jak i zainstalowanych rozszerzeń. Wykonujesz regularnie kopie zapasowe serwisu, nawet masz zainstalowane dodatkowe rozszerzenie, które monitoruje kwestie bezpieczeństwa w serwisu. I co? I nadal Twój serwis nie jest w 100% bezpieczny! Pocieszające prawda?
Ostatnio kilka dni zajęło mi znalezienie źródła skryptu, który powodował sytuację opisaną we wstępie tego artykułu. Co mi z tego, że mam kopie zapasowe sięgające aż dwa lata wstecz, skoro nie mam pojęcia, kiedy serwis został zaatakowany?
Przywracam kilka losowo wybranych kopii wstecz i okazuje się, że zawierają nadal ten skrypt!
Na problem nawet nie zwróciłbym uwagi, gdyby nie fakt, że po kliknięciu przycisku Czytaj więcej w artykułach na samym początku zaczęły pojawiać się dziwne wpisy:
Pierwsze podejrzenie padło na edytor i któregoś z autorów. Sądziłem, że albo pliki edytora są zainfekowane, albo komputer któregoś autora jest zainfekowany i przez to w jakiś sposób zainfekowana została witryna! Wywaliłem wszystkie pliki edytora (JCE), zablokowałem dostęp do serwisu wszystkim autorom i nic! Nadal skrypt robił swoje :-(
Acha, zapomniałem napisać, jak sprawdzić, czy przypadkiem Twój serwis nie został w ten sposób zainfekowany!
Otóż wystarczy, że wyświetlisz źródło (kod html) swojego serwisu i sprawdzisz za pomocą opcji Znajdź, czy występuje w nim chociażby słowo: sex. Jeżeli zobaczysz jakąś dziwną treść, która jest widoczna dopiero po sporym przesunięciu suwaka poziomego, to jest niemal pewne, że coś jest nie tak.
Koniecznie zdefiniuj w opcjach programu, za pomocą którego wyświetlasz kod, aby zawijał długie wiersze (np. menu Widok -> Zawijaj długie wiersze).
Dopiero teraz zauważysz, że zaraz przed znacznikiem zamykającym </head> znajduje się kod definiujący klasę o losowo wygenerowanej nazwie:
Zwróć uwagę, jak sporo spacji zostało użytych, aby ukryć ten kod. Nie byłby on widoczny, gdyby wyłączona była opcja zawijania wierszy ;-)
Po przewinięciu dalej zobaczysz w którymś z nagłówków H niepożądaną treść, także ukrytą za pomocą spacji:
Znalezienie skryptu odpowiedzialnego za takie działanie nie było łatwe z uwagi na fakt, że nic nie da wpisanie w wyszukiwarkę nazwy klasy (np: .mqkjxxbrrlpzboh) w celu znalezienia odpowiedniej porady! Niewiele dało wpisanie fragmentu treści zawartych w nagłówku. Jedynie co wyszukiwarka zwracała, to witryny podobnie zainfekowane :-(
Po mozolnych dwudniowych poszukiwaniach, skanowaniu plików różnymi skanerami, nadpisywaniu plików, folderów i konsultacjach z zaprzyjaźnionymi Joomlaholikami (dzięki Andrzej za sugestię) udało mi się dotrzeć do źródła problemu!
Okazało się, że w systemie zainstalowany jest dodatek o nazwie xcalendar:
Jego wyłączenie powoduje, że niepożądane treści nie są już wświetlane, jednak próba odinstalowania go kończy się niepowodzeniem:
Co należy zrobić?
Krok 1
Wykonaj kompletną kopię zapasową serwisu, aby możliwe było przywrócenie go, kiedy coś zrobisz nie tak ;-)
Krok 2
Usuń folder xcalendar znajdujący się w lokalizacji: /plugins/system
Krok 3
Usuń w bazie danych z tabeli _extensions wiersz zawierający wpis: xcalendar
To wszystko! Niby niewiele trzeba zrobić, ale znalezienie rozwiązania kosztowało mnie prawie 3 dni :-(
Mam nadzieję, ze Tobie pomoże i nie będziesz musiał tracić czasu na poszukiwania ;-)
Chcesz otrzymywać powiadomienia o moich kolejnych wpisach lub projektach?
Podobne wpisy
By accepting you will be accessing a service provided by a third-party external to https://www.slawop.net/