W przeciwieństwie do większości szkodliwych programów, do których instalacji wymagana jest interakcja z użytkownikiem, szkodniki bezplikowe zwykle działają bez zapisywania żadnych danych na dysku. Zagrożenia te często wykorzystują legalne narzędzia (takie jak PowerShell, WMI czy rejestr systemu Windows) oraz skrypty znajdujące się w atakowanym systemie.
- Szkodniki rezydujące tylko w pamięci – jak to działa?
- Dlaczego zagrożenia bezplikowe są trudne do wykrycia
- Wyzwanie dla analityków
- Wykrywanie szkodników rezydujących wyłącznie w pamięci RAM
- Typowe techniki stosowane w zagrożeniach bezplikowych
- Przykłady i historia zagrożeń bezplikowych
- Podsumowanie
Szkodniki rezydujące tylko w pamięci – jak to działa?
Zagrożenia bezplikowe charakteryzują się unikatowymi wektorami ataku oraz mechanizmami odpowiadającymi za instalację, przetrwanie w systemie i samo uruchamianie. Poniższa tabela pokazuje wybrane różnice między tradycyjnymi szkodliwymi programami a zagrożeniami bezplikowymi:
Cecha | Zagrożenia tradycyjne | Zagrożenia bezplikowe |
Przykładowe rodziny | Wirusy (np. ILOVEYOU), trojany (np. Zeus), robaki (np. Conficker) | Bazujące na PowerShellu (np. Poweliks), bazujące na pamięci (np. Kovter) |
Instalacja | Instalacja na dysku, zmiany w systemie plików | Uruchomienie w pamięci, często z użyciem zaufanych narzędzi (np. PowerShell) |
Mechanizmy przetrwania w systemie | Modyfikacja rejestru, folder autostartu | Wykorzystywanie zdarzeń WMI, modyfikacje rejestru bez użycia plików |
Unikanie wykrycia | Zaciemnianie, polimorfizm, kompresja | Unikanie zapisywania danych na dysku, wykorzystywanie narzędzi wbudowanych w system |
Metoda uruchamiania | Pliki wykonywalne, wstrzykiwanie DLL | W oparciu o skrypty (np. JavaScript, VBS), ataki typu process hollowing |
Dostarczanie szkodliwych funkcji | Pobieranie plików, załączniki do e-maili | Skrypty, makra, wykorzystywanie legalnych aplikacji |
Typowe wskaźniki infekcji | Hashe plików, sygnatury statyczne plików | Wzorce zachowania, uruchamianie nietypowych skryptów |
Ślady kryminalistyczne | Pozostałości po plikach, artefakty na dyskach twardych | Artefakty w pamięci, analiza dzienników zdarzeń (np. parametrów wiersza poleceń) |
Typowe wektory ataku | Phishingowe e-maile, pobieranie w ramach ataków drive-by | Phishing z makrami, wykorzystanie luk w systemie |
Dlaczego zagrożenia bezplikowe są trudne do wykrycia
Tradycyjne programy antywirusowe mają za zadanie skanować system plików w poszukiwaniu sygnatur znanych zagrożeń. Jednak zagrożenia bezplikowe nie pozostawiają po sobie na dyskach żadnych obiektów, które można byłoby wykrywać. Zamiast tego szkodniki te uruchamiają się bezpośrednio w pamięci RAM komputera, w związku z czym są one niewidoczne dla tradycyjnych mechanizmów bezpieczeństwa.
Co więcej, zagrożenia bezplikowe często wykorzystują wbudowane, zaufane narzędzia, które co do zasady są uznawane za bezpieczne i niezbędne do prawidłowego funkcjonowania systemu. Na przykład, bezplikowe szkodliwe programy mogą korzystać ze skryptów PowerShell do wykonywania poleceń, skanowania sieci, a nawet pobierania dodatkowych modułów – wszystkie te działania mogą zostać zinterpretowane jako zwykłe zadania realizowane przez administratora.
To jednak nie wszystko – twórcy zagrożeń bezplikowych stosują często także zaawansowane techniki maskowania i unikania wykrycia, takie jak:
- szyfrowanie danych w pamięci,
- stosowanie kodu polimorficznego, który zmienia się wraz z każdym uruchomieniem,
- wykorzystywanie dobrze ukrytych kanałów komunikacji.
Wszystko to sprawia, że atakujący pozostawiają po sobie bardzo mało śladów.
Wyzwanie dla analityków
Analiza zagrożeń bezplikowych wiąże się w unikatowymi wyzwaniami, głównie ze względu na ich ulotną naturę. Z racji tego, że szkodniki te działają wyłącznie w pamięci RAM, restart komputera zwykle prowadzi do wymazania kodu i jego artefaktów. Prowadzenie analizy po wystąpieniu incydentu wiąże się zatem ze sporymi utrudnieniami.
Istnieją jednak wyjątki – szkodniki takie jak Kovter czy Poweliks, które rezydują i uruchamiają się bezpośrednio z rejestru systemu Windows, pozostawiają pewne ślady na dysku.
Wykrywanie szkodników rezydujących wyłącznie w pamięci RAM
Wykrywanie zagrożeń bezplikowych wymaga skupienia się na identyfikowaniu anomalii w zachowaniu procesów, które mogą wskazywać na szkodliwą aktywność. Można w tym celu zastosować poniższe techniki.
Analiza behawioralna
Podejście polegające na monitorowaniu pamięci systemu, procesów oraz ruchu sieciowego w poszukiwaniu nietypowych zachowań. Może to być np. ponadnormatywny wzrost aktywności PowerShell lub WMI, szczególnie gdy pojawiają się polecenia charakterystyczne dla działań szkodliwych programów.
Proaktywne polowanie na zagrożenia
W tym przypadku mamy do czynienia z aktywnymi działaniami zespołu cyberbezpieczeństwa polegającymi na wyszukiwaniu znanych wskaźników infekcji w firmowym środowisku IT. Warto skupić się na obszarach, w których bezplikowe zagrożenia zwykle funkcjonują, np. procesy w pamięci czy systemowe dzienniki zdarzeń.
Sandbox ANY.RUN pozwala na testowanie próbek szkodliwego oprogramowania w bezpiecznym systemie chmurowym, co daje możliwość odizolowania potencjalnego zagrożenia oraz przechwytywania ważnych danych dotyczących aktywności sieciowej, procesów a nawet całych zrzutów pamięci. Możliwe jest także korzystanie z narzędzia Script Tracer w celu analizy zachowania skryptów. Jest to pomocne w śledzeniu i zrozumieniu poszczególnych etapów infekcji.
Typowe techniki stosowane w zagrożeniach bezplikowych
Zrozumienie poniższych technik może znacznie pomóc w procesie identyfikacji i analizy szkodników rezydujących wyłącznie w pamięci RAM.
1. Wykorzystanie PowerShella:
PowerShell jest często wykorzystywany przez zagrożenia bezplikowe ze względu na możliwość uruchamiania skomplikowanych działań bez generowania plików wykonywalnych. PowerShell jest zwykle stosowany w atakach tego typu do pobierania i uruchamiania szkodliwych funkcji bezpośrednio z pamięci oraz do omijania ograniczeń nakładanych na skrypty.
2. Przetrwanie z użyciem rejestru
Rejestr systemu Windows, czyli baza danych dotyczących konfiguracji, może być wykorzystywany do uzyskania odporności na restart komputera bez konieczności zapisywania typowych plików na dysku. Szkodliwy kod jest osadzany w kluczach rejestru, które mogą być następnie uruchamiane przez legalne procesy systemu Windows.
3. Wstrzykiwanie do pamięci oraz metoda process hollowing
Technika polegająca na umieszczaniu szkodliwego kodu w obszarze pamięci przypisanym do legalnego procesu. Bezplikowe szkodniki mogą „wymieść” legalny proces, zastępując jego kod w pamięci własnymi informacjami przy jednoczesnym zachowaniu widoczności oryginału. Częstym podejściem jest wstrzykiwanie niebezpiecznego kodu do obszaru pamięci zaufanych procesów systemowych, takich jak explorer.exe.
4. Uruchamianie z wykorzystaniem skryptów
Zagrożenia bezplikowe często stosują skrypty, np. JavaScript czy VBScript, uruchamiane bezpośrednio w pamięci lub z użyciem legalnych silników, takich jak WSH (Windows Scripting Host). Szkodliwe skrypty mogą być z łatwością maskowane i przechowywane w niewykonywalnych plikach (np. dokumenty Worda), które następnie są interpretowane i uruchamiane całkowicie w pamięci.
Przykłady i historia zagrożeń bezplikowych
Jednym z pierwszych przykładów może być robak Code Red, który w 2001 r. wykorzystywał luki związane z pamięcią i pewne elementy strategii bezplikowych. W 2004 r. pojawił się Poweliks, który zaprezentował prawdziwie bezplikowe zachowanie rezydując całkowicie w rejestrze systemu Windows. W kolejnych latach obserwowaliśmy szybki wzrost poziomu zaawansowania tych technik, czego przykładem może być zestaw szkodliwych narzędzi Angler Exploit Kit, który wykorzystywał luki w przeglądarce do uruchamiania ataków bezpośrednio w pamięci. Trend był kontynuowany wraz z atakami takimi jak Kovter, które wykorzystywały techniki bezplikowe do zapewnienia sobie przetrwania w systemie oraz unikania wykrycia. Także zaawansowane cybergangi takie jak APT29 (Cozy Bear) integrowały mechanizmy bezplikowe w celu prowadzenia działań szpiegowskich z użyciem modułów uruchamianych bezpośrednio w pamięci oraz legalnych narzędzi systemowych. Poniżej kilka dodatkowych przykładów:
- Operation Cobalt Kitty: atak wymierzony w określone ofiary, realizowany przez cybergang OceanLotus (APT32). W kampanii szpiegowano atakowane cele z wykorzystaniem technik bezplikowych, takich jak skrypty PowerShell czy Windows Management Instrumentation.
- Stuxnet: jeden z pierwszych szkodników wykorzystujących wiele exploitów dnia zerowego i wymierzonych w przemysłowe systemy sterowania. Stuxnet wykorzystywał techniki bezplikowe m.in. w mechanizmach rozprzestrzeniania się.
- REvil/Sodinokibi: zagrożenie ransomware wykazujące cechy bezplikowe w wektorach infekcji oraz wykorzystaniu modułów rezydujących w pamięci. Szkodnik wykorzystuje legalne narzędzia do uruchamiania swoich funkcji oraz rozprzestrzeniania się na kolejne ofiary.
Obecnie bezplikowe szkodliwe programy są popularne wśród zaawansowanych technicznie cybergangów. Często są stosowane w atakach wymierzonych w określone ofiary wysokiego szczebla, gdzie kluczowe jest pozostawianie jak najmniejszej ilości śladów.
Podsumowanie
Bezplikowe szkodliwe programy, mimo swojego zaawansowania, nie są odporne na precyzyjną analizę behawioralną. Narzędzia takie jak ANY.RUN znacznie upraszczają ten proces i ułatwiają wykrywanie oraz badanie wyrafinowanych zagrożeń.
ANY.RUN to chmurowy sandbox do analizy szkodliwych programów, ułatwiający pracę analityków z działów SOC i jednostek odpowiedzialnych za reagowanie na incydenty. Z platformy każdego dnia korzysta ponad 300 000 profesjonalistów z całego świata.