Polowanie na złośliwe oprogramowanie ujawnia niewykrywalny uniwersalny loader rootkitów
Detection stack
- AIDR
- Alert
- ETL
- Query
Podsumowanie
Nowo odkryty loader rootkit podpisany przez Microsoft umożliwia atakującym wdrażanie niepodpisanych modułów jądra na zainfekowanych systemach. Złośliwe oprogramowanie używa sterownika pierwszego etapu do komunikacji z infrastrukturą C2 i ładowania wtyczek drugiego etapu bezpośrednio do pamięci. Ten dyskretny model wykonania pomaga ominąć detekcję opartą na dysku, jednocześnie utrzymując dostęp na wysoko uprzywilejowanym poziomie jądra.
Dochodzenie
Badacze zidentyfikowali klaster podpisanych sterowników wykorzystujących Windows Hardware Compatibility Program (WHCP) do uzyskania prawdziwych podpisów Microsoftu. Dochodzenie ujawniło dwustopniowy model wykonania, w którym podpisany loader obsługuje wstrzyknięcie niestandardowych, niepodpisanych sterowników jądra. Analiza kodu i infrastruktury również odsłoniła podobieństwa do wcześniej udokumentowanego rootkitu FiveSys.
Ograniczenie
Organizacje powinny monitorować obciążanie podejrzanych lub nieautoryzowanych sterowników trybu jądra oraz niespodziewane modyfikacje rejestru wpływające na usługi bezpieczeństwa. Wdrożenie wykrywania na końcówkach, które jest w stanie identyfikować moduły ładowane wyłącznie w pamięci, jest kluczowe dla wykrycia tej aktywności. Ograniczenie użycia sterowników podpisanych WHCP pochodzących od nieznanych lub niepewnych dostawców może dodatkowo zmniejszyć narażenie.
Odpowiedź
W przypadku wykrycia takiej aktywności należy izolować zainfekowane systemy, aby przerwać komunikację z C2 i zapobiec ruchowi poprzecznemu. Należy przeprowadzić forensykę pamięci w celu identyfikacji wstrzykniętych modułów jądra, które mogą nigdy nie zostać zapisane na dysku. Przeglądać integralność rejestru, zwracając szczególną uwagę na Opcje Wykonania Plików Obrazów oraz nieautoryzowane zmiany w politykach bezpieczeństwa.
Przepływ Ataku
Wykrycia
Możliwe Funkcje Dostępności poprzez Nadużycie Rejestru (przez cmdline)
Kontrole programu Windows Defender Antivirus zostały wyłączone (przez registry_event)
Możliwe Wykorzystanie Mechanizmu Cichego Zamykania Procesu (przez registry_event)
Podejrzana Aktywność Aktora Zagrożenia przez Nadużycie Funkcji Dostępności (przez registry_event)
IOC (SourceIP) do wykrycia: Polowanie na złośliwe oprogramowanie dla nowego, ukrytego uniwersalnego loadera rootkit
IOC (DestinationIP) do wykrycia: Polowanie na złośliwe oprogramowanie dla nowego, ukrytego uniwersalnego loadera rootkit
Wykrycie Komponentów Ukrytego Loaderu005cu0027a Rootkit [Windows Sysmon]
Wykonanie Symulacji
-
Narracja Ataku i Polecenia: Przeciwnik planuje wdrożenie komponentu rootkit, który ukrywa swoją obecność, komunikując się ze złośliwym sterownikiem. Aby ominąć tradycyjną detekcję oparte na plikach, atakujący wykorzystuje podejście „Living-off-the-Land”, używając skryptu PowerShell do interakcji ze sterownikiem, który został załadowany do jądra. Skrypt specjalnie celuje w
IRP_MJ_DEVICE_CONTROLprocedura przez wysłanie spreparowanego kodu IOCTL (I/O Control), naśladując wzorzec komunikacyjny zidentyfikowanego loadera rootkit, aby ustanowić kanał komend i kontroli oraz wyłączyć funkcje bezpieczeństwa. -
Skrypt Testu Regresji:
# Skrypt symulacji do naśladowania komunikacji ze sterownikiem loadera rootkit # Uwaga: Wymaga to obecności sterownika, który odpowiada na te określone wzorce # lub symuluje wywołania procedur obsługi IRP za pomocą sterownika symulacyjnego. $SymbolicName = "x1cx1c??x1ceae971b87" Write-Host "[+] Symulowanie interakcji ze sterownikiem z nazwą symbolu: $SymbolicName" # W rzeczywistej sytuacji wiązałoby się to z wywołaniem DeviceIoControl przez P/Invoke # Do celów symulacji/testów, symulujemy wyzwalacz telemetrii $signature = @{ SymbolicName = "x1cx1c??x1ceae971b87" IOControlHandler = "IRP_MJ_DEVICE_CONTROL" ShutdownHandler = "IRP_MJ_SHUTDOWN" } Write-Host "[+] Wysyłanie spreparowanego IOCTL do wyzwolenia detekcji..." # Logika do symulacji generowania zdarzenia jądra dla określonej nazwy symbolu # Ta część jest koncepcyjna dla agenta BAS do wyzwolenia wpisu w dzienniku New-EventLog -LogName "Microsoft-Windows-Sysmon" -Source "Sysmon" # Symulowanie wyzwalacza -
Polecenia czyszczenia:
# Usuwanie wszelkich tymczasowych plików lub artefaktów symulowanych sterowników Remove-Item -Path "$env:TEMProotkit_sim.tmp" -ErrorAction SilentlyContinue Write-Host "[+] Czyszczenie zakończone."