Az integritás-ellenőrzés arra a kérdésre válaszol, amelyre sem a vírusirtó, sem a tűzfal nem: mi változott ezen a szerveren a múlt hét óta? A szignatúraalapú szkenner ismert kártékony kódot keres; az AIDE semmit nem tud a kártékonyságról, azt tudja, hogy ez a fájl tegnap más volt. Egy meglévő fájlba írt hátsó ajtó felderítésére ez az egyetlen működő megközelítés.
Az AIDE két paranccsal telepíthető. Úgy beállítani, hogy a jelentéseit olvassák is, a nehezebb rész — és általában éppen ezen bukik el: az első jelentés tízezer sor, a másodikat senki nem nyitja meg, egy hónappal később pedig törlik a feladatot.
Telepítés és az első adatbázis
sudo apt install aide aide-common
sudo aideinit
Az inicializálás néhány perctől fél óráig tart: az összes fájl ellenőrzőösszege kiszámolódik. Az eredmény a munkaadatbázis mellé kerül .new kiterjesztéssel, és üzembe kell helyezni:
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Ezután az ellenőrzés így indul:
sudo aide --check
Mit zárj ki, hogy a jelentés olvasható legyen
A beállítások az /etc/aide/aide.conf fájlban és az /etc/aide/aide.conf.d/ könyvtárban vannak. A Debian alapkonfigurációja túl sokat ellenőriz, és az első dolog kivenni azt, ami amúgy is folyamatosan változik:
/var/log— másodpercenként változik;- a teljes
/var/lib— adatbázisok, csomagállapot, szolgáltatásállapot; /var/cache,/tmp,/proc,/sys,/run;- a webhely feltöltési és gyorsítótár-könyvtárai — a tartalmukat a látogatók változtatják.
A legszigorúbb beállításokkal viszont egy szűk listát érdemes ellenőrizni:
/bin,/sbin,/usr/bin,/usr/sbin— a rendszer végrehajtható fájljai;/lib,/usr/lib— könyvtárak;/etc— konfiguráció;/root/.sshés a felhasználók.sshkönyvtárai;- a webhely kódja, de a feltöltési és gyorsítótár-könyvtárak nélkül.
Támpont: egy szokásos napi jelentésnek el kell férnie a képernyőn. Ha hosszabb, kevés a kizárás, és az olvasás abbamarad.
Hol tartsd az adatbázist
Lényeges részlet, amelyről gyakran megfeledkeznek. Ha egy kívülállónak root jogosultsága van, a fájl kicserélése és az AIDE-adatbázis azonnali frissítése semmibe nem kerül neki — az utána következő ellenőrzés pedig azt mutatja, hogy minden rendben. Az ugyanazon a gépen, írási joggal fekvő adatbázis csak a véletlen ellen véd.
Egy szerverhez észszerű minimum:
- minden frissítés után másold az adatbázist másik gépre, és az ellenőrzést ezzel a másolattal futtasd;
- vagy legalább tárold külön az adatbázis ellenőrzőösszegét, és hasonlítsd össze az ellenőrzés előtt:
sha256sum /var/lib/aide/aide.db
Már ez az egyszerű lépés is észrevehető eseménnyé teszi a csendes cserét.
Az adatbázis frissítése tudatos lépés
Jogos változások után — rendszerfrissítés, a webhely új verziójának kihelyezése — az adatbázist újra fel kell építeni:
sudo aide --update
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Az időzítés számít. Helyesen: nézd át a jelentést, győződj meg róla, hogy minden változás megmagyarázható, és csak azután frissíts. Helytelenül és nagyon elterjedten: ütemezetten futtatni az aide --update parancsot, hogy tiszták legyenek a jelentések. A második esetben a rendszer működik, a jelentések érkeznek, a változások pedig pontosan abban a pillanatban rögzülnek normaként, amikor bekövetkeznek — az értelem teljesen eltűnik.
Ütemezés és terhelés
Az aide-common csomag maga hoz létre napi feladatot. Az ellenőrzés néhány percre megterheli a lemezt és a processzort, ezért nyugodt időben és csökkentett prioritással érdemes futtatni:
0 4 * * * ionice -c3 nice -n19 /usr/bin/aide --check
Hogyan olvasd a jelentést
Három szakasz: hozzáadott, törölt és módosított fájlok. Minden változásnál látszik, pontosan mi tér el: tartalom, jogosultságok, tulajdonos, idő.
Mire reagálj elsőként:
- bármely fájl változása a
/bin,/sbin,/usr/binkönyvtárban frissítési ablakon kívül; - új fájlok a rendszerkönyvtárakban;
- változások az
authorized_keys,/etc/passwd,/etc/sudoers,/etc/crontabés/etc/cron.dfájlokban; - az
/etc/ld.so.preloadfájl megjelenése — magától soha nem keletkezik.
Száz módosult fájl közvetlenül egy apt upgrade után normális, és a jelentés ideje ezt meg is erősíti. Három módosult fájl a /usr/bin könyvtárban szerdán, amikor nem volt frissítés, ok arra, hogy megállj és utánanézz.
AIDE és debsums
Az eszközök rokon feladatokat oldanak meg, de más mintázattal. Az AIDE a saját pillanatképéhez hasonlít — így bármely fájl változását látja, a webhely kódját is beleértve. A debsums a disztribúció csomagjaiban lévő ellenőrzőösszegekhez hasonlít — így a rendszerfájlok cseréjét mindenféle előkészület nélkül látja, de semmit nem tud arról, amit a csomagokon kívülről telepítettek. Észszerű mindkettőt használni; a gyakorlatban a debsums megy elsőként, mert sem konfigurációt, sem adatbázist nem igényel.
Közös a gyengeségük is: a jelentés postán érkezik, a posta pedig elvész. Nem az számít tehát, hogy az ellenőrzés lefutott, hanem hogy van egy hely, ahol az utolsó eredménye látszik. Hogy néz ki ez, azt az alábbi bemutatóoldal mutatja.