chkrootkit
chkrootkit je program, který se kombinací různých vlastních nástrojů pokusí zjistit přítomnost rootkitu v systému.
Instalace
Nainstalujte balík chkrootkit.
Spuštění
chkrootkit spustíte z Terminálu pomocí
sudo chkrootkit
pro podrobný výstup všech testovaných oblastí a jejich výsledků, anebo
sudo chkrootkit -q
pokud chcete vidět jen podezřelé nálezy a chybová hlášení (q jako quiet).
Použití
Spusťte chkrootkit pomocí
sudo chkrootkit -q
Pokud program najde podezřelé soubory nebo jiné skutečnosti, nepropadejte panice. Uvědomte si, že se jedná o aplikaci s velmi širokým záběrem, a proto často najde tzv. false positives (podezřelé soubory, které jsou ale v pořádku). Zkontrolujte podrobný popis testů a jejich výsledků níže, nebo vyhledejte popis souboru na internetu, příp. se zeptejte na fóru. Další možností je spustit chkrootkit na LiveCD nebo čisté instalaci - pokud je výstup stejný, vše je v pořádku.
Podrobný popis testů a výstupu
Následuje podrobný popis výstupu po zadání sudo chkrootkit a možných problémů. Výstup je rozdělen na dané podoblasti. Legenda:
Checking - kontroluji
not found - soubor/adresář nenalezen
nothing found - nic podezřelého nenalezeno
not infected - soubor/adresář je v pořádku
INFECTED - tak to je špatné znamení…
infected but disabled - napadené, ale nefunkční
ROOTDIR
$ sudo chkrootkit ROOTDIR is `/'
ROOTDIR označuje kořenový adresář systému, který kontrolujeme. Pokud jedeme z běžícího systému, je jím /. Je ale možné (a doporučené) tento test zkombinovat s testem z LiveCD nebo jiného systému na disku pomocí
sudo chkrootkit -r /media/ubuntu
(kde /media/ubuntu je cesta ke kontrolovanému systému, spouštěno z běžícího LiveCD), protože takto má případný rootkit menší šanci se „schovat“.
Kontrola integrity základních příkazů systému
Checking `amd'... not found Checking `basename'... not infected Checking `biff'... not found [... (kráceno) ...] Checking `vdir'... not infected Checking `w'... not infected Checking `write'... not infected
Rootkit se často pokusí změnit původní příkazy systému na svou verzi tak, aby zakryl svou činnost. chkrootkit projede svou databázi těchto příkazů a porovná ji s databází známých „podvrhů“. Obecně řečeno je to slabý způsob detekce útoku - při jakékoli změně známého rootkitu je tento postup neúčinný. Chrání ale před běžnými útočníky používajícími volně dostupné návody na internetu. Lepší variantou by pro tento typ útoku byl např. tripwire.
Kontrola systému na známé rootkity
Checking `aliens'... no suspect files Searching for sniffer's logs, it may take a while... nothing found [... (kráceno) ...] Searching for suspect PHP files... nothing found Checking `asp'... not infected
Neúspěšný rootkit (anebo rootkit kontrolovaný z jiného systému) za sebou zanechá typické stopy - pokud jsou tyto známé, chkrootkit je najde a vypíše.
Problém "The following suspicious files and directories were found:"
Jedna obecná část tohoto testu se zaměřuje na skryté soubory v důležitých adresářích - najdeme zde tedy plno souborů, které jsou v pořádku, jen jsou skryté, a proto podezřelé.
Searching for suspicious files and dirs, it may take a while... The following suspicious files and directories were found: /usr/lib/pymodules/python2.6/.path /usr/lib/xulrunner-1.9.2.7/.autoreg /usr/lib/jvm/.java-6-openjdk.jinfo /usr/lib/thunderbird-3.0.5/.autoreg /usr/lib/firefox-3.6.7/.autoreg
Otevřené porty
Checking `bindshell'... not infected
Kontroluje otevřené porty, funkční kontrola jen z běžícího systému.
Skryté procesy, adresáře apod.
Checking `lkm'... chkproc: nothing detected chkdirs: nothing detected
Hledá známé LKM rootkity. Dále kontroluje, zda není rozdíl mezi výstupem příkazu ps a seznamem procesů v /proc (chkproc), a mezi skutečným a deklarovaným počtem souborů v adresáři (chkdirs). Případné rozdíly naznačují pokus o maskování a jsou podezřelé.
Sniffers
Checking `sniffer'... lo: not promisc and no packet sniffer sockets eth0: PACKET SNIFFER(/sbin/dhclient3[858])
Kontroluje, zda není aktivní sniffer síťové komunikace, funkční kontrola jen z běžícího systému. Pokud používáte dhclient, který komunikuje s DHCP serverem, je uveden jako podezřelý, protože je zapnut v tzv. promiskuitním módu.
Kontrola logů
Rootkity za sebou zametávají stopy, které zanechaly v logách systému (přihlášení, odhlášení apod). Tato část kontroluje, zda k podobnému „úklidu“ v systému nedošlo.
Checking `wted'... chkwtmp: nothing deleted Checking `z2'... user franta deleted or never logged from lastlog! Checking `chkutmp'... chkutmp: nothing deleted
nothing deleted je zpráva, kterou chceme vidět.
Problém "user franta deleted or never logged from lastlog!"
Logy nezaznamenávají grafické přihlášení, takže pokud se franta nikdy nepřihlásil z konzole, program ho identifikuje jako podezřelého, protože ho nemůže v logách najít.
Odstranění
Odeberte balík chkrootkit
.