Kontrola integrity odpovedá na otázku, na ktorú neodpovie ani antivírus, ani firewall: čo sa na tomto serveri od minulého týždňa zmenilo? Signatúrny skener hľadá známy škodlivý kód; AIDE o škodlivosti nevie nič, vie, že tento súbor bol včera iný. Na odhalenie zadných vrátok dopísaných do existujúceho súboru je to jediný fungujúci prístup.
AIDE sa inštaluje dvomi príkazmi. Nastaviť ho tak, aby sa jeho správy čítali, je tá ťažšia časť — a práve na tom to obvykle stroskotá: prvá správa príde na desaťtisíc riadkov, druhú nikto neotvorí a o mesiac neskôr sa úloha zmaže.
Inštalácia a prvá databáza
sudo apt install aide aide-common
sudo aideinit
Inicializácia zaberie od niekoľkých minút po pol hodiny: počítajú sa kontrolné súčty všetkých súborov. Výsledok sa uloží vedľa pracovnej databázy s príponou .new a treba ho uviesť do prevádzky:
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Ďalej sa kontrola spúšťa takto:
sudo aide --check
Čo vylúčiť, aby sa správa dala čítať
Nastavenia sú v /etc/aide/aide.conf a v adresári /etc/aide/aide.conf.d/. Predvolená konfigurácia Debianu kontroluje priveľa a prvou vecou je odstrániť to, čo sa aj tak mení nepretržite:
/var/log— mení sa každú sekundu;- celé
/var/lib— databázy, stav balíkov, stav služieb; /var/cache,/tmp,/proc,/sys,/run;- adresáre nahraných súborov a cache webu — ich obsah menia návštevníci.
Naopak s najprísnejším nastavením sa oplatí kontrolovať úzky zoznam:
/bin,/sbin,/usr/bin,/usr/sbin— spustiteľné súbory systému;/lib,/usr/lib— knižnice;/etc— konfigurácia;/root/.ssha adresáre.sshpoužívateľov;- kód webu, ale bez adresárov nahraných súborov a cache.
Orientačný bod: bežná denná správa sa má zmestiť na obrazovku. Ak je dlhšia, vylúčení je málo a čítanie skončí.
Kde držať databázu
Podstatný detail, na ktorý sa často zabúda. Ak má cudzí človek root, výmena súboru a okamžitá aktualizácia databázy AIDE ho nič nestojí — a kontrola potom ukáže, že je všetko v poriadku. Databáza ležiaca na tom istom stroji s právom zápisu chráni len pred náhodou.
Rozumné minimum pre jeden server:
- kopírovať databázu po každej aktualizácii na iný stroj a kontrolu spúšťať s touto kópiou;
- alebo aspoň uchovávať kontrolný súčet databázy zvlášť a porovnávať ho pred kontrolou:
sha256sum /var/lib/aide/aide.db
Aj takto jednoduchý postup premení tichú výmenu na badateľnú udalosť.
Aktualizácia databázy je uvedomelý krok
Po oprávnených zmenách — aktualizácii systému, nasadení novej verzie webu — sa databáza vytvorí znova:
sudo aide --update
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Na okamihu záleží. Správne: prejsť správu, uistiť sa, že každá zmena sa dá vysvetliť, a až potom aktualizovať. Nesprávne a veľmi rozšírene: spúšťať aide --update podľa rozvrhu, aby boli správy čisté. V druhom prípade systém funguje, správy chodia a zmeny sa zapisujú ako norma presne vo chvíli, keď nastávajú — zmysel mizne úplne.
Rozvrh a záťaž
Balík aide-common sám zakladá dennú úlohu. Kontrola na niekoľko minút zaťaží disk a procesor, takže je vhodné spúšťať ju v pokojnom čase a so zníženou prioritou:
0 4 * * * ionice -c3 nice -n19 /usr/bin/aide --check
Ako čítať správu
Tri sekcie: pridané, zmazané a zmenené súbory. Pri každej zmene je vidieť, čo presne sa líši: obsah, práva, vlastník, čas.
Na čo reagovať prednostne:
- zmena akéhokoľvek súboru v
/bin,/sbin,/usr/binmimo okna aktualizácie; - nové súbory v systémových adresároch;
- zmeny v
authorized_keys,/etc/passwd,/etc/sudoers,/etc/crontaba/etc/cron.d; - objavenie súboru
/etc/ld.so.preload— sám osebe nevznikne nikdy.
Sto zmenených súborov hneď po apt upgrade je norma a čas správy to potvrdzuje. Tri zmenené súbory v /usr/bin v stredu, keď žiadna aktualizácia nebola, sú dôvod zastaviť sa a preveriť to.
AIDE a debsums
Nástroje riešia príbuzné úlohy, ale ich vzor je odlišný. AIDE porovnáva s vlastnou snímkou — vidí teda zmeny v ľubovoľných súboroch vrátane kódu webu. debsums porovnáva s kontrolnými súčtami z balíkov distribúcie — vidí teda výmenu systémových súborov úplne bez prípravy, ale nevie nič o tom, čo bolo nainštalované mimo balíkov. Rozumné je mať oba; v praxi ide debsums obvykle prvý, lebo nevyžaduje ani konfiguráciu, ani databázu.
Spoločná je aj ich slabina: správa chodí poštou a pošta sa stráca. Nezáleží teda na tom, že kontrola prebehla, ale na tom, že je miesto, kde je vidieť jej posledný výsledok. Ako to vyzerá, ukazuje ukážková stránka nižšie.