K tomuto účelu je určeno několik programů, které jsem zběžně otestoval. V tomto mini-testu nejsou obsaženy produkty Tripwire (zejména proto, že je k dispozici pouze verze pro RH 5.1 nebo 5.2, které bohužel nemám k dispozici) a ViperDB (z doslechu vím, že se jedná o zajímavý program, ale bohužel, doména resentment.org, kde se měl nacházet dočista zmizela z nameserverů a nenašel jsem ani žádný mirror).
Kromě popisu možností programu naleznete u každého dva časové údaje. I: značí čas inicializace, tedy prvotního vytvoření databáze a K: čas kontroly v minutách a vteřinách. Uvedené časy jsou pouze ilustrativní a byly měřeny vždy s výchozím nastavením programu, bez jiných úprav, než je nastavení adresářů určených ke kontrole. Jejich srovnávání není dost dobře možné, protože každý program používá jiné metody kontroly.
Sledováno bylo celkem 9506 souborů o celkové velikosti 220 MB.
Aide
Aide je zajímavý program, který se zdá být poměrně rychlý a dobře konfigurovatelný. Oproti ostatním produktům v testu je nejpružnější v nastavování toho, co kontrolovat a co ne. Navíc je u Aide vidět, že autor si nejdříve sedl a popřemýšlel. Projevuje se to například možností přidání dalších kontrolních algoritmů nebo flexibilním definováním reportingu. Detekce změn je řešena kombinací porovnávání výsledků kontrolních algoritmů (MD5, SHA1, RMD160, Tiger) a běžných atributů souborů (přístupová práva, velikost, timestamp atd.). I v této oblasti je vše konfigurovatelné, takže lze například sledovat pouze změnu velikosti souboru nebo naopak použít všechny čtyři hashovací algoritmy. Navíc lze pro různé adresáře nastavit odlišné kombinace sledovaných parametrů.
Na Aide mi vadí dvě věci: momentálně nedisponuje možností reportingu na email (to ale v testovaných verzích neumí žádný ze zde uvedených programů) a syntaxe jeho konfiguračního souboru mi přijde značně obskurní a nepřehledná. To je ale asi jenom otázka zvyku. Menší výtku bych měl ke kompilaci programu: možná jsem přehnaně paranoidní, ale program tohoto typu by se podle mě mel linkovat staticky, aby se předešlo případným problémům s LD_* proměnnými prostředí (a možná by binárka měla být i stripnutá).
I: 1:46 K: 1:51
Fcheck
Fcheck je perlový skript, který kontroluje pouze následující údaje: inode, velikost a datum vytvoření souboru a jeho velikost. To je z praktického hlediska de facto nulová ochrana. Všechny uvedené údaje lze relativně snadno měnit (nebo alespoň lze docílit toho, že se při podvratné činnosti nezmění) a navíc mám osobně i výhrady k tomu, že Fcheck je skript. To znamená jednak to, že lze buď program přímo změnit (tedy binárku v podstatě také, ale dá to daleko víc práce) nebo alespoň zjistit, co dělá a podle toho se zachovat. Navíc je interpretr zbytečně složitý program, který má jistě daleko více potenciálních bezpečnostních děr než malý jednoúčelový nástroj.
V případě Fchecku mě ještě zaráží propastný rozdíl v délce prvotního generování databáze a pozdější kontrole souborů.
I: 0:04 K: 1:00
L5
L5 je jednoduchoučký program s pouze několika málo volbami. Skoro se mi zdá, že je až příliš primitivní. Jeho jediným posláním je vygenerování databáze, která obsahuje inode, přístupová práva, počet linků, user a group id, velikost souboru, čas poslední modifikace a MD5 kontrolní součet. Pokud nejsem úplně slepý, L5 nedělá ani porovnání nové a staré databáze, to je zřejmě třeba provést ručně. Podotýkám, že nevím, jestli jsem našel poslední verzi L5. Odkaz na něj jsem totiž nenašel ani na Freshmeatu ani na LinuxApps, takže verze, kterou jsem použil z jednoho italského ftp serveru, možná již existuje něco novějšího, chytřejšího.
I: 1:52 K: stejná jako inicializace
Sentinel
Sentinel používá na rozdíl od většiny podobných programů hashovací algoritmus RIPEMD-160bit MAC (ten umí i Aide), který není patentován a údajně je i bezpečnější než MD5. Nevýhodou Sentinelu je poměrně nízká konfigurovatelnost a hlavně malá rychlost (přibližně o jednu třetinu nižší, než u Aide s algoritmem MD5, pokud se u Aide také použije rmd160, rozdíl se stírá). Sentinel reportuje všechny aktivity do logu a to včetně informací o změněných souborech. To mi přijde jako poněkud nepraktické – minimálně tím přibývá nutnost nějakým prostředkem ověřit výsledky kontroly, pakliže ji chceme spouštět neinteraktivně. Naopak jako klad bych vyzdvihl, že jako jediný disponuje Sentinel signaturami logu a databáze a odmítne pracovat, pakliže signatura neodpovídá.
I: 2:51 K: 3:09
Resume
U všech programů mi chybí reporting na email (nebo možnost definovat akci pro případ změny) a také použití podpisů, případně šifrování databází. Textová databáze (tu používají všechny testované programy bez vyjímky) se mi nezdá úplně ideální. Když nic jiného může dát útočníkovi návod, jak se vyhnout odhalení. Samozřejmostí by mělo být umístění databáze buď na jiný počítač nebo na read-only médium (stačí disketa s ochranou proti zápisu – když se totiž útočník dostane k počítači fyzicky, je už celkem fuk, jestli ne serveru běží nějaká ochrana – softwarovou ochranu proti krumpáči totiž ještě nikdo nevymyslel :). Z dnes recenzovaných programů považuji subjektivně za nejlepší Aide, škoda jenom, že se mi nepovedlo nikde najít již zmiňovaný ViperDB, který je prý také velice pěkný. Určité skupině uživatelů bude možná nejvíce vyhovovat Tripwire, který ovšem už není zdarma pro komerční použití.