Comprendre l'audit du système d'audit Linux

introduction

Cet article décrit Audit, le système d'audit Linux.

En tant que système d'audit Linux, Audit définit les règles d'audit et renvoie les événements liés à la sécurité qui se produisent dans le système dans un fichier journal.

En surveillant la sortie du message dans le fichier journal, vous pouvez détecter les événements liés à la sécurité.

Les règles d'audit suivantes peuvent être définies dans Audit.

Aperçu de l'audit

Audit démarre en tant que démon auditd et renvoie les résultats d'audit reçus du noyau dans un fichier journal.

Les paramètres généraux sont définis dans le fichier / etc / audit / auditd.conf.

#
# This file controls the configuration of the audit daemon
#

local_events = yes
write_logs = yes
log_file = /var/log/audit/audit.log
log_group = root
log_format = RAW
flush = INCREMENTAL_ASYNC
freq = 50
max_log_file = 8
num_logs = 5
priority_boost = 4
disp_qos = lossy
dispatcher = /sbin/audispd
name_format = NONE
##name = mydomain
max_log_file_action = ROTATE
space_left = 75
space_left_action = SYSLOG
verify_email = yes
action_mail_acct = root
admin_space_left = 50
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND
use_libwrap = yes
##tcp_listen_port = 60
tcp_listen_queue = 5
tcp_max_per_addr = 1
##tcp_client_ports = 1024-65535
tcp_client_max_idle = 0
enable_krb5 = no
krb5_principal = auditd
##krb5_key_file = /etc/audit/audit.key
distribute_network = no

Les commandes de base pour utiliser Audit sont les suivantes.

commander La description
auditctl Définir les paramètres liés à l'opération d'audit et définir les règles d'audit
ausearch Rechercher les résultats d'audit à partir des fichiers journaux d'audit
aureport Créer un rapport des résultats d'audit à partir du fichier journal d'audit

Les règles d'audit sont définies en exécutant la commande ʻauditctl, ou dans le fichier / etc / audit / rules.d / audit.rules` pour les paramètres persistants.

auditctl ʻL'utilisation de la commande auditctl` est expliquée pour chaque règle.

Règle de contrôle

Définissez les paramètres relatifs à l'opération d'audit.

Règles d'appel système

Définissez des règles pour les appels système.

** Format: auditctl -a , -F = -S <appel système> -k <nom de la clé> **

--Définir l'appel système # auditctl -a always,exit -F arch=b64 -S adjtimex,settimeofday -k time-change --Vérifier les règles d'appel système # auditctl -l

-a always,exit -F arch=b64 -S adjtimex,settimeofday -F key=time-change

Le nom de l'appel système et le numéro d'appel système spécifié dans -S peuvent être confirmés en se référant au fichier / usr / include / asm / unistd_64.h ou en utilisant la commande ʻau syscall`.

#define __NR_open 2
#define __NR_mq_open 240
#define __NR_openat 257
#define __NR_perf_event_open 298
#define __NR_open_by_handle_at 304

# ausyscall open

open               2
mq_open            240
openat             257
perf_event_open    298
open_by_handle_at  304

Règles du système de fichiers

Définissez des règles pour les systèmes de fichiers. Lorsque des modifications d'écriture ou d'attribut sont apportées au fichier, elles sont sorties dans le journal.

** Format: auditctl -w -p -k <nom de clé> **

--Définir les règles du système de fichiers # auditctl -w /etc/passwd -p wa -k identity --Vérifier les règles du système de fichiers # auditctl -l

-w /etc/passwd -p wa -k identity

Par exemple, si vous changez le mot de passe avec le test de compte, vous pouvez voir que le journal du changement de mot de passe est sorti dans le fichier / var / log / audit / audit.log comme indiqué ci-dessous.

type=USER_CHAUTHTOK msg=audit(1582528251.037:19125): pid=32026 uid=0 auid=0 ses=2508 subj=unconfined_u:unconfined_r:passwd
_t:s0-s0:c0.c1023 msg='op=PAM:chauthtok grantors=pam_pwquality,pam_unix acct="test" exe="/usr/bin/passwd" hostname=localho
st.localdomain addr=? terminal=pts/1 res=success

ausearch La commande ʻau searchrecherche dans le journal d'audit le journal qui correspond au mot-clé et le produit en fonction des conditions spécifiées. Le fichier journal spécifié parlog_file dans le fichier / etc / audit / auditd.conf` est ciblé.

----
type=CONFIG_CHANGE msg=audit(24 février 2020 15:00:55.539:17800) : auid=root ses=2118 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 op=add_rule key=time-change list=exit res=yes 
----
type=CONFIG_CHANGE msg=audit(24 février 2020 15:01:17.592:17824) : auid=root ses=2118 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 op=remove_rule key=time-change list=exit res=yes 
----
type=CONFIG_CHANGE msg=audit(24 février 2020 15:08:59.057:17944) : auid=root ses=2118 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 op=add_rule key=time-change list=exit res=yes 

--Rechercher les événements qui correspondent au type de message spécifié (ci-après, utilisez -m pour spécifier l'événement lié à la connexion et --start today pour spécifier la date et l'heure du jour) # ausearch -m USER_LOGIN --start today

----
time->Thu Apr 30 21:25:25 2020
type=USER_LOGIN msg=audit(1588249525.137:125): pid=1341 uid=0 auid=0 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=login id=0 exe="/usr/sbin/sshd" hostname=192.168.10.10 addr=192.168.10.10 terminal=/dev/pts/0 res=success'

--Une doublure pour extraire les types de messages spécifiables # ausearch -m help 2>&1 | awk -v RS=' ' '/^[A-Z]{2}/{ print}' | sort

aureport La commande ʻau report` génère un rapport de journal d'audit selon les conditions spécifiées.

Login Report
============================================
# date time auid host term exe success event
============================================
1.23 février 2020 21:12:44 racine <adresse IP>/dev/pts/0 /usr/sbin/sshd yes 132
2.24 février 2020 12:52:29 root <adresse IP> ssh/usr/sbin/sshd no 16883
3.24 février 2020 12:52:35 racine <adresse IP>/dev/pts/0 /usr/sbin/sshd yes 16901
4.24 février 2020 15:45:37 racine <adresse IP>/dev/pts/1 /usr/sbin/sshd yes 18626
5.24 février 2020 18:27:12 racine <adresse IP>/dev/pts/0 /usr/sbin/sshd yes 21660
Summary Report
======================
Range of time in logs:1 janvier 1970 09:00:00.000 -24 février 2020 16:07:17.070
Selected time for report:1 janvier 1970 09:00:00 -24 février 2020 16:07:17.070
Number of changes in configuration: 220
Number of changes to accounts, groups, or roles: 5
Number of logins: 7
Number of failed logins: 1
Number of authentications: 14
Number of failed authentications: 12
Number of users: 2
Number of terminals: 9
Number of host names: 3
Number of executables: 24
Number of commands: 28
Number of files: 48
Number of AVC's: 3716
Number of MAC events: 9
Number of failed syscalls: 25835
Number of anomaly events: 10
Number of responses to anomaly events: 0
Number of crypto events: 89
Number of integrity events: 0
Number of virt events: 0
Number of keys: 3
Number of process IDs: 13855
Number of events: 90789

Audit de la saisie au clavier

Vous pouvez utiliser la commande ʻau report` pour enregistrer les commandes saisies dans le terminal.

Pour auditer l'entrée au clavier, écrivez les paramètres suivants dans le fichier suivant.

session required pam_tty_audit.so disable=* enable=test

Exécutez la commande suivante pour vérifier l'opération et passer à l'utilisateur tes.

A titre d'exemple, exécutez la commande suivante selon le cas et déconnectez-vous avec ctrl + d.

$ date $ echo "test" $ top

Vous pouvez vérifier les commandes exécutées par l'utilisateur de test dans le terminal en exécutant les commandes suivantes.

# aureport --tty --start today

TTY Report
===============================================
# date time event auid term sess comm data
===============================================
1.30 avril 2020 21:58:09 184 0 ? 1 bash "date",<ret>,"echo \"test\"",<ret>,"top",<ret>,<^L>,<^D>

/etc/audit/rules.d/audit.rules Les paramètres persistants sont définis dans le fichier / etc / audit / rules.d / audit.rules. Après avoir modifié les paramètres, redémarrez auditd pour refléter les paramètres.

en conclusion

En tant qu'administrateur système, l'audit est une connaissance nécessaire.

L'audit est conçu pour répondre aux exigences de la norme de sécurité relative au système d'exploitation ** Profil de protection d'accès contrôlé (CAPP) ** en tant que niveau standard pour les systèmes ouverts.

référence

Recommended Posts

Comprendre l'audit du système d'audit Linux
Comprendre la partie "temporaire" d'UNIX / Linux
Linux: comprendre les informations affichées par la commande top
Contrôler les trackpads Linux
Architecture du système Linux [niveau d'exécution]
Comprendre les attributs des fichiers Linux (commande ls -l)
Comprendre le produit tensoriel (numpy.tensordot)
Périphérique et système de fichiers Linux
Installez JDK sur Linux
L'API du pilote Linux Watchdog
[Linux] Répertoire sous la racine
Système de gestion de paquet principal Linux
Collez le lien sous Linux
Pirater les appels système de Linux
[Linux] J'ai essayé de résumer les commandes de confirmation des ressources
[Linux ☓ Nvidia] Curve Contrôlez le ventilateur
Comprendre le contenu du pipeline sklearn
Essayez le mécanisme de verrouillage du noyau Linux
Pourquoi Super Intelli ne pouvait pas comprendre la classe
Qu'est-ce que le système X Window?
AlterLinux - À propos de la distribution Linux entièrement japonaise
analyse de la source linux (noyau): appel système
[Linux] Qui est le travail d'arrière-plan! ??