Weboldal keresés

Tanuljon meg Linux rendszerellenőrzést az Auditd eszközzel a CentOS/RHEL rendszeren


A rendszer-audit egyszerűen egy meghatározott célrendszer mélyreható elemzésére utal: az audit a rendszert alkotó különböző részek vizsgálatából áll, kritikus értékeléssel (és szükség esetén teszteléssel) a különböző érdeklődési területeken.

Olvassa el még: Lynis – Biztonsági auditáló és ellenőrző eszköz Linux rendszerekhez

Az RHEL/CentOS egyik kritikus alrendszere, az auditd néven ismert Linux audit rendszer. Olyan eszközt valósít meg, amellyel nyomon követheti a biztonsági szempontból releváns információkat a rendszeren: előre konfigurált szabályok segítségével hatalmas mennyiségű információt gyűjt össze a rendszeren zajló eseményekről, és rögzíti azokat egy naplófájlban, így létrehozva egy audit tesztet.

Olyan információkat rögzíthet, mint a dátum és az idő, egy esemény típusa és eredménye; az eseményt okozó felhasználók, a fájlok/adatbázisok módosításai; rendszer-hitelesítési mechanizmusok, például PAM, LDAP, SSH és mások használata.

Az Auditd emellett rögzíti az ellenőrzési konfigurációs fájlokon végrehajtott módosításokat vagy az ellenőrzési naplófájlok elérésére tett kísérleteket, valamint az információk rendszerbe vagy onnan történő importálására vagy exportálására irányuló erőfeszítéseket, valamint sok más, biztonsággal kapcsolatos információt.

Miért fontos a Linux Audit System?

  1. Nincs szükség külső programokra vagy folyamatokra a rendszeren való futtatáshoz, így az önálló.
  2. Nagymértékben konfigurálható, így lehetővé teszi a kívánt rendszerművelet(ek) megtekintését.
  3. Segít a rendszer potenciális kompromisszumainak észlelésében vagy elemzésében.
  4. Képes független érzékelő rendszerként működni.
  5. Működhet a behatolásészlelő rendszerekkel, hogy lehetővé tegye a behatolás észlelését.
  6. Ez egy létfontosságú eszköz az igazságügyi szakértői vizsgálatok ellenőrzéséhez.

A Linux Audit System Components

Az auditrendszer két alapvető összetevőből áll, nevezetesen:

  • felhasználói térbeli alkalmazások és segédprogramok/eszközök, és
  • kernel oldali rendszerhívás-feldolgozás – fogadja a rendszerhívásokat a felhasználói terület alkalmazásokból, és háromféle szűrőn halad át, nevezetesen: felhasználó, feladat, kilépés< vagy kizárás.

A legfontosabb rész a user-space audit démon (auditd), amely előre konfigurált szabályok alapján gyűjt információkat a kernelből, és bejegyzéseket hoz létre egy naplófájlban: alapértelmezett napló: /var/log/audit/audit.log.

Ezenkívül az audispd (audit diszpécser démon) egy eseménymultiplexor, amely együttműködik az auditd-vel, és eseményeket küld más programoknak, amelyek valós időben szeretnének végrehajtani. eseményfeldolgozás.

Számos felhasználói terület eszköz létezik az ellenőrzési rendszerből származó információk kezelésére és lekérésére:

  • auditctl – a kernel auditrendszerének vezérlésére szolgáló segédprogram.
  • ausearch – egy segédprogram, amellyel konkrét eseményeket kereshet a naplófájlokban.
  • aureport – segédprogram a rögzített eseményekről szóló jelentések készítésére.

Az Audit Tool telepítése és konfigurálása az RHEL/CentOS/Fedora rendszerben

Először az rpm parancs és a grep segédprogram segítségével ellenőrizze, hogy az audit eszköz telepítve van-e a rendszeren:

rpm -qa | grep audit

Ha a fenti csomagok nincsenek telepítve, futtassa ezt a parancsot root felhasználóként a telepítésükhöz.

yum install audit

Ezután ellenőrizze, hogy az auditd engedélyezve van-e és fut-e, majd adja ki az alábbi systemctl parancsokat a terminálon.

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

Most látni fogjuk, hogyan konfigurálható az auditd a fő konfigurációs fájl /etc/audit/auditd.conf használatával. Az itt található paraméterek lehetővé teszik a szolgáltatás működésének szabályozását, például a naplófájl helyének, a naplófájlok maximális számának, a naplóformátumnak, a teljes lemezek kezelésének módját, a naplóforgatás és még sok más lehetőség megadását.

vi /etc/audit/auditd.conf

Az alábbi mintakimenetből a paraméterek magától értetődőek.

Az ellenőrzési szabályok megértése

Amint azt korábban említettük, az auditd szabályokat használ, hogy meghatározott információkat gyűjtsön a kernelből. Ezek a szabályok alapvetően auditctl beállítások (lásd a kézikönyv oldalt), amelyek előre konfigurálhatók az /etc/audit/rules.d/audit.rules fájlban (a CentOS rendszeren 6, használja az /etc/audit/audit.rules fájlt), hogy az indításkor betöltődik.

Háromféle ellenőrzési szabályt határozhat meg:

  • Vezérlési szabályok – ezek lehetővé teszik az auditrendszer viselkedésének és néhány konfigurációjának módosítását.
  • Fájlrendszerszabályok (más néven fájlfigyelők) – lehetővé teszik egy bizonyos fájlhoz vagy könyvtárhoz való hozzáférés ellenőrzését.
  • Rendszerhívási szabályok – lehetővé teszi a bármely program által indított rendszerhívások naplózását.

Most nyissa meg a fő konfigurációs fájlt szerkesztéshez:

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

Vegye figyelembe, hogy a fájl első szakaszának tartalmaznia kell a vezérlési szabályokat. Ezután adja hozzá az auditszabályokat (fájlfigyelési és rendszerhívási szabályok) a középső részhez, és végül az utolsó rész tartalmazza a megváltoztathatatlansági beállításokat, amelyek egyben vezérlőszabályok is.

Példák az Auditd ellenőrzési szabályaira

-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

Példák az Auditd fájlrendszer szabályaira

A fájlfigyelőket a következő szintaxissal határozhatja meg:

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

Ahol a lehetőség:

  • w – a figyelni kívánt fájl vagy könyvtár megadására szolgál.
  • p – naplózási engedélyek, r – olvasási hozzáférés, w – írási hozzáférés, x – a hozzáférés végrehajtása és az a – a fájl vagy a rendező attribútumának megváltoztatásához.
  • -k – lehetővé teszi egy opcionális karakterlánc beállítását annak azonosítására, hogy melyik szabály (vagy szabálykészlet) hozott létre egy adott naplóbejegyzést.

Ezek a szabályok lehetővé teszik a naplózást, hogy figyelje az eseményeket, amelyek módosítják ezeket a kritikus rendszerfájlokat.

-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

Példák az Auditd rendszerhívási szabályokra

Rendszerhívási szabályt az alábbi űrlap segítségével állíthat be:

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

ahol :

  • action – két lehetséges értéke van: mindig vagy soha.
  • szűrő – meghatározza, hogy a rendszermagszabály-egyezési szűrő (feladat, kilépés, felhasználó és kizárás) kerüljön alkalmazásra az eseményre.
  • rendszerhívás – rendszerhívás neve.
  • mező – további beállításokat ad meg, például architektúrát, PID-t, GID-t stb. a szabály módosításához.

Íme néhány szabály, amelyeket meghatározhat.

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

Végül adja hozzá a változatlansági beállításokat a fájl végéhez, például:

-e 1	#enable auditing
-e 2	#make the configuration immutable -- reboot is required to change audit rules
Minta Auditd Rules konfigurációs fájl

Auditd szabályok beállítása az auditctl Utility segítségével

Alternatív megoldásként elküldheti a beállításokat az auditd-nek, miközben az fut, az auditctl használatával, a következő példák szerint. Ezek a parancsok felülírhatják a konfigurációs fájl szabályait.

Az összes jelenleg betöltött ellenőrzési szabály felsorolásához adja át a -l jelzőt:

auditctl -l

Ezután próbáljon meg néhány szabályt hozzáadni:

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

Az Auditd naplófájlok megértése

Alapértelmezés szerint minden ellenőrzési üzenet a /var/log/audit/audit.log fájlban rögzítésre kerül. A naplóbejegyzés formátumának megértéséhez betöltünk egy szabályt, és ellenőrizzük a szabálynak megfelelő esemény után generált naplóbejegyzést.

Feltételezve, hogy van egy titkos biztonsági mentési könyvtárunk, ez az ellenőrzési szabály naplózza a könyvtár elérésére vagy módosítására irányuló kísérleteket:

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

Most egy másik rendszerfiókkal próbáljon meg belépni a fenti könyvtárba, és futtassa az ls parancsot:

cd /backups/secret_files/
ls

A naplóbejegyzés így fog kinézni.

A fenti esemény három típusú ellenőrzési rekordból áll. Az első a 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"

A második a type=CWD.

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

Az utolsó pedig a 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

Az összes eseménymező (például msg, arch, ses stb.) és jelentésük teljes listáját megtalálja az Audit System Reference részben.

Ez minden most. A következő cikkben megvizsgáljuk, hogyan lehet az ausearch segítségével lekérdezni a naplófájlokat: elmagyarázzuk, hogyan lehet konkrét információkat keresni az ellenőrzési naplókban. Ha bármilyen kérdése van, forduljon hozzánk az alábbi megjegyzés részben.