Obsah

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.

Odkazy