fragen stichworte

Wie kann ich das Syscall-Auditing in CoreOs aktivieren?

Seit CoreOs 766 ist das Auditing-Subsystem teilweise integriert:

The audit subsystem has been enabled in the kernel and auditctl added to the image. Most audit events are ignored by default. The audit rules may be modified in/etc/audit/rules.d. Note that auditd is not included, journald is responsible for logging events instead although it is a best effort mechanism. Unlike with auditd based systems the kernel will not panic if journald fails to record an event for some reason.

Ich habe Folgendes versucht, um Syscalls sowohl für die 899- als auch für die Alpha 1000-CoreOs-Versionen zu prüfen.

# starting a new periodic process:
$ while true; do echo "coreos ..." >/tmp/a.txt && sleep 5s; done &
[1] 4509

# get its pid and add a new audit rule:
$ sudo auditctl -a always,exit -F arch=b64 -S read,write,close,dup2,wait4 -F pid=4509

# wait 5 minutes and check if any audit related event was logged into by the journald:
$ journalctl | grep audit | wc
      0       0       0

Warum kann ich keine Ereignisse sehen, die vom Journal protokolliert werden?

Der cn.ko wird ordnungsgemäß geladen und die Regel wird gemäß der auditctl -l -Ausgabe erfolgreich festgelegt. Es sieht zwar so aus, als würde journald keine Nachrichten von der netlink-Schnittstelle erhalten.

Ich habe die folgenden Schritte ausgeführt, um das Debugging zu aktivieren, aber es gab auch keine Hinweise:

mkdir -p/etc/systemd/system/systemd-journald.service.d/

vim/etc/systemd/system/systemd-journald.service.d/10-debug.conf und mit folgendem Inhalt gefüllt:

[Service]
Environment=SYSTEMD_LOG_LEVEL=debug

Starten Sie den systemd-journald-Dienst erneut:

systemctl daemon-reload
systemctl restart systemd-journald
dmesg | grep systemd-journald

antworten

CoreOS wird mit einer Reihe von Standardregeln geliefert und ist so konfiguriert, dass es über das Dateisystem in /etc/audit/rules.d/ konfiguriert werden kann. Wenn Sie versuchen, mit ihm interaktiv zu spielen, müssen Sie zunächst die Überwachungsregeln löschen, da bei /etc/audit/rules.d/99-default.rules eine Regel vorhanden ist, die alle verbleibenden Regeln zum Schweigen bringt.

Einfach audit -D ausführen, um die Regeln zu löschen, und dann sollten deine interaktiv hinzugefügten Regeln anfangen zu arbeiten.

FWIW, die Regel von 99-default.rules, die Probleme verursacht, ist -a exclude,always -F msgtype>0.