Verstehen Sie das Linux-Audit-System Audit

Einführung

Dieser Artikel beschreibt Audit, das Linux-Auditsystem.

Als Linux-Prüfsystem definiert Audit Überwachungsregeln und gibt sicherheitsrelevante Ereignisse, die im System auftreten, in eine Protokolldatei aus.

Durch Überwachen der Nachrichtenausgabe in die Protokolldatei können Sie sicherheitsrelevante Ereignisse erkennen.

Die folgenden Überwachungsregeln können in Audit festgelegt werden.

Prüfungsübersicht

Audit startet als auditd-Daemon und gibt die vom Kernel empfangenen Audit-Ergebnisse in eine Protokolldatei aus.

Allgemeine Einstellungen werden in der Datei / etc / audit / auditd.conf festgelegt.

#
# 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

Die grundlegenden Befehle zum Bedienen von Audit lauten wie folgt.

Befehl Erläuterung
auditctl Nehmen Sie Einstellungen für den Überwachungsvorgang vor und definieren Sie Überwachungsregeln
ausearch Suchen Sie nach Überwachungsergebnissen aus Überwachungsprotokolldateien
aureport Erstellen Sie einen Bericht mit den Überwachungsergebnissen aus der Überwachungsprotokolldatei

Überwachungsregeln können durch Ausführen des Befehls "auditctl" oder in der Datei "/ etc / audit / rules.d / audit.rules" für dauerhafte Einstellungen festgelegt werden.

auditctl Wir werden erklären, wie der Befehl auditctl für jede Regel verwendet wird.

Kontrollregel

Nehmen Sie Einstellungen für den Überwachungsvorgang vor.

Systemaufrufregeln

Legen Sie Regeln für Systemaufrufe fest.

** Format: auditctl -a , -F = -S -k <Schlüsselname> **

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

Sie können den in -S angegebenen Systemaufrufnamen und die Systemrufnummer überprüfen, indem Sie auf die Datei / usr / include / asm / unistd_64.h verweisen oder den Befehl ausyscall verwenden.

#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

--Suche nach Systemaufrufname, der in open mit dem Befehl ausyscall enthalten ist

# ausyscall open

open               2
mq_open            240
openat             257
perf_event_open    298
open_by_handle_at  304

Dateisystemregeln

Regeln für Dateisysteme festlegen. Wenn Schreib- oder Attributänderungen an der Datei vorgenommen werden, wird diese in das Protokoll ausgegeben.

** Format: auditctl -w -p -k <Schlüsselname> **

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

Wenn Sie beispielsweise das Kennwort mit dem Kontotest ändern, können Sie sehen, dass das Protokoll der Kennwortänderung wie unten gezeigt in der Datei "/ var / log / audit / audit.log" ausgegeben wird.

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 Der Befehl "ausearch" durchsucht das Überwachungsprotokoll nach dem Protokoll, das dem Schlüsselwort entspricht, und gibt es gemäß den angegebenen Bedingungen aus. Die durch log_file in der Datei / etc / audit / auditd.conf angegebene Protokolldatei ist ein Ziel.

--Suche Audit-Protokolldatei (Verwenden Sie im Folgenden -i, um Datum und Uhrzeit sowie die PID in Text umzuwandeln, und verwenden Sie -k, um das Schlüsselwort anzugeben.) # ausearch -i -k time-change

----
type=CONFIG_CHANGE msg=audit(24. Februar 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. Februar 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. Februar 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 

--Suchen Sie nach Ereignissen, die dem angegebenen Nachrichtentyp entsprechen. (Verwenden Sie im Folgenden "-m", um das Ereignis für die Anmeldung anzugeben, und "- Heute starten", um das heutige Datum und die heutige Uhrzeit anzugeben.) # 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'

aureport Der Befehl "aureport" gibt einen Überwachungsprotokollbericht gemäß den angegebenen Bedingungen aus.

Login Report
============================================
# date time auid host term exe success event
============================================
1.23. Februar 2020 21:12:44 root <IP-Adresse>/dev/pts/0 /usr/sbin/sshd yes 132
2.24. Februar 2020 12:52:29 root <IP-Adresse> ssh/usr/sbin/sshd no 16883
3.24. Februar 2020 12:52:35 root <IP-Adresse>/dev/pts/0 /usr/sbin/sshd yes 16901
4.24. Februar 2020 15:45:37 root <IP-Adresse>/dev/pts/1 /usr/sbin/sshd yes 18626
5.24. Februar 2020 18:27:12 root <IP-Adresse>/dev/pts/0 /usr/sbin/sshd yes 21660
Summary Report
======================
Range of time in logs:01. Januar 1970 09:00:00.000 -24. Februar 2020 16:07:17.070
Selected time for report:01. Januar 1970 09:00:00 -24. Februar 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

Tastatureingabe überwachen

Mit dem Befehl "aureport" können Sie den im Terminal eingegebenen Befehl protokollieren.

Schreiben Sie die folgenden Einstellungen in die folgende Datei, um die Tastatureingabe zu überwachen.

session required pam_tty_audit.so disable=* enable=test

Führen Sie den folgenden Befehl aus, um den Vorgang zu überprüfen und zum tes-Benutzer zu wechseln.

Führen Sie als Beispiel den folgenden Befehl aus und melden Sie sich mit "Strg + d" ab.

$ date $ echo "test" $ top

Sie können die vom Testbenutzer im Terminal ausgeführten Befehle überprüfen, indem Sie die folgenden Befehle ausführen.

# aureport --tty --start today

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

/etc/audit/rules.d/audit.rules Dauerhafte Einstellungen werden in der Datei / etc / audit / rules.d / audit.rules festgelegt. Starten Sie auditd nach dem Ändern der Einstellungen neu, um die Einstellungen wiederzugeben.

abschließend

Als Systemadministrator ist Audit ein notwendiges Wissen.

Audit wurde entwickelt, um die Anforderungen des betriebssystembezogenen Sicherheitsstandards ** Controlled Access Protection Profile (CAPP) ** als Standardstufe für offene Systeme zu erfüllen.

Referenz

Recommended Posts

Verstehen Sie das Linux-Audit-System Audit
Verstehen Sie den "temporären" Teil von UNIX / Linux
Linux: Verstehen Sie die Informationen, die vom Befehl top angezeigt werden
Steuern Sie Linux-Trackpads
Linux-Systemarchitektur [Run Level]
Verstehen Sie die Attribute von Linux-Dateien (Befehl ls -l)
Verstehe das Tensorprodukt (numpy.tensordot)
Installieren Sie JDK unter Linux
Die Linux Watchdog-Treiber-API
[Linux] Verzeichnis unter dem Stammverzeichnis
Linux-Hauptpaketverwaltungssystem
Fügen Sie den Link unter Linux ein
Hack Linux Fork Systemaufrufe
[Linux] Ich habe versucht, die Ressourcenbestätigungsbefehle zusammenzufassen
[Linux ☓ Nvidia] Kurve Steuern Sie den Lüfter
Verstehen Sie den Inhalt der sklearn-Pipeline
Probieren Sie den Linux-Kernel-Sperrmechanismus aus
Warum Super Intelli die Klasse nicht verstehen konnte
Was ist das X Window System?
AlterLinux - Über die vollständig japanisierte Linux-Distribution
Quellanalyse von Linux (Kernel): Systemaufruf
[Linux] Wer ist der Hintergrundjob? ??