Integritetskontroll svarer på et spørsmål verken antivirus eller brannmur svarer på: hva er endret på denne serveren siden forrige uke? En signaturskanner leter etter kjent skadelig kode; AIDE vet ingenting om skadelighet, det vet at denne filen så annerledes ut i går. For å oppdage en bakdør lagt til i en eksisterende fil, er det den eneste metoden som virker.
AIDE installeres med to kommandoer. Å sette det opp slik at rapportene leses, er den vanskeligere delen — og det er nettopp der det oftest havarerer: første rapport kommer på ti tusen linjer, den andre åpner ingen, og en måned senere fjernes jobben.
Installasjon og første database
sudo apt install aide aide-common
sudo aideinit
Initieringen tar fra noen minutter til en halvtime: kontrollsummer beregnes for alle filer. Resultatet havner ved siden av arbeidsdatabasen med endelsen .new og må tas i bruk:
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Kontrollen kjøres deretter slik:
sudo aide --check
Hva du skal unnta for at rapporten skal la seg lese
Innstillingene ligger i /etc/aide/aide.conf og i katalogen /etc/aide/aide.conf.d/. Debians standardoppsett kontrollerer for mye, og det første du gjør, er å fjerne det som uansett endres hele tiden:
/var/log— endres hvert sekund;- hele
/var/lib— databaser, pakketilstand, tjenestetilstand; /var/cache,/tmp,/proc,/sys,/run;- nettstedets opplastings- og hurtigbufferkataloger — innholdet der endres av besøkende.
Med de strengeste innstillingene er det derimot verdt å kontrollere en smal liste:
/bin,/sbin,/usr/bin,/usr/sbin— systemets kjørbare filer;/lib,/usr/lib— biblioteker;/etc— konfigurasjonen;/root/.sshog brukernes.ssh-kataloger;- nettstedets kode, men uten opplastings- og hurtigbufferkataloger.
Målestokk: en vanlig daglig rapport skal få plass på én skjerm. Er den lengre, er unntakene for få, og lesingen tar slutt.
Hvor databasen skal ligge
En viktig detalj som ofte glemmes. Har en utenforstående root, koster det ingenting å bytte ut en fil og straks oppdatere AIDE-databasen — og kontrollen etterpå viser at alt er i orden. En database som ligger på samme maskin med skriverettigheter, beskytter bare mot uhell.
Et rimelig minimum for én enkelt server:
- kopiere databasen etter hver oppdatering til en annen maskin og kjøre kontrollen med den kopien lagt inn;
- eller i det minste lagre databasens kontrollsum separat og sammenligne den før kontrollen:
sha256sum /var/lib/aide/aide.db
Selv et så enkelt grep gjør en stille utskifting til en merkbar hendelse.
Å oppdatere databasen er en bevisst handling
Etter berettigede endringer — en systemoppdatering, en ny versjon av nettstedet — bygges databasen på nytt:
sudo aide --update
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Tidspunktet betyr noe. Riktig: gå gjennom rapporten, forsikre deg om at hver endring lar seg forklare, og oppdater først deretter. Feil og svært vanlig: kjøre aide --update etter en plan for at rapportene skal være rene. I det andre tilfellet virker systemet, rapporter kommer, og endringer registreres som norm nøyaktig i det øyeblikket de skjer — hele poenget forsvinner.
Plan og belastning
Pakken aide-common legger selv opp en daglig jobb. Kontrollen belaster disk og prosessor i noen minutter, så den bør kjøres på et rolig tidspunkt og med senket prioritet:
0 4 * * * ionice -c3 nice -n19 /usr/bin/aide --check
Hvordan du leser rapporten
Tre seksjoner: lagt til, fjernet og endret. Ved hver endring ses nøyaktig hva som er forskjellig: innhold, rettigheter, eier, tidspunkt.
Hva du reagerer på først:
- endring av hvilken som helst fil i
/bin,/sbin,/usr/binutenfor et oppdateringsvindu; - nye filer i systemkataloger;
- endringer i
authorized_keys,/etc/passwd,/etc/sudoers,/etc/crontabog/etc/cron.d; - at filen
/etc/ld.so.preloaddukker opp — den oppstår aldri av seg selv.
Hundre endrede filer rett etter apt upgrade er normalt, og rapportens tidsstempel bekrefter det. Tre endrede filer i /usr/bin en onsdag uten oppdateringer er grunn til å stanse og undersøke.
AIDE og debsums
Verktøyene løser beslektede oppgaver, men etter ulike mønstre. AIDE sammenligner med sitt eget øyeblikksbilde — og ser derfor endringer i hvilke som helst filer, inkludert nettstedets kode. debsums sammenligner med kontrollsummene i distribusjonens pakker — og ser derfor utskifting av systemfiler helt uten forberedelser, men vet ingenting om det som er installert utenfor pakker. Det er klokt å ha begge; i praksis kommer debsums oftest først, siden det verken krever oppsett eller database.
Svakheten deres er felles: rapporten kommer med posten, og post forsvinner. Det som teller, er altså ikke at kontrollen er kjørt, men at det finnes et sted der det siste resultatet ses. Hvordan det ser ut, viser demonstrasjonssiden nedenfor.