skaner złośliwego oprogramowania (malware scanner)
| Po angielsku | malware scanner |
|---|---|
| Którą formą pisać | obie formy Obie formy są w obiegu. Przy pierwszym wystąpieniu pisz „polski termin (english term)”, dalej sam polski. |
| Inne formy | skaner malware'u · skaner antywirusowy dla strony · narzędzie do wykrywania złośliwego kodu |
| Kategoria | Strony WWW, WordPress i hosting |
Skaner złośliwego oprogramowania (malware scanner) to narzędzie, które przeszukuje pliki, a w przypadku stron internetowych także bazę danych, w poszukiwaniu znanego złośliwego oprogramowania i podejrzanych wzorców kodu. NIST nazywa oprogramowanie antywirusowe najczęściej stosowanym technicznym środkiem ograniczania zagrożeń ze strony malware [1]. Skaner wykrywa infekcję i często potrafi ją usunąć. Nie zamyka jednak drogi, którą napastnik wszedł, i nie zastępuje dochodzenia po incydencie.
Jak działa
Podstawą większości skanerów są sygnatury. Dokumentacja ClamAV wyjaśnia, że program odróżnia pliki czyste od złośliwych na podstawie sygnatur, zapisanych głównie jako tekst w ustalonych formatach [2]. Sygnatura może opisywać fragment treści pliku albo skrót całego pliku [2]. Takie podejście opisuje hasło wykrywanie sygnaturowe i heurystyczne; heurystyka szuka cech podejrzanych, a nie konkretnych próbek.
NIST opisuje zalecane funkcje oprogramowania antywirusowego [1]:
- skanowanie przy dostępie (on-access), czyli sprawdzanie każdego pliku przy pobraniu, otwarciu albo uruchomieniu;
- skanowanie na żądanie (on-demand), uruchamiane ręcznie przez użytkownika, oraz regularne skanowanie całych dysków;
- leczenie plików, czyli usuwanie malware z wnętrza pliku, oraz kwarantanna, czyli przechowywanie zainfekowanych plików w izolacji.
NIST zaznacza, że leczenie jest zwykle lepsze od kwarantanny, bo przywraca oryginalny plik, ale wielu zainfekowanych plików nie da się wyleczyć [1]. Skaner działa najlepiej, gdy jego sygnatury są w pełni aktualne [1].
Typowy cykl pracy skanera na serwerze pokazuje schemat poniżej.
Rodzaje
Dokumentacja WordPressa dzieli skanery stron na dwie grupy: działające w aplikacji, czyli wtyczki, oraz zdalne, które przeglądają stronę z zewnątrz [4]. Każda grupa szuka czego innego i zgłasza co innego; dokumentacja uznaje, że żadne rozwiązanie nie jest najlepsze samo, a razem zwiększają szansę wykrycia [4].
| Rodzaj | Gdzie działa | Co sprawdza |
|---|---|---|
| wtyczka skanująca [4] | w WordPressie | stronę od wewnątrz aplikacji |
| skaner zdalny [4] | poza serwerem | stronę tak, jak widzi ją przeglądarka |
| skaner serwerowy, np. ClamAV [3] | w systemie serwera | pliki według sygnatur |
| sumy kontrolne rdzenia [5] | WP-CLI na serwerze | pliki rdzenia względem WordPress.org |
Od skanera złośliwego oprogramowania trzeba odróżnić skanowanie podatności. System Artemis CERT Polska regularnie skanuje strony w poszukiwaniu podatności i błędów konfiguracji [7]. Sprawdza między innymi, czy pod znanymi ścieżkami nie leżą kopie zapasowe, oraz aktualność systemów takich jak WordPress [7]. Szuka więc otwartych drzwi, a nie kodu, który już wszedł do środka.
W WordPressie
Pierwszym krokiem jest porównanie rdzenia z oryginałem. Polecenie wp core verify-checksums pobiera z WordPress.org sumy MD5 dla zainstalowanej wersji i porównuje je z plikami na serwerze [5]. Ze względów bezpieczeństwa nie ładuje przy tym WordPressa [5]. Zmieniony plik rdzenia oznacza ingerencję albo ręczną modyfikację.
Dokumentacja WordPressa o przejętej stronie wskazuje, że katalogi /wp-admin i /wp-includes można bezpiecznie zastąpić oryginalnymi [4]. Instalator zwykle tylko nadpisuje istniejące pliki, a włamania często dodają nowe [4]. Szczególnej uwagi wymaga plik .htaccess, jeden z najczęściej zmienianych przy infekcjach, oraz pliki index.php, header.php, footer.php i plik funkcji motywu [4].
Skanery szukają w plikach PHP między innymi webshelli i tylnych furtek (backdoor). Sekurak opisuje, że administratorzy często piszą własne reguły dla grep i find, szukając funkcji takich jak exec, base64 czy eval [3]. Takie proste reguły pokrywają zwykle tylko najpopularniejsze funkcje, a zaciemnianie kodu pozwala je obejść.
Dokumentacja WordPressa zaleca też skanowanie komputera administratora. Według niej źródłem infekcji bywa lokalny komputer, na którym konie trojańskie przechwytują dane logowania do FTP i panelu [4].
Znaczenie i ograniczenia
Skaner wykrywa skutek, a nie przyczynę. Sekurak w podsumowaniu zaznacza, że wgranie webshella to jeden z pierwszych kroków atakującego po znalezieniu luki. Oprócz usunięcia zagrożenia trzeba też zapobiec ponownemu przejęciu serwera [3]. Dlatego skan jest etapem procesu czyszczenie przejętej strony, a nie jego końcem.
Druga granica to skuteczność. W teście opisanym przez Sekuraka ClamAV sprawdził 237 próbek webshelli i oznaczył 113 plików jako zainfekowane [3]. Maldetect na tym samym zbiorze zgłosił 137 trafień [3]. Webshelli napisanych w Java Server Pages i Adobe ColdFusion ClamAV nie wykrył [3]. Brak trafień nie dowodzi więc, że strona jest czysta.
Trzecia granica to fałszywe alarmy (false positive). NIST wymienia poprawę dokładności wykrywania, czyli mniej fałszywych alarmów i mniej przeoczeń, wśród zmian konfiguracji po incydencie [1].
Dobre praktyki
- Łącz skaner z monitorowaniem integralności plików. Dokumentacja WordPressa zauważa, że atak zawsze zostawia ślady w logach albo w systemie plików, na przykład nowe i zmienione pliki [6].
- Utrzymuj aktualne sygnatury i skanuj według harmonogramu [1].
- Przy trafieniu traktuj zdarzenie jak incydent. Dokumentacja WordPressa zaleca między innymi zapisanie przebiegu zdarzenia, zmianę haseł i aktualizację WordPressa po oczyszczeniu [4]. Pomaga w tym reagowanie na incydenty.
- Nie polegaj na jednym narzędziu; dokumentacja WordPressa zaleca łączenie skanerów w aplikacji i zdalnych [4].
Przypisy
7- [1] NIST SP 800-83 Rev. 1: Guide to Malware Incident Prevention and Handling for Desktops and Laptops · NIST
- [2] Creating signatures for ClamAV · ClamAV (Cisco Talos)
- [3] Jak wykrywać backdoory (webshelle) w aplikacjach webowych? · Sekurak
- [4] FAQ My site was hacked · WordPress.org
- [5] wp core verify-checksums — WP-CLI Commands · WordPress.org
- [6] Hardening WordPress — Advanced Administration Handbook · WordPress.org
- [7] Artemis: sprawdzamy bezpieczeństwo polskiego internetu · CERT Polska
Hasła w tym artykule
12Linkują tutaj
24- złośliwe oprogramowanie
- fałszywy alarm
- wtyczka bezpieczeństwa
- webshell
- czyszczenie przejętej strony
- wpis na czarną listę (blacklisting)
- monitorowanie integralności plików
- fałszywa CAPTCHA
- reagowanie na incydenty
- piracka wtyczka (nulled plugin)
- EDR (Endpoint Detection and Response)
- web skimming
- bootkit
- kwarantanna
- cryptojacking
- exploit kit
- packer
- scareware
- adware
- wirus komputerowy
- wykrywanie sygnaturowe i heurystyczne
- piaskownica
- seed phrase (fraza odzyskiwania)
- tryb incognito