Õppige CentOS/RHEL-is Linuxi süsteemi auditit Auditd-tööriistaga


Süsteemaudit viitab lihtsalt konkreetse sihitud süsteemi põhjalikule analüüsile: audit koosneb selle süsteemi moodustavate erinevate osade uurimisest koos kriitilise hinnanguga (ja vajaduse korral testimisega) erinevates huvivaldkondades.

RHEL/CentOS üks kriitiline alamsüsteem Linuxi auditisüsteemis, mida tavaliselt nimetatakse auditdiks. See rakendab vahendeid süsteemi turvalisusega seotud teabe jälgimiseks: eelkonfigureeritud reeglite abil kogutakse süsteemis toimuvate sündmuste kohta tohutul hulgal teavet ja salvestatakse need logifaili, luues seeläbi auditiprotsessi.

See suudab salvestada sellist teavet nagu kuupäev ja kellaaeg, sündmuse tüüp ja tulemus; sündmuse põhjustanud kasutajad, failides/andmebaasides tehtud muudatused; süsteemi autentimismehhanismide, nagu PAM, LDAP, SSH ja teised, kasutusalad.

Auditd registreerib ka kõik muudatused, mis on tehtud auditi konfiguratsioonifailides või katsed auditilogi failidele juurde pääseda ning kõik jõupingutused teabe importimiseks või eksportimiseks süsteemist või süsteemist ning palju muud turvalisusega seotud teavet.

  1. See ei vaja süsteemis töötamiseks väliseid programme ega protsesse, mis muudaksid selle iseseisvaks.
  2. See on väga konfigureeritav ja võimaldab seetõttu vaadata kõiki soovitud süsteemitoiminguid.
  3. See aitab tuvastada või analüüsida süsteemi võimalikke kompromisse.
  4. See on võimeline töötama sõltumatu tuvastussüsteemina.
  5. Sissetungimise tuvastamise võimaldamiseks võib see töötada koos sissetungi tuvastamise süsteemidega.
  6. See on oluline vahend kohtuekspertiisi uurimise auditeerimisel.

Auditisüsteemil on kaks põhikomponenti:

  • kasutajaruumi rakendused ja utiliidid/tööriistad ning
  • tuumapoolne süsteemikõne töötlemine - see võtab vastu süsteemikõnesid kasutajaruumi rakendustest ja edastab need kolme tüüpi filtrite kaudu: kasutaja, ülesanne, väljumine või välistamine.

Kõige olulisem osa on kasutajaruumi audititeemon (auditd), mis kogub tuumilt eelkonfigureeritud reeglite põhjal teavet ja genereerib kirjed logifaili: vaikelogi on /var/log/audit/audit.log.

Lisaks on audispd (auditi dispetšerite deemon) sündmuste multipleksor, mis suhtleb auditd-ga ja saadab sündmusi teistele programmidele, mis soovivad sündmuste reaalajas töötlemist.

Auditisüsteemist teabe haldamiseks ja hankimiseks on mitmeid kasutajaruumi tööriistu:

  • auditctl - utiliit kerneli auditisüsteemi juhtimiseks.
  • ausearch - utiliit konkreetsete sündmuste auditilogi failide otsimiseks.
  • aureport - utiliit salvestatud sündmustest aruannete loomiseks.

Kuidas installida ja konfigureerida audititööriista rakendustes RHEL/CentOS/Fedora

Kõigepealt veenduge, et auditi tööriist on teie süsteemi installitud, kasutades utiliiti grep järgmiselt:

# rpm -qa | grep audit

Kui teil pole ülaltoodud pakette installitud, käivitage see käsk juurkasutajana nende installimiseks.

# yum install audit

Järgmisena kontrollige, kas auditd on lubatud ja töötab, väljastage terminalis allpool käsud systemctl.

--------------- On CentOS/RHEL 7 --------------- 
# systemctl is-enabled auditd
# systemctl status auditd
# systemctl start auditd   [Start]
# systemctl enable auditd  [Enable]

--------------- On CentOS/RHEL 6 --------------- 
# service auditd status
# service auditd start     [Start]
# chkconfig auditd on      [Enable]

Nüüd näeme, kuidas seadistada auditd peamise konfiguratsioonifaili /etc/audit/auditd.conf abil. Siinsed parameetrid võimaldavad teil kontrollida teenuse toimimist, näiteks logifaili asukoha, maksimaalse logifailide arvu, logivormingu, täielike ketastega toimetuleku, logi pööramise ja paljude muude võimaluste määratlemine.

# vi /etc/audit/auditd.conf

Allpool toodud valimiväljundi põhjal on parameetrid iseenesestmõistetavad.

Auditireeglite mõistmine

Nagu me varem mainisime, kasutab auditd reegleid spetsiifilise teabe kogumiseks tuumast. Need reeglid on põhimõtteliselt auditctl suvandid (vt manulehte), mille saate reeglid eelkonfigureerida failis /etc/audit/rules.d/audit.rules (CentOS 6-s kasutage faili /etc/audit/audit.rules) , nii et need laaditakse käivitamisel.

Te saate määratleda kolme tüüpi auditireegleid:

  • Juhtimisreeglid - need võimaldavad muuta auditisüsteemi käitumist ja mõnda selle konfiguratsiooni.
  • Failisüsteemi reeglid (neid nimetatakse ka failide vaatamiseks) - võimaldavad teatud failile või kataloogile juurdepääsu auditeerimist.
  • Süsteemikõne reeglid - võimaldab logida mis tahes programmi poolt tehtud süsteemikõnesid.

Nüüd avage redigeerimiseks peamine konfiguratsioonifail:

# vi /etc/audit/rules.d/audit.rules

Pange tähele, et selle faili esimene jaotis peab sisaldama juhtimisreegleid. Seejärel lisage keskmisesse jaotisse oma auditireeglid (failikellad ja süsteemikõne reeglid) ning lõpuks sisaldab viimane jaotis muutumatuse seadeid, mis on ühtlasi ka juhtimise reeglid.

-D		#removes all previous rules
-b  3074	#define buffer size
-f 4		#panic on failure 
-r 120		#create at most 120 audit messages per second

Failikellasid saate määratleda selle süntaksiga:

-w /path/to/file/or/directory -p permissions -k key_name

Kui võimalus:

  • w - kasutatakse faili või kataloogi määramiseks, mida vaadata.
  • p - logitavad õigused, r - lugemisõigus, w - kirjutusjuurdepääs, x - täitmisjuurdepääs ja a - faili või direktori atribuudi muutmine.
  • -k - võimaldab teil määrata valikulise stringi selle tuvastamiseks, milline reegel (või reeglite kogum) lõi konkreetse logikirje.

Need reeglid võimaldavad auditil jälgida sündmusi, mis muudavad neid kriitilisi süsteemifaile.

-w /etc/passwd -p wa -k passwd_changes
-w /etc/group -p wa -k group_changes
-w /etc/shadow -p wa -k shadow_changes
-w /etc/sudoers -p wa -k sudoers_changes

Süsteemkõne reegli saate määrata alloleva vormi abil:

-a action,filter -S system_call -F field=value -k key_name

kus:

  • tegevus - sellel on kaks võimalikku väärtust: alati või mitte kunagi.
  • filter - määrab sündmusele rakendatava tuuma reeglitele vastava filtri (ülesanne, väljumine, kasutaja ja välistamine).
  • süsteemikõne - süsteemikõne nimi.
  • väli - määrab reegli muutmiseks lisavõimalused nagu arhitektuur, PID, GID jne.

Siin on mõned reeglid, mida saate määratleda.

-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change
-a always,exit -S sethostname -S setdomainname -k system_locale

Seejärel lisage faili lõppu muutmatuse sätted, näiteks:

-e 1	#enable auditing
-e 2	#make the configuration immutable -- reboot is required to change audit rules

Kuidas seadistada Auditd reegleid auditctl utiliidi abil

Teise võimalusena saatke suvandid auditd selle töötamise ajal, kasutades auditctl nagu järgmistes näidetes. Need käsud võivad alistada konfiguratsioonifaili reeglid.

Kõigi praegu laaditud auditireeglite loetlemiseks edastage lipp -l :

# auditctl -l

Järgmisena proovige lisada mõned reeglid:

# auditctl -w /etc/passwd -p wa -k passwd_changes
# auditctl -w /etc/group -p wa -k group_changes
# auditctl -w /etc/sudoers -p wa -k sudoers_changes
# auditctl -l

Kõik audititeated salvestatakse vaikimisi faili /var/log/audit/audit.log. Logikirje vormingu mõistmiseks laadime reegli ja kontrollime pärast reeglile vastavat sündmust loodud logikirjet.

Eeldusel, et meil on salajane varukoopiate kataloog, logib see auditireegel kõik katsed sellele kataloogile juurde pääseda või seda muuta:

# auditctl -w /backups/secret_files/ -p rwa -k secret_backup

Nüüd proovige teise süsteemikonto abil liikuda ülaltoodud kataloogi ja käivitada käsk ls:

$ cd /backups/secret_files/
$ ls

Logi kirje näeb välja selline.

Ülaltoodud sündmus koosneb kolme tüüpi auditikirjetest. Esimene on tüüp = SYSCALL:

type=SYSCALL msg=audit(1505784331.849:444): arch=c000003e syscall=257 success=yes exit=3 a0=ffffffffffffff9c a1=8ad5c0 a2=90800 a3=0 items=1 ppid=2191 pid=2680 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts1 ses=3 comm="ls" exe="/usr/bin/ls" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="secret_backup"

Teine on tüüp = CWD.

type=CWD msg=audit(1505784331.849:444):  cwd="/backups/secret_files"

Ja viimane neist on tüüp = PATH:

type=PATH msg=audit(1505784331.849:444): item=0 name="." inode=261635 dev=08:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:default_t:s0 objtype=NORMAL

Kõigi sündmuse väljade (nt msg, arch, ses jne) ja nende tähenduste täieliku loendi leiate auditisüsteemi juhendist.

Praeguseks kõik. Järgmises artiklis uurime, kuidas kasutada audiokirja auditi logifailide päringuteks: selgitame, kuidas auditilogidest konkreetset teavet otsida. Kui teil on küsimusi, võtke meiega ühendust alloleva kommentaaride jaotise kaudu.