- RootkitRevealer detekuje nezrovnalosti medzi rozhraniami API systému Windows a nespracovanými údajmi, aby odhalil skryté problémy.
- Interpretuje výsledky: typy nezrovnalostí v metadátach NTFS, registri a súborovom systéme.
- Použite s PsExec možnosti -a -c -m -r a vzdialené spustenie; vyžaduje minimálny počet falošných poplachov, keď je systém nečinný.
- Prevencia a reakcia: Bezpečné spustenie/TPM, offline skenovanie, nástroje proti rootkitom a kontrolovaná obnova.

RootkitRevealer je jeden z tých legendárnych nástrojov, ktoré by mal poznať každý profesionál so systémom Windows. Vytvoril ho tím Sysinternals s Markom Russinovichom na čele a hoci sa objavil pred rokmi, zostáva referenciou pre pochopenie toho, ako odhaliť nezrovnalosti spôsobené rootkitmi medzi tým, čo systém zobrazuje, a tým, čo je skutočne na disku.
Na rozdiel od iných skenerov nehľadá podpisy ani vzory: porovnáva pohľad na rozhranie API systému Windows na vysokej úrovni so surovým, nízkoúrovňovým čítaním disku a databázy Registry. Táto zdanlivo jednoduchá myšlienka odhaľuje, kedy sa malvér pokúša skryť súbory, kľúče alebo hodnoty manipuláciou so systémovými volaniami.
Čo je RootkitRevealer a na akých systémoch funguje?
Ide o pokročilý nástroj na detekciu znakov rootkitov v používateľskom aj jadrovom režime . Pôvodne bol vyvinutý pre Windows XP a Windows Server 2003 (32-bitový) a bežne sa uvádza ako bezplatný, v angličtine a s veľkosťou približne 231 KiB; mnohé zoznamy v tom čase tiež uvádzali jeho kompatibilitu so systémami Windows NT/2000/XP/Vista.
Postupom času bola jeho čisto príkazová verzia odstránená, pretože niektorí autori malvéru začali monitorovať názov spustiteľného súboru; aby sa tomu predišlo, program sa spúšťa ako služba z náhodne pomenovanej kópie seba samého, čo sťažuje detekciu podľa názvu a komplikuje poskytovanie 100 % konzolového rozhrania.
Čo je rootkit? Kľúčové pojmy
Termín rootkit označuje techniky a mechanizmy, ktoré umožňujú malvéru (vírusom, trójskym koňom, spyware atď.) skryť sa pred používateľom a bezpečnostnými nástrojmi . Rozlišuje sa niekoľko rodín: perzistentné (prežijú aj reštartovanie), rezidentné v pamäti (zmiznú po reštarte), používateľské a jadrové, okrem iných moderných variantov.
Rootkit v používateľskom režime môže zachytiť funkcie ako FindFirstFile/FindNextFile alebo natívne enumerátory systému, aby filtroval položky, ktoré by odhalili jeho upravené súbory, procesy alebo kľúče databázy Registry . To bráni Prieskumníkovi, príkazovému riadku alebo editorom databázy Registry vidieť, čo skutočne existuje.
Rootkity v režime jadra idú ešte ďalej: okrem zachytávania natívneho API môžu priamo manipulovať so štruktúrami jadra, napríklad odstránením svojho procesu zo zoznamu aktívnych procesov, aby sa nezobrazoval v Správcovi úloh alebo Prieskumníkovi procesov, aj keď je spustený.
Existujú hybridné bootloadery (čiastočne založené na používateľovi a čiastočne na jadre), firmvérové (BIOS/UEFI a ďalšie komponenty), bootovacie alebo bootkitové (MBR/UEFI), virtuálne (ktoré umiestňujú skutočný operačný systém do virtuálneho počítača) a pamäťové (neperzistentné) bootloadery. Tie druhé môžu byť obzvlášť ťažko dostupné, zatiaľ čo firmvér a bootloadery pretrvávajú aj po čistej preinštalovaní operačného systému.
Ako funguje RootkitRevealer
RKR porovnáva dva snímky: pohľad na rozhranie API systému Windows na vysokej úrovni a surové, nízkoúrovňové čítanie súborov zväzku a podstromu databázy Registry (podregistry). Ak rootkit manipuluje s volaniami na vysokej úrovni, aby niečo skryli, táto zmena sa odhalí, pretože to, čo je na disku a v registri, nezodpovedá tomu, čo API uvádza, čo generuje diagnostikovateľné nezrovnalosti.
Teoreticky by sa rootkit mohol pokúsiť skryť pred RootkitRevealer aj zachytávaním jeho surových čítaní a prepisovaním údajov za pochodu. Na dosiahnutie tohto cieľa by potreboval dôkladnú znalosť formátov NTFS, FAT a registra a schopnosť upravovať štruktúry bez toho, aby spôsoboval nekonzistencie alebo zjavné vedľajšie účinky – čo je veľmi zložitý technický výkon , ktorý sa pozoroval len zriedka. Napriek tomu neexistuje žiadny neomylný „univerzálny detektor“: dokonca aj bootovanie z externého prostredia (napríklad s použitím najlepších distribúcií Linuxu ) by mohlo byť sabotované obzvlášť sofistikovanými a pretrvávajúcimi artefaktmi . V praxi je najrobustnejším prístupom kombinácia online analýzy s offline overovaním v dôveryhodných prostrediach.
Požiadavky, osvedčené postupy a vykonávanie
Na spustenie tejto kontroly potrebuje účet oprávnenia „Zálohovať súbory a adresáre“, „Načítať ovládače“ a „Údržba zväzkov“ (tieto oprávnenia sú predvolene udelené správcom v systéme Windows XP a novších verziách). Pre minimalizáciu falošných poplachov sa odporúča spustiť kontrolu, keď je systém v pokoji a nie sú otvorené žiadne aplikácie.
Pri manuálnom spustení jednoducho stlačte tlačidlo skenovania. Počas procesu bude program poskytovať aktualizácie priebehu a uvádzať všetky nezrovnalosti. K dispozícii sú dve relevantné možnosti: „Skryť súbory metadát NTFS“ (predvolene povolené, aby sa zabránilo zobrazovaniu štandardných metadát skrytých systémom NTFS) a „Denník skenovania“ (predvolene povolené; zrušením začiarknutia sa preskočí skenovanie databázy Registry systému Windows ).
Pre automatizáciu podporuje parametre, ktoré umožňujú spustenie, prihlásenie a ukončenie bez zásahu: rootkitrevealer outputfile]. Možnosť -a začína a končí automaticky; -c vypísať výsledok do CSV; -m zobrazuje metadáta NTFS a -r zakáže skenovanie registra. Výstupný súbor musí byť v prístupný lokálny zväzok.
Vzdialené spustenie je možné pomocou PsExec. Napríklad: psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log. S -c, priebeh sa nezobrazuje a nezrovnalosti sa vytlačia vo formáte CSV, čo uľahčuje import v databázach alebo skriptoch.
Interpretácia výsledkov a typické odchýlky
Nezrovnalosti typu „Skryté pred rozhraním API systému Windows“ sú najčastejšie, keď rootkit skrýva položky. Ak ste nepovolili zobrazenie metadát NTFS, uvidíte rozdiely, pretože NTFS skrýva svoje interné súbory, ako napríklad $MFT alebo $Secure , pred rozhraním API . Niektoré antivírusové programy tiež ukladajú údaje do alternatívnych streamov a skrývajú ich, čo vedie k podobným chybám.
Toto sú niektoré zo štandardných metadát definovaných v systéme súborov NTFS (Windows Server 2003): $AttrDef, $BadClus, $BadClus:$Bad, $BitMap, $Boot, $LogFile, $Mft, $MftMirr, $Secure, $UpCase, $Volume, $Extend, $Extend\$Reparse, $Extend\$ObjId, $Extend\$UsnJrnl, $Extend\$UsnJrnl:$Max, $Extend\$Quota.
RKR koreluje tri zdroje v súborovom systéme: rozhranie API systému Windows, tabuľku hlavných súborov (MFT) a indexy adresárov na disku. Môžu sa zobraziť kombinácie ako „Viditeľné v rozhraní API, ale nie v indexe alebo MFT“, „Viditeľné v MFT, ale nie v rozhraní API“ atď., najmä ak sa počas analýzy vytvorí alebo odstráni súbor, čo vyvolá okno dočasnej nekonzistentnosti.
Príklad vytvorenia počas skenovania: C:\newfile.txt, s veľkosťou 8 bajtov, so správou „Viditeľné v API, ale nie v indexe alebo MFT“. Tieto prípady nemusia nevyhnutne poukazovať na rootkity, ale na súbežné zmeny počas vyšetrenia.
Ak sa zobrazí hlásenie „Prístup zamietnutý“, niečo nie je v poriadku: RootkitRevealer používa mechanizmy na prístup k akémukoľvek súboru, adresáru alebo kľúču, takže táto správa by sa za normálnych prevádzkových podmienok nemala zobraziť.
V registri je niekoľko zaujímavých nezrovnalostí: „Dĺžka rozhrania Windows API nie je v súlade s nespracovanými údajmi“ (možný pokus o skrytie skutočného obsahu), „Nezhoda typov“ (napr. je inzerované REG_SZ, ale malo by byť REG_BINARY), „Názov kľúča obsahuje vložené hodnoty NULL“ (známa technika, ktorá využíva rozdiel medzi reťazcami ukončenými hodnotou NULL a reťazcami s počtami). V tomto poslednom prípade pomáha utilita RegDelNull od spoločnosti Sysinternals vyčistiť kľúče s vloženými hodnotami NULL.
„Nezhoda údajov“ sa môže vyskytnúť, ak sa počas kontroly zmení hodnota (napr. doba prevádzkyschopnosti SQL Servera, ako napríklad HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc). Musíte overiť, či hodnota patrí legitímne komponenty ktoré aktualizujú údaje v reálnom čase.
Ilustratívnym prípadom bol rootkit HackerDefender: jeho služby a ovládače boli pre rozhranie API systému Windows neviditeľné, ale boli prítomné v surovom čítaní podregistra; to isté platilo aj pre jeho súbory, ktoré priama analýza súborového systému na disku zistila.
Bežné chyby a problémy s rootkitrevealer.exe vo forenzných prostrediach
Niektoré forenzné súpravy (napr. WinTaylor) uvádzajú typické chyby súvisiace s rootkitrevealer.exe , ako napríklad: „nie je platná aplikácia Win32“, „nenašla sa“, „chyba aplikácie“ alebo „problém so spustením“. Tieto správy sa zvyčajne vyskytujú počas inštalácie systému, spustenia alebo vypínania, alebo v dôsledku konfliktov s inými rezidentnými aplikáciami.
Medzi najčastejšie príčiny patria poškodené alebo chýbajúce súbory, neplatné položky v registri, infekcie škodlivým softvérom, neúplné odinštalácie alebo konflikty s iným softvérom. Zdrojom môže byť poškodená položka v registri, náhodné vymazanie iným nástrojom, neúspešné sťahovanie alebo predchádzajúca infekcia , ktorá zmenila binárny súbor.
Ako zaujímavosť v inventári, niektoré záznamy dokumentujú spustiteľný súbor s približnou veľkosťou 334 720 bajtov a hashovacie algoritmy ako SHA-1 a MD5 (napr. SHA‑1 d39e8a3fe92adc7d7fbc5293edf8a7b965484a59, MD5 ee738fe9bcdd605821002cec8c7206db) a CRC32 98b1af0b; odvolávajú sa aj na verzia 2.1 vo svojej kontajnerovej aplikácii a kategória „Forenzná sada nástrojov/operačný systém“.
Metódy detekcie a reakcie na rootkity
Detekcia rootkitu nie je vždy triviálna. Okrem špecifických nástrojov sa na identifikáciu podozrivých modulov kombinujú techniky, ako je analýza podpisov známych hrozieb, porovnávanie štruktúr za studena, vyhľadávanie v pamäti prekážok a zmien a kontrola pamäťových výpisov po haváriách . Je tiež bežné spoliehať sa na systémy prevencie narušení (IPS) na ochranu siete a zníženie vektorov infekcie.
Medzi špecializované nástroje patrí GMER (na detekciu skrytých procesov a zmien jadra), Kaspersky TDSSKiller (najmä na detekciu bootkitov a rootkitov jadra), Malwarebytes Anti-Rootkit, Microsoft Defender Offline (na skenovanie pred spustením systému Windows) a RogueKiller. Ich spustenie z dôveryhodného bootovacieho USB disku alebo v núdzovom režime znižuje riziko útoku.
V prípade ohrozenia bootovania alebo firmvéru sa odporúča použiť záchranné médiá, ako napríklad Kaspersky Rescue Disk, obnoviť MBR pomocou bootrec /fixmbr v prípade potreby a v závažných prípadoch aktualizujte/nainštalujte systém BIOS/UEFI na čistú verziu od výrobcu, aby ste odstránili problém nízka úroveň perzistencie.
Monitorovanie pomocou Sysinternals je neoceniteľné: Process Monitor (ProcMon) pre aktivitu procesov a súborov, Autoruns pre kontrolu toho, čo sa načíta pri spustení, a RootkitRevealer pre odhalenie rozdielov na vysokej/nízkej úrovni. Platformy SIEM ako Wazuh a telemetria v podnikových prostrediach dokážu odhaliť neočakávané správanie siete alebo zmeny integrity.
Ak sa infekcia potvrdí, rozumný postup je: odpojiť počítač od siete, skenovať z externého prostredia, vyhodnotiť integritu bootovania/firmvéru a ak neexistujú žiadne záruky, zálohovať údaje, úplne vyčistiť disk (nástrojmi ako DBAN) a znova nainštalovať z overeného média, potom povoliť opatrenia ako Secure Boot a TPM.
Prevencia: Primeraná ochrana pred rootkitmi
Prevencia je kľúčová. Udržiavajte svoj systém aktuálny, používajte záplaty na softvér tretích strán, vyhýbajte sa spustiteľným súborom z pochybných zdrojov a nepoužívajte cracky ani keygeny: sú obľúbeným vektorom pre balenie rootkitov, ktoré vytvárajú a zavádzajú programy .
Vypnite automatické spúšťanie USB, pred otvorením skenujte externé disky a v podnikových prostrediach obmedzte alebo blokujte porty a v prípade potreby použite brány firewall . Pracujte s neprivilegovanými používateľskými účtami, uplatňovajte princíp najnižších privilégií a pre kritické zmeny vyžadujte poverenia správcu, čím znížite pravdepodobnosť tichých eskalácií.
Na kompatibilnom hardvéri povoľte funkciu Secure Boot a TPM z UEFI, aby ste chránili reťazec zavádzania a utesnenie kľúčov. Pravidelne udržiavajte offline alebo nemenné zálohy a používajte snímky/body obnovenia na skrátenie času obnovy, ak sa niečo pokazí.
Ako sa inštalujú rootkity: droppery, zavádzače a vektory
Útočníci zvyčajne šíria rootkity ako kombinované hrozby: „dropper“, ktorý doručí balík, a „loader“, ktorý zneužíva zraniteľnosti (ako napríklad pretečenie vyrovnávacej pamäte) na umiestnenie implantátu tam, kde by nemal. Toto sa maskuje ako phishingové e-maily , falošné inštalátory alebo podvodné aktualizácie.
Medzi klasické vektory patrí únos klientov na odosielanie správ s cieľom šíriť škodlivé odkazy, trójsky softvér na portáloch na sťahovanie, používanie iného škodlivého softvéru ako nosičov a vkladanie do dokumentov s bohatým obsahom (napr. niektorých súborov PDF), ktoré po otvorení automaticky spustia dropper.
Znaky útoku a indície na detekciu
Cieľom rootkitu je zostať nepozorovaný. Napriek tomu môžete pozorovať zmeny konfigurácie bez zásahu používateľa, nezvyčajné prerušenia siete v dôsledku skrytej prevádzky, neznáme procesy, služby, ktoré nie je možné zatvoriť, a bezpečnostné nástroje vypnuté bez vysvetlenia.
Ďalším vodítkom sú protichodné informácie medzi nástrojmi, ktoré zobrazujú súbory, procesy alebo kľúče databázy Registry pomocou rôznych ciest (API verzus čítanie z RAW). Tu sa prejavujú prístupy ako RootkitRevealer: ten istý objekt, ktorý „je“ na disku, ale podľa API „nie je“, poukazuje na manipuláciu.
Hlavné typy rootkitov
Používateľský režim: Tieto fungujú na úrovni procesov a knižníc. Sú stabilnejšie a relatívne ľahšie sa detekujú, hoci môžu skrývať súbory, procesy a kľúče. Klasickým historickým príkladom je HackerDefender.
Režim jadra: Tieto vírusy sa nachádzajú v jadre, s úplnou kontrolou a veľkou nenápadnosťou; je ťažké ich odstrániť a pri nesprávnom návrhu majú tendenciu spôsobovať nestabilitu. Príklady tejto rodiny: TDL/Alureon vo svojom vývoji.
Hybridy: kombinujú používateľské a jadrové komponenty, aby vyvážili utajenie a stabilitu, čo vedie k popularite medzi útočníkmi vďaka ich praktickej všestrannosti.
Firmvér/Bootkity: Tieto infikujú BIOS/UEFI alebo bootovací sektor (MBR/UEFI) a načítajú sa pred operačným systémom. Technológie ako Secure Boot spôsobili, že mnohé klasické bootkity sú zastarané, ale objavili sa moderné implantáty UEFI.
Virtuálne a pamäťové: VMBR načítavajú hypervízor pod operačným systémom a virtualizujú ho; pamäťové VMBR sa nachádzajú iba v RAM a po reštarte zmiznú, čo je veľmi užitočné pre krátkodobé operácie.
Príklady a zvýraznená chronológia
Prvé rootkity pre SunOS boli vyvinuté v 90. rokoch 20. storočia; v roku 1999 Greg Hoglund opísal NTRootkit (Windows, režim jadra) a v roku 2003 sa objavil HackerDefender (Windows 2000/XP, používateľský režim), čo vyvolalo „preťahovanie lanom“ s nástrojmi ako RootkitRevealer.
V roku 2004 takzvaný „grécky Watergate“ použil rootkit na hacknutie viac ako 100 telefónov v sieti GSM; v roku 2005 sa zistilo, že spoločnosť Sony BMG zahrnula do niektorých CD rootkit proti pirátstvu, čo vyvolalo obrovskú bezpečnostnú kontroverziu.
Od roku 2008 sa vyvinuli bootkity ako TDL (TDL-1 až TDL-4); v roku 2009 „Machiavelli“ dokázal, že ani macOS (vtedy Mac OS X) nie je imúnny; v roku 2010 Stuxnet použil komponenty rootkitu na sabotáž iránskych priemyselných systémov.
V roku 2012 sa objavil Flame , masívny modulárny malvér ; v roku 2018 sa LoJax stal prvým UEFI rootkitom zisteným v reálnom čase; a v roku 2019 Scranos kombinoval krádež prihlasovacích údajov a skryté generovanie príjmov s klikacími farmami prostredníctvom masovo napadnutých prehliadačov.
Zdroje a odporúčaná literatúra
Vyšetrovanie Marka Russinovicha v prípade Sony a jeho článok „Odhaľovanie rootkitov“ v časopise Windows IT Pro pomáhajú pochopiť fenomén a techniku, ktorá stojí za RKR; kniha „Rootkity: Podvracanie jadra systému Windows“ od Grega Hoglunda a Jamieho Butlera je najpodrobnejším pojednaním o tejto téme.
Archív Phrack, kniha Petra Szora „Umenie výskumu a obrany proti počítačovým vírusom“, kniha Eda Skoudisa a Lennyho Zeltsera „Malware: Boj proti škodlivému kódu“ a séria „Windows Internals“ (od 4. vydania) sú nevyhnutnými materiálmi pre každého, kto sa chce hlbšie ponoriť do architektúry a serióznych protiopatrení.
RootkitRevealer v ekosystéme Sysinternals
RKR existuje spolu s ďalšími nástrojmi od spoločnosti Sysinternals, ktoré sú užitočné pri výskume: AccessChk a AccessEnum (efektívne oprávnenia), Autoruns (všetko, čo sa spúšťa so systémom), Process Explorer (kto čo otvoril a s ktorou knižnicou DLL), PsExec/PsTools (vzdialené spúšťanie a správa), PsLogList a PsLoggedOn (udalosti a relácie), Sigcheck (digitálne podpisy), SDelete (zabezpečené mazanie), ShareEnum (zdieľané zdroje) a Sysmon (pokročilá telemetria v denníku udalostí).
V historických repozitároch je bežné nájsť odkazy na „Stiahnuť 1.71“, ako aj na „Spustiť teraz“ prostredníctvom Sysinternals Live. Hoci je projekt veteránom, jeho spôsob myslenia – porovnávanie vysokoúrovňových a nízkoúrovňových prístupov – zostáva kľúčový pre lov rootkitov.
RootkitRevealer je predovšetkým lekciou obranného inžinierstva: ak niečo manipuluje s tým, čo API vracia, musíte sa pozrieť pod povrch a porovnať to s tým, čo skutočne existuje na disku a v registri; s osvedčenými postupmi, vhodnými nástrojmi a offline overením, keď je to potrebné, je možné odhaliť, čo sa snaží skryť tam, kde si myslíme, že sa nikto nepozrie.
Index
- 1 Čo je RootkitRevealer a na akých systémoch funguje?
- 2 Čo je rootkit? Kľúčové pojmy
- 3 Ako funguje RootkitRevealer
- 4 Požiadavky, osvedčené postupy a vykonávanie
- 5 Interpretácia výsledkov a typické odchýlky
- 6 Bežné chyby a problémy s rootkitrevealer.exe vo forenzných prostrediach
- 7 Metódy detekcie a reakcie na rootkity
- 8 Prevencia: Primeraná ochrana pred rootkitmi
- 9 Ako sa inštalujú rootkity: droppery, zavádzače a vektory
- 10 Znaky útoku a indície na detekciu
- 11 Hlavné typy rootkitov
- 12 Príklady a zvýraznená chronológia
- 13 Zdroje a odporúčaná literatúra
- 14 RootkitRevealer v ekosystéme Sysinternals