GNU/Linux >> Tutoriels Linux >  >> Linux

Comment lire le journal d'audit sous Linux

Dans cet article, nous verrons comment lire les journaux d'audit et la signification de chaque ligne et champ.

Par exemple, le fichier audit.log a enregistré 4 lignes comme suit :

type=SYSCALL msg=audit(1640033159.053:177988798): arch=c000003e syscall=2 success=no exit=-13 a0=7ffc736c18a0 a1=0 a2=1b6 a3=24 items=1 ppid=130071 pid=130082 auid=1001 uid=1001 gid=1002 euid=1001 suid=1001 fsuid=1001 egid=1002 sgid=1002 fsgid=1002 tty=(none) ses=318813 comm="pidstat" exe="/usr/bin/pidstat" key="access"
type=PROCTITLE msg=audit(1640033159.053:177988797): proctitle=70696473746174002D727564002D6800310033
type=CWD msg=audit(1640033159.053:177988798): cwd="/u01/app/oracle/oracle.ahf/data/repository/suptools/rac01/oswbb/oracle/oswbb"
type=PATH msg=audit(1640033159.053:177988798): item=0 name="/proc/674/io" inode=12022 dev=00:04 mode=0100400 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL

L'événement ci-dessus se compose de quatre enregistrements, qui partagent le même horodatage et le même numéro de série ( 1640033159.053:177988797 ). Les enregistrements commencent toujours par type= mot-clé. Chaque enregistrement est composé de plusieurs paires nom=valeur séparées par un espace blanc ou une virgule. Une analyse détaillée de l'événement ci-dessus suit :

Premier enregistrement

type=SYSCALL

Le champ type contient le type de l'enregistrement. Dans cet exemple, la valeur SYSCALL spécifie que cet enregistrement a été déclenché par un appel système au noyau. Pour obtenir une liste de toutes les valeurs de type possibles et leurs explications, consultez la section Types d'enregistrement d'audit.

msg=audit(1640033159.053:177988798)

Le champ msg enregistre :un horodatage et un identifiant unique de l'enregistrement dans le formulaire audit(time_stamp:ID). Plusieurs enregistrements peuvent partager le même horodatage et le même ID s'ils ont été générés dans le cadre du même événement d'audit. L'horodatage utilise le format d'heure Unix - secondes depuis 00:00:00 UTC le 1er janvier 1970. diverses paires nom=valeur spécifiques à l'événement fournies par le noyau ou les applications de l'espace utilisateur.

arch=c000003e

Le champ arch contient des informations sur l'architecture CPU du système. La valeur, c000003e, est codée en notation hexadécimale. Lors de la recherche d'enregistrements d'audit avec la commande ausearch, utilisez l'option -i ou –interpret pour convertir automatiquement les valeurs hexadécimales en leurs équivalents lisibles par l'homme. La valeur c000003e est interprétée comme x86_64.

appel système=2

Le champ syscall enregistre le type d'appel système qui a été envoyé au noyau. La valeur, 2, peut être mise en correspondance avec son équivalent lisible par l'homme dans le fichier /usr/include/asm/unistd_64.h. Dans ce cas, 2 est l'appel système ouvert. Notez que l'utilitaire ausyscall vous permet de convertir les numéros d'appel système en leurs équivalents lisibles par l'homme. Utilisez la commande ausyscall –dump pour afficher une liste de tous les appels système avec leurs numéros. Pour plus d'informations, consultez la page de manuel ausyscall(8).

succès=non

Le champ de réussite enregistre si l'appel système enregistré dans cet événement particulier a réussi ou échoué. Dans ce cas, l'appel n'a pas abouti.

sortie=-13

Le champ de sortie contient une valeur qui spécifie le code de sortie renvoyé par l'appel système. Cette valeur varie pour différents appels système. Vous pouvez interpréter la valeur en son équivalent lisible par l'homme avec la commande suivante :

a0=7ffc736c18a0 a1=0 a2=1b6 a3=24

Les champs a0 à a3 enregistrent les quatre premiers arguments, codés en notation hexadécimale, de l'appel système dans cet événement. Ces arguments dépendent de l'appel système utilisé; ils peuvent être interprétés par l'utilitaire ausearch.

articles=1

Le champ des éléments contient le nombre d'enregistrements auxiliaires PATH qui suivent l'enregistrement d'appel système.

ppid=130071 pid=130082

Le champ ppid/pid enregistre l'ID de processus parent et l'ID de processus.

auid=1001 uid=1001 gid=1002 euid=1001 suid=1001 fsuid=1001 egid=1002 sgid=1002 fsgid=1002

Le champ auid enregistre l'ID utilisateur d'audit, l'ID utilisateur, l'ID de groupe, l'ID utilisateur effectif, l'ID utilisateur défini, l'ID utilisateur du système de fichiers, l'ID de groupe effectif, l'ID de groupe défini, l'ID de groupe du système de fichiers.

tty=(aucun) ses=318813

Le champ tty et la session enregistrent le terminal à partir duquel le processus analysé a été appelé.

comm="pidstat"

Le champ comm enregistre le nom de ligne de commande de la commande qui a été utilisée pour appeler le processus analysé. Dans ce cas, la commande cat a été utilisée pour déclencher cet événement d'audit.

exe="/usr/bin/pidstat"

Le champ exe enregistre le chemin vers l'exécutable qui a été utilisé pour invoquer le processus analysé.

clé=”accès”

Le champ clé enregistre la chaîne définie par l'administrateur associée à la règle qui a généré cet événement dans le journal d'audit.

Deuxième enregistrement

type=PROCTITLE

Le champ type contient le type de l'enregistrement. Dans cet exemple, la valeur PROCTITLE spécifie que cet enregistrement donne la ligne de commande complète qui a déclenché cet événement Audit, déclenché par un appel système au noyau.

proctitle=70696473746174002D727564002D6800310033

Le champ proctitle enregistre la ligne de commande complète de la commande utilisée pour appeler le processus analysé. Le champ est codé en notation hexadécimale pour ne pas permettre à l'utilisateur d'influencer l'analyseur du journal d'audit. Le texte décode la commande qui a déclenché cet événement d'audit. Lors de la recherche d'enregistrements d'audit avec la commande ausearch, utilisez l'option -i ou –interpret pour convertir automatiquement les valeurs hexadécimales en leurs équivalents lisibles par l'homme.

Troisième enregistrement

type=CWD

Dans le deuxième enregistrement, la valeur du champ type est CWD — répertoire de travail actuel. Ce type est utilisé pour enregistrer le répertoire de travail à partir duquel le processus qui a appelé l'appel système spécifié dans le premier enregistrement a été exécuté. Le but de cet enregistrement est d'enregistrer l'emplacement du processus actuel au cas où un chemin relatif serait capturé dans l'enregistrement PATH associé. De cette façon, le chemin absolu peut être reconstruit.

msg=audit(1640033159.053:177988798)

Le champ msg contient le même horodatage et la même valeur d'ID que la valeur du premier enregistrement. L'horodatage utilise le format d'heure Unix - secondes depuis 00:00:00 UTC le 1er janvier 1970.

cwd="/u01/app/oracle/oracle.ahf/data/repository/suptools/rac01/oswbb/oracle/oswbb"

Le champ cwd contient le chemin d'accès au répertoire dans lequel l'appel système a été invoqué.

Quatrième enregistrement

type=CHEMIN

Dans cet enregistrement, la valeur du champ de type est PATH. Un événement Audit contient un enregistrement de type PATH pour chaque chemin transmis à l'appel système en tant qu'argument.

msg=audit(1640033159.053:177988798)

Le champ msg contient le même horodatage et la même valeur d'ID que la valeur du premier et du deuxième enregistrement.

item=0

Le champ article indique quel article, parmi le nombre total d'articles référencés dans l'enregistrement de type SYSCALL, est l'enregistrement courant. Ce nombre est basé sur zéro ; une valeur de 0 signifie qu'il s'agit du premier élément.

name="/proc/674/io"

Le champ de nom enregistre le chemin du fichier ou du répertoire qui a été transmis à l'appel système en tant qu'argument. Dans ce cas, il s'agissait du fichier /proc/674/io.

inode=12022

Le champ inode contient le numéro d'inode associé au fichier ou au répertoire enregistré dans cet événement. La commande suivante affiche le fichier ou le répertoire associé au numéro d'inode 409248 :

dev=00:04

Le champ dev spécifie l'ID mineur et majeur de l'appareil qui contient le fichier ou le répertoire enregistré dans cet événement.

mode=0100400

Le champ mode enregistre les autorisations de fichier ou de répertoire, codées en notation numérique, telles que renvoyées par la commande stat dans le champ st_mode. Voir la page de manuel stat(2) pour plus d'informations. Dans ce cas, 0100600 peut être interprété comme -r——–, ce qui signifie que seul l'utilisateur root dispose des autorisations de lecture pour /proc/674/io.

ouid=0

Le champ ouid enregistre l'ID utilisateur du propriétaire de l'objet.

ogid=0

Le champ ogid enregistre l'ID de groupe du propriétaire de l'objet.

rdev=00:00

Le champ rdev contient un identifiant de périphérique enregistré pour les fichiers spéciaux uniquement. Dans ce cas, il n'est pas utilisé car le fichier enregistré est un fichier normal.

nametype=NORMAL

Le champ objtype enregistre l'intention de chaque opération d'enregistrement de chemin dans le contexte d'un appel système donné.


Linux
  1. Linux - Exécuter Vs Lire Bit. Comment fonctionnent les autorisations de répertoire sous Linux ?

  2. Comment vider un fichier journal sous Linux

  3. Comment faire pivoter les fichiers journaux Apache sous Linux

  4. Comment changer le chemin du fichier journal auditd /var/log/audit/audit.log

  5. Comment compresser tous les fichiers ou des fichiers spécifiques sous Linux

Comment afficher et lire les fichiers journaux Linux

Comment ajouter manuellement des messages aux fichiers journaux du système Linux

Comment changer le fichier journal Sudo par défaut sous Linux

Comment afficher les fichiers journaux Nginx sous Linux

Comment afficher les fichiers journaux Apache sous Linux

Comment déconnecter un utilisateur de SSH sous Linux