Linuxové noviny | 03-04/2001 | ||
| |||
Tripwire je software určený pro kontrolu integrity souborů v systému. Jak takový systém funguje? Nejprve si sestaví databázi, která popisuje stav zadaných souborů, adresářů nebo celých adresářových stromů. S touto databází je pak možné kdykoliv srovnat aktuální stav a identifikovat případné změny, které mohou zahrnovat přidané či smazané objekty, změny přístupových práv, modifikace souborů a podobně. Administrátor pak má možnost změny autorizovat a tím změny zanést do databáze, takže příští kontrola vyjde z aktualizované databáze. Tripwire samozřejmě není zdaleka jediným nástrojem svého druhu, je ovšem jedním z prvních a verze 2.3.0 pro Linux je od nedávna dostupná včetně zdrojových kódů. Pro ostatní systémy je volně dostupná starší verze 1.3.1 formou zdrojových kódů jako ASR (Academic Source Release). Z alternativ za zmínku rozhodně stojí např. AIDE, řadu dalších alternativ čtenáři naleznou např. na serveru Freshmeat. Společnost Tripwire také nabízí řadu dalších produktů s rozšířenou funkčností oproti základní verzi a to Tripwire Manager (GUI nástroj pro vzdálenou administraci) a Tripwire for Servers (může být spravován dálkově Tripwire Managerem). Posledním produktem je Tripwire for Web Pages, který spolupracuje s web serverem (apache) - funguje tak, že kontroluje odesílané HTML soubory a pokud narazí na stránku, která se změnila (a tato změna nebyla autorizována), tak místo ní odešle stránku s hlášením o dočasné nedostupnosti dané stránky a uvědomí administrátora. V tomto článku se budeme zabývat jen volně dostupnou verzí Tripwire pro Linux.
Co nabízí TripwireJaké atributy tripwire u jednotlivých souborů sleduje? V systémech UN*Xového typu (tedy i Linuxu) jsou dostupné následující atributy, ze kterých je možno zvolit libovolnou kombinaci:
Dále jsou k dispozici 4 typy kontrolních součtů, které slouží ověření neporušenosti obsahu souborů:
Na jeden soubor můžeme aplikovat libovolnou kombinaci kontrolních součtů současně, pouze je třeba vzít v úvahu, že pokud jich použijeme více, čas potřebný pro kontrolu poroste. Při volbě kontrolních součtů tedy volíme kompromis v závislosti na množství dat, které potřebujeme prověřovat, stupni bezpečnosti a času, za jaký musí kontrola proběhnout. Jednotlivé soubory je možné sdružovat do celků, kterým lze přiřazovat atributy jako je významnost ("severity", při kontrolách pak volíme jak významné změny nás zajímají), dále emailová adresa, na kterou se posílá upozornění v případě zjištění změny, příznak určující jestli se má daný adresář procházet rekurzívně. Můžeme tedy například jednoduše říci, že chceme sledovat všechny soubory a podadresáře v adresářovém stromu /etc, přiřadit souborům v stromu /etc maximální význam a e-mailovou adresu, čímž zajistíme, že v případě jakékoliv změny detekované při kontrole budou administrátoři upozorněni e-mailem.
InstalaceK dispozici je buď původní verze Tripwire 2.2.1 Tripwire 2.2.1 ve formě tar.gz archívu s instalačním skriptem, nebo verze 2.3 ve formě RPM balíčku, případně si zájemci mohou stáhnout aktuální zdrojový kód verze 2.3.1 a binárky sestavit sami. Rozdíly mezi uvedenými verzemi jsou minimální, verze 2.3 obsahuje drobnou opravu při manipulaci s dočasnými pracovními soubory, konfigurační soubory tripwire jsou pak na rozdíl od dřívějších verzí standardně ukládány v adresáři /etc/tripwire. Ve verzi 2.3.1 přibyla navíc podpora platformy FreeBSD. Instalační skript původní verze 2.2.1 automaticky nerozpoznává novější linuxové distribuce (což ale nijak nevadí, protože to nijak neovlivní funkčnost instalace).V průběhu instalace se generují klíče, ke kterým je třeba zadat globální ("site passphrase") a lokální heslo ("local passphrase"). Obě hesla jsou důležitá; globální heslo je později vyžadováno při úpravách bezpečnostní politiky, lokální heslo je vyžadováno při aktualizaci databáze.
Konfigurace, inicializace databázeKonfigurační soubor tw.cfg obsahuje základní údaje o instalaci, t.j. cestu k instalaci tripwire, cestu k souboru s definicí bezpečnostní politiky, cesty ke klíčům, nastavení implicitního editoru, nastavení způsobu odesílání pošty apod. Pokud chceme konfiguraci prohlížet nebo ji měnit, musíme ji utilitou twadmin převést do textové podoby (twadmin -m f) a po ukončení editace opět utilitou twadmin zašifrovat (twadmin -m F).Soubor tw.pol obsahuje definici vlastní bezpečnostní politiky, t.j. soubor pravidel udávajících co a jakým způsobem se má kontrolovat. Po instalaci tripwire je k dispozici implicitní soubor pravidel, který je potřeba upravit podle vlastních potřeb. Stejně jako konfigurační soubor tw.cfg i soubor s politikou je ukládán v zašifrované podobě a před editací je třeba je převést do textové podoby utilitou twadmin (twadmin -p) a po editaci zašifrovat (twadmin -P). Součástí instalace je soubor policyguide.txt, kde je na řadě příkladů a tipů v praxi vysvětlena syntaxe konfiguračního souboru bezpečnostní politiky. Jakmile máme konfiguraci hotovu, můžeme vytvořit databázi spuštěním příkazu tripwire --init.
Kontrola systému, prohlížení zprávFunkčnost instalace ověříme spuštěním kontroly systému. Máme na výběr ze dvou možností, a to buď interaktivní anebo "offline" režim. V interaktivním režimu (tripwire -m c -I) tripwire po skončení spustí editor (implicitně vi), do kterého natáhne detailní výslednou zprávu. Ve zprávě pak můžeme odsouhlasit některé nebo i všechny změny a po ukončení práce s editorem tripwire provede aktualizaci databáze podle odsouhlasených změn. Výsledná zpráva je rovněž uložena do příslušného adresáře (implicitně /var/lib/tripwire/report) a také může být zaslána elektronickou poštou, je-li to odpovídajícím způsobem uvedeno v bezpečnostní politice (direktiva emailto). Vygenerované zprávy lze kdykoliv prohlížet pomocí utility twprint (viz Ukázka výsledné zprávy tripwire).
Aktualizace bezpečnostní politikyPokud provádíme změny bezpečnostní politiky, neměli bychom tak činit prostým nahrazením starého souboru s bezpečnostní politikou novým a opětovnou inicializací databáze, ale použít režimu tripwire pro aktualizaci politiky (tripwire -m p). Tripwire pak zkontroluje systém podle staré i nové bezpečnostní politiky a teprve v případě že je systém v pořádku podle obou verzí bezpečnostní politiky provede aktualizaci databáze a souboru s bezpečnostní politikou.
Zásady práce s tripwireSamozřejmě, pouhé instalování tripwire (nebo jakéhokoliv jiného systému kontroly integrity) bez pečlivé konfigurace a dodržování rozumných zásad úroveň zabezpečení systému nezvýší, pouze povede k falešnému pocitu "bezpečí". Jaké zásady by tedy měl administrátor při nasazení takového systému pro kontrolu integrity dodržovat? Minimálně alespoň databázové soubory je potřeba uchovávat odděleně na důvěryhodném médiu, nejlépe digitálně podepsané. Optimální je mít na odděleném médiu i binárky tripwire (třeba jako doplňek k "záchranné" sadě bootovacích disket) a kontrolu provádět po nabootování z důvěryhodného média. Tripwire lze samozřejmě spouštět i pravidelně třeba z cronu, ale i pak je potřeba provádět občasné kontroly manuálně z důvěryhodných médií. Také je potřeba provádět aktualizace databáze v návaznosti na prováděné zásahy do systému. Rozhodně např. nemá smysl aktualizovat databázi koncem týdne a přitom přemýšlet, které změny provedl v průběhu týdne který z pěti administrátorů.
ZávěremTripwire je kvalitním nástrojem pro kontrolu integrity souborů a pokud je dobře nakonfigurován, výrazně může pomoci nejen při detekci neautorizovaných zásahů do systému, ale i při odstraňování následků bezpečnostního incidentu. Pokud ještě žádný takový systém nepoužíváte, rozhodně Tripwire (anebo některou z jeho alternativ) vyzkoušejte.![]() |