Uzziniet Linux sistēmas auditēšanu ar Auditd rīku vietnē CentOS/RHEL


Sistēmas audits vienkārši attiecas uz konkrētas mērķtiecīgas sistēmas padziļinātu analīzi: revīziju veido dažādu šīs sistēmas daļu pārbaude ar kritisku novērtējumu (un testēšanu, ja nepieciešams) dažādās interešu jomās.

Viena no kritiskajām RHEL/CentOS Linux audita sistēmas apakšsistēmām, ko parasti dēvē par auditd. Tas ievieš līdzekļus, lai izsekotu ar drošību saistītu informāciju sistēmā: tas izmanto iepriekš konfigurētus noteikumus, lai savāktu lielu daudzumu informācijas par notikumiem, kas notiek sistēmā, un tos reģistrē žurnāla failā, tādējādi izveidojot revīzijas izmēģinājumu.

Tas var ierakstīt informāciju, piemēram, datumu un laiku, notikuma veidu un rezultātu; lietotāji, kuri izraisīja notikumu, visas failos/datu bāzēs veiktās izmaiņas; sistēmas autentifikācijas mehānismu, piemēram, PAM, LDAP, SSH un citu, izmantošana.

Auditd arī reģistrē visas izmaiņas, kas veiktas audita konfigurācijas failos, vai mēģinājumus piekļūt revīzijas žurnāla failiem, kā arī visus centienus importēt vai eksportēt informāciju sistēmā vai no tās, kā arī daudz citas ar drošību saistītas informācijas.

  1. Tas neprasa nekādas ārējas programmas vai procesus, lai palaistu sistēmu, padarot to par pašpaļāvīgu.
  2. Tas ir ļoti konfigurējams, tāpēc ļauj jums apskatīt visas vēlamās sistēmas operācijas.
  3. Tas palīdz atklāt vai analizēt iespējamos sistēmas kompromisus.
  4. Tā spēj darboties kā neatkarīga noteikšanas sistēma.
  5. Tas var darboties ar ielaušanās detektēšanas sistēmām, lai iespējotu ielaušanās noteikšanu.
  6. Tas ir būtisks līdzeklis kriminālistikas izmeklēšanas revīzijai.

Revīzijas sistēmai ir divi galvenie komponenti, proti:

  • lietotāja telpas lietojumprogrammas un utilītas/rīki, un
  • kodola puses sistēmas zvanu apstrāde - tas pieņem sistēmas zvanus no lietotāja telpas lietojumprogrammām un izlaiž tos caur trīs veidu filtriem: lietotājs, uzdevums, izeja vai izslēgšana.

Vissvarīgākā daļa ir lietotāja telpas audita dēmons (auditd), kas apkopo informāciju, pamatojoties uz iepriekš konfigurētiem noteikumiem, no kodola un ģenerē ierakstus žurnāla failā: noklusējuma žurnāls ir /var/log/audit/audit.log.

Turklāt audispd (audita dispečera dēmons) ir notikumu multipleksors, kas mijiedarbojas ar auditd un nosūta notikumus citām programmām, kuras vēlas veikt reāllaika notikumu apstrādi.

Ir vairāki lietotāja telpas rīki informācijas pārvaldībai un iegūšanai no audita sistēmas:

  • auditctl - lietderība kodola audita sistēmas kontrolei.
  • ausearch - lietderība konkrētu notikumu audita žurnāla failu meklēšanai.
  • aureport - utilīta, lai izveidotu pārskatus par ierakstītiem notikumiem.

Kā instalēt un konfigurēt revīzijas rīku RHEL/CentOS/Fedora

Vispirms pārbaudiet, vai auditēšanas rīks ir instalēts jūsu sistēmā, izmantojot grep utilītu šādi:

# rpm -qa | grep audit

Ja iepriekš minētās pakotnes nav instalētas, palaidiet šo komandu kā root lietotāju, lai tās instalētu.

# yum install audit

Pēc tam pārbaudiet, vai auditd ir iespējots un darbojas, izsniedziet terminālā zemāk esošās komandas 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]

Tagad mēs redzēsim, kā konfigurēt auditd, izmantojot galveno konfigurācijas failu /etc/audit/auditd.conf. Šeit norādītie parametri ļauj jums kontrolēt pakalpojuma darbību, piemēram, noteikt žurnāla faila atrašanās vietu, maksimālo žurnāla failu skaitu, žurnāla formātu, kā rīkoties ar pilniem diskiem, žurnāla pagriešanu un daudzām citām iespējām.

# vi /etc/audit/auditd.conf

Pēc parauga izejas zemāk parametri ir pašsaprotami.

Izpratne par revīzijas noteikumiem

Kā mēs jau iepriekš minējām, auditd izmanto noteikumus, lai savāktu konkrētu informāciju no kodola. Šie noteikumi būtībā ir auditctl opcijas (skatiet man lapu), kuras varat iepriekš konfigurēt kārtulas failā /etc/audit/rules.d/audit.rules (CentOS 6 izmantojiet failu /etc/audit/audit.rules) , lai tie tiktu ielādēti startēšanas laikā.

Jūs varat definēt trīs veidu revīzijas noteikumus:

  • Kontroles noteikumi - tie ļauj mainīt revīzijas sistēmas uzvedību un dažas tās konfigurācijas.
  • Failu sistēmas noteikumi (saukti arī par failu skatīšanos) - ļauj auditēt piekļuvi noteiktam failam vai direktorijam.
  • Sistēmas izsaukuma kārtulas - ļauj reģistrēt jebkuras programmas veiktus sistēmas izsaukumus.

Tagad rediģēšanai atveriet galveno konfigurācijas failu:

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

Ņemiet vērā, ka šī faila pirmajā sadaļā jābūt vadības noteikumiem. Tad vidējā sadaļā pievienojiet savus revīzijas noteikumus (failu pulksteņi un sistēmas izsaukuma kārtulas), un visbeidzot pēdējā sadaļā ir nemaināmības iestatījumi, kas ir arī vadības noteikumi.

-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

Failu pulksteņus varat definēt, izmantojot šo sintaksi:

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

Ja iespēja:

  • w - tiek izmantots, lai norādītu failu vai direktoriju, kuru uzraudzīt.
  • p - reģistrējamās atļaujas, r - piekļuvei lasīšanai, w - rakstīšanas piekļuvei, x - izpildes piekļuvei un a - faila vai direktora atribūta maiņai.
  • -k - ļauj iestatīt neobligātu virkni, lai noteiktu, kura kārtula (vai noteikumu kopa) izveidoja konkrētu žurnāla ierakstu.

Šie noteikumi ļauj auditēt, lai skatītos notikumus, veicot izmaiņas šajos kritiskajos sistēmas failos.

-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

Izmantojot zemāk esošo veidlapu, varat iestatīt sistēmas izsaukuma kārtulu:

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

kur:

  • darbība - tai ir divas iespējamās vērtības: vienmēr vai nekad.
  • filtrs - norāda kodola kārtulu atbilstības filtru (uzdevums, izeja, lietotājs un izslēgšana), kas tiek piemērots notikumam.
  • sistēmas izsaukums - sistēmas izsaukuma nosaukums.
  • lauks - norāda papildu opcijas, piemēram, arhitektūru, PID, GID utt., lai modificētu kārtulu.

Šeit ir daži noteikumi, kurus varat definēt.

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

Pēc tam faila beigās pievienojiet nemaināmības iestatījumus, piemēram:

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

Kā iestatīt Auditd kārtulas, izmantojot auditctl Utility

Varat arī nosūtīt opcijas uz auditd, kamēr tā darbojas, izmantojot auditctl, kā norādīts turpmākajos piemēros. Šīs komandas var ignorēt konfigurācijas faila kārtulas.

Lai uzskaitītu visus pašlaik ielādētos revīzijas noteikumus, nododiet karodziņu -l :

# auditctl -l

Pēc tam mēģiniet pievienot dažus noteikumus:

# 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

Visi audita ziņojumi pēc noklusējuma tiek ierakstīti failā /var/log/audit/audit.log. Lai saprastu žurnāla ieraksta formātu, mēs ielādēsim kārtulu un pārbaudīsim žurnāla ierakstu, kas izveidots pēc kārtulai atbilstoša notikuma.

Pieņemot, ka mums ir slepens dublējumu katalogs, šis revīzijas noteikums reģistrēs visus mēģinājumus piekļūt vai modificēt šo direktoriju:

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

Tagad, izmantojot citu sistēmas kontu, mēģiniet pāriet uz direktoriju iepriekš un palaidiet komandu ls:

$ cd /backups/secret_files/
$ ls

Žurnāla ieraksts izskatīsies tā.

Iepriekš minēto notikumu veido trīs revīzijas ierakstu veidi. Pirmais ir tips = 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"

Otrais ir tips = CWD.

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

Un pēdējais ir tips = 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

Pilns visu notikumu lauku (piemēram, msg, arch, ses utt.) Saraksts un to nozīme ir atrodami Audita sistēmas atsaucēs.

Tas pagaidām ir viss. Nākamajā rakstā mēs aplūkosim, kā izmantot ausearch, lai vaicātu audita žurnāla failus: mēs izskaidrosim, kā meklēt konkrētu informāciju no audita žurnāliem. Ja jums ir kādi jautājumi, lūdzu, sazinieties ar mums, izmantojot zemāk esošo komentāru sadaļu.