Jak wykrywać ukryte procesy i backdoory przy użyciu Volatility 3 i technik pamięciowych
Cyberbezpieczeństwo Linux

Jak wykrywać ukryte procesy i backdoory przy użyciu Volatility 3 i technik pamięciowych

Jak wykrywać ukryte procesy i backdoory przy użyciu Volatility 3 i technik pamięciowych

Ukryte procesy, rootkity oraz backdoory to jedne z najtrudniejszych do wykrycia elementów złośliwego oprogramowania. Działają często poniżej poziomu systemu operacyjnego, manipulując strukturami pamięci, aby uniknąć widoczności w narzędziach takich jak ps, tasklist, top, Menedżer zadań czy nawet zaawansowane skanery AV.

Volatility 3, najnowsza wersja popularnego frameworka do analizy pamięci RAM, pozwala wykrywać takie zagrożenia dzięki analizie surowych struktur jądra, tabel procesów i obiektów, których nie da się łatwo ukryć. W tym artykule pokazuję, jak krok po kroku wykrywać ukryte procesy i backdoory, wykorzystując techniki pamięciowe oraz moduły Volatility 3.


1. Dlaczego analiza pamięci jest kluczowa przy wykrywaniu ukrytych procesów?

Ukryte procesy (np. poprzez hooking, DKOM, manipulację EPROCESS lub task_struct) mogą:

  • nie występować na liście procesów,
  • ukrywać swoje moduły,
  • wycinać się z drzewka rodzic–dziecko,
  • usuwać ślady w logach,
  • ukrywać swoje porty i połączenia sieciowe.
Czytaj  Wyciek danych z chmur i kont społecznościowych – cyfrowe zagrożenie XXI wieku

Jednak nie mogą całkowicie usunąć śladów ze struktur pamięci jądra, takich jak:

  • EPROCESS (Windows),
  • task_struct (Linux),
  • listy aktywnych wątków,
  • VAD-y i mapowania pamięci,
  • KernelCallbackTable,
  • tablice handle’ów.

Dlatego forensic memory analysis jest skuteczniejsza niż skanery w systemie live.

 

Jak wykrywać ukryte procesy i backdoory przy użyciu Volatility 3 i technik pamięciowych
Jak wykrywać ukryte procesy i backdoory przy użyciu Volatility 3 i technik pamięciowych

2. Przygotowanie: pozyskanie obrazu pamięci RAM

Volatility 3 pracuje na obrazach pamięci:

  • Windows: .raw, .mem, .dmp
  • Linux: dump z LiME
  • MacOS: .raw

Przykładowe przechwycenie z użyciem winpmem:

winpmem.exe --format raw --output memory.raw

Lub w Linux:

sudo insmod lime.ko "path=/mnt/memdump.raw format=raw"

Po wykonaniu dumpu analizujemy go offline — to najbardziej bezpieczna i wiarygodna metoda.


3. Analiza procesów w Volatility 3 – fundamenty wykrywania ukrytych procesów

Wylistowanie procesów widocznych w systemie

vol3 -f memory.raw windows.pslist

Moduł analizuje powiązaną listę EPROCESS → ActiveProcessLinks.

Wykrywanie ukrytych procesów (technika cross-view)

Ukryty proces to taki, który:

  • istnieje w pamięci,
  • ale został odłączony od ActiveProcessLinks.

Dlatego porównujemy kilka widoków.


4. Wykrywanie ukrytych procesów – cross-view detection

1. pslist vs psscan

psscan przeszukuje pamięć surowo, ignorując listy systemowe.

vol3 -f memory.raw windows.psscan

Jeśli proces widnieje w psscan, ale nie ma go w pslist, oznacza to:

  • ukryty proces (rootkit),
  • martwy proces „zombie”,
  • proces w trakcie usuwania,
  • manipulację DKOM.

2. pstree vs pslist

vol3 -f memory.raw windows.pstree

Ukrycie powiązań rodzicielskich często oznacza techniki stealth:

  • proces bez rodzica,
  • proces adoptowany przez system,
  • proces parent spoofing.

5. Analiza atrybutów procesów – wykrywanie manipulacji DKOM

Rootkity często manipulują:

  • terminacją procesów,
  • flagami ExitStatus,
  • wskaźnikami do modułów,
  • obiektami tokenów (eskalacja uprawnień).

Sprawdź:

vol3 -f memory.raw windows.getservicesids
vol3 -f memory.raw windows.getsids

Proces działający z niepasującymi SID-ami to sygnał backdoora.


6. Wykrywanie ukrytych wątków i nietypowych połączeń sieciowych

Ukryte wątki:

vol3 -f memory.raw windows.threads

Ukryty malware może tworzyć wątki w cudzym procesie (DLL injection / APC injection).

Czytaj  Incident Response Plan: Kompletny przewodnik dla firm i indywidualnych użytkowników

Połączenia sieciowe:

vol3 -f memory.raw windows.netscan

Wskazówki:

  • proces nieistniejący w pslist → podejrzany,
  • porty otwarte bez procesu–rodzica,
  • połączenia do TOR/hidden services.

7. Analiza modułów załadowanych przez proces

Ukryte moduły → technika module unlinking.

Sprawdzamy:

vol3 -f memory.raw windows.dlllist

Jeśli moduł znajduje się w pamięci, ale:

  • nie ma go na liście DLL,
  • nie ma nazwy,
  • ma adres spoza legalnych mapowań,

to sygnał:

  • reflective DLL injection,
  • manual map,
  • malicious loader,
  • backdoor kernelowy.

8. Analiza jądra – wykrywanie rootkitów kernelowych

1. Moduły kernelowe

vol3 -f memory.raw windows.modscan

Jeśli moduł widoczny w modscan, ale nie w oficjalnej liście sterowników, to klasyczny rootkit DKOM.

2. Hooki SSDT / IDT / IRP

Volatility 3 wspiera analizę tabel systemowych:

vol3 -f memory.raw windows.ssdt
vol3 -f memory.raw windows.idt

Nieregularne wskaźniki, skoki do nieznanych adresów lub przestrzeni user mode oznaczają:

  • keylogger kernelowy,
  • rootkit przechwytujący system calls,
  • backdoor interceptujący ruch sieciowy.

9. Wykrywanie backdoorów w shellcode i pamięci użytkownika

1. Malfind – analiza podejrzeń injekcji

vol3 -f memory.raw windows.malfind

Wynik zawiera:

  • nieoznaczone regiony pamięci,
  • kod wykonywalny w sekcji RWX lub RX,
  • fragmenty shellcode,
  • fragmenty PE bez nagłówków (manual mapping).

2. Heurystyka backdoorów

Jeśli proces:

  • ma podejrzane VAD-y,
  • otwiera ukryte porty,
  • ma nieznane PDO/handle,
  • posiada RWX page z kodem wykonywalnym,

— może być loaderem, C2 lub implantem.


10. Korelacja zdarzeń – jak potwierdzić backdoor?

Sprawdzamy:

  • nazwy procesów niezgodne z hashami,
  • procesy z nietypowym parent PID,
  • procesy bez ścieżki binarnej,
  • procesy z nietypowymi SID-ami lub tokenami,
  • dziwne połączenia zewnętrzne,
  • brak DLL w dlllist, ale obecne VAD-y z kodem.

11. Przykładowy workflow wykrywania ukrytego procesu

  1. pslist – lista widocznych procesów
  2. psscan – lista faktyczna
  3. porównanie → wykrycie ukrytego procesu
  4. malfind → analiza kodu
  5. netscan → sprawdzenie połączeń
  6. dlllist / vadinfo → sprawdzenie modułów
  7. modscan / ssdt → wykrycie hooków
  8. korelacja zdarzeń → potwierdzenie backdoora
Czytaj  Wykorzystanie narzędzi do dynamicznej analizy (np. strace, ltrace) do monitorowania działania aplikacji i wykrywania błędów

Podsumowanie

Volatility 3 i techniki analizy pamięci pozwalają wykryć:

  • ukryte procesy,
  • rootkity,
  • moduły kernelowe działające poza listami systemowymi,
  • backdoory komunikujące się z zewnątrz,
  • zastrzyki DLL i shellcode,
  • manipulacje strukturami jądra (DKOM),
  • stealth malware działający niewidocznie w systemie live.

To jedna z najskuteczniejszych metod detekcji zagrożeń, których nie wychwycą klasyczne AV czy EDR — bo działają na poziomie użytkownika, a nie na poziomie surowych obiektów pamięci.

 

Polecane wpisy
Ewolucja Ataków DDoS: Od Prostych Zalewów Pakietów po Zaawansowane, Wielowektorowe Kampanie
Ewolucja Ataków DDoS: Od Prostych Zalewów Pakietów po Zaawansowane, Wielowektorowe Kampanie

🚨 Ewolucja Ataków DDoS: Od Prostych Zalewów Pakietów po Zaawansowane, Wielowektorowe Kampanie 📌 Wprowadzenie Ewolucja ataków DDoS (Distributed Denial of Czytaj dalej

Analiza ruchu DNS w praktyce – jak wykrywać malware, tunelowanie i wycieki danych
Analiza ruchu DNS w praktyce – jak wykrywać malware, tunelowanie i wycieki danych

Analiza ruchu DNS w praktyce – jak wykrywać malware, tunelowanie i wycieki danych DNS to jeden z najczęściej wykorzystywanych, ale Czytaj dalej