Léiert Linux System Auditing mam Auditd Tool op CentOS/RHEL


Systemaudit bezitt sech einfach op déifgräifend Analyse vun engem spezifesche geziilte System: en Audit besteet aus enger Untersuchung vun de verschiddenen Deeler, déi dee System ausmaachen, mat kritescher Bewäertung (an Test wann néideg) a verschiddenen Interesseberäicher.

Ee vun de kriteschen Ënnersystemer op RHEL/CentOS de Linux Audit System allgemeng bekannt als auditd. Et implementéiert e Mëttel fir Sécherheetsrelevant Informatioun iwwer e System ze verfolgen: et benotzt pre-konfiguréiert Reegele fir enorm Quantitéiten un Informatioun iwwer Eventer ze sammelen déi um System geschéien, an registréiert se an enger Logdatei, sou datt en Auditprozess erstellt.

Et kann Informatiounen wéi Datum an Zäit Rekord, Typ, an Resultat vun engem Event; Benotzer déi d'Evenement verursaacht hunn, all Ännerunge fir Dateien/Datenbanken; Gebrauch vu Systemauthentifikatiounsmechanismen, wéi PAM, LDAP, SSH, an anerer.

Auditd registréiert och all Ännerungen, déi un den Auditkonfiguratiounsdateien gemaach goufen oder all Versuche fir Zougang zu Auditprotokolldateien, an all Efforten fir Informatioun an oder aus dem System z'importéieren oder z'exportéieren plus vill aner Sécherheetsbezunnen Informatioun.

  1. Et erfuerdert keng extern Programmer oder Prozesser fir op engem System ze lafen, sou datt et selbststänneg ass.
  2. Et ass héich konfiguréierbar, dofir erlaabt Iech all Systemoperatioun(en) ze gesinn, déi Dir wëllt.
  3. Et hëlleft fir potenziell Kompromëss vun engem System z'entdecken oder ze analyséieren.
  4. Et ass fäeg als onofhängegen Detektiounssystem ze schaffen.
  5. Et kann mat Intrusion Detection Systemer funktionnéieren fir Intrusion Detection z'erméiglechen.
  6. Et ass e wesentlecht Tool fir d'Forensesch Ermëttlungen z'iwwerpréiwen.

Den Auditsystem huet zwee Kärkomponenten, nämlech:

  • Benotzerraumapplikatiounen an Utilities/Tools, an
  • Kernel-Säit System Call Veraarbechtung - dëst akzeptéiert System Appellen aus User-Raum Uwendungen a passéiert se duerch dräi Zorte vu Filtere, nämlech: Benotzer, Task, Austrëtt oder ausschléissen.

Dee wichtegsten Deel ass de User-Space Audit Daemon (auditd) deen Informatioun sammelt baséiert op pre-konfiguréierte Reegelen, vum Kernel a generéiert Entréen an enger Logdatei: de Standardlog ass /var/log/audit/audit.log.

Zousätzlech ass den Audispd (Audit Dispatcher Daemon) en Eventmultiplexor deen mat Audid interagéiert an Eventer un aner Programmer schéckt déi Echtzäit Eventveraarbechtung wëllen ausféieren.

Et ginn eng Rei User-Raum-Tools fir Informatioun aus dem Auditsystem ze managen an zréckzezéien:

  • auditctl - en Utility fir den Auditsystem vum Kernel ze kontrolléieren.
  • ausearch - en Utility fir Audit Logdateien fir spezifesch Eventer ze sichen.
  • aureport - en Utility fir Berichter iwwer opgeholl Eventer ze kreéieren.

Wéi installéiere a konfiguréieren Audit Tool an RHEL/CentOS/Fedora

Gitt als éischt sécher ze verifizéieren datt d'Audit-Tool op Ärem System installéiert ass mat dem grep-Utility wéi follegt:

# rpm -qa | grep audit

Wann Dir déi uewe genannte Packagen net installéiert hutt, fuert dëse Kommando als Root Benotzer fir se z'installéieren.

# yum install audit

Als nächst, kontrolléiert ob auditd aktivéiert ass a leeft, gitt d'Systemctl Kommandoen ënnen um Terminal.

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

Elo wäerte mir kucken wéi Dir Audit konfiguréiert mat der Haaptkonfiguratiounsdatei /etc/audit/auditd.conf. D'Parameteren hei erlaben Iech ze kontrolléieren wéi de Service leeft, sou wéi d'Definitioun vun der Plaz vun der Logdatei, maximal Unzuel vu Logdateien, Logformat, wéi Dir mat voller Disken ëmgeet, Logrotatioun a vill méi Optiounen.

# vi /etc/audit/auditd.conf

Vun der Probeausgang hei drënner sinn d'Parameteren selbstänneg.

Audit Regelen verstoen

Wéi mir virdru scho gesot hunn, benotzt auditd Reegele fir spezifesch Informatioun aus dem Kernel ze sammelen. Dës Reegele si grondsätzlech auditctl Optiounen (kuckt Mann Säit) déi Dir Regelen an der /etc/audit/rules.d/audit.rules Datei virkonfiguréiere kënnt (Op CentOS 6 benotzt d' /etc/audit/audit.rules Datei) , sou datt se beim Startup gelueden sinn.

Et ginn dräi Aarte vun Auditregelen déi Dir definéiere kënnt:

  • Kontrollregelen - dës erméiglechen d'Modifikatioun vum Verhalen vum Auditsystem an e puer vu senge Konfiguratiounen.
  • Dateisystemregelen (och als Dateiuacht bezeechent) - aktivéiert den Zougang zu engem bestëmmte Fichier oder e Verzeichnis Audit.
  • System Uruff Regelen - erlaabt d'Protokolléiere vu System Uriff vun all Programm gemaach.

Elo öffnen d'Haaptkonfiguratiounsdatei fir z'änneren:

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

Bedenkt datt déi éischt Sektioun vun dëser Datei Kontrollregele muss enthalen. Füügt dann Är Auditregelen (Dateiuhren a Systemopruffregelen) an der Mëtt Sektioun, a schliisslech enthält déi lescht Sektioun Immutabilitéitsastellungen déi och Kontrollregelen sinn.

-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

Dir kënnt Dateiwatches definéieren mat dëser Syntax:

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

Wou d'Optioun:

  • w – gëtt benotzt fir e Fichier oder Verzeechnes ze spezifizéieren fir ze kucken.
  • p - Permissiounen fir protokolléiert ze ginn, r - fir Lieszougang, w - fir Schreifzougang, x - fir Ausféierungszougang an eng - fir Ännerung vum Fichier oder Regisseurattribut.
  • -k - erlaabt Iech eng optional String ze setzen fir z'identifizéieren wéi eng Regel (oder eng Rei vu Regelen) eng spezifesch Logeintrag erstallt huet.

Dës Reegele erlaben Audit fir Eventer ze kucken, déi Ännerungen un dëse kriteschen Systemdateien maachen.

-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

Dir kënnt e System Uruff Regel astellen andeems Dir de Formulaire hei drënner benotzt:

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

wou:

  • Aktioun - huet zwee méiglech Wäerter: ëmmer oder ni.
  • Filter - spezifizéiert Kernel Regel-passende Filter (Aufgab, Austrëtt, Benotzer an ausschléissen) gëtt op d'Evenement ugewannt.
  • System Uruff - System Uruff Numm.
  • Feld - spezifizéiert zousätzlech Optiounen wéi Architektur, PID, GID etc fir d'Regel z'änneren.

Hei sinn e puer Regelen déi Dir definéiere kënnt.

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

Da füügt endlech d'Immutabilitéitsastellungen um Enn vun der Datei un, zum Beispill:

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

Wéi Setzt Auditd Regelen Mat Auditctl Utility

Alternativ, schéckt d'Optiounen op Auditd wärend et leeft, mat der Auditctl wéi an de folgende Beispiller. Dës Kommandoe kënnen d'Regelen an der Konfiguratiounsdatei iwwerschreiden.

Fir all aktuell gelueden Auditregelen opzemaachen, gitt de -l Fändel:

# auditctl -l

Als nächst probéiert e puer Reegelen ze addéieren:

# 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

All Auditmeldungen ginn als Standard an /var/log/audit/audit.log Datei opgeholl. Fir de Log-Entrée-Format ze verstoen, luede mir eng Regel a kontrolléieren de Log-Entrée generéiert no engem Event dat mat der Regel passt.

Unzehuelen datt mir e geheime Backup-Verzeichnis hunn, wäert dës Auditregel all Versuche protokolléieren fir Zougang zu dësem Verzeechnes oder z'änneren:

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

Elo, andeems Dir en anere Systemkonto benotzt, probéiert an de Verzeichnis uewen ze réckelen an de Kommando ls auszeféieren:

$ cd /backups/secret_files/
$ ls

D'Logbuch Entrée wäert sou ausgesinn.

Dat uewe genannte Event besteet aus dräi Aarte vun Audit records. Déi éischt ass Typ = 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"

Déi zweet ass Typ = CWD.

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

An déi lescht ass Typ = 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

Dir fannt eng komplett Lëscht vun all Eventfelder (wéi msg, arch, ses etc..) an hir Bedeitungen an der Audit System Reference.

Dat ass alles fir elo. Am nächsten Artikel wäerte mir kucken wéi Dir Ausearch benotzt fir Audit Log Dateien ze froen: mir erkläre wéi Dir no spezifesch Informatioun aus den Audit Logbicher sichen. Wann Dir Froen hutt, kontaktéiert eis w.e.g. iwwer de Kommentarsektioun hei drënner.