GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come utilizzare auditd per monitorare un SYSCALL specifico

Un SYSCALL si verifica ogni volta che un utente esegue un comando che richiede che il kernel Linux fornisca un servizio. Esistono diversi SYSCALL come mount, umount, kill, open ecc. Questi SYSCALL possono essere monitorati con il sistema auditd. Prendiamo come esempio "kill" SYSCALL.

L'utente vuole catturare chi ha terminato un determinato processo nel sistema. Questo può essere ottenuto facilmente scrivendo una regola auditd in grado di acquisire il kill SYSCALL ogni volta che viene chiamato.

Installazione e configurazione di auditd

auditd è per lo più preinstallato su distribuzioni Linux. Nel caso in cui non sia disponibile, puoi utilizzare il rispettivo gestore di pacchetti del sistema operativo per installarlo. Ad esempio, in caso di CentOS/RHEL:

# yum install auditd

Abilita l'avvio del servizio auditd all'avvio e avvialo utilizzando il comando "service".

# systemctl enable auditd
# service start auditd

Configurazione della regola auditd per monitorare SYSCALL

Creiamo una regola per monitorare il "kill" SYSCALL che può essere utilizzato per trovare tutti i processi di uccisione.

1. Aggiungi la regola seguente al file di configurazione delle regole auditd /etc/audit/rules.d/audit.rules :

# vi /etc/audit/rules.d/audit.rules
-a exit,always -F arch=b64 -S kill -k kill_rule
Su CentOS/RHEL 6, il file di configurazione è /etc/audit/audit.rules invece di /etc/audit/rules.d/audit.rules.

Ecco,
-un'uscita, sempre – Qui abbiamo l'azione e l'elenco. Ogni volta che il sistema operativo esce da una chiamata di sistema, l'elenco di uscite verrà utilizzato per determinare se è necessario generare un evento di controllo.
-F arch=b64 – L'opzione -F viene utilizzata per creare un campo regola. Il b64 significa che il computer è in esecuzione con una CPU x86_64. (Che si tratti di Intel o AMD non importa.)
-S kill – L'opzione -S specifica la chiamata di sistema che vogliamo monitorare.
-k – Questo è un nome di regola definito dall'utente.

Nota :"arch" è l'architettura della CPU della syscall. Se il sistema è un sistema operativo a 32 bit, è necessario impostarlo con "arch=b32".

2. Riavviare il servizio auditd affinché la nuova regola sia effettiva.

# service restart auditd

3. Puoi verificare se le regole definite sono attive, usando il comando “auditctl -l”.

# auditctl -l
-a always,exit -F arch=b64 -S kill -F key=kill_rule

Verifica

Vediamo un esempio se la regola che abbiamo appena creato funziona davvero o meno. Inizieremo semplicemente un processo "sleep 500" e lo uccideremo. Questo dovrebbe generare un registro di controllo con tutti i dettagli come chi ha ucciso il processo (uid) con quale programma/comando ecc.

1. Genera un semplice processo di sospensione in background.

# sleep 600 &

2. Verifica l'ID del processo di sospensione e terminalo.

# ps -ef | grep sleep
root      2089  1784  0 15:12 pts/0    00:00:00 sleep 600
# kill -9 2089

3. Cerca il file di registro di controllo /var/log/audit/audit.log per i registri di controllo delle uccisioni. Il registro dovrebbe essere simile a quello mostrato di seguito.

# tail -f /var/log/audit/audit.log
type=SYSCALL msg=audit(1529507591.700:304): arch=c000003e syscall=62 success=yes exit=0 a0=829 a1=9 a2=0 a3=829 items=0 ppid=1783 pid=1784 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="bash" exe="/usr/bin/bash" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="kill_rule"
type=OBJ_PID msg=audit(1529507591.700:304): opid=2089 oauid=1001 ouid=0 oses=1 obj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 ocomm="sleep"
type=PROCTITLE msg=audit(1529507591.700:304): proctitle="-bash"

4. A volte nel log di audit può essere difficile cercare i log che ci interessano. In tal caso puoi anche utilizzare il comando “ausearch” con la chiave definita con la regola. Ad esempio:

# ausearch -k kill_rule
...
time->Wed Jun 20 15:13:11 2018
type=PROCTITLE msg=audit(1529507591.700:304): proctitle="-bash"
type=OBJ_PID msg=audit(1529507591.700:304): opid=2089 oauid=1001 ouid=0 oses=1 obj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 ocomm="sleep"
type=SYSCALL msg=audit(1529507591.700:304): arch=c000003e syscall=62 success=yes exit=0 a0=829 a1=9 a2=0 a3=829 items=0 ppid=1783 pid=1784 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="bash" exe="/usr/bin/bash" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="kill_rule"


Cent OS
  1. Come usare il sale su Centos 8

  2. Come utilizzare yum per installare una versione specifica di un pacchetto?

  3. Come ignorare/disabilitare voci di registrazione auditd specifiche

  4. come usare kill SIGUSR2 in bash?

  5. come utilizzare cURL su un'interfaccia specifica

Come usare il pannello Webuzo!!!

Come utilizzare htop per monitorare i processi di sistema Linux

Come utilizzare htop per monitorare i processi di sistema in Ubuntu 18.04

Come utilizzare htop per monitorare i processi di sistema in Ubuntu 20.04

Come usare ss Command (monitora connessioni di rete)

Come utilizzare FTP