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.
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.
Nehmen Sie Einstellungen für den Überwachungsvorgang vor.
# auditctl -e 1
# auditctl -s
# auditctl -D
Legen Sie Regeln für Systemaufrufe fest.
** Format: auditctl -a
# auditctl -a always,exit -F arch=b64 -S adjtimex,settimeofday -k time-change
# auditctl -l
-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.
# cat /usr/include/asm/unistd_64.h | grep open
#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
Regeln für Dateisysteme festlegen. Wenn Schreib- oder Attributänderungen an der Datei vorgenommen werden, wird diese in das Protokoll ausgegeben.
** Format: auditctl -w
# auditctl -w /etc/passwd -p wa -k identity
# auditctl -l
-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'
# ausearch -m help 2>&1 | awk -v RS=' ' '/^[A-Z]{2}/{ print}' | sort
aureport Der Befehl "aureport" gibt einen Überwachungsprotokollbericht gemäß den angegebenen Bedingungen aus.
-l
, Text-zu-Text-Konvertierung von Datum und Uhrzeit und PID mit -i
, Startdatum und -zeit und Ende als Protokollsuchbereich von -ts
bis -te
Datum und Uhrzeit angeben)
# aureport -l -i -ts yesterday -te now
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
# aureport --summary
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
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.
/etc/pam.d/system-auth
/etc/pam.d/password-auth
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.
# su -l test
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.
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.
Recommended Posts