Weil Audit-Trails werden im binären
BSM-Format gespeichert werden, gibt es
verschiedene Werkzeuge, um derartige Dateien zu ändern oder sie
in Textdateien zu konvertieren. Der Befehl
praudit
wandelt alle Pfad-Dateien in ein
einfaches Textformat um. Der Befehl
auditreduce
kann genutzt werden, um die
Pfad-Dateien für Analyse, Ausdruck, Archivierung oder andere
Zwecke zu reduzieren. Eine Reihe von Auswahl-Parametern werden
von auditreduce(1) unterstützt, einschließlich
Ereignistyp, Ereignisklasse, Benutzer, Datum und Uhrzeit des
Ereignisses und den Dateipfad oder das Objekt, mit dem
gearbeitet wurde.
Der folgende Befehl schreibt den gesamten Inhalt einer angegebenen Audit-Protokolldatei in eine Textdatei:
#
praudit /var/audit/
AUDITFILE
AUDITFILE
ist hier die zu
schreibende Protokolldatei.
Audit-Pfade bestehen aus einer Reihe von Datensätzen, die
wiederum aus Kürzeln (token) gebildet werden, die von
praudit(1) fortlaufend zeilenweise ausgegeben werden.
Jedes Kürzel ist von einem bestimmten Typ, z.B. enthält
header
einen audit-Datensatz-Header oder
path
enthält einen Dateipfad von einer
Suche. Hier ein Beispiel eines
execve
-Ereignisses:
header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec exec arg,finger,doug path,/usr/bin/finger attribute,555,root,wheel,90,24918,104944 subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100 return,success,0 trailer,133
Dieser Audit stellt einen erfolgreichen
execve
-Aufruf dar, in welchem der Befehl
finger doug
ausgeführt wurde.
exec arg
enthält die Befehlszeile,
welche die Shell an den Kernel weiterleitet. Das Kürzel
path
enthält den Pfad zur
ausführbaren Datei (wie vom Kernel wahrgenommen). Das
Kürzel attribute
beschreibt die
Binärdatei und enthält den Datei-Modus, der genutzt
werden kann, um zu bestimmen, ob setuid auf die Applikation
angewendet wurde. Das Kürzel subject
speichert die Audit-Benutzer-ID, effektive Benutzer-ID und
Gruppen-ID, wirkliche Benutzer-ID und Gruppen-ID, Prozess-ID,
Session- ID, Port-ID und Anmelde-Adresse. Beachten Sie, dass
Audit-Benutzer-ID und wirkliche Benutzer-ID abweichen, da der
Benutzer robert
zum
Benutzer root
wurde,
bevor er diesen Befehl ausführte, aber er wird auditiert mit
dem ursprünglich authentifizierten Benutzer. Das Kürzel
return
zeigt die erfolgreiche Ausführung an
und trailer
schließt den Datensatz ab.
Die Ausgabe im XML-Format wird ebenfalls
unterstützt und kann über die Option -x
ausgewählt werden.
Da Audit-Protokolldateien sehr groß sein können, kann mit
Hilfe von auditreduce
auch nur eine
Teilmenge der Datensätze ausgewählt werden. Dieses Beispiel
selektiert alle Datensätze des Benutzers trhodes
aus der Datei
AUDITFILE
:
#
auditreduce -u
trhodes
/var/audit/AUDITFILE
| praudit
Mitglieder der Gruppe audit
sind berechtigt,
Audit-Pfade in /var/audit
zu lesen. In
der Voreinstellung ist diese Gruppe leer, daher kann nur der
Benutzer root
die
Audit-Pfade lesen. Benutzer können der Gruppe audit
hinzugefügt werden, um
Rechte für Audit-Reviews zu gewähren. Da die Fähigkeit,
Inhalte von Audit-Protokolldateien zu verfolgen, tiefgreifende
Einblicke in das Verhalten von Benutzern und Prozessen
erlaubt, wird empfohlen, dass die Gewährung von Rechten für
Audit-Reviews mit Bedacht erfolgt.
Audit-Pipes sind nachgebildete (geklonte) Pseudo-Geräte, welche es Applikationen erlauben, die laufenden Audit-Datensätze anzuzapfen. Dies ist vorrangig für Autoren von Intrusion Detection Software und Systemüberwachungsprogrammen von Bedeutung. Allerdings ist das Audit-Pipe-Gerät ein angenehmer Weg für den Administrator, aktive Überwachung zu gestatten, ohne Gefahr von Problemen durch Besitzerrechte der Audit-Pfad-Datei oder Unterbrechung des Stroms von Ereignissen durch Log-Rotation. Um den laufenden Audit-Ereignisstrom zu verfolgen, geben Sie folgendes ein:
#
praudit /dev/auditpipe
In der Voreinstellung kann nur der Benutzer
root
auf die
Audit-Pipe-Geräte-Knotenpunkte zugreifen. Um sie allen
Mitgliedern der Gruppe audit
zugänglich zu machen,
fügen Sie eine devfs
-Regel in
/etc/devfs.rules
hinzu:
add path 'auditpipe*' mode 0440 group audit
Lesen Sie devfs.rules(5) für weitere Informationen, wie das devfs-Dateisystem konfiguriert wird.
Es ist sehr leicht, Rückmeldungszyklen von
Audit-Ereignissen hervorzurufen, in welcher das Betrachten
des Resultates eines Audit-Ereignisses in die Erzeugung von
mehr Audit-Ereignissen mündet. Wenn zum Beispiel der
gesamte Netzwerk-I/O auditiert wird,
während praudit
in einer
SSH-Sitzung gestartet wurde, dann wird
ein kontinuierlicher, mächtiger Strom von Audit-Ereignissen
erzeugt, da jedes ausgegebene Ereignis wiederum neue
Ereignisse erzeugt. Daher ist anzuraten,
praudit
an einem Audit-Pipe-Gerät nur
von Sitzungen anzuwenden (ohne feingranuliertes
I/O-Auditing), um dies zu
vermeiden.
Audit-Pfade werden vom Kernel geschrieben und vom
Audit-Daemon auditd(8) verwaltet. Administratoren
sollten nicht versuchen, newsyslog.conf(5) oder andere
Werkzeuge zu benutzen, um Audit-Protokolldateien direkt zu
rotieren. Stattdessen sollte audit
benutzt
werden, um die Auditierung zu beenden, das Audit-System neu zu
konfigurieren und eine Log-Rotation durchzuführen. Der
folgende Befehl veranlasst den Audit-Daemon, eine neue
Protokolldatei anzulegen und dem Kernel zu signalisieren, die
neue Datei zu nutzen. Die alte Datei wird beendet und
umbenannt. Ab diesem Zeitpunkt kann sie vom Administrator
bearbeitet werden:
#
audit -n
Falls der auditd(8)-Daemon gegenwärtig nicht läuft, wird dieser Befehl scheitern und eine Fehlermeldung wird ausgegeben.
Durch das Hinzufügen der folgenden Zeile in
/etc/crontab
wird die Log-Rotation alle
zwölf Stunden durchgeführt:
0 */12 * * * root /usr/sbin/audit -n
Die Änderung wird wirksam, sobald
/etc/crontab
gespeichert wird.
Die automatische Rotation der Audit-Pfad-Datei in
Abhängigkeit von der Dateigröße ist möglich durch die Angabe
der Option filesz
in
audit_control
. Dieser Vorgang ist in
Abschnitt 16.3.2.1, „Die audit_control
-Datei“ beschrieben.
Da Audit-Pfad-Dateien sehr groß werden können,
ist es oft wünschenswert, Pfade zu komprimieren oder
anderweitig zu archivieren, sobald sie vom Audit-Daemon
geschlossen wurden. Das Skript
audit_warn
kann genutzt werden, um
angepasste Aktionen für eine Vielzahl von audit-bezogenen
Ereignissen auszuführen, einschließlich der sauberen
Beendigung von Audit-Pfaden, wenn diese geschlossen werden.
Zum Beispiel kann man die folgenden Zeilen in
/etc/security/audit_warn
aufnehmen, um
Audit-Pfade beim Beenden zu komprimieren:
# # Compress audit trail files on close. # if [ "$1" = closefile ]; then gzip -9 $2 fi
Andere Archivierungsaktivitäten können das Kopieren zu einem zentralen Server, die Löschung der alten Pfad-Dateien oder die Reduzierung des alten Audit-Pfades durch Entfernung nicht benötigter Datensätze einschließen. Dieses Skript wird nur dann ausgeführt, wenn die Audit-Pfad-Dateien sauber beendet wurden, daher wird es nicht auf Pfaden laufen, welche durch ein unsauberes Herunterfahren des Systems nicht beendet wurden.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.