- A RootkitRevealer eltéréseket észlel a Windows API-k és a nyers adatok között, hogy feltárja a rejtett tartalmakat.
- Eredmények értelmezése: NTFS metaadatok, beállításjegyzékbeli és fájlrendszerbeli eltéréstípusok.
- Használja a PsExec parancs -a -c -m -r és távoli végrehajtási opcióit; ez minimális téves riasztást igényel, amikor a rendszer tétlen.
- Megelőzés és reagálás: Biztonságos rendszerindítás/TPM, offline vizsgálatok, rootkit-ellenes eszközök és ellenőrzött visszaállítás.

A RootkitRevealer egyike azoknak a legendás segédprogramoknak, amelyeket minden Windows-szakembernek ismernie kell; a Sysinternals csapata fejlesztette ki Mark Russinovich vezetésével, és bár évekkel ezelőtt jelent meg, továbbra is referenciaként szolgál annak megértéséhez, hogyan lehet felismerni a rootkitek által okozott eltéréseket a rendszer által megjelenített és a lemezen ténylegesen lévő tartalom között.
Más szkennerekkel ellentétben nem keres aláírásokat vagy mintákat: a Windows API magas szintű nézetét összehasonlítja a lemez és a beállításjegyzék nyers, alacsony szintű olvasásával. Ez a látszólag egyszerű ötlet felfedi, ha a rosszindulatú program megpróbál fájlokat, kulcsokat vagy értékeket elrejteni a rendszerhívások manipulálásával.
Mi az a RootkitRevealer és milyen rendszereken működik?
Ez egy fejlett eszköz a rootkitek jeleinek észlelésére mind felhasználói, mind kernel módban . Eredetileg Windows XP és Windows Server 2003 (32 bites) rendszerekhez fejlesztették ki, és általában ingyenesként, angol nyelven érhető el, mérete körülbelül 231 KiB; sok lista a Windows NT/2000/XP/Vista rendszerekkel való kompatibilitását is jelezte abban az időben.
Idővel a tisztán parancssori verzióját megszüntették, mivel egyes rosszindulatú programok készítői elkezdték figyelni a futtatható fájl nevét; ennek elkerülése érdekében a program egy véletlenszerűen elnevezett másolatból indul szolgáltatásként, ami megnehezíti a név szerinti észlelést és bonyolítja a 100%-ban konzolos felület biztosítását.
Mi az a rootkit? Kulcsfogalmak
A rootkit kifejezés olyan technikákra és mechanizmusokra utal, amelyek lehetővé teszik a rosszindulatú programok (vírusok, trójai programok, kémprogramok stb.) elrejtését a felhasználó és a biztonsági eszközök elől . Több családot különböztetnek meg: az állandó (túléli az újraindítást), a memóriában tárolt (újraindításkor eltűnik), a felhasználói módú és a kernel módú, valamint más modern változatokat.
Egy felhasználói módú rootkit képes elfogni olyan függvényeket, mint a FindFirstFile/FindNextFile, vagy a rendszer natív felsorolóit, hogy kiszűrje azokat a bejegyzéseket, amelyek felfednék a módosított fájlokat, folyamatokat vagy beállításkulcsokat . Ez megakadályozza, hogy az Intéző, a parancssor vagy a beállításjegyzék-szerkesztők lássák, mi is létezik valójában.
A kernel módú rootkitek ennél tovább mennek: a natív API elfogása mellett közvetlenül is manipulálhatják a kernel struktúráit, például eltávolíthatják a folyamatukat az aktív folyamatok listájából, így azok nem jelennek meg a Feladatkezelőben vagy a Folyamatkezelőben, még akkor sem, ha futnak.
Léteznek hibridek (részben felhasználó-alapúak, részben kernel-alapúak), firmware-alapúak (BIOS/UEFI és egyéb komponensek), boot vagy bootkit alapúak (MBR/UEFI), virtuálisak (amelyek a tényleges operációs rendszert egy virtuális gépbe helyezik), és memória-alapúak (nem perzisztensek) rendszerbetöltők. Ez utóbbiak különösen nehezen megfoghatók lehetnek, míg a firmware és a rendszerbetöltők még az operációs rendszer tiszta újratelepítése után is megmaradnak.
Hogyan működik a RootkitRevealer?
Az RKR két pillanatképet hasonlít össze: a Windows API magas szintű nézetét, valamint a kötet és a beállításjegyzék alfájának (kaptárak) nyers, alacsony szintű beolvasását. Ha egy rootkit magas szintű hívásokkal próbál elrejteni valamit, ez a módosítás kiderül, mert a lemezen és a beállításjegyzékben lévő adatok nem egyeznek meg azzal, amit az API állít, ami diagnosztizálható eltéréseket generál.
Elméletileg egy rootkit megpróbálhatna elrejtőzni a RootkitRevealer elől úgy, hogy elfogja annak nyers olvasatait, és menet közben átírja az adatokat. Ehhez alapos ismeretekre lenne szüksége az NTFS, FAT és beállításjegyzék-formátumokról, és képesnek kellene lennie a struktúrák módosítására inkonzisztenciák vagy nyilvánvaló mellékhatások nélkül – ez egy rendkívül összetett technikai bravúr , amelyet ritkán figyeltek meg. Ennek ellenére nincs tévedhetetlen „univerzális detektor”: még a külső környezetből történő indítást (például a legjobb Linux disztribúciók használatával ) is szabotálhatják különösen kifinomult és tartós műtermékek . A gyakorlatban a legrobusztusabb megközelítés az online elemzés és az offline ellenőrzés kombinálása megbízható környezetekben.
Követelmények, bevált gyakorlatok és végrehajtás
A vizsgálat futtatásához a fióknak rendelkeznie kell a „Fájlok és könyvtárak biztonsági mentése”, az „Illesztőprogramok betöltése” és a „Kötetkarbantartás” jogosultságokkal (ezeket alapértelmezés szerint a rendszergazdák kapják meg Windows XP és újabb rendszereken). A téves riasztások minimalizálása érdekében ajánlott a vizsgálatot nyugalmi állapotban lévő rendszeren futtatni, és semmilyen alkalmazást nem szabad megnyitni.
Manuális végrehajtás esetén egyszerűen nyomja meg a vizsgálat gombot. A folyamat során a program frissítéseket nyújt a folyamat előrehaladásáról, és felsorolja az esetleges eltéréseket. Két releváns lehetőség van: az „NTFS metaadatfájlok elrejtése” (alapértelmezés szerint engedélyezve van, hogy elkerülje az NTFS által rejtett szabványos metaadatok megjelenítését) és a „Vizsgálati napló” (alapértelmezés szerint engedélyezve van; a bejelölés törlése kihagyja a Windows rendszerleíró adatbázis vizsgálatát ).
Az automatizáláshoz olyan paramétereket támogat, amelyek lehetővé teszik a beavatkozás nélküli indítást, bejelentkezést és kilépést: rootkitrevealer outputfile]. Az opció -a automatikusan elindul és befejeződik; -c az eredményt CSV formátumban kell kiírni; -m megjeleníti az NTFS metaadatokat; és -r letiltja a rendszerleíró adatbázis vizsgálatát. A kimeneti fájlnak egy elérhető helyi kötet.
A PsExec segítségével távoli végrehajtás is lehetséges. Például: psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log. a -c, a folyamat előrehaladása nem jelenik meg, az eltérések pedig CSV formátumban jelennek meg, ami megkönnyíti az importálást adatbázisokban vagy szkriptekben.
Az eredmények értelmezése és a tipikus eltérések
Az „Elrejtve a Windows API elől” eltérések a leggyakoribbak, amikor egy rootkit elrejti a bejegyzéseket. Ha nem engedélyezte az NTFS metaadatok megjelenítését, akkor eltéréseket fog látni, mert az NTFS elrejti a belső fájljait, például a $MFT vagy a $Secure fájlt az API elől . Egyes víruskereső programok alternatív adatfolyamokban is tárolják az adatokat, és elrejtik azokat, ami hasonló hibákat eredményez.
Íme néhány az NTFS-ben (Windows Server 2003) definiált szabványos metaadatok közül: $AttrDef, $BadClus, $BadClus:$Bad, $BitMap, $Boot, $LogFile, $Mft, $MftMirr, $Secure, $UpCase, $Volume, $Extend, $Extend\$Reparse, $Extend\$ObjId, $Extend\$UsnJrnl, $Extend\$UsnJrnl:$Max, $Extend\$Quota.
Az RKR három forrást korrelál a fájlrendszerben: a Windows API-t, a Master File Table-t (MFT) és a lemezen található könyvtárindexeket. Előfordulhatnak olyan kombinációk, mint a „Látható az API-ban, de nem az indexben vagy az MFT-ben”, a „Látható az MFT-ben, de nem az API-ban” stb., különösen akkor, ha egy fájl létrehozása vagy törlése az elemzés során történik, és ez ideiglenes inkonzisztencia ablakot eredményez.
Példa létrehozásra szkennelés közben: C:\newfile.txt, 8 bájt méretű, a „Látható az API-ban, de nem az indexben vagy az MFT-ben” üzenettel. Ezek az esetek nem feltétlenül rootkitekre mutatnak, hanem egyidejű változások miközben vizsgálják.
Ha a „Hozzáférés megtagadva” üzenet jelenik meg, valami nincs rendben: a RootkitRevealer mechanizmusokat használ bármilyen fájl, könyvtár vagy kulcs eléréséhez, így ennek az üzenetnek normál futási körülmények között nem szabadna megjelennie.
A beállításjegyzékben számos érdekes eltérés található: „A Windows API hossza nem egyezik a nyers adatokkal” (valószínűleg a tényleges tartalom elrejtésére tett kísérlet), „Típuseltérés” (pl. a REG_SZ meg van hirdetve, de REG_BINARY-nak kellene lennie), „A kulcs neve beágyazott NULL értékeket tartalmaz” (egy ismert technika, amely kihasználja a NULL-lal végződő karakterláncok és a számlálószámmal rendelkező karakterláncok közötti különbséget). Ez utóbbi esetben a Sysinternals RegDelNull segédprogramja segít megtisztítani a beágyazott NULL értékeket tartalmazó kulcsokat.
„Adateltérések” akkor fordulhatnak elő, ha egy érték megváltozik a vizsgálat során (pl. az SQL Server üzemideje, mint például HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\RECOVERYMANAGER\MSSQLServer\uptime_time_utc). Ellenőriznie kell, hogy az érték a következőhöz tartozik-e: legitim összetevők amelyek valós időben frissítik az adatokat.
Szemléltető eset volt a HackerDefender rootkit: szolgáltatásai és illesztőprogramjai láthatatlanok voltak a Windows API számára, de jelen voltak a rendszerleíró adatbázis nyers olvasatában; ugyanez igaz volt a fájljaira is, amelyeket a fájlrendszer közvetlen elemzése kimutatott a lemezen.
Gyakori hibák és problémák a rootkitrevealer.exe fájllal forenzikus környezetekben
Néhány forenzikus készlet (például a WinTaylor) tipikus hibákat sorol fel a rootkitrevealer.exe fájllal kapcsolatban, például: „nem érvényes Win32 alkalmazás”, „nem található”, „alkalmazáshiba” vagy „indítási probléma”. Ezek az üzenetek általában a rendszer telepítése, indítása vagy leállítása során, illetve más rezidens alkalmazásokkal való ütközés miatt jelentkeznek.
A leggyakoribb okok közé tartoznak a sérült vagy hiányzó fájlok, érvénytelen beállításjegyzékbeli bejegyzések, kártevőfertőzések, hiányos eltávolítások vagy ütközések más szoftverekkel. A forrás lehet egy sérült beállításjegyzékbeli bejegyzés, véletlen törlés egy másik eszköz által, sikertelen letöltés vagy egy korábbi fertőzés , amely módosította a bináris fájlt.
A leltár érdekessége, hogy egyes listák a végrehajtható fájl hozzávetőleges méretét 334 720 bájtként dokumentálják, és hash-ek, például SHA‑1 és MD5 (pl. SHA‑1 d39e8a3fe92adc7d7fbc5293edf8a7b965484a59, MD5 ee738fe9bcdd605821002cec8c7206db) és CRC32 98b1af0b; arra is utalnak, hogy 2.1-es verzió a konténeralkalmazásában és a „Forensic Toolkit/Operációs rendszer” kategória.
Rootkit-észlelési és -elhárítási módszerek
A rootkit-ek észlelése nem mindig triviális. A specifikus eszközökön túl olyan technikákat kombinálnak, mint az ismert fenyegetések szignatúra-elemzése, a struktúrák hideg összehasonlítása, a memóriakeresés hookok és módosítások után, valamint a memóriaképek áttekintése összeomlások után a gyanús modulok azonosítása érdekében. Gyakori a behatolásmegelőző rendszerek (IPS) használata is a hálózat védelme és a fertőzési vektorok csökkentése érdekében.
A speciális segédprogramok közé tartozik a GMER (rejtett folyamatok és kernel-módosítások észlelésére), a Kaspersky TDSSKiller (különösen a bootkitek és kernel rootkitek észlelésére), a Malwarebytes Anti-Rootkit, a Microsoft Defender Offline (a Windows indítása előtti vizsgálathoz) és a RogueKiller. Ezeknek a megbízható, bootolható USB-meghajtóról vagy csökkentett módban történő futtatása csökkenti a támadási felületet.
Rendszerindítási vagy firmware-fenyegetések esetén ajánlott mentőmédiát, például Kaspersky Rescue Disk-et használni, az MBR-t pedig a következővel visszaállítani: bootrec /fixmbr adott esetben és súlyos esetekben frissítse/flashelje a BIOS/UEFI-t egy tiszta verzióra a gyártótól a probléma megoldása érdekében alacsony szintű perzisztencia.
A Sysinternals segítségével történő monitorozás felbecsülhetetlen értékű: a Process Monitor (ProcMon) a folyamatok és fájlok aktivitását, az Autoruns az indításkor betöltődő fájlokat ellenőrzi, a RootkitRevealer pedig a magas/alacsony szintű eltéréseket figyeli. A vállalati környezetekben használt SIEM platformok, mint például a Wazuh és a telemetria váratlan hálózati viselkedéseket vagy integritásváltozásokat tárhatnak fel.
Ha a fertőzés megerősítést nyer, az ésszerű sorrend a következő: leválasztani a gépet a hálózatról, külső környezetből beolvasni, kiértékelni a rendszerindítási/firmware integritását, és ha nincs garancia, akkor biztonsági másolatot készíteni az adatokról, teljesen megtisztítani a lemezt (például DBAN-nal) és újratelepíteni ellenőrzött adathordozóról, majd engedélyezni olyan intézkedéseket, mint a Secure Boot és a TPM.
Megelőzés: Ésszerű védelem a rootkitek ellen
A megelőzés kulcsfontosságú. Tartsa naprakészen rendszerét, telepítsen javításokat harmadik féltől származó szoftverekre, kerülje a kétes forrásból származó futtatható fájlokat, és ne használjon crackeket vagy keygeneket: ezek a rootkit- ledobók és -betöltők csomagolásának kedvelt vektorai.
Tiltsa le az USB automatikus futtatását, vizsgálja át a külső meghajtókat megnyitás előtt, vállalati környezetben korlátozza vagy blokkolja a portokat, és szükség esetén alkalmazzon tűzfalakat . Dolgozzon nem privilégiumozott felhasználói fiókokkal, alkalmazza a minimális jogosultságok elvét, és kérjen rendszergazdai hitelesítő adatokat a kritikus változtatásokhoz, csökkentve a csendes eszkalációk valószínűségét.
Kompatibilis hardvereken engedélyezze az UEFI biztonságos rendszerindítását és a TPM-et a rendszerindító lánc és a kulcszár védelme érdekében. Rendszeresen készítsen offline vagy megváltoztathatatlan biztonsági mentéseket, és használjon pillanatképeket/visszaállítási pontokat a helyreállítási idő lerövidítésére, ha valami hiba történik.
A rootkitek telepítése: dropperek, betöltők és vektorok
A támadók jellemzően kombinált fenyegetésként terjesztik a rootkiteket: egy „dropper”, amely kézbesíti a csomagot, és egy „betöltő”, amely sebezhetőségeket (például puffer túlcsordulásokat) használ ki, hogy a telepítést oda helyezze el, ahová nem kellene. Ezt adathalász e-mailekként , hamis telepítőkként vagy csalárd frissítésekként álcázzák.
A klasszikus vektorok közé tartozik az üzenetküldő kliensek eltérítése rosszindulatú linkek terjesztése céljából, trójai szoftverek letöltési portálokon, más rosszindulatú programok használata hordozóként, valamint gazdag tartalmú dokumentumokba (pl. bizonyos PDF-ekbe) beágyazás, amelyek megnyitásakor automatikusan aktiválódik a dropper.
Támadási jelek és észlelési nyomok
A rootkit célja, hogy észrevétlen maradjon. Ennek ellenére előfordulhatnak felhasználói beavatkozás nélküli konfigurációs változások, rejtett forgalom miatti szokatlan hálózati megszakítások, ismeretlen folyamatok, bezárhatatlan szolgáltatások és magyarázat nélkül letiltott biztonsági eszközök.
Egy másik nyom a fájlokat, folyamatokat vagy beállításkulcsokat különböző elérési utakat használó segédprogramok közötti ellentmondó információk (API versus nyers olvasás). Itt mutatkoznak meg olyan megközelítések, mint a RootkitRevealer: ugyanaz az objektum, amely "van" a lemezen, de "nincs" az API szerint, manipulációra utal.
A rootkitek főbb típusai
Felhasználói mód: Ezek folyamat- és könyvtárszinten működnek. Stabilabbak és viszonylag könnyebben észlelhetők, bár képesek fájlokat, folyamatokat és kulcsokat elrejteni. Klasszikus történelmi példa erre a HackerDefender.
Kernel mód: Ezek a vírusok a kernelben találhatók, teljes kontrollal és nagyfokú lopakodással; nehéz kiirtani őket, és rosszul megtervezett változatok esetén instabilitást okozhatnak. Példák erre a családra: TDL/Alureon evolúciója során.
Hibridek: a felhasználói és a kernel komponenseket kombinálják az elrejtés és a stabilitás egyensúlyának megteremtése érdekében, ami gyakorlati sokoldalúságuknak köszönhetően népszerűséghez vezet a támadók körében.
Firmware/Bootkitek: Ezek megfertőzik a BIOS-t/UEFI-t vagy a boot szektort (MBR/UEFI), hogy az operációs rendszer előtt töltsék be. Az olyan technológiák, mint a Secure Boot, sok klasszikus bootkitet elavulttá tettek, de megjelentek a modern UEFI implantátumok.
Virtuális és memória alapú: A virtuális gépes briliánsok betöltenek egy hipervizort az operációs rendszer alá és virtualizálják azt; a memória alapúak csak a RAM-ban tárolódnak és újraindításkor eltűnnek, ami nagyon hasznos az átmeneti műveletekhez.
Példák és kiemelt kronológia
A SunOS-hez készült első rootkiteket az 90-es években fejlesztették ki; 1999-ben Greg Hoglund írta le az NTRootkit-et (Windows, kernel mód), majd 2003-ban megjelent a HackerDefender (Windows 2000/XP, felhasználói mód), ami egy „kötélhúzást” indított el olyan eszközökkel, mint a RootkitRevealer.
2004-ben az úgynevezett „görög Watergate” egy rootkitet használt több mint 100 telefon feltörésére egy GSM-hálózaton; 2005-ben kiderült, hogy a Sony BMG kalózkodás elleni rootkitet helyezett el egyes CD-ken, ami hatalmas biztonsági vitát váltott ki.
2008 óta olyan bootkitek, mint a TDL (TDL-1-től TDL-4-ig), fejlődtek; 2009-ben „Machiavelli” bebizonyította, hogy a macOS (akkoriban Mac OS X) sem immunis; 2010-ben a Stuxnet rootkit-összetevőket használt iráni ipari rendszerek szabotálására.
2012-ben megjelent a Flame , egy hatalmas moduláris rosszindulatú program ; 2018-ban a LoJax volt az első észlelt UEFI rootkitek; 2019-ben pedig a Scranos a hitelesítő adatok ellopását és a rejtett bevételszerzést kombinálta a kattintásfarmokkal tömegesen feltört böngészőkön keresztül.
Források és ajánlott olvasmányok
Mark Russinovich vizsgálata a Sony-ügyben és a Windows IT Pro folyóiratban megjelent „Unearthing Rootkits” (Rootkitek feltárása) című cikke segít megérteni az RKR jelenségét és mögötte álló technikát; Greg Hoglund és Jamie Butler „Rootkits: Subverting the Windows Kernel” (Rootkitek: A Windows kernel felforgatása) című könyve a témában a legalaposabb értekezés.
A Phrack Archívum, Peter Szor „A számítógépes víruskutatás és -védelem művészete”, Ed Skoudis és Lenny Zeltser „Malware: Fighting Malicious Code” (Kártevők: A rosszindulatú kód elleni küzdelem) című művei, valamint a „Windows Internals” sorozat (4. kiadástól) nélkülözhetetlen anyagok mindazok számára, akik mélyebben szeretnének elmerülni az architektúrában és a komoly ellenintézkedésekben.
RootkitRevealer a Sysinternals ökoszisztémában
Az RKR más, a kutatásban hasznos Sysinternals segédprogramokkal együtt létezik: AccessChk és AccessEnum (hatékony jogosultságok), Autoruns (minden, ami a rendszerrel kezdődik), Process Explorer (ki mit nyitott meg és melyik DLL-lel), PsExec/PsTools (távoli végrehajtás és adminisztráció), PsLogList és PsLoggedOn (események és munkamenetek), Sigcheck (digitális aláírások), SDelete (biztonságos törlés), ShareEnum (megosztott erőforrások) és Sysmon (fejlett telemetria az eseménynaplóban).
Gyakori, hogy a korábbi adattárakban „Download 1.71” (1.71-es verzió letöltése) hivatkozásokat találunk, valamint a Sysinternals Live-on keresztül a „Futtatás most” (Most futtatás) hivatkozásokat. Bár a projekt veterán, a gondolkodásmódja – a magas és az alacsony szintű megközelítések összehasonlítása – továbbra is kulcsfontosságú a rootkit-vadászatban.
A RootkitRevealer mindenekelőtt a védekező mérnöki munka leckéje: ha valami manipulálja az API által visszaadott adatokat, akkor le kell nézni, és össze kell hasonlítani a lemezen és a beállításjegyzékben található adatokkal; bevált gyakorlatokkal, megfelelő eszközökkel és szükség esetén offline ellenőrzéssel feltárható, hogy mi próbál elrejtőzni ott, ahol szerintünk senki sem fogja keresni.
Index
- 1 Mi az a RootkitRevealer és milyen rendszereken működik?
- 2 Mi az a rootkit? Kulcsfogalmak
- 3 Hogyan működik a RootkitRevealer?
- 4 Követelmények, bevált gyakorlatok és végrehajtás
- 5 Az eredmények értelmezése és a tipikus eltérések
- 6 Gyakori hibák és problémák a rootkitrevealer.exe fájllal forenzikus környezetekben
- 7 Rootkit-észlelési és -elhárítási módszerek
- 8 Megelőzés: Ésszerű védelem a rootkitek ellen
- 9 A rootkitek telepítése: dropperek, betöltők és vektorok
- 10 Támadási jelek és észlelési nyomok
- 11 A rootkitek főbb típusai
- 12 Példák és kiemelt kronológia
- 13 Források és ajánlott olvasmányok
- 14 RootkitRevealer a Sysinternals ökoszisztémában