Rootkitrevealer: kuidas tuvastada rootkitte Windowsis

  • RootkitRevealer tuvastab Windowsi API-de ja toore ketta/registri andmete vahelisi lahknevusi, et paljastada varjatud probleeme.
  • Tuvastab tüüpilised mustrid (NTFS-i metaandmed, vastuolulised tüübid/pikkused, NULL-võtmed) ja nõuab kontekstipõhist analüüsi.
  • Selle disain kopeerib end teenusena suvalise nimega; ajutised jäänused võivad olla valepositiivsed.
  • Kuigi see on lõpetatud, on selle võrdlev lähenemisviis endiselt kohtuekspertiisi avastamise ja analüüsi etaloniks.

RootkitRevealeri tuvastustööriist

Kui olete huvitatud Windowsi turvalisusest, kõlab nimi RootkitRevealer tuttavalt: see oli utiliit, mis paljastas kuulsa Sony BMG rootkit-juhtumi ja sai aastateks etaloniks varjatud tarkvara avastamisel. Kuigi see on nüüdseks tootmisest maha võetud, on endiselt võtmetähtsusega rootkittide toimimise mõistmisel ja milliseid signaale nad süsteemi jätavad.

RootkitRevealer loodi Mark Russinovichi ja Bryce Cogswelli poolt Sysinternalsi (hiljem Microsofti osaks) jaoks ning töötas 32-bitistel Windows XP-del ja Windows Server 2003-l. Selle eesmärk oli tuvastada lahknevusi Windowsi API-de teatatud teabe ja kettal ning registris tegelikult oleva teabe vahel. See kontrast „loogilise vaate” ja „toore vaate” vahel See on selle metoodika tuum ja põhjus, miks see tuvastas selliseid perekondi nagu AFX, Vanquish või HackerDefender.

Mis täpselt on rootkit ja miks on seda nii raske tuvastada?

Mõiste "juurkomplekt" hõlmab tehnikaid ja mehhanisme, mida pahavara (viirused, troojalased või nuhkvara) kasutab viirusetõrje-, nuhkvaratõrje- ja haldustööriistade eest peitmiseks. Teisisõnu, see on tarkvara, mis maskeerib end täitmise ajal, jättes mulje, nagu seda poleks olemas. Eesmärk: jääda märkamatuks, säilitades samal ajal meeskonna üle kontrolli..

Neid saab liigitada mitmel viisil. Ühelt poolt eristame püsivaid ja mittepüsivaid programme. Püsivad programmid aktiveeritakse uuesti igal käivitamisel või sisselogimisel, salvestades oma koodi failisüsteemi või registrisse ja seadistades automaatse käivitusmehhanismi. Mälupõhised rootkitid seevastu ei ela taaskäivitust üle., sest need ei jäta kettale püsivat koodi.

Need jagunevad ka vastavalt sellele, kus nad töötavad: kasutajarežiimis ja kernelirežiimis. Kasutajarežiimis pealt kuulavad nad tavaliselt funktsioone, mida kasutavad sellised programmid nagu Explorer või konsool failide või registrivõtmete loetlemiseks. Klassikaline näide: FindFirstFile/FindNextFile API-de haakimine selliste kirjete peitmiseks, mis reedaksid nende failid. Kõige arenenumad neist pealt kuulavad otse natiivseid API-kõnesid. mis on seotud protsesside, failisüsteemi või registriga, nii et tööriistad, mis võrdlevad kõrgetasemelisi API-sid natiivsete API-dega, neid samuti ei näe.

rootkit

Kuidas RootkitRevealer töötab: võrrelge Windowsi öeldut sellega, mis tegelikult on

RootkitRevealer põhineb lihtsal ja võimsal ideel: see skannib süsteemi kahel tasandil ja otsib erinevusi. Kõrgemal tasemel pärib see Windowsi API-le failide, võtmete ja väärtuste loendi; madalal tasemel kontrollib see otse toorandmeid (FAT/NTFS) ja registritarusid. Kui rootkit manipuleerib API vastustega enda peitmiseks, siis need kaks vaadet ei ühti..

See kontrast võimaldab peitmist nii kasutajarežiimis kui ka kerneli režiimis. Näiteks kui Windowsi API ei kuva kataloogis "ghost"-faili, kuid MFT või kataloogiindeksi toores skannimine leiab selle, on tegemist olulise lahknevusega. Sama kehtib ka tarus olevate registrivõtmete ja väärtuste kohta, mis on API kaudu nähtamatud..

Oluline eripära: ajaloolise värskenduse käigus lõpetas RootkitRevealer "puhta" käsureaversiooni pakkumise, kuna teatud pahavara hakkas selle käivitatavat faili nime järgi jälgima ja blokeerima. Selle vältimiseks programm... See kopeeriti juhusliku nimega ja käivitati teenusenaSiiski säilitas see käsurea valikud skannimiste automatiseerimiseks ja tulemuste faili väljastamiseks.

Kuidas tuvastada Windowsis peidetud protsesse ja rootkitte parimate tööriistade abil
Seotud artikkel:
Kuidas tuvastada Windowsis peidetud protsesse ja rootkitte parimate tööriistade abil

Kas rootkit saab RootkitRevealeri eest peitu pugeda?

Teoreetiliselt küll, aga kõrge tehnilise hinnaga. Rootkit peaks pealt kuulama ka RootkitRevealeri toorandmeid registritarude ja failisüsteemi andmete kohta, kirjutades keerulisi NTFS-, FAT- ja registrivormingu struktuure lennult ümber, jätmata mingeid vastuolusid. See nõuaks sisemiste vormingute põhjalikku tundmist ja palju inseneritööd., mis on ajalooliselt olnud haruldane.

Töötava süsteemi sees pole aga olemas imerohtu. Tuumarežiimi rootkit suudab oma piiril mõjutada mis tahes lugemist, sealhulgas RootkitRevealeri madalal tasemel teostatavaid lugemisi. Seetõttu on kohtuekspertiisi korral soovitatav võrrelda reaalajas analüüsi võrguühenduseta analüüsiga (näiteks puhta keskkonna käivitamine CD-lt/USB-lt). Kuigi isegi võrguühenduseta tööriistu saab teatud juhtudel mööda hiilida, on võrguühenduse/võrguühenduseta kombinatsioon kõige kindlam strateegia.

Metodoloogiline järeldus on selge: universaalset detektorit ei ole. Pikaajaliselt on kõige tõhusamad võrdlevad skaneeringud, mis on eelistatavalt integreeritud viirusetõrje ja muude kaitsekihtidega. Mitme vaate vaheline korrelatsioonimeetod on endiselt kehtiv kuigi RootkitRevealerit enam ei arendata.

rootkit-paljastaja

Ühilduvus, litsentsimine ja projekti staatus

RootkitRevealeri andis välja Mark Russinovich 1. novembril 2006, see on kirjutatud Microsoft C++ keeles IA-32 arhitektuurile ja selle suurus on umbes 231 KB. See on omandiõigusega kaitstud tasuta tarkvara (suletud lähtekoodiga) ja oli saadaval inglise keeles.See töötas Windows XP ja Windows Server 2003 puhul, ainult 32-bitistes versioonides.

Tööriista enam ei hooldata. Selle dokumentatsioon ja kasutusjuhud on aga alles ajaloolise ja haridusliku viitena. Lisaks tehnilisele väärtusele on selle pärand seotud Sony BMG rootkit'i avastamisega., mis oli verstapost, mis tõstis valdkonna teadlikkust tarbijasüsteemide varjamise ohtudest.

Kasutamise eeldused ja parimad tavad

Selle korrektseks käitamiseks olid vajalikud kõrgendatud õigused: „Failide ja kataloogide varundamine”, „Draiverite laadimine” ja „Kõvaketta hooldustööde tegemine” (Windows XP ja uuemad versioonid). Vaikimisi on need õigused administraatorite rühmal. Soovitatav on analüüsi käivitada võimalikult mitteaktiivses olekus ja rakendused sulgeda. samaaegsete muutuste tõttu valepositiivsete tulemuste vähendamiseks.

Tööriista saab käivitada käsitsi selle liidese kaudu või automaatselt käsureavõtmetega aruannete genereerimiseks. Kuna see töötab teenusena juhuslikult nimetatud koopiast, muudab selle disain "protsessi nime signatuuride" põhjal blokeerimise keeruliseks. See detail selgitab ajutiste käivitatavate failide ilmumist näiliselt juhuslike nimedega. mõnes süsteemis skannimise ajal.

Manuaalne skannimine ja peamised valikud

Interaktiivne kasutamine on lihtne: käivitage programm ja vajutage nuppu „Skanni“. Skannimise ajal kuvatakse aknas olekut ja pärast skannimise lõppu tuvastatud lahknevuste loendit. Liideses on kaks peamist valikut:

  • Peida NTFS-i metaandmete failid: Vaikimisi lubatud. Takistab standardsete NTFS-metaandmete failide (nt $MFT) kuvamist, mis on Windowsi API eest peidetud.
  • Eksamiprotokoll: Vaikimisi lubatud. Kui see pole märkimata, siis registrit ei skannita, mis vähendab skannimise ulatust.

Automatiseerimiseks toetatakse käsurea parameetreid, mis keskenduvad tulemuste käivitamisele ja kuvamisele. Dokumenteeritud ajalooline süntaks on:

rootkitrevealer    outputfile]

Kui: -a skannida ja väljuda pärast lõpetamist; -c genereerib väljundi CSV-vormingus; -m kuvab NTFS-i metaandmeid; -r jätab logi analüüsist välja. Väljundfail peab asuma kohalikul köitel. Kaugarvutite puhul oli tavaline kasutada PsExec'i. Näiteks Sysinternalsist:

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

Pea meeles, et kaugskannimine lisab muutujaid (latentsusajad, turvalisus, õigused) ja hea mõte on seda kõigepealt lokaalselt testida. Võimaluse korral salvestage tulemused usaldusväärsesse kohta. ja terviklikkuse kontrolliga.

Tulemuste tõlgendamine: tüüpilised lahknevused

RootkitRevealer ei ütle, et "on olemas rootkit", vaid näitab erinevusi, mis võivad viidata varjamisele. Iga üksust tuleb hinnata. Need on kõige asjakohasemad kategooriad:

„Windowsi API eest peidetud”See on peitmise puhul kõige levinum lahknevus. Kui te pole NTFS-metaandmete peitmise valikut valinud, näete NTFS-draividel palju seda tüüpi kirjeid, kuna süsteem ise peidab API eest sisemisi faile. Müra vähendamiseks on kasulik teada standardsete metaandmete loendit.:

  • $AttrDef
  • $BadClus
  • $HalbKlubi:$Halb
  • $BitMap
  • Saabas
  • $ Logifail
  • $Mft
  • $MftMirr
  • Turvaline
  • $UpCase
  • $Hilt
  • $Laienda
  • $Extend\$Reparse
  • $Laiendada\$ObjId
  • $Extend\$UsnJrnl
  • $Extend\$UsnJrnl:$Max
  • $Extend\$Quota

Lisaks on olemas legitiimseid tooteid (näiteks mõned viirusetõrjeprogrammid, näiteks Kaspersky), mis kasutavad NTFS-is alternatiivseid andmevooge ja oma salvestusruumi jaoks hägustamistehnikaid, mille tulemuseks võivad olla igas failis „peidetud API” kirjed. RootkitRevealer ei filtreeri väljundit vastavalt oma disainile, et pahavara ei saaks filtreid „ära mängida“.

"Ligipääs keelatud"See ei tohiks kunagi ilmuda, sest tööriist kasutab mehhanisme, mis võimaldavad tal lugeda süsteemis mis tahes faili, kataloogi või registrivõtit. Kui te seda näete, kahtlustage sügavamat probleemi või ebanormaalseid jõudlustingimusi..

Nähtavuse kombinatsioonid API-s/indeksis/MFT-s. Failisüsteemi analüüs hõlmab kolme allikat: Windows API, MFT (Master File Table) ja NTFS-i kataloogiindekseid. Näete teateid nagu „Nähtav Windows API-s, aga mitte kataloogiindeksis ega MFT-s” või variatsioone, kus see ilmub ühes või kahes kihis, aga mitte kõigis. Kõige levinum põhjus on faili loomine või kustutamine skannimise ajal.Tüüpiline teatatud näide:

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

„Windowsi API pikkus ei ole kooskõlas toores alampuu andmetega”Näitab, et registriväärtus teatab API kohta erinevast suurusest kui tarus täheldatu. Juurkomplekt saab seda kasutada sisu peitmiseks. See võib olla tingitud ka väärtustest, mis eksami ajal muutuvad., mistõttu on oluline aktiivsust minimeerida.

„Tüübi mittevastavus Windows API ja toores alampuu andmete vahel”Registriväärtustel on tüübid (REG_SZ, REG_DWORD, REG_BINARY jne). Kui API kuvab ühte tüüpi ja taru teist, võib tegemist olla manipuleerimisega. Näiteks andmete salvestamine REG_BINARY-na ja selle esitamine REG_SZ-na, mille alguses on 0, et lugemisi kärpida. Baitide peitmine terminaatori taha on tuntud taktika..

„Võtme nimi sisaldab manustatud NULL-väärtusi”API käsitleb võtmenimesid nulliga lõppevate stringidena, kuid kernel kasutab pikkusega stringe. See võimaldab luua võtmeid, mis on operatsioonisüsteemile nähtavad, kuid osaliselt nähtamatud redaktoritele nagu Regedit. Sysinternals avaldas tehnikat demonstreeriva näidiskoodi (Reghide) ja utiliit RegDelNull võimaldab teil kustutada võtmeid, mis sisaldavad manustatud nulle. Kui märkate seda mustrit, uurige seda esmajärjekorras..

„Andmete mittevastavus Windows API ja toores alampuu andmete vahel”Tavaline, kui telemeetria või oleku väärtused skannimise ajal muutuvad (ajatemplid, "viimase skannimise" loendurid, tööajad jne). Reaalses elus täheldatud näide:

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

Kuigi need lahknevused võivad olla healoomulised, ära kunagi jäta neid tähelepanuta ilma konteksti üle vaatamata. Kui olete kinnitanud rootkit'i olemasolu ja ei tea, kuidas see eemaldada, on kõige kindlam meede ikkagi vormindamine ja uuesti installimine..

Rootkittide otsimine Windowsis RootkitRevealeri abil

Seotud ressursid ja tööriistad (Sysinternalsi ökosüsteem)

Sysinternalsi universum pakub täiendavad kommunaalteenused peidetud protsesside ja rootkittide tuvastamiseks mis sobis uurimiseks ja reageerimiseks väga hästi RootkitRevealeriga:

  • Autoruns: Näitab kõiki süsteemi automaatse käivitamise asukohti, ideaalne püsivuse otsimiseks.
  • Process ExplorerProtsesside, laaditud DLL-ide ja avatud käepidemete röntgenülevaade; ideaalne anomaaliate tuvastamiseks.
  • Protsessi monitorJälgib süsteemikõnesid (failid, register, protsessid) reaalajas, et mõista nende käitumist.
  • AccessChk y AccessEnum: Kontrollib failide, võtmete ja teenuste kehtivaid õigusi; kasulik rikkumiste avastamiseks.
  • PsExec y PSToolsi: utiliitide komplekt kaughalduseks, käivitamiseks ja andmete kogumiseks.
  • SigcheckDigitaalallkirjade ja binaarfailide maine kontrollimine; kahtlaste käivitatavate failide valideerimise võti.
  • SDvaliTurvaline kustutamine vastavalt Kaitseministeeriumi standarditele tundlike jäänuste kõrvaldamiseks.
  • Sysmon: Salvestab sündmustevaaturis põhitegevuse (protsessi loomine, võrguühendused jne).

Sügavamale kaevumiseks on olemas mõned klassikalised viited, mis on hädavajalikud: Mark Russinovichi artikkel „Unearthing Rootkits” (Windows IT Pro), Greg Hoglundi ja Jamie Butleri raamat „Rootkits: Subverting the Windows Kernel” (Rootkits: Windowsi kerneli õõnestamine) ning Russinovichi ja teiste teos „Windows Internals”. mis annab arhitektuurilise aluse nende tehnikate põhjalikuks mõistmiseksLaiema pahavara käsitluse jaoks sobivad suurepäraselt sellised teosed nagu Peter Szori või Ed Skoudise ja Lenny Zeltseri omad.

Kõike eelnevat arvesse võttes oli RootkitRevealer iga Windows XP/2003 administraatori või turvaanalüütiku tööriistakastis oluline osa. Selle võrdlev lähenemine, tüüpiliste lahknevuste kataloog ja reaalsetest juhtumitest saadud õppetunnid õpetavad meile jätkuvalt, kuidas müra signaalist eraldada, tulemusi arukalt tõlgendada ja allikaid kombineerida, et jõuda kindlate järeldusteni. See meetod, mitte konkreetne tööriist, on see, mis tänapäeval vahet teeb..