Išmokite atlikti „Linux“ sistemos auditą naudodami „Auditd“ įrankį „CentOS/RHEL“.


Sistemos auditas paprasčiausiai reiškia nuodugnią konkrečios tikslinės sistemos analizę: auditą sudaro įvairių tą sistemą sudarančių dalių nagrinėjimas, atliekant kritinį įvertinimą (ir, jei reikia, testavimą) įvairiose dominančiose srityse.

Taip pat skaitykite: Lynis – saugos tikrinimo ir nuskaitymo įrankis, skirtas Linux sistemoms

Viena iš svarbiausių posistemių RHEL/CentOS, Linux audito sistemoje, paprastai vadinamoje auditd. Ji įgyvendina priemones, leidžiančias sekti su saugumu susijusią informaciją sistemoje: naudoja iš anksto sukonfigūruotas taisykles, kad surinktų daugybę informacijos apie įvykius, vykstančius sistemoje, ir įrašo juos į žurnalo failą, taip sukurdamas audito bandymą.

Jis gali įrašyti informaciją, pvz., datą ir laiką, įvykio tipą ir rezultatą; įvykį sukėlusius naudotojus, bet kokius failų/duomenų bazių pakeitimus; sistemos autentifikavimo mechanizmų, tokių kaip PAM, LDAP, SSH ir kt., naudojimas.

Auditd taip pat registruoja visus audito konfigūracijos failų pakeitimus arba bandymus pasiekti audito žurnalo failus ir visas pastangas importuoti arba eksportuoti informaciją į sistemą arba iš jos, taip pat daug kitos su sauga susijusios informacijos.

Kodėl „Linux“ audito sistema yra svarbi?

  1. Tam, kad sistema veiktų, nereikia jokių išorinių programų ar procesų, todėl ji yra savarankiška.
  2. Jis yra labai konfigūruojamas, todėl galite peržiūrėti bet kurią (-as) sistemos operaciją (-as), kurias norite.
  3. Tai padeda aptikti arba analizuoti galimus sistemos pažeidimus.
  4. Jis gali veikti kaip nepriklausoma aptikimo sistema.
  5. Jis gali dirbti su įsibrovimų aptikimo sistemomis, kad būtų galima aptikti įsibrovimą.
  6. Tai gyvybiškai svarbi kriminalistinių tyrimų audito priemonė.

„Linux“ audito sistemos komponentai

Audito sistemą sudaro du pagrindiniai komponentai, būtent:

  • vartotojo erdvės taikomosios programos ir komunalinės paslaugos/įrankiai ir
  • branduolio pusės sistemos skambučių apdorojimas – priima sistemos skambučius iš vartotojo erdvės programų ir perduoda juos per trijų tipų filtrus, būtent: naudotojas, užduotis, išeiti< arba išskirti.

Svarbiausia dalis yra user-space audito demonas (auditd), kuris renka informaciją pagal iš anksto sukonfigūruotas taisykles iš branduolio ir generuoja įrašus žurnalo faile: numatytasis žurnalas yra /var/log/audit/audit.log.

Be to, audispd (audito dispečerinės demonas) yra įvykių multipleksorius, kuris sąveikauja su auditd ir siunčia įvykius kitoms programoms, kurios nori atlikti realiuoju laiku. įvykių apdorojimas.

Yra keletas naudotojo erdvės įrankių, skirtų tvarkyti ir gauti informaciją iš audito sistemos:

  • auditctl – programa, skirta valdyti branduolio audito sistemą.
  • Ausearch – įrankis, skirtas konkrečių įvykių audito žurnalo failams ieškoti.
  • Aureport – įrankis, skirtas įrašytų įvykių ataskaitoms kurti.

Kaip įdiegti ir konfigūruoti audito įrankį RHEL/CentOS/Fedora

Pirmiausia įsitikinkite, kad audito įrankis yra įdiegtas jūsų sistemoje, naudodami komandą rpm ir grep įrankį taip:

rpm -qa | grep audit

Jei nesate įdiegę aukščiau nurodytų paketų, paleiskite šią komandą kaip root naudotojas, kad juos įdiegtumėte.

yum install audit

Tada patikrinkite, ar auditd įjungtas ir veikia, terminale išduokite toliau pateiktas systemctl komandas.

--------------- 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]

Dabar pamatysime, kaip sukonfigūruoti auditd naudojant pagrindinį konfigūracijos failą /etc/audit/auditd.conf. Čia esantys parametrai leidžia valdyti, kaip paslauga veikia, pvz., nustatyti žurnalo failo vietą, maksimalų žurnalo failų skaičių, žurnalo formatą, kaip elgtis su pilnais diskais, žurnalo pasukimą ir daug kitų parinkčių.

vi /etc/audit/auditd.conf

Iš toliau pateiktos išvesties pavyzdžio parametrai yra savaime aiškūs.

Audito taisyklių supratimas

Kaip minėjome anksčiau, auditd naudoja taisykles konkrečiai informacijai iš branduolio rinkti. Šios taisyklės iš esmės yra auditctl parinktys (žr. žinyno puslapį), kurių taisykles galite iš anksto sukonfigūruoti faile /etc/audit/rules.d/audit.rules („CentOS“). 6, naudokite failą /etc/audit/audit.rules), kad jie būtų įkelti paleidžiant.

Galite apibrėžti trijų rūšių audito taisykles:

  • Valdymo taisyklės – leidžia keisti audito sistemos elgseną ir kai kurias jos konfigūracijas.
  • Failų sistemos taisyklės (taip pat vadinamos failų stebėjimu) – leidžia tikrinti prieigą prie tam tikro failo ar katalogo.
  • Sistemos skambučių taisyklės – leidžia registruoti sistemos skambučius, atliekamus bet kurios programos.

Dabar atidarykite pagrindinį konfigūracijos failą redaguoti:

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

Atminkite, kad pirmoje šio failo skiltyje turi būti valdymo taisyklės. Tada vidurinėje skiltyje pridėkite savo audito taisykles (failų stebėjimo ir sistemos iškvietimo taisykles), o galiausiai paskutiniame skyriuje yra nekeičiamumo nustatymai, kurie taip pat yra valdymo taisyklės.

Audito kontrolės taisyklių pavyzdžiai

-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

Auditd failų sistemos taisyklių pavyzdžiai

Failų stebėjimus galite apibrėžti naudodami šią sintaksę:

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

Kur variantas:

  • w – naudojamas norint nurodyti failą arba katalogą, kurį reikia stebėti.
  • p – leidimai registruotis, r – skaitymo prieiga, w – rašymo prieiga, x – leidimai vykdyti prieigą ir a – failo arba direktoriaus atributo pakeitimui.
  • -k – leidžia nustatyti pasirenkamą eilutę, skirtą nustatyti, kuri taisyklė (arba taisyklių rinkinys) sukūrė konkretų žurnalo įrašą.

Šios taisyklės leidžia tikrinti įvykius, keičiančius šiuos svarbius sistemos failus.

-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

Auditd sistemos iškvietimo taisyklių pavyzdžiai

Galite nustatyti sistemos iškvietimo taisyklę naudodami toliau pateiktą formą:

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

kur:

  • veiksmas – turi dvi galimas reikšmes: visada arba niekada.
  • filtras – nurodo, kad įvykiui taikomas branduolio taisyklių atitikties filtras (užduotis, išėjimas, naudotojas ir išskyrimas).
  • sistemos skambutis – sistemos skambučio pavadinimas.
  • laukas – nurodo papildomas parinktis, pvz., architektūrą, PID, GID ir pan., kad būtų galima keisti taisyklę.

Štai keletas taisyklių, kurias galite apibrėžti.

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

Tada galiausiai pridėkite nekeičiamumo parametrus failo pabaigoje, pavyzdžiui:

-e 1	#enable auditing
-e 2	#make the configuration immutable -- reboot is required to change audit rules
Auditd taisyklių konfigūracijos failo pavyzdys

Kaip nustatyti „Auditd“ taisykles naudojant „auditctl“ įrankį

Arba nusiųskite parinktis į auditd, kol ji veikia, naudodami auditctl, kaip nurodyta toliau pateiktuose pavyzdžiuose. Šios komandos gali nepaisyti taisyklių konfigūracijos faile.

Norėdami išvardyti visas šiuo metu įkeltas audito taisykles, perduokite vėliavėlę -l:

auditctl -l

Tada pabandykite pridėti keletą taisyklių:

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

Auditd žurnalo failų supratimas

Pagal numatytuosius nustatymus visi audito pranešimai įrašomi į failą /var/log/audit/audit.log. Norėdami suprasti žurnalo įrašo formatą, įkelsime taisyklę ir patikrinsime žurnalo įrašą, sugeneruotą po taisyklę atitinkančio įvykio.

Darant prielaidą, kad turime slaptą atsarginių kopijų katalogą, ši audito taisyklė registruos visus bandymus pasiekti arba modifikuoti šį katalogą:

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

Dabar, naudodami kitą sistemos paskyrą, pabandykite pereiti į aukščiau esantį katalogą ir paleiskite komandą ls:

cd /backups/secret_files/
ls

Žurnalo įrašas atrodys taip.

Pirmiau minėtas įvykis sudarytas iš trijų tipų audito įrašų. Pirmasis yra type=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"

Antrasis yra type=CWD.

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

Ir paskutinis yra type=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

Išsamų visų įvykių laukų (pvz., msg, arch, ses ir kt.) sąrašą ir jų reikšmes galite rasti Audito sistemos nuorodoje.

Tai kol kas viskas. Kitame straipsnyje apžvelgsime, kaip naudoti ausearch audito žurnalų failų užklausai: paaiškinsime, kaip audito žurnaluose ieškoti konkrečios informacijos. Jei turite klausimų, susisiekite su mumis naudodami toliau pateiktą komentarų skyrių.