Eheystarkistus vastaa kysymykseen, johon eivät vastaa virustorjunta eikä palomuuri: mikä tällä palvelimella on muuttunut viime viikosta? Allekirjoitusskanneri etsii tunnettua haitallista koodia; AIDE ei tiedä haitallisuudesta mitään, se tietää että tämä tiedosto oli eilen erilainen. Olemassa olevaan tiedostoon lisätyn takaoven havaitsemiseen se on ainoa toimiva menetelmä.
AIDE asennetaan kahdella komennolla. Sen asettaminen niin, että raportteja luetaan, on vaikeampi osa — ja juuri siihen se yleensä kaatuu: ensimmäinen raportti on kymmenentuhatta riviä, toista ei avaa kukaan, ja kuukautta myöhemmin tehtävä poistetaan.
Asennus ja ensimmäinen tietokanta
sudo apt install aide aide-common
sudo aideinit
Alustus kestää muutamasta minuutista puoleen tuntiin: kaikkien tiedostojen tarkistussummat lasketaan. Tulos päätyy työtietokannan viereen päätteellä .new, ja se on otettava käyttöön:
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Tarkistus ajetaan sitten näin:
sudo aide --check
Mitä jättää pois, jotta raporttia voi lukea
Asetukset ovat tiedostossa /etc/aide/aide.conf ja hakemistossa /etc/aide/aide.conf.d/. Debianin oletusasetukset tarkistavat liikaa, ja ensimmäinen työ on poistaa se, mikä muuttuu joka tapauksessa jatkuvasti:
/var/log— muuttuu joka sekunti;- koko
/var/lib— tietokannat, pakettien tila, palveluiden tila; /var/cache,/tmp,/proc,/sys,/run;- sivuston lataus- ja välimuistihakemistot — niiden sisältöä muuttavat kävijät.
Tiukimmilla asetuksilla kannattaa sen sijaan tarkistaa kapea lista:
/bin,/sbin,/usr/bin,/usr/sbin— järjestelmän suoritettavat tiedostot;/lib,/usr/lib— kirjastot;/etc— asetukset;/root/.sshja käyttäjien.ssh-hakemistot;- sivuston koodi, mutta ilman lataus- ja välimuistihakemistoja.
Mittapuu: tavallisen päivittäisen raportin pitää mahtua ruudulle. Jos se on pidempi, poikkeuksia on liian vähän, ja lukeminen loppuu.
Missä tietokannan pitää olla
Tärkeä yksityiskohta, joka usein unohtuu. Jos ulkopuolisella on root, tiedoston vaihtaminen ja AIDE-tietokannan välitön päivittäminen ei maksa mitään — ja sen jälkeinen tarkistus näyttää, että kaikki on kunnossa. Samalla koneella kirjoitusoikeuksin oleva tietokanta suojaa vain vahingoilta.
Järkevä vähimmäistaso yhdelle palvelimelle:
- kopioi tietokanta jokaisen päivityksen jälkeen toiselle koneelle ja aja tarkistus tuo kopio paikoillaan;
- tai säilytä ainakin tietokannan tarkistussumma erikseen ja vertaa sitä ennen tarkistusta:
sha256sum /var/lib/aide/aide.db
Näinkin yksinkertainen keino muuttaa hiljaisen vaihdon havaittavaksi tapahtumaksi.
Tietokannan päivitys on tietoinen teko
Perusteltujen muutosten jälkeen — järjestelmäpäivityksen, sivuston uuden version — tietokanta rakennetaan uudelleen:
sudo aide --update
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Ajankohdalla on merkitystä. Oikein: käy raportti läpi, varmista että jokainen muutos selittyy, ja päivitä vasta sitten. Väärin ja hyvin yleisesti: ajaa aide --update aikataulun mukaan, jotta raportit olisivat puhtaita. Jälkimmäisessä tapauksessa järjestelmä toimii, raportteja tulee, ja muutokset kirjataan normiksi juuri sillä hetkellä, kun ne tapahtuvat — koko pointti katoaa.
Aikataulu ja kuormitus
Paketti aide-common luo itse päivittäisen tehtävän. Tarkistus kuormittaa levyä ja suoritinta muutaman minuutin, joten se kannattaa ajaa rauhallisena ajankohtana ja alennetulla prioriteetilla:
0 4 * * * ionice -c3 nice -n19 /usr/bin/aide --check
Miten raporttia luetaan
Kolme osiota: lisätyt, poistetut ja muuttuneet tiedostot. Jokaisen muutoksen kohdalla näkyy tarkalleen, mikä eroaa: sisältö, oikeudet, omistaja, aika.
Mihin reagoidaan ensin:
- minkä tahansa tiedoston muutos hakemistoissa
/bin,/sbin,/usr/binpäivitysikkunan ulkopuolella; - uudet tiedostot järjestelmähakemistoissa;
- muutokset tiedostoissa
authorized_keys,/etc/passwd,/etc/sudoers,/etc/crontabja/etc/cron.d; - tiedoston
/etc/ld.so.preloadilmestyminen — se ei synny koskaan itsestään.
Sata muuttunutta tiedostoa heti apt upgrade -komennon jälkeen on normaalia, ja raportin aikaleima vahvistaa sen. Kolme muuttunutta tiedostoa hakemistossa /usr/bin keskiviikkona ilman päivityksiä on syy pysähtyä ja tarkistaa.
AIDE ja debsums
Työkalut ratkaisevat sukulaistehtäviä mutta eri mallilla. AIDE vertaa omaan tilannekuvaansa — ja näkee siksi muutokset missä tahansa tiedostoissa, myös sivuston koodissa. debsums vertaa jakelun pakettien tarkistussummiin — ja näkee siksi järjestelmätiedostojen vaihdon täysin ilman valmistelua, mutta ei tiedä mitään siitä, mitä on asennettu pakettien ulkopuolelta. Molemmat kannattaa olla; käytännössä debsums tulee yleensä ensin, koska se ei vaadi asetuksia eikä tietokantaa.
Niiden heikkous on yhteinen: raportti tulee postissa, ja posti katoaa. Merkitystä ei siis ole sillä, että tarkistus on ajettu, vaan sillä että on paikka, jossa sen viimeisin tulos näkyy. Miltä se näyttää, näkyy alla olevalla esittelysivulla.