Praćenje integriteta odgovara na pitanje na koje ne odgovaraju ni antivirus ni zaštitni zid: šta se na ovom serveru promenilo od prošle nedelje. Skener potpisa traži poznato loše; AIDE ne zna ništa o zlu, on zna da je ovaj fajl juče bio drugačiji. Za pronalaženje zadnjih vrata dodatih na kraj postojećeg fajla to je jedini pristup koji radi.

AIDE se instalira sa dve komande. Podesiti ga tako da se njegovi izveštaji čitaju teži je deo — i to ga obično i ubije: prvi izveštaj stiže sa deset hiljada redova, drugi niko ne otvara, a mesec dana kasnije posao se briše.

Instalacija i prva baza

sudo apt install aide aide-common
sudo aideinit

Inicijalizacija traje od nekoliko minuta do pola sata: računaju se heševi za svaki fajl. Rezultat se stavlja pored radne baze sa nastavkom .new i mora se staviti u upotrebu:

sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

Odatle nadalje provera se pokreće sa:

sudo aide --check

Šta isključiti da bi izveštaj ostao čitljiv

Podešavanja žive u /etc/aide/aide.conf i u direktorijumu /etc/aide/aide.conf.d/. Podrazumevana Debian konfiguracija proverava previše, i prvo što treba uraditi jeste ukloniti ono što se stalno menja samo od sebe:

  • /var/log — menja se svake sekunde;
  • ceo /var/lib — baze podataka, stanje paketa, stanje servisa;
  • /var/cache, /tmp, /proc, /sys, /run;
  • direktorijumi sajta za otpremanje i keš — njihov sadržaj menjaju posetioci.

Ono što vredi proveravati sa najstrožim podešavanjima jeste uska lista:

  • /bin, /sbin, /usr/bin, /usr/sbin — sistemski izvršni fajlovi;
  • /lib, /usr/lib — biblioteke;
  • /etc — konfiguracija;
  • /root/.ssh i .ssh direktorijumi vaših korisnika;
  • kod sajta, ali bez direktorijuma za otpremanje i keš.

Merilo: običan dnevni izveštaj treba da stane na jedan ekran. Ako je duži, izuzeci su nedovoljni i prestaće da se čita.

Gde držati bazu

Važna tačka koja se često propušta. Ako neko drugi ima root, zameniti fajl i odmah ažurirati AIDE bazu ne košta ga ništa — a provera posle toga prijaviće da je sve u redu. Baza koja sedi na istoj mašini, upisiva, štiti samo od nezgoda.

Razuman minimum za jedan server:

  • kopirajte bazu na drugu mašinu posle svakog ažuriranja i pokrenite proveru sa tom kopijom postavljenom na mesto;
  • ili bar čuvajte kontrolnu sumu baze odvojeno i proverite je pre provere:
sha256sum /var/lib/aide/aide.db

Čak i tako jednostavna mera pretvara tihu zamenu u primetan događaj.

Ažuriranje baze je svesna radnja

Posle legitimnih izmena — ažuriranja sistema, objavljivanja nove verzije sajta — baza se ponovo gradi:

sudo aide --update
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

Kada se to radi je bitno. Ispravno: pročitajte izveštaj, uverite se da je svaka izmena objašnjiva, i tek onda ažurirajte. Pogrešno, i vrlo često: pokretati aide --update po rasporedu da bi izveštaji ispadali čisti. U drugom slučaju sistem radi, izveštaji stižu, a izmene se beleže kao normalne tačno u trenutku kada se dese — što znači da je smisao potpuno izgubljen.

Raspored i opterećenje

Paket aide-common sam instalira dnevni posao. Provera opterećuje disk i procesor nekoliko minuta, pa je vredi pokretati u miran sat i sa sniženim prioritetom:

0 4 * * * ionice -c3 nice -n19 /usr/bin/aide --check

Kako se čita izveštaj

Tri odeljka: dodati, uklonjeni i izmenjeni fajlovi. Za svaku izmenu prikazuje šta se tačno razlikuje: sadržaj, dozvole, vlasnik, vreme.

Na šta reagovati prvo:

  • izmena bilo kog fajla u /bin, /sbin, /usr/bin izvan prozora ažuriranja;
  • novi fajlovi u sistemskim direktorijumima;
  • izmene u authorized_keys, /etc/passwd, /etc/sudoers, /etc/crontab i /etc/cron.d;
  • fajl /etc/ld.so.preload koji se pojavio — on se nikada ne pojavljuje sam od sebe.

Sto izmenjenih fajlova odmah posle apt upgrade je normalno, i vremenska oznaka izveštaja to potvrđuje. Tri izmenjena fajla u /usr/bin u sredu bez ažuriranja razlog su da stanete i ispitate stvar.

AIDE i debsums

Alati rešavaju susedne probleme, ali im se referenca razlikuje. AIDE poredi sa sopstvenim snimkom — pa vidi izmene u bilo kojim fajlovima, uključujući kod sajta. debsums poredi sa kontrolnim sumama iz paketa distribucije — pa vidi sistemske fajlove zamenjene bez ikakve prethodne pripreme, ali ne zna ništa o onome što ste instalirali izvan paketa. Razumno je držati oba; u praksi prvo obično ide debsums, jer mu ne trebaju ni konfiguracija ni baza.

Dele i jednu slabost: izveštaj stiže poštom, a pošta se gubi. Dakle nije bitno da je provera odrađena nego da postoji mesto gde se vidi njen poslednji rezultat. Kako to izgleda pokazuje demo stranica ispod.