Audit-Pfade werden im binären BSM-Format
gespeichert, daher benötigen Sie spezielle Werkzeuge, um
derartige Dateien zu ändern oder Sie in Textdateien zu
konvertieren. Der
Befehl praudit(1) wandelt alle Pfad-Dateien in ein
einfaches Textformat um. Der Befehl auditreduce(1) kann
genutzt werden, um die Pfad-Dateien für Analyse,
Ausdruck, Archivierung oder andere Zwecke zu reduzieren.
auditreduce
unterstützt eine Reihe von
Auswahl-Parametern einschliesslich Ereignistyp,
Ereignisklasse, Benutzer, Datum oder Uhrzeit des Ereignisses und
den Dateipfad oder das Objekt, mit dem gearbeitet
wurde.
Das Dienstprogramm praudit
schreibt
zum Beispiel den gesamten Inhalt einer angegebenen
Audit-Protokolldatei in eine simple Textdatei:
#
praudit /var/audit/AUDITFILE
ist hier die zu schreibende Protokolldatei.AUDITFILE
Audit-Pfade bestehen aus einer Reihe von Datensätzen,
die wiederum aus Kürzeln (token) gebildet werden, die von
praudit
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:
Dieser Audit stellt einen erfolgreichen
execve
-Aufruf dar, in welchem der Befehl
finger doug
ausgeführt wurde. Das
Kürzel des Argumentes 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 (insbesondere den Datei-Modus, der genutzt
werden kann, um zu bestimmen, ob setuid auf die Applikation
angewendet wurde). Das Kürzel subject
beschreibt den untergeordneten Prozess und speichert daher in
Aufeinanderfolge Audit-Benutzer-ID, effektive Benutzer-ID und
Gruppen-ID, wirkliche Benutzer-ID und Grppen-ID, Process-ID,
Session- ID, Port-ID und Anmelde-Adresse. Beachten Sie, dass
Audit-Benutzer-ID und wirkliche Benutzer-ID abweichen: Der Benutzer
robert
wurde zum Benutzer
root
, bevor er diesen Befehl
ausführte, aber er wird auditiert mit dem
ursprünglich authentifizierten Benutzer. Schließlich zeigt
das Kürzel return
die erfolgreiche
Ausführung an und trailer
schließt
den Datensatz ab.
praudit
unterstützt auch
die Ausgabe im XML-Format (die sie über die Option
-x
auswählen können).
Da Audit-Protokolldateien sehr groß sein können, wird ein Administrator höchstwahrscheinlich eine Auswahl an Datensätzen verwenden, wie z.B. alle Datensätze zu einem bestimmten Benutzer:
#
auditreduce -u trhodes /var/audit/AUDITFILE | praudit
Dies wird alle Audit-Datensätze des Benutzers
trhodes
auswählen, die in der
Datei
gespeichert sind.AUDITFILE
Mitglieder der Gruppe audit
haben
die Erlaubnis, Audit-Pfade in /var/audit
zu lesen; standardmässig 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 im Dateisystem des Gerätes, 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 für den Administrator das Audit-Pipe-Gerät ein angenehmer Weg, 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 bitte folgende Befehlszeile 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
devfs.rules
hinzu:
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(1) 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. Es 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 nur vom Kernel geschrieben und nur
vom Audit-Daemon auditd verwaltet.
Administratoren sollten nicht versuchen, newsyslog.conf(5)
oder andere Werkzeuge zu benutzen, um Audit-Protokolldateien
direkt zu rotieren. Stattdessen sollte das
audit
Management-Werkzeug 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-Daemon gegenwärtig nicht läuft, wird dieser Befehl scheitern und eine Fehlermeldung wird ausgegeben.
Das Hinzufügen der folgenden Zeile in
/etc/crontab
wird die Log-Rotation alle
zwölf Stunden durch cron(8) erzwingen:
Die Änderung wird wirksam, sobald Sie die neue
/etc/crontab
gespeichert haben.
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(5). Dieser Vorgang ist im Abschnitt
Konfigurationsdateien dieses Kapitels 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, einschliesslich der sauberen
Beendigung von Audit-Pfaden, wenn diese geschlossen werden.
Zum Beispiel kann man die folgenden Zeilen in das
audit_warn
-Skript aufnehmen, um
Audit-Pfade beim Beenden zu komprimieren:
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 einschliessen. Das 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>.