Comment vérifier si une règle d'audit est définie sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à vérifier si les règles d'audit sont configurées sous Linux. Vous commencerez par lister les règles d'audit actuellement chargées en utilisant la commande auditctl -l, qui interagit avec le démon d'audit Linux (auditd) pour afficher les règles définissant quels événements système sont suivis.

Ensuite, vous examinerez le fichier de configuration des règles d'audit situé à /etc/audit/audit.rules pour comprendre comment ces règles sont stockées de manière persistante. Enfin, vous vérifierez les journaux d'audit dans le répertoire /var/log/audit pour voir les événements enregistrés en fonction des règles configurées, ce qui vous offrira une vue pratique de l'activité d'audit du système.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/help("Command Assistance") linux/BasicSystemCommandsGroup -.-> linux/man("Manual Access") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/tail("File End Display") subgraph Lab Skills linux/help -.-> lab-558780{{"Comment vérifier si une règle d'audit est définie sous Linux"}} linux/man -.-> lab-558780{{"Comment vérifier si une règle d'audit est définie sous Linux"}} linux/ls -.-> lab-558780{{"Comment vérifier si une règle d'audit est définie sous Linux"}} linux/cat -.-> lab-558780{{"Comment vérifier si une règle d'audit est définie sous Linux"}} linux/tail -.-> lab-558780{{"Comment vérifier si une règle d'audit est définie sous Linux"}} end

Lister les règles d'audit avec auditctl -l

Dans cette étape, vous apprendrez à lister les règles d'audit actuelles configurées sur le système en utilisant la commande auditctl. Le démon d'audit Linux (auditd) est un outil puissant pour suivre les informations liées à la sécurité sur votre système. Les règles d'audit définissent quels événements le système doit enregistrer.

La commande auditctl est utilisée pour contrôler le démon d'audit. Pour lister les règles d'audit actuellement chargées, vous utilisez l'option -l.

Ouvrez le terminal si vous ne l'avez pas déjà fait. Vous pouvez le faire en cliquant sur l'icône Xfce Terminal sur le côté gauche du bureau.

Maintenant, tapez la commande suivante dans le terminal et appuyez sur Entrée :

sudo auditctl -l

Vous pourriez voir une sortie similaire à celle-ci :

-w /etc/passwd -p wa -k passwd_changes
-w /etc/shadow -p wa -k shadow_changes
-w /etc/gshadow -p wa -k gshadow_changes
-w /etc/group -p wa -k group_changes
-w /etc/sudoers -p wa -k sudoers_changes
-w /etc/sudoers.d/ -p wa -k sudoers_changes
-w /var/log/faillog -p wa -k logins
-w /var/log/lastlog -p wa -k logins
-w /var/log/tallylog -p wa -k logins
-w /var/run/utmp -p wa -k session
-w /var/log/wtmp -p wa -k session
-w /var/log/btmp -p wa -k session
-a always,exit -F arch=b32 -S open,creat,truncate,ftruncate,chmod,fchmod,chown,fchown,setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F auid>=1000 -F auid!=unset -k access
-a always,exit -F arch=b64 -S open,creat,truncate,ftruncate,chmod,fchmod,chown,fchown,setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F auid>=1000 -F auid!=unset -k access
-a always,exit -F arch=b32 -S execve -F auid>=1000 -F auid!=unset -k exec
-a always,exit -F arch=b64 -S execve -F auid>=1000 -F auid!=unset -k exec
-a always,exit -F arch=b32 -S unlink,unlinkat,rename,renameat -F auid>=1000 -F auid!=unset -k delete
-a always,exit -F arch=b64 -S unlink,unlinkat,rename,renameat -F auid>=1000 -F auid!=unset -k delete
-a always,exit -F arch=b32 -S rmdir -F auid>=1000 -F auid!=unset -k delete
-a always,exit -F arch=b64 -S rmdir -F auid>=1000 -F auid!=unset -k delete
-a always,exit -F arch=b32 -S mount -F auid>=1000 -F auid!=unset -k mount
-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=unset -k mount
-a always,exit -F arch=b32 -S swapon -F auid>=1000 -F auid!=unset -k swapon
-a always,exit -F arch=b64 -S swapon -F auid>=1000 -F auid!=unset -k swapon
-a always,exit -F arch=b32 -S swapoff -F auid>=1000 -F auid!=unset -k swapoff
-a always,exit -F arch=b64 -S swapoff -F auid>=1000 -F auid!=unset -k swapoff
-a always,exit -F arch=b32 -S acct -F auid>=1000 -F auid!=unset -k acct
-a always,exit -F arch=b64 -S acct -F auid>=1000 -F auid!=unset -k acct
-a always,exit -F arch=b32 -S settimeofday,adjtimex,stime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b64 -S settimeofday,adjtimex,stime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b32 -S clock_settime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b64 -S clock_settime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b32 -S sethostname,setdomainname -F auid>=1000 -F auid!=unset -k system-locale
-a always,exit -F arch=b64 -S sethostname,setdomainname -F auid>=1000 -F auid!=unset -k system-locale
-a always,exit -F arch=b32 -S init_module,finit_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b64 -S init_module,finit_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b32 -S creat_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b64 -S creat_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b32 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b64 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b32 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec
-a always,exit -F arch=b64 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec
-a always,exit -F arch=b32 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b64 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b32 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify
-a always,exit -F arch=b64 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify
-a always,exit -F arch=b32 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event
-a always,exit -F arch=b64 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event
-a always,exit -F arch=b32 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring
-a always,exit -F arch=b64 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring
-a always,exit -F arch=b32 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle
-a always,exit -F arch=b64 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle
-a always,exit -F arch=b32 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle
-a always,exit -F arch=b64 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle
-a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b32 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b64 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b32 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b64 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b32 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b64 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b32 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
-a always,exit -F arch=b64 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
-a always,exit -F arch=b32 -S finit_module -F auid>=1000 -F auid!=unset -k finit_module
-a always,exit -F arch=b64 -S finit_module -F auid>=1000 -F auid!=unset -k finit_module
-a always,exit -F arch=b32 -S delete_module -F auid>=1000 -F auid!=unset -k delete_module
-a always,exit -F arch=b64 -S delete_module -F auid>=1000 -F auid!=unset -k delete_module
-a always,exit -F arch=b32 -S init_module -F auid>=1000 -F auid!=unset -k init_module
-a always,exit -F arch=b64 -S init_module -F auid>=1000 -F auid!=unset -k init_module
-a always,exit -F arch=b32 -S creat_module -F auid>=1000 -F auid!=unset -k creat_module
-a always,exit -F arch=b64 -S creat_module -F auid>=1000 -F auid!=unset -k creat_module
-a always,exit -F arch=b32 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b64 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b32 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec_load
-a always,exit -F arch=b64 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec_load
-a always,exit -F arch=b32 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b64 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b32 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify_init
-a always,exit -F arch=b64 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify_init
-a always,exit -F arch=b32 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event_open
-a always,exit -F arch=b64 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event_open
-a always,exit -F arch=b32 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring_setup
-a always,exit -F arch=b64 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring_setup
-a always,exit -F arch=b32 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle_at
-a always,exit -F arch=b64 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle_at
-a always,exit -F arch=b32 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle_at
-a always,exit -F arch=b64 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle_at
-a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b32 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b64 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b32 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b64 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b32 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b64 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b32 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
-a always,exit -F arch=b64 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp

Cette sortie montre les règles actuellement actives dans le système d'audit. Chaque ligne représente une règle. Ne vous inquiétez pas pour comprendre tous les détails des règles pour le moment. L'essentiel est que vous pouvez voir la liste des règles.

L'option -w est utilisée pour surveiller un fichier ou un répertoire spécifique pour détecter les modifications. L'option -a est utilisée pour ajouter une règle. L'option -S spécifie les appels système à auditer.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier le fichier de règles d'audit avec cat /etc/audit/audit.rules

Dans l'étape précédente, vous avez listé les règles d'audit actuellement actives en utilisant auditctl -l. Ces règles sont généralement chargées à partir d'un fichier de configuration lorsque le démon d'audit démarre. Le principal fichier de configuration pour les règles d'audit est /etc/audit/audit.rules.

Examinons le contenu de ce fichier en utilisant la commande cat. La commande cat est utilisée pour afficher le contenu de fichiers.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

cat /etc/audit/audit.rules

Vous verrez le contenu du fichier /etc/audit/audit.rules affiché dans votre terminal. Ce fichier contient les règles qui sont chargées par le démon d'audit au démarrage.

### Ce fichier est automatiquement généré à partir de /etc/audit/rules.d
##
### Les règles sont simplement la concaténation de tous les fichiers de règles dans /etc/audit/rules.d
### et seront chargées après que les règles du noyau aient été chargées.
##
##
### Première règle - supprimer toutes les règles
-D

### Augmenter les tampons pour survivre aux événements de stress.
### Augmentez cette valeur pour les systèmes occupés
-b 8192

### Définir le mode de défaillance sur le journal système (syslog)
-f 1

### Enregistrer toutes les tentatives de modification de l'heure système
-a always,exit -F arch=b32 -S settimeofday,adjtimex,stime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b64 -S settimeofday,adjtimex,stime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b32 -S clock_settime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b64 -S clock_settime -F auid>=1000 -F auid!=unset -k time-change

### Enregistrer toutes les tentatives de modification de la locale système
-a always,exit -F arch=b32 -S sethostname,setdomainname -F auid>=1000 -F auid!=unset -k system-locale
-a always,exit -F arch=b64 -S sethostname,setdomainname -F auid>=1000 -F auid!=unset -k system-locale

### Enregistrer toutes les tentatives de modification des modules système
-a always,exit -F arch=b32 -S init_module,finit_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b64 -S init_module,finit_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b32 -S creat_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b64 -S creat_module,delete_module -F auid>=1000 -F auid!=unset -k modules

### Enregistrer toutes les tentatives de modification du journal système (syslog)
-a always,exit -F arch=b32 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b64 -S syslog -F auid>=1000 -F auid!=unset -k syslog

### Enregistrer toutes les tentatives de modification de kexec système
-a always,exit -F arch=b32 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec
-a always,exit -F arch=b64 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec

### Enregistrer toutes les tentatives de modification de BPF (Berkeley Packet Filter) système
-a always,exit -F arch=b32 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b64 -S bpf -F auid>=1000 -F auid!=unset -k bpf

### Enregistrer toutes les tentatives de modification de Fanotify système
-a always,exit -F arch=b32 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify
-a always,exit -F arch=b64 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify

### Enregistrer toutes les tentatives de modification de Perf_event système
-a always,exit -F arch=b32 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event
-a always,exit -F arch=b64 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event

### Enregistrer toutes les tentatives de modification d'IO_uring système
-a always,exit -F arch=b32 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring
-a always,exit -F arch=b64 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring

### Enregistrer toutes les tentatives de modification de Open_by_handle système
-a always,exit -F arch=b32 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle
-a always,exit -F arch=b64 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle

### Enregistrer toutes les tentatives de modification de Name_to_handle système
-a always,exit -F arch=b32 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle
-a always,exit -F arch=b64 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle

### Enregistrer toutes les tentatives de modification de Vmsplice système
-a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice

### Enregistrer toutes les tentatives de modification de Process_vm_readv système
-a always,exit -F arch=b32 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b64 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv

### Enregistrer toutes les tentatives de modification de Process_vm_writev système
-a always,exit -F arch=b32 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b64 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev

### Enregistrer toutes les tentatives de modification de Ptrace système
-a always,exit -F arch=b32 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b64 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace

### Enregistrer toutes les tentatives de modification de Kcmp système
-a always,exit -F arch=b32 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
-a always,exit -F arch=b64 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp

### Enregistrer toutes les tentatives de modification de Finit_module système
-a always,exit -F arch=b32 -S finit_module -F auid>=1000 -F auid!=unset -k finit_module
-a always,exit -F arch=b64 -S finit_module -F auid>=1000 -F auid!=unset -k finit_module

### Enregistrer toutes les tentatives de modification de Delete_module système
-a always,exit -F arch=b32 -S delete_module -F auid>=1000 -F auid!=unset -k delete_module
-a always,exit -F arch=b64 -S delete_module -F auid>=1000 -F auid!=unset -k delete_module

### Enregistrer toutes les tentatives de modification de Init_module système
-a always,exit -F arch=b32 -S init_module -F auid>=1000 -F auid!=unset -k init_module
-a always,exit -F arch=b64 -S init_module -F auid>=1000 -F auid!=unset -k init_module

### Enregistrer toutes les tentatives de modification de Creat_module système
-a always,exit -F arch=b32 -S creat_module -F auid>=1000 -F auid!=unset -k creat_module
-a always,exit -F arch=b64 -S creat_module -F auid>=1000 -F auid!=unset -k creat_module

### Enregistrer toutes les tentatives de modification du journal système (syslog)
-a always,exit -F arch=b32 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b64 -S syslog -F auid>=1000 -F auid!=unset -k syslog

### Enregistrer toutes les tentatives de modification de Kexec_load système
-a always,exit -F arch=b32 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec_load
-a always,exit -F arch=b64 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec_load

### Enregistrer toutes les tentatives de modification de BPF (Berkeley Packet Filter) système
-a always,exit -F arch=b32 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b64 -S bpf -F auid>=1000 -F auid!=unset -k bpf

### Enregistrer toutes les tentatives de modification de Fanotify_init système
-a always,exit -F arch=b32 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify_init
-a always,exit -F arch=b64 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify_init

### Enregistrer toutes les tentatives de modification de Perf_event_open système
-a always,exit -F arch=b32 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event_open
-a always,exit -F arch=b64 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event_open

### Enregistrer toutes les tentatives de modification d'IO_uring_setup système
-a always,exit -F arch=b32 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring_setup
-a always,exit -F arch=b64 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring_setup

### Enregistrer toutes les tentatives de modification de Open_by_handle_at système
-a always,exit -F arch=b32 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle_at
-a always,exit -F arch=b64 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle_at

### Enregistrer toutes les tentatives de modification de Name_to_handle_at système
-a always,exit -F arch=b32 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle_at
-a always,exit -F arch=b64 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle_at

### Enregistrer toutes les tentatives de modification de Vmsplice système
-a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice

### Enregistrer toutes les tentatives de modification de Process_vm_readv système
-a always,exit -F arch=b32 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b64 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv

### Enregistrer toutes les tentatives de modification de Process_vm_writev système
-a always,exit -F arch=b32 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b64 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev

### Enregistrer toutes les tentatives de modification de Ptrace système
-a always,exit -F arch=b32 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b64 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace

### Enregistrer toutes les tentatives de modification de Kcmp système
-a always,exit -F arch=b32 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
-a always,exit -F arch=b64 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp

Comme vous pouvez le voir, le contenu de /etc/audit/audit.rules est similaire à la sortie de sudo auditctl -l. Ce fichier est la source des règles qui sont chargées dans le sous-système d'audit du noyau.

Comprendre le contenu de ce fichier est crucial pour configurer l'audit du système. Vous pouvez ajouter, supprimer ou modifier des règles dans ce fichier pour personnaliser quels événements sont audités. Cependant, les modifications de ce fichier nécessitent des privilèges root et généralement le redémarrage du démon d'audit pour prendre effet.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier les journaux d'audit dans /var/log/audit

Maintenant que vous savez comment lister les règles d'audit et consulter le fichier de configuration, examinons où sont stockés les journaux d'audit. Le démon d'audit écrit les entrées de journal dans des fichiers, généralement situés dans le répertoire /var/log/audit/.

Le fichier de journal d'audit principal est généralement nommé audit.log. Vous pouvez utiliser la commande ls pour lister les fichiers dans le répertoire /var/log/audit/ et voir si le fichier de journal existe.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

ls /var/log/audit/

Vous devriez voir une sortie similaire à celle-ci, montrant le fichier audit.log :

audit.log

Maintenant, examinons le contenu du fichier audit.log en utilisant la commande tail. La commande tail est utile pour afficher la fin d'un fichier, où se trouvent les entrées de journal les plus récentes. Étant donné que le journal d'audit peut être assez volumineux, afficher la fin est souvent plus pratique que d'afficher tout le fichier avec cat.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

sudo tail /var/log/audit/audit.log

Vous verrez les dernières lignes du fichier audit.log. Ces lignes représentent les événements récents qui ont été audités selon les règles configurées. La sortie ressemblera à ceci, chaque ligne étant un enregistrement d'audit détaillé :

type=SYSCALL msg=audit(1678886400.123:456): arch=c000003e syscall=1 success=yes exit=1 a0=1 a1=7ffc... a2=1 a3=0 items=0 ppid=1234 pid=5678 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts/0 ses=1 comm="bash" exe="/usr/bin/bash" subj=unconfined key="access"
type=PROCTITLE msg=audit(1678886400.123:456): proctitle=bash
type=CWD msg=audit(1678886400.123:456): cwd="/home/labex/project"
... (plus d'entrées de journal)

Chaque entrée de journal contient beaucoup d'informations sur l'événement audité, comme le type d'événement, l'horodatage, l'identifiant utilisateur, l'identifiant de processus, la commande exécutée, etc. L'analyse de ces journaux est essentielle pour la surveillance de la sécurité et la réponse aux incidents.

Vous avez maintenant localisé et consulté avec succès les journaux d'audit. Dans un scénario réel, vous utiliseriez des outils tels que ausearch et aureport pour rechercher et résumer efficacement ces journaux, mais pour ce laboratoire introductif, simplement savoir où ils se trouvent est un excellent début.

Cliquez sur Continuer pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, vous avez appris à vérifier si des règles d'audit sont définies sous Linux. Vous avez commencé par utiliser la commande auditctl -l pour lister les règles d'audit actuellement chargées, qui sont contrôlées par le démon d'audit Linux (auditd) et qui définissent quels événements système sont enregistrés.

Ensuite, vous avez généralement examiné le fichier de règles d'audit situé à /etc/audit/audit.rules en utilisant la commande cat pour voir la configuration persistante des règles d'audit. Enfin, vous avez vérifié les journaux d'audit dans le répertoire /var/log/audit pour confirmer que les événements sont enregistrés conformément aux règles configurées.