Rootkit-opdager: Sådan finder du rootkits i Windows

  • RootkitRevealer registrerer uoverensstemmelser mellem Windows API'er og rå disk-/registerdata for at afsløre skjulte problemer.
  • Identificerer typiske mønstre (NTFS-metadata, inkonsistente typer/længder, NULL-nøgler) og kræver kontekstuel analyse.
  • Dens design kopierer sig selv med et tilfældigt navn som en tjeneste; midlertidige rester kan være falske positiver.
  • Selvom den er udgået, forbliver dens sammenlignende tilgang en benchmark inden for retsmedicinsk detektion og analyse.

RootkitRevealer-detektionsværktøj

Hvis du er interesseret i Windows-sikkerhed, vil navnet RootkitRevealer lyde bekendt: det var værktøjet, der afslørede den berømte Sony BMG rootkit-sag, og som i årevis blev standarden for at afdække software skjult for alle. Selvom det nu er udgået, forbliver nøglen til at forstå, hvordan rootkits fungerer og hvilke signaler de efterlader i systemet.

RootkitRevealer, der blev skabt af Mark Russinovich og Bryce Cogswell til Sysinternals (senere indarbejdet i Microsoft), kørte på 32-bit Windows XP og Windows Server 2003. Formålet var at identificere uoverensstemmelser mellem, hvad Windows API'erne rapporterede, og hvad der faktisk fandtes på disken og i registreringsdatabasen. Den kontrast mellem "logisk synspunkt" og "rå synspunkt" Det er kernen i dens metode og grunden til, at den har registreret familier som AFX, Vanquish eller HackerDefender.

Hvad er et rootkit præcist, og hvorfor er det så svært at opdage?

Begrebet rootkit omfatter de teknikker og mekanismer, som malware (virus, trojanske heste eller spyware) bruger til at skjule sig for antivirus-, antispyware- og administrationsværktøjer. Med andre ord er det software, der camouflerer sig selv under kørsel for at få det til at se ud, som om det ikke eksisterer. Målet: at forblive ubemærket, samtidig med at man bevarer kontrollen over holdet.

Der er flere måder at klassificere dem på. På den ene side skelner vi mellem persistente og ikke-persistente. Persistente programmer genaktiveres ved hver opstart eller login, gemmer deres kode i filsystemet eller registreringsdatabasen og opretter en automatisk opstartsmekanisme. Hukommelsesbaserede rootkits overlever derimod ikke en genstart., fordi de ikke efterlader persistent kode på disken.

De er også opdelt efter, hvor de kører: brugertilstand og kernetilstand. I brugertilstand opfanger de typisk funktioner, der bruges af programmer som Stifinder eller konsollen til at liste filer eller registreringsnøgler. Et klassisk eksempel: at koble FindFirstFile/FindNextFile API'erne til at skjule poster, der ville afsløre deres filer. De mest avancerede opfanger direkte native API-kald. relateret til processer, filsystem eller registreringsdatabase, så værktøjer, der sammenligner API'er på højt niveau med den native API, heller ikke ser dem.

rootkit

Sådan fungerer RootkitRevealer: Sammenlign hvad Windows siger med hvad der virkelig er der

RootkitRevealer er baseret på en idé, der er lige så simpel, som den er kraftfuld: den scanner systemet fra to niveauer og leder efter forskelle. På det høje niveau forespørger den Windows API for at liste filer, nøgler og værdier; på det lave niveau inspicerer den direkte de rå volumendata (FAT/NTFS) og registreringsdatabasens hives. Hvis et rootkit manipulerer API-svar for at skjule sig selv, vil de to visninger ikke stemme overens..

Denne kontrast tillader skjulning i brugertilstand og kernetilstand. Hvis Windows API for eksempel ikke viser en "ghost"-fil i en mappe, men en rå scanning af MFT'en eller mappeindekset finder den, er der en betydelig uoverensstemmelse. Det samme gælder for registreringsnøgler og -værdier, der findes i hive-systemet, men er usynlige via API'et..

En vigtig særhed: I en skelsættende opdatering stoppede RootkitRevealer med at tilbyde en "ren" kommandolinjeversion, fordi visse typer malware begyndte at overvåge og blokere dens eksekverbare program ved navn. For at forhindre dette... Den blev kopieret med et tilfældigt navn og udført som en tjenesteDen bevarede dog kommandolinjeindstillinger til at automatisere scanninger og udskrive resultater til en fil.

Sådan finder du skjulte processer og rootkits i Windows med de bedste værktøjer
relateret artikel:
Sådan finder du skjulte processer og rootkits i Windows med de bedste værktøjer

Kan et rootkit skjule sig fra RootkitRevealer?

I teorien, ja, men til en høj teknisk pris. Rootkittet ville også skulle opfange RootkitRevealers rå læsninger af registreringsdatabasehives og filsystemdata og omskrive komplekse NTFS-, FAT- og registreringsdatabaseformatstrukturer i realtid uden at efterlade uoverensstemmelser. Det ville kræve indgående kendskab til interne formater og en masse ingeniørarbejde., noget der historisk set har været sjældent.

Der findes dog ikke noget "mirakelmiddel" i et kørende system. Et kernel-mode rootkit kan i sin grænse påvirke enhver aflæsning, inklusive dem, der udføres af RootkitRevealer på et lavt niveau. Derfor anbefales det i retsmedicinske scenarier at sammenligne live-analyse med offline-analyse (for eksempel opstart af et rent miljø fra en CD/USB). Selvom selv offlineværktøjer kan omgås i visse tilfælde, online/offline-kombinationen er den mest solide strategi.

Den metodologiske konklusion er klar: der vil ikke være nogen universel detektor. Sammenlignende scanninger, helst integreret med antivirus og andre forsvarslag, er de mest effektive på lang sigt. Korrelationsmetoden mellem flere synspunkter er stadig gyldig selvom RootkitRevealer ikke længere er udviklet.

rootkit-afslører

Kompatibilitet, licensering og projektstatus

RootkitRevealer blev udgivet af Mark Russinovich den 1. november 2006, skrevet i Microsoft C++ til IA-32-arkitekturen og cirka 231 KB i størrelse. Det er proprietært freeware (lukket kildekode) og var tilgængelig på engelskDet virkede på Windows XP og Windows Server 2003, kun i 32-bit versioner.

Værktøjet vedligeholdes ikke længere. Dets dokumentation og brugsscenarier forbliver dog som en historisk og pædagogisk reference. Ud over dens tekniske værdi er dens arv knyttet til opdagelsen af ​​Sony BMG rootkittet., en milepæl, der øgede branchens bevidsthed om risiciene ved at skjule data i forbrugersystemer.

Forudsætninger og bedste praksis for brug

For at køre det korrekt krævedes der forhøjede rettigheder: "Sikkerhedskopier filer og mapper", "Indlæs drivere" og "Udfør vedligeholdelsesopgaver for volumen" (Windows XP og nyere). Som standard har gruppen Administratorer disse rettigheder. Det anbefales at køre analysen med systemet så inaktivt som muligt og lukke applikationer. for at reducere falske positiver på grund af samtidige ændringer.

Værktøjet kan kaldes manuelt fra dets brugerflade eller automatisk med kommandolinjeindstillinger for at generere rapporter. Da det kører fra en tilfældigt navngivet kopi som en tjeneste, gør dets design det vanskeligt at blokere baseret på "procesnavnsignaturer". Denne detalje forklarer udseendet af midlertidige eksekverbare filer med tilsyneladende tilfældige navne. på nogle systemer under scanning.

Manuel scanning og hovedindstillinger

Interaktiv brug er ligetil: start programmet, og tryk på "Scan". Under scanningen viser vinduet status, og når den er færdig, en liste over fundne uoverensstemmelser. Der er to nøglemuligheder i brugerfladen:

  • Skjul NTFS-metadatafiler: Aktiveret som standard. Forhindrer visning af standard NTFS-metadatafiler (f.eks. $MFT), som er skjult fra Windows API'en som standard.
  • Eksamensrekord: Også aktiveret som standard. Hvis den ikke er markeret, scannes registreringsdatabasen ikke, hvilket reducerer dækningen.

Til automatisering understøttes kommandolinjeparametre med fokus på udførelse og dumping af resultater. Den dokumenterede historiske syntaks Det er:

rootkitrevealer    outputfile]

Hvor: -a scan og afslut når du er færdig; -c genererer output i CSV; -m viser NTFS-metadata; -r udelukker loggen fra analysen. Outputfilen skal være placeret på en lokal enhed. For fjerncomputere var det almindeligt at bruge PsExec fra Sysinternals, for eksempel:

psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log

Husk, at fjernscanning tilføjer variabler (forsinkelser, sikkerhed, tilladelser), og det er en god idé at teste det lokalt først. Gem resultaterne et pålideligt sted, når det er muligt. og med integritetskontrol.

Sådan fortolkes resultaterne: typiske uoverensstemmelser

RootkitRevealer siger ikke "der er et rootkit"; det viser forskelle, der kan indikere skjulning. Hvert element kræver evaluering. Disse er de mest relevante kategorier:

"Skjult fra Windows API"Dette er den mest almindelige uoverensstemmelse, når der er tale om skjulning. Hvis du ikke har valgt muligheden for at skjule NTFS-metadata, vil du se mange poster af denne type på NTFS-volumener, fordi systemet selv skjuler interne filer fra API'en. For at reducere støj er det nyttigt at kende listen over standardmetadata:

  • $AttrDef
  • $BadClus
  • $DårligClus:$Dårlig
  • $BitMap
  • $Boot
  • $Logfil
  • $Mft
  • $MftMirr
  • $Sikker
  • $UpCase
  • $Volumen
  • $Udvid
  • $Udvid\$Reparse
  • $Extend\$ObjId
  • $Extend\$UsnJrnl
  • $Udvid\$UsnJrnl:$Max
  • $Udvid\$Kvote

Derudover findes der legitime produkter (f.eks. nogle antivirusprogrammer som Kaspersky dengang), der bruger alternative datastrømme i NTFS og obfuskeringsteknikker til deres egen lagring, hvilket kan resultere i "skjulte API"-poster i hver fil. RootkitRevealer filtrerer ikke output efter design, for at forhindre malware i at "manipulere" filtrene.

"Adgang nægtet"Den burde aldrig vises, fordi værktøjet bruger mekanismer, der gør det muligt for det at læse enhver fil, mappe eller registreringsnøgle på systemet. Hvis du ser dette, har du mistanke om et dybereliggende problem eller unormale ydeevneforhold..

Synlighedskombinationer i API/Index/MFT. Filsystemanalyse krydser tre kilder: Windows API, MFT (Master File Table) og NTFS-mappeindekser. Du vil se meddelelser som "Synlig i Windows API, men ikke i mappeindeks eller MFT" eller variationer, hvor det vises i et eller to lag, men ikke alle. Den mest almindelige årsag er oprettelse eller sletning af en fil under scanningen.Typisk rapporteret eksempel:

C:\newfile.txt
Fecha/hora
8 bytes
Visible en la API de Windows, pero no en el índice de directorios o MFT.

"Windows API-længden er uforenelig med rå undertrædata"Angiver, at en registreringsværdi rapporterer en anden størrelse pr. API end den, der observeres i hive'en. Et rootkit kan bruge dette til at skjule indhold. Det kan også skyldes værdier, der ændrer sig under eksamen., derfor er det vigtigt at minimere aktivitet.

"Typeuoverensstemmelse mellem Windows API og rå undertrædata"Registreringsværdier har typer (REG_SZ, REG_DWORD, REG_BINARY osv.). Hvis API'en rapporterer én type, og hive'en viser en anden, kan dette være et tilfælde af manipulation. For eksempel at gemme data som REG_BINARY og få det til at se ud som REG_SZ med et indledende 0 for at afkorte læsninger. Det er en kendt taktik at skjule bytes bag en terminator..

"Nøglenavnet indeholder indlejrede NULL-værdier"API'en behandler nøglenavne som null-terminerede strenge, men kernen bruger strenge med en længde. Dette gør det muligt at oprette nøgler, der er synlige for operativsystemet, men delvist usynlige for editorer som Regedit. Sysinternals har udgivet eksempelkode (Reghide), der demonstrerer teknikken, og RegDelNull-værktøjet giver dig mulighed for at slette nøgler med indlejrede null-værdier. Hvis du ser dette mønster, så prioriter at undersøge det..

"Dataafvigelse mellem Windows API og rå undertrædata"Almindeligt, når telemetri- eller statusværdier ændres under scanningen (tidsstempler, "sidste scanning"-tællere, oppetider osv.). Observeret eksempel fra den virkelige verden:

HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc
Fecha/hora
8 bytes

Selvom disse uoverensstemmelser kan være godartede, bør du aldrig afvise dem uden at gennemgå konteksten. Hvis du bekræfter tilstedeværelsen af ​​et rootkit og ikke ved, hvordan du fjerner det, er den sikreste løsning stadig at formatere og geninstallere..

Scanning efter rootkits på Windows med RootkitRevealer

Relaterede ressourcer og værktøjer (Sysinternals økosystem)

Sysinternals-universet tilbyder supplerende forsyningsvirksomheder at opdage skjulte processer og rootkits der passer rigtig godt sammen med RootkitRevealer til undersøgelse og respons:

  • AutorunsViser alle autostartplaceringer på systemet, ideelt til jagt på vedvarende data.
  • Process ExplorerRøntgenbillede af processer, indlæste DLL'er og åbne handles; perfekt til at detektere anomalier.
  • proces MonitorSporer systemkald (filer, registreringsdatabase, processer) i realtid for at forstå adfærd.
  • AccessChk y AccessEnumKontrollerer effektive tilladelser på filer, nøgler og tjenester; nyttigt til at detektere sikkerhedsbrud.
  • PsExec y PsTools: et sæt af værktøjer til fjernadministration, udførelse og dataindsamling.
  • SigcheckVerifikation af digitale signaturer og binært omdømme; nøglen til validering af tvivlsomme eksekverbare filer.
  • SDeleteSikker sletning i overensstemmelse med DoD-standarder for at fjerne følsomme rester.
  • SysmonRegistrerer nøgleaktivitet i hændelsesvisningen (oprettelse af processer, netværksforbindelser osv.).

Hvis du vil dykke dybere, er der nogle klassiske referencer, der er essentielle: artiklen “Unearthing Rootkits” af Windows IT Pro af Mark Russinovich, bogen “Rootkits: Subverting the Windows Kernel” af Greg Hoglund og Jamie Butler, og “Windows Internals” (Russinovich og andre), hvilket giver det arkitektoniske grundlag for en grundig forståelse af disse teknikkerFor en bredere tilgang til malware er titler som dem af Peter Szor eller Ed Skoudis og Lenny Zeltser fortsat gode ledsagere.

I betragtning af alt ovenstående var RootkitRevealer en vigtig brik i værktøjskassen for enhver Windows XP/2003-administrator eller sikkerhedsanalytiker. Dens sammenlignende tilgang, katalog over typiske uoverensstemmelser og erfaringer fra virkelige tilfælde fortsætter med at lære os, hvordan man adskiller støj fra signal, fortolker resultater klogt og kombinerer kilder for at nå frem til solide konklusioner. Den metode, mere end et specifikt værktøj, er det, der gør forskellen i dag..


Tilføj som foretrukken kilde i Google