GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So lesen Sie das Überwachungsprotokoll in Linux

In diesem Beitrag werden wir sehen, wie die Audit-Protokolle gelesen werden und was jede Zeile und jedes Feld bedeutet.

Zum Beispiel hat die audit.log-Datei 4 Zeilen wie folgt protokolliert:

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

Das obige Ereignis besteht aus vier Datensätzen mit demselben Zeitstempel und derselben Seriennummer ( 1640033159.053:177988797 ). Datensätze beginnen immer mit type= Stichwort. Jeder Datensatz besteht aus mehreren Name=Wert-Paaren, die durch ein Leerzeichen oder ein Komma getrennt sind. Eine detaillierte Analyse des oben genannten Ereignisses folgt:

Erster Eintrag

type=SYSCALL

Das Typfeld enthält den Typ des Datensatzes. In diesem Beispiel gibt der SYSCALL-Wert an, dass dieser Datensatz durch einen Systemaufruf an den Kernel ausgelöst wurde. Eine Liste aller möglichen Typwerte und ihre Erläuterungen finden Sie unter Audit-Datensatztypen.

msg=audit(1640033159.053:177988798)

Das msg-Feld zeichnet auf:einen Zeitstempel und eine eindeutige ID des Datensatzes in der Form audit(time_stamp:ID). Mehrere Datensätze können denselben Zeitstempel und dieselbe ID verwenden, wenn sie als Teil desselben Audit-Ereignisses generiert wurden. Der Zeitstempel verwendet das Unix-Zeitformat – Sekunden seit 00:00:00 UTC am 1. Januar 1970. Verschiedene ereignisspezifische Name=Wert-Paare, die von Kernel- oder Userspace-Anwendungen bereitgestellt werden.

arch=c000003e

Das Arch-Feld enthält Informationen über die CPU-Architektur des Systems. Der Wert c000003e ist in hexadezimaler Schreibweise codiert. Verwenden Sie beim Durchsuchen von Audit-Datensätzen mit dem Befehl aussearch die Option -i oder –interpret, um Hexadezimalwerte automatisch in ihre für Menschen lesbaren Entsprechungen umzuwandeln. Der c000003e-Wert wird als x86_64 interpretiert.

syscall=2

Das syscall-Feld zeichnet den Typ des Systemaufrufs auf, der an den Kernel gesendet wurde. Der Wert 2 kann mit seinem menschenlesbaren Äquivalent in der Datei /usr/include/asm/unistd_64.h abgeglichen werden. In diesem Fall ist 2 der offene Systemaufruf. Beachten Sie, dass Sie mit dem Dienstprogramm ausyscall Systemrufnummern in ihre menschenlesbaren Äquivalente umwandeln können. Verwenden Sie den Befehl ausyscall –dump, um eine Liste aller Systemaufrufe zusammen mit ihren Nummern anzuzeigen. Weitere Informationen finden Sie auf der Handbuchseite von ausyscall(8).

Erfolg=Nein

Das Erfolgsfeld zeichnet auf, ob der in diesem bestimmten Ereignis aufgezeichnete Systemaufruf erfolgreich war oder fehlgeschlagen ist. In diesem Fall war der Aufruf nicht erfolgreich.

exit=-13

Das Exit-Feld enthält einen Wert, der den vom Systemaufruf zurückgegebenen Exit-Code angibt. Dieser Wert variiert für verschiedene Systemaufrufe. Sie können den Wert mit dem folgenden Befehl in sein für Menschen lesbares Äquivalent interpretieren:

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

Die Felder a0 bis a3 zeichnen die ersten vier Argumente des Systemaufrufs in diesem Ereignis in hexadezimaler Notation auf. Diese Argumente hängen vom verwendeten Systemaufruf ab; sie können vom Dienstprogramm asearch interpretiert werden.

Artikel=1

Das Items-Feld enthält die Anzahl der PATH-Hilfsdatensätze, die dem Syscall-Datensatz folgen.

ppid=130071 pid=130082

Das ppid/pid-Feld zeichnet die übergeordnete Prozess-ID und die Prozess-ID auf.

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

Das auid-Feld zeichnet die Audit-Benutzer-ID, Benutzer-ID, Gruppen-ID, effektive Benutzer-ID, festgelegte Benutzer-ID, Dateisystem-Benutzer-ID, effektive Gruppen-ID, festgelegte Gruppen-ID, Dateisystem-Gruppen-ID auf.

tty=(none) ses=318813

Das tty-Feld und die Sitzung zeichnen das Terminal auf, von dem aus der analysierte Prozess aufgerufen wurde.

comm="pidstat"

Das comm-Feld zeichnet den Befehlszeilennamen des Befehls auf, der zum Aufrufen des analysierten Prozesses verwendet wurde. In diesem Fall wurde der cat-Befehl verwendet, um dieses Audit-Ereignis auszulösen.

exe="/usr/bin/pidstat"

Das exe-Feld zeichnet den Pfad zu der ausführbaren Datei auf, die zum Aufrufen des analysierten Prozesses verwendet wurde.

key="access"

Das Schlüsselfeld zeichnet die vom Administrator definierte Zeichenfolge auf, die der Regel zugeordnet ist, die dieses Ereignis im Überwachungsprotokoll generiert hat.

Zweiter Datensatz

type=PROCTITLE

Das Typfeld enthält den Typ des Datensatzes. In diesem Beispiel gibt der PROCTITLE-Wert an, dass dieser Datensatz die vollständige Befehlszeile enthält, die dieses Audit-Ereignis ausgelöst hat, ausgelöst durch einen Systemaufruf an den Kernel.

proctitle=70696473746174002D727564002D6800310033

Das proctitle-Feld zeichnet die vollständige Befehlszeile des Befehls auf, der zum Aufrufen des analysierten Prozesses verwendet wurde. Das Feld ist in hexadezimaler Notation codiert, damit der Benutzer den Prüfprotokoll-Parser nicht beeinflussen kann. Der Text wird in den Befehl dekodiert, der dieses Überwachungsereignis ausgelöst hat. Verwenden Sie beim Durchsuchen von Audit-Datensätzen mit dem Befehl aussuche die Option -i oder –interpret, um Hexadezimalwerte automatisch in ihre für Menschen lesbaren Entsprechungen umzuwandeln.

Dritter Datensatz

type=CWD

Im zweiten Datensatz ist der Typfeldwert CWD – aktuelles Arbeitsverzeichnis. Dieser Typ wird verwendet, um das Arbeitsverzeichnis aufzuzeichnen, von dem aus der Prozess ausgeführt wurde, der den im ersten Datensatz angegebenen Systemaufruf aufgerufen hat. Der Zweck dieses Datensatzes besteht darin, den Standort des aktuellen Prozesses aufzuzeichnen, falls ein relativer Pfad im zugehörigen PATH-Datensatz erfasst wird. So kann der absolute Pfad rekonstruiert werden.

msg=audit(1640033159.053:177988798)

Das msg-Feld enthält den gleichen Zeitstempel und ID-Wert wie der Wert im ersten Datensatz. Der Zeitstempel verwendet das Unix-Zeitformat – Sekunden seit 00:00:00 UTC am 1. Januar 1970.

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

Das cwd-Feld enthält den Pfad zu dem Verzeichnis, in dem der Systemaufruf aufgerufen wurde.

Vierter Rekord

type=PFAD

In diesem Datensatz ist der Typfeldwert PATH. Ein Audit-Ereignis enthält einen Datensatz vom Typ PATH für jeden Pfad, der als Argument an den Systemaufruf übergeben wird.

msg=audit(1640033159.053:177988798)

Das msg-Feld enthält den gleichen Zeitstempel und ID-Wert wie der Wert im ersten und zweiten Datensatz.

item=0

Das Elementfeld zeigt an, welches Element der Gesamtzahl von Elementen, auf die in dem SYSCALL-Typ-Datensatz verwiesen wird, der aktuelle Datensatz ist. Diese Zahl ist nullbasiert; ein Wert von 0 bedeutet, dass es das erste Element ist.

name="/proc/674/io"

Das Namensfeld zeichnet den Pfad der Datei oder des Verzeichnisses auf, die dem Systemaufruf als Argument übergeben wurden. In diesem Fall war es die Datei /proc/674/io.

inode=12022

Das Inode-Feld enthält die Inode-Nummer, die der in diesem Ereignis aufgezeichneten Datei oder dem Verzeichnis zugeordnet ist. Der folgende Befehl zeigt die Datei oder das Verzeichnis an, das der Inode-Nummer 409248 zugeordnet ist:

dev=00:04

Das dev-Feld gibt die Minor- und Major-ID des Geräts an, das die Datei oder das Verzeichnis enthält, das in diesem Ereignis aufgezeichnet wird.

mode=0100400

Das Modusfeld zeichnet die Datei- oder Verzeichnisberechtigungen auf, die in numerischer Notation codiert sind, wie sie vom Befehl stat im Feld st_mode zurückgegeben werden. Weitere Informationen finden Sie auf der Manpage stat(2). In diesem Fall kann 0100600 als -r——– interpretiert werden, was bedeutet, dass nur der Root-Benutzer Leseberechtigungen für /proc/674/io hat.

ouid=0

Das ouid-Feld zeichnet die Benutzer-ID des Objekteigentümers auf.

ogid=0

Das ogid-Feld zeichnet die Gruppen-ID des Objektbesitzers auf.

rdev=00:00

Das rdev-Feld enthält nur für spezielle Dateien eine aufgezeichnete Gerätekennung. In diesem Fall wird es nicht verwendet, da die aufgezeichnete Datei eine normale Datei ist.

Namenstyp=NORMAL

Das objtype-Feld zeichnet die Absicht der Operation jedes Pfadeintrags im Kontext eines bestimmten Systemaufrufs auf.


Linux
  1. Linux – Execute Vs Read Bit. Wie funktionieren Verzeichnisberechtigungen in Linux?

  2. So prüfen Sie den Dateizugriff unter Linux

  3. Wie man alle oder bestimmte Dateien in Linux gzippt

  4. So protokollieren Sie jeden Shell-Befehl in Linux

  5. Wie protokolliere ich den Speicherverbrauch unter Linux?

So können Sie Linux-Protokolldateien anzeigen und lesen

So fügen Sie Nachrichten manuell zu Linux-Systemprotokolldateien hinzu

So ändern Sie die Standard-Sudo-Protokolldatei in Linux

So zeigen Sie Nginx-Protokolldateien unter Linux an

So zeigen Sie Apache-Protokolldateien unter Linux an

So melden Sie einen Benutzer unter Linux von SSH ab