Bezpieczeństwo CMS-ów to walka na wielu frontach, która wymaga sumienności, zapobiegliwości oraz doświadczenia. Nie ma uniwersalnych rozwiązań chroniących przed wszystkimi atakami na strony. Ochrona taka kompleksowego podejścia. Jeśli natomiast dojdzie do ataku na naszą stronę to musimy wykonać kilka kroków, które pozwolą odnaleźć przyczynę ataku.
Zanim przejdziemy do dokładnego sprawdzenia witryny, warto abyśmy sprawdzili jej adres URL (domenę), korzystając z wymienionych poniżej narzędzi dostępnych online. Skanują one stronę w poszukiwaniu infekcji typu malware, spamu, jak również wykrywają, czy serwer, na którym strona została umieszczona, znajduje się na czarnej liście, co najczęściej zdarza się wtedy, gdy serwer jest używany do rozsyłania spamu. Dzięki tym narzędziom można także stwierdzić, czy przeprowadzony atak został już wykryty przez popularne mechanizmy sieciowe. Warto użyć tych narzędzi, nawet jeśli administrator strony otrzymał już odpowiednie powiadomienie od Google’a:
- https://www.virustotal.com/gui/
- https://sitecheck.sucuri.net/
- https://webinspector.com/website-malware-scanner/
- https://quttera.com/
- http://isithacked.com/
Za pomocą tych narzędzi dostępnych online zawartość witryn jest skanowana tylko zewnętrznie, bez dogłębnej analizy wszystkich plików CMS-a.
Dedykowany skaner dla CMS WordPress można znaleźć pod adresem:
https://hackertarget.com/wordpress-security-scan/
Lokalne skanery antywirusowe i antymalware
Aby znaleźć przyczynę zainfekowania strony warto przeskanować za pomocą lokalnie zainstalowanego programu antywirusowego kopię strony. Większość antywirusów potrafi znaleźć część szkodliwych sygnatur.
Bardzo ciekawym rozwiązaniem jest rosyjski skaner AI-Bolit w wersji dla systemu Window, Mac OS X oraz serwerów. Skanuje on kod strony nie tylko w poszukiwaniu wirusów i malware, lecz także w poszukiwaniu podatności występujących w popularnych CMS-ach (WordPress) oraz charakterystycznych śladów pochodzących ze skryptów hakerów. Wersję do domowego użytku, ale w pełni wartościową, można pobrać bezpłatnie ze strony producenta (https://revisium.com/aibo/)
Sposób użycia tego skanera jest prosty:
- Pobierz program, a dokładnie plik ai-bolit-en.zop
- Rozpakuj archiwum ZIP lokalnie na komputerze w głównym katalogu.
- Rozpakowaną (wyodrębnioną z archiwum ZIP lub JPA) kopię zapasową strony należy umieścić w folderze site.
- Klikamy w plik start.bat (zalecane, typowe skanowanie) lub start_paranoid.bat (bardzo dokładne skanowanie), aby uruchomić skanowanie pod kątem wirusów i skryptów hakerskich. Proces ten trwa do kilku minut, w zależności od wielkości strony.
- Na zakończenie nacisnąć należy dowolny przycisk – skaner utworzy plik AI-BOLIT-REPORT.html w głównym folderze programu. Będzie on zawierać szczegółowy raport dotyczący znalezionych zagrożeń, zarówno tych niepewnych, jak i zainfekowanych.
Program nie kasuje żadnych plików automatycznie. Jego zadaniem jest wskazanie podejrzanych elementów, i to od użytkownika zależy, co z nimi zrobi. Z kolei jeśli uruchomimy program za pomocą pliku scan_and_quarantine.bat, dodatkowo zostanie utworzone archiwum tylko z podejrzanymi plikami.
Legenda do raportu ze skanowania AI-Bolit:
Sekcja czerwona (Malware) – lista zainfekowanych plików, które powinny zostać usunięte, a w razie potrzeby zastąpione zdrowymi plikami pochodzącymi z oryginalnych paczek instalacyjnych.
Sekcja żółta (Adware abd spam links) – lista plików wraz z wyróżnionym kodem, który może pełnić funkcję reklamy lub przekierowania do innego serwisu. Tu wymagana jest znajomość podstaw składni języka PHP oraz HTML, aby całkowicie wykluczyć infekcję. Pamiętaj, że część rozszerzeń zawiera tego typu odesłania i niekoniecznie są one szkodliwe. Porównanie z oryginalnymi plikami z instalacji daje szansę ma uniknięcie pomyłki.
Sekcja żółta (Skipped big files) – duże pliki, a więc pliki, których z uwagi na wielkość (przeważnie powyżej 800 kB) skaner nie analizował. Będą tu zarówno PDF-y, ZIP-y, biblioteki JavaScript, jak i podejrzane pliki. Należy zwracać uwagę na nazwy plików.
Sekcja żółta (Non-PHP file has PHP signature) – pliki, które nie są plikami PHP, a mimo to mają taki kod w sobie. Mogą tu być zarówno „niegroźne” instruktażowe pliki .txt, jak i ukryte pliki typu backdoor, skrywające się w plikach o rozszerzeniu .ini lub .js
Program jest bardzo dokładny i zdecydowanie ułatwia poszukiwanie źródła infekcji. Niestety, z reguły nie analizuje bazy danych ponieważ jest ona zbyt dużym plikiem. Jednakże jeżeli rozbije się ją na mniejsze pliki zawierające tabele (na przykład te z artykułami czy postami), jest szansa, że zostaną one przeskanowane.
Skrypt występuje również w wersji umożliwiającej skanowanie online po wcześniejszym skopiowaniu na serwer zawartości folderu ai-bolit z pobranego zestawu. Skanowanie tego typu jest również skuteczne, jak skanowanie przy użyciu wersji dla Windows. Ma jednak tę wadę, że w przypadku większych stron oraz serwera o słabszych parametrach proces wykrywania malware może się zawiesić i nie zostanie ukończony.
Innym wartym zainteresowania narzędziem jest aplikacja Netsparker Web Application Security.
Ochrona strony za pomocą wtyczek WordPress
Najbezpieczniejszą metodą usuwania ukrytego kodu jest zastosowanie wtyczek które potrafią zidentyfikować zainfekowane pliki, a także je leczyć, nadpisywać zdrowym plikiem lub kasować w razie potrzeby. Dodatkowe rozszerzenia które przydadzą się do wyszukiwania zarówno podejrzanych plików i kodu:
- Anti-Malware Security,
- Look-See Security Scanner
- Securi Security
Uwaga! Obecność dowolnych plików w folderach /images, /css, /fonts, /js, bez względu na ich nazwę, powinna od razu wzbudzić uzasadnione podejrzenia.
Jeśli nie jesteśmy pewni, czy kod znaleziony w pliku jest niebezpieczny, można skorzystać z dodatkowego skanera https://virusscan.jotti.org/. W tym serwisie można wgrać podejrzany plik i poddać go analizie.