Run igor(1) on this chapter. Bump revision number.

This commit is contained in:
Bjoern Heidotting 2016-06-22 21:36:33 +00:00
parent c12d5c1d7b
commit c8fc051112
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48982

View file

@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/audit/chapter.xml,v 1.14 2012/02/16 20:28:26 bcr Exp $
basiert auf: r44395
basiert auf: r48529
-->
<!-- Need more documentation on praudit, auditreduce, etc. Plus more info
on the triggers from the kernel (log rotation, out of space, etc).
@ -13,19 +13,41 @@ And the /dev/audit special file if we choose to support that. Could use
some coverage of integrating MAC with Event auditing and perhaps discussion
on how some companies or organizations handle auditing and auditing
requirements. -->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="audit">
<info><title>Security Event Auditing</title>
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="audit">
<info>
<title>Security Event Auditing</title>
<authorgroup>
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Geschrieben von </contrib></author>
<author><personname><firstname>Robert</firstname><surname>Watson</surname></personname></author>
<author>
<personname>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
</personname>
<contrib>Geschrieben von </contrib>
</author>
<author>
<personname>
<firstname>Robert</firstname>
<surname>Watson</surname>
</personname>
</author>
</authorgroup>
<authorgroup>
<author><personname><firstname>Daniel</firstname><surname>Seuffert</surname></personname><contrib>Übersetzt von </contrib></author>
<author>
<personname>
<firstname>Daniel</firstname>
<surname>Seuffert</surname>
</personname>
<contrib>Übersetzt von </contrib>
</author>
</authorgroup>
</info>
<sect1 xml:id="audit-synopsis">
<title>Einleitung</title>
@ -40,17 +62,17 @@ requirements. -->
konfigurierbare Aufzeichnung einer Vielzahl von
sicherheitsrelevanten Systemereignissen einschliesslich
Benutzereingaben, Konfigurationsänderungen sowie Datei- und
Netzwerkzugriffen. Diese Log-Datensätze können
Netzwerkzugriffen. Diese Log-Datensätze können
unschätzbar wertvoll sein für direkte
Systemüberwachung, Einbruchserkennung und
Post-Mortem-Analyse. &os; implementiert &sun;s öffentlich
Post-Mortem-Analyse. &os; implementiert &sun;s öffentlich
zugängliches Basic Security Module (<acronym>BSM</acronym>)
Application Programming Interface (<acronym>API</acronym>) und
Dateiformat, und kann mit den Audit-Implementierungen von
&sun; &solaris; und &apple; &macos; X zusammenarbeiten.</para>
<para>Dieses Kapitel konzentriert sich auf die Installation
und Konfiguration des Ereignis-Auditings. Es erklärt
und Konfiguration des Ereignis-Auditings. Es erklärt
Audit-Richtlinien und stellt ein Beispiel einer
Audit-Konfiguration vor.</para>
@ -84,7 +106,8 @@ requirements. -->
<listitem>
<para>Mit den grundlegenden Mechanismen der
Kernel-Konfiguration und -Kompilierung vertraut sein (<xref linkend="kernelconfig"/>).</para>
Kernel-Konfiguration und -Kompilierung vertraut sein (<xref
linkend="kernelconfig"/>).</para>
</listitem>
<listitem>
@ -110,10 +133,10 @@ requirements. -->
Extremfall pro Woche um mehrere Gigabyte anwachsen.
Administratoren sollten daher den benötigten Plattenplatz in
Verbindung mit umfangreichen Audit-Konfigurationen
berücksichtigen. So kann es wünschenswert sein, ein eigenes
Dateisystem für <filename>/var/audit</filename> einzusetzen, damit
andere Dateisysteme nicht betoffen sind, wenn das Dateisystem
des Audit voll läuft.</para>
berücksichtigen. So kann es wünschenswert sein, ein eigenes
Dateisystem für <filename>/var/audit</filename> einzusetzen,
damit andere Dateisysteme nicht betoffen sind, wenn das
Dateisystem des Audit voll läuft.</para>
</warning>
</sect1>
@ -127,33 +150,32 @@ requirements. -->
<listitem>
<para><emphasis>event</emphasis>: ein auditierbares Ereignis
ist jedes Ereignis, das mit dem Audit-Subsystem
aufgezeichnet werden kann. Beispiele für
aufgezeichnet werden kann. Beispiele für
sicherheitsrelevante Systemereignisse sind etwa das Anlegen
von Dateien, das Erstellen einer Netzwerkverbindung oder
eine Benutzeranmeldung. Ereignisse sind entweder
eine Benutzeranmeldung. Ereignisse sind entweder
<quote>attributierbar</quote>, können also zu einen
authentifizierten Benutzer zurückverfolgt werden, oder
sind <quote>nicht-attributierbar</quote>. Nicht-attributierbare Ereignisse erfolgen
daher vor der Authentifizierung im Anmeldeprozess
(beispielsweise die Eingabe eines falschen Passworts).</para>
sind <quote>nicht-attributierbar</quote>.
Nicht-attributierbare Ereignisse erfolgen daher vor der
Authentifizierung im Anmeldeprozess (beispielsweise die
Eingabe eines falschen Passworts).</para>
</listitem>
<listitem>
<para><emphasis>class</emphasis>: benannte Zusammenstellungen
von zusammengehörenden Ereignissen, die in
Auswahl-Ausdrücken benutzt werden.
Häufig genutzte Klassen von Ereignissen schließen
<quote>file creation</quote> (fc, Anlegen von Dateien),
<quote>exec</quote> (ex, Ausführung) und
<quote>login_logout</quote> (lo, Anmeldung-Abmeldung)
Auswahl-Ausdrücken benutzt werden. Häufig genutzte Klassen
von Ereignissen schließen <quote>file creation</quote> (fc,
Anlegen von Dateien), <quote>exec</quote> (ex, Ausführung)
und <quote>login_logout</quote> (lo, Anmeldung-Abmeldung)
ein.</para>
</listitem>
<listitem>
<para><emphasis>record</emphasis>: ein
Audit-Logeintrag, der ein Sicherheitsereignis
enthält. Jeder Datensatz enthält einen
Ereignistyp, Informationen über den Gegenstand
<para><emphasis>record</emphasis>: ein Audit-Logeintrag, der
ein Sicherheitsereignis enthält. Jeder Datensatz enthält
einen Ereignistyp, Informationen über den Gegenstand
(Benutzer), welcher die Aktion durchführt, Datums- und
Zeitinformationen, Informationen über jedes Objekt oder
Argument sowie den Zustand hinsichtlich Erfolg oder
@ -161,48 +183,44 @@ requirements. -->
</listitem>
<listitem>
<para><emphasis>trail</emphasis>: eine Log-Datei bestehend aus einer Reihe von
Audit-Datensätzen, die Sicherheitsereignisse
beschreiben. Pfade sind in grober
zeitlicher Reihenfolge bezüglich des Zeitpunktes,
an welchem ein Ereignis beendet wurde. Nur authorisierte
Prozesse dürfen Datensätze zum Audit-Pfad
hinzufügen.</para>
<para><emphasis>trail</emphasis>: eine Log-Datei bestehend aus
einer Reihe von Audit-Datensätzen, die Sicherheitsereignisse
beschreiben. Pfade sind in grober zeitlicher Reihenfolge
bezüglich des Zeitpunktes, an welchem ein Ereignis beendet
wurde. Nur authorisierte Prozesse dürfen Datensätze zum
Audit-Pfad hinzufügen.</para>
</listitem>
<listitem>
<para><emphasis>selection expression</emphasis>: eine
Zeichenkette, welche eine Liste von
Präfixen und Audit-Ereignisklassennamen enthält,
um Ereignisse abzugleichen.</para>
Zeichenkette, welche eine Liste von Präfixen und
Audit-Ereignisklassennamen enthält, um Ereignisse
abzugleichen.</para>
</listitem>
<listitem>
<para><emphasis>preselection</emphasis>: der Prozess, durch
den das System erkennt, welche Ereignisse
von Interesse für den Administrator sind, um die
Erzeugung von Datensätze zu verhindern, welche nicht
von Belang sind. Die Konfiguration der Vorauswahl benutzt
eine Reihe von Auswahl-Ausdrücken, um zu erkennen,
welche Klassen von Ereignissen für welche Benutzer
aufgezeichnet werden sollen sowie globale Einstellungen,
welche sowohl auf authorisierte
als auch unauthorisierte Prozesse angewendet werden.</para>
den das System erkennt, welche Ereignisse von Interesse für
den Administrator sind, um die Erzeugung von Datensätze zu
verhindern, welche nicht von Belang sind. Die Konfiguration
der Vorauswahl benutzt eine Reihe von Auswahl-Ausdrücken, um
zu erkennen, welche Klassen von Ereignissen für welche
Benutzer aufgezeichnet werden sollen sowie globale
Einstellungen, welche sowohl auf authorisierte als auch
unauthorisierte Prozesse angewendet werden.</para>
</listitem>
<listitem>
<para><emphasis>reduction</emphasis>: Die Reduzierung ist
der Prozess, durch den Datensätze von bestehenden
Audit-Pfaden ausgewählt werden für Speicherung,
Ausdruck oder Analyse. Ebenso der Prozess, durch den
unerwünschte Datensätze aus dem Audit-Pfad
entfernt werden. Mittels Reduzierung können
<para><emphasis>reduction</emphasis>: Die Reduzierung ist der
Prozess, durch den Datensätze von bestehenden Audit-Pfaden
ausgewählt werden für Speicherung, Ausdruck oder Analyse.
Ebenso der Prozess, durch den unerwünschte Datensätze aus
dem Audit-Pfad entfernt werden. Mittels Reduzierung können
Administratoren Richtlinien für die Speicherung von
Audit-Daten vorgeben. Zum Beispiel können
ausführliche Audit-Pfade für einen Monat
gespeichert werden, um danach den Pfad für
archivarische Zwecke auf die Anmeldeinformationen
zu reduzieren.</para>
Audit-Daten vorgeben. Zum Beispiel können ausführliche
Audit-Pfade für einen Monat gespeichert werden, um danach
den Pfad für archivarische Zwecke auf die
Anmeldeinformationen zu reduzieren.</para>
</listitem>
</itemizedlist>
</sect1>
@ -231,173 +249,175 @@ requirements. -->
<sect2>
<title>Ereignis-Auswahlausdrücke</title>
<para>Auswahlausdrücke werden an einigen Stellen
der Audit-Konfiguration benützt, um zu bestimmen,
welche Ereignisse auditiert werden sollen. Die Ausdrücke
enthalten eine Liste der Ereignisklassen, welche verglichen
werden sollen. Auswahlausdrücke werden von links nach
rechts ausgewertet und zwei Ausdrücke werden durch
Aneinanderhängen miteinander kombiniert.</para>
<para>Auswahlausdrücke werden an einigen Stellen der
Audit-Konfiguration benützt, um zu bestimmen, welche
Ereignisse auditiert werden sollen. Die Ausdrücke enthalten
eine Liste der Ereignisklassen, welche verglichen werden
sollen. Auswahlausdrücke werden von links nach rechts
ausgewertet und zwei Ausdrücke werden durch Aneinanderhängen
miteinander kombiniert.</para>
<para><xref linkend="event-selection"/> fasst die
Audit-Ereignisklassen zusammen:</para>
<table xml:id="event-selection" frame="none" pgwide="1">
<title>Audit-Ereignisklassen</title>
<title>Audit-Ereignisklassen</title>
<tgroup cols="3">
<thead>
<row>
<entry>Name der Klasse</entry>
<entry>Beschreibung</entry>
<entry>Aktion</entry>
</row>
</thead>
<tgroup cols="3">
<thead>
<row>
<entry>Name der Klasse</entry>
<entry>Beschreibung</entry>
<entry>Aktion</entry>
</row>
</thead>
<tbody>
<row>
<entry>all</entry>
<entry>all</entry>
<entry>Vergleicht alle Ereisnisklassen.</entry>
</row>
<tbody>
<row>
<entry>all</entry>
<entry>all</entry>
<entry>Vergleicht alle Ereisnisklassen.</entry>
</row>
<row>
<entry>aa</entry>
<entry>authentifizierung und autorisierung</entry>
<entry></entry>
</row>
<row>
<entry>aa</entry>
<entry>authentifizierung und autorisierung</entry>
<entry></entry>
</row>
<row>
<entry>ad</entry>
<entry>administrative</entry>
<entry>Administrative Aktionen, ausgeführt auf dem System
als Ganzes.</entry>
</row>
<row>
<entry>ad</entry>
<entry>administrative</entry>
<entry>Administrative Aktionen, ausgeführt auf dem
System als Ganzes.</entry>
</row>
<row>
<entry>ap</entry>
<entry>application</entry>
<entry>Aktionen definiert für Applikationen.</entry>
</row>
<row>
<entry>ap</entry>
<entry>application</entry>
<entry>Aktionen definiert für Applikationen.</entry>
</row>
<row>
<entry>cl</entry>
<entry>file close</entry>
<entry>Audit-Aufrufe für den Systemaufruf
<function>close</function>.</entry>
</row>
<row>
<entry>cl</entry>
<entry>file close</entry>
<entry>Audit-Aufrufe für den Systemaufruf
<function>close</function>.</entry>
</row>
<row>
<entry>ex</entry>
<entry>exec</entry>
<entry>Ausführung des Audit-Programms. Auditierung von
Befehlszeilen-Argumenten und Umgebungsvariablen wird
gesteuert durch &man.audit.control.5; mittels der
<literal>argv</literal> und
<literal>envv</literal>-Parameter gemäß der
<literal>Richtlinien</literal>-Einstellungen.</entry>
</row>
<row>
<entry>ex</entry>
<entry>exec</entry>
<entry>Ausführung des Audit-Programms. Auditierung von
Befehlszeilen-Argumenten und Umgebungsvariablen wird
gesteuert durch &man.audit.control.5; mittels der
<literal>argv</literal> und
<literal>envv</literal>-Parameter gemäß der
<literal>Richtlinien</literal>-Einstellungen.</entry>
</row>
<row>
<entry>fa</entry>
<entry>file attribute access</entry>
<entry>Auditierung des Zugriffs auf Objektattribute wie
&man.stat.1; und &man.pathconf.2;.</entry>
</row>
<row>
<entry>fa</entry>
<entry>file attribute access</entry>
<entry>Auditierung des Zugriffs auf Objektattribute wie
&man.stat.1; und &man.pathconf.2;.</entry>
</row>
<row>
<entry>fc</entry>
<entry>file create</entry>
<entry>Audit-Ereignisse, bei denen eine Datei als
Ergebnis angelegt wird.</entry>
</row>
<row>
<entry>fc</entry>
<entry>file create</entry>
<entry>Audit-Ereignisse, bei denen eine Datei als
Ergebnis angelegt wird.</entry>
</row>
<row>
<entry>fd</entry>
<entry>file delete</entry>
<entry>Audit-Ereignisse, bei denen Dateilöschungen
vorkommen.</entry>
</row>
<row>
<entry>fd</entry>
<entry>file delete</entry>
<entry>Audit-Ereignisse, bei denen Dateilöschungen
vorkommen.</entry>
</row>
<row>
<entry>fm</entry>
<entry>file attribute modify</entry>
<entry>Audit-Ereignisse, bei denen Dateiattribute geändert
werden, wie &man.chown.8;, &man.chflags.1; und
&man.flock.2;.</entry>
</row>
<row>
<entry>fm</entry>
<entry>file attribute modify</entry>
<entry>Audit-Ereignisse, bei denen Dateiattribute
geändert werden, wie &man.chown.8;, &man.chflags.1;
und &man.flock.2;.</entry>
</row>
<row>
<entry>fr</entry>
<entry>file read</entry>
<entry>Audit-Ereignisse, bei denen Daten gelesen oder
Dateien zum lesen geöffnet werden.</entry>
</row>
<row>
<entry>fr</entry>
<entry>file read</entry>
<entry>Audit-Ereignisse, bei denen Daten gelesen oder
Dateien zum lesen geöffnet werden.</entry>
</row>
<row>
<entry>fw</entry>
<entry>file write</entry>
<entry>Audit-Ereignisse, bei denen Daten geschrieben oder
Dateien geschrieben oder verändert werden.</entry>
</row>
<row>
<entry>fw</entry>
<entry>file write</entry>
<entry>Audit-Ereignisse, bei denen Daten geschrieben
oder Dateien geschrieben oder verändert
werden.</entry>
</row>
<row>
<entry>io</entry>
<entry>ioctl</entry>
<entry>Nutzung des Systemaufrufes
<function>ioctl</function> durch Audit.</entry>
</row>
<row>
<entry>io</entry>
<entry>ioctl</entry>
<entry>Nutzung des Systemaufrufes
<function>ioctl</function> durch Audit.</entry>
</row>
<row>
<entry>ip</entry>
<entry>ipc</entry>
<entry>Auditierung verschiedener Formen von
Inter-Prozess-Kommunikation einschließlich POSIX-Pipes
und System V <acronym>IPC</acronym>-Operationen.</entry>
</row>
<row>
<entry>ip</entry>
<entry>ipc</entry>
<entry>Auditierung verschiedener Formen von
Inter-Prozess-Kommunikation einschließlich POSIX-Pipes
und System V
<acronym>IPC</acronym>-Operationen.</entry>
</row>
<row>
<entry>lo</entry>
<entry>login_logout</entry>
<entry>Audit-Ereignisse von &man.login.1; und
&man.logout.1;.</entry>
</row>
<row>
<entry>lo</entry>
<entry>login_logout</entry>
<entry>Audit-Ereignisse von &man.login.1; und
&man.logout.1;.</entry>
</row>
<row>
<entry>na</entry>
<entry>non attributable</entry>
<entry>Auditierung nicht-attributierbarer
Ereignisse.</entry>
</row>
<row>
<entry>na</entry>
<entry>non attributable</entry>
<entry>Auditierung nicht-attributierbarer
Ereignisse.</entry>
</row>
<row>
<entry>no</entry>
<entry>invalid class</entry>
<entry>Kein Abgleich von Audit-Ereignissen.</entry>
</row>
<row>
<entry>no</entry>
<entry>invalid class</entry>
<entry>Kein Abgleich von Audit-Ereignissen.</entry>
</row>
<row>
<entry>nt</entry>
<entry>network</entry>
<entry>Audit-Ereignisse in Zusammenhang mit
Netzwerkaktivitäten wie &man.connect.2; und
&man.accept.2;</entry>
</row>
<row>
<entry>nt</entry>
<entry>network</entry>
<entry>Audit-Ereignisse in Zusammenhang mit
Netzwerkaktivitäten wie &man.connect.2; und
&man.accept.2;</entry>
</row>
<row>
<entry>ot</entry>
<entry>other</entry>
<entry>Auditierung verschiedener Ereignisse.</entry>
</row>
<row>
<entry>ot</entry>
<entry>other</entry>
<entry>Auditierung verschiedener Ereignisse.</entry>
</row>
<row>
<entry>pc</entry>
<entry>process</entry>
<entry>Auditierung von Prozess-Operationen wie
&man.exec.3; und &man.exit.3;.</entry>
</row>
</tbody>
</tgroup>
<row>
<entry>pc</entry>
<entry>process</entry>
<entry>Auditierung von Prozess-Operationen wie
&man.exec.3; und &man.exit.3;.</entry>
</row>
</tbody>
</tgroup>
</table>
<para>Diese Ereignisklassen können angepasst werden durch
@ -413,48 +433,48 @@ requirements. -->
zusammen.</para>
<table xml:id="event-prefixes" frame="none" pgwide="1">
<title>Präfixe für Audit-Ereignisklassen</title>
<title>Präfixe für Audit-Ereignisklassen</title>
<tgroup cols="2">
<thead>
<row>
<entry>Präfix</entry>
<entry>Aktion</entry>
</row>
</thead>
<tgroup cols="2">
<thead>
<row>
<entry>Präfix</entry>
<entry>Aktion</entry>
</row>
</thead>
<tbody>
<row>
<entry>+</entry>
<entry>Auditiert erfolgreiche Ereignisse in dieser
Klasse.</entry>
</row>
<tbody>
<row>
<entry>+</entry>
<entry>Auditiert erfolgreiche Ereignisse in dieser
Klasse.</entry>
</row>
<row>
<entry>-</entry>
<entry>Auditiert fehlgeschlagene Ereignisse in dieser
Klasse.</entry>
</row>
<row>
<entry>-</entry>
<entry>Auditiert fehlgeschlagene Ereignisse in dieser
Klasse.</entry>
</row>
<row>
<entry>^</entry>
<entry>Auditiert weder erfolgreiche noch fehlgeschlagene
Ereignisse.</entry>
</row>
<row>
<entry>^</entry>
<entry>Auditiert weder erfolgreiche noch fehlgeschlagene
Ereignisse.</entry>
</row>
<row>
<entry>^+</entry>
<entry>Auditiert keine erfolgreichen Ereignisse in dieser
Klasse.</entry>
</row>
<row>
<entry>^+</entry>
<entry>Auditiert keine erfolgreichen Ereignisse in
dieser Klasse.</entry>
</row>
<row>
<entry>^-</entry>
<entry>Auditiert keine fehlgeschlagenen Ereignisse in
dieser Klasse.</entry>
</row>
</tbody>
</tgroup>
<row>
<entry>^-</entry>
<entry>Auditiert keine fehlgeschlagenen Ereignisse in
dieser Klasse.</entry>
</row>
</tbody>
</tgroup>
</table>
<para>Wenn kein Präfix vorhanden ist, werden sowohl erfolgreiche
@ -541,14 +561,14 @@ expire-after:10M</programlisting>
<para>Die Option <option>dir</option> wird genutzt, um eines
oder mehrere Verzeichnisse festzulegen, in welchen
Audit-Protokolle gespeichert werden. Gibt es mehrere
Verzeichniseinträge, werden diese in der
angegebenen Reihenfolge genutzt, bis sie jeweils
gefüllt sind. Es ist üblich, Audit so zu
konfigurieren, dass die Audit-Logs auf einem dedizierten
Dateisystem abgelegt werden, um Wechselwirkungen zwischen
dem Audit-Subsystem und anderen Subsystemen zu verhindern,
falls das Dateisystem voll läuft.</para>
Audit-Protokolle gespeichert werden. Gibt es mehrere
Verzeichniseinträge, werden diese in der angegebenen
Reihenfolge genutzt, bis sie jeweils gefüllt sind. Es ist
üblich, Audit so zu konfigurieren, dass die Audit-Logs auf
einem dedizierten Dateisystem abgelegt werden, um
Wechselwirkungen zwischen dem Audit-Subsystem und anderen
Subsystemen zu verhindern, falls das Dateisystem voll
läuft.</para>
<para>Ist die Option <option>dist</option> auf
<literal>on</literal> oder <literal>yes</literal> gesetzt,
@ -556,11 +576,10 @@ expire-after:10M</programlisting>
<filename>/var/audit/dist</filename> erstellt.</para>
<para>Das <option>flags</option>-Feld legt die systemweite
Standard-Vorauswahl-Maske für attributierbare (direkt
einem Benutzer zuordenbare) Ereignisse fest. Im
obigen Beispiel werden alle gescheiterten und erfolgreichen
Anmelde- und Abmelde-Ereignisse für alle Benutzer
aufgezeichnet.</para>
Standard-Vorauswahl-Maske für attributierbare (direkt einem
Benutzer zuordenbare) Ereignisse fest. Im obigen Beispiel
werden alle gescheiterten und erfolgreichen Anmelde- und
Abmelde-Ereignisse für alle Benutzer aufgezeichnet.</para>
<para>Die Option <option>minfree</option> definiert den
minimalen Prozentsatz an freiem Plattenplatz für das
@ -573,12 +592,12 @@ expire-after:10M</programlisting>
aufgezeichnet werden sollen, wie beispielsweise
Anmeldeprozesse, Authentifizierung und Autorisierung.</para>
<para>Die Option <option>policy</option> legt eine durch Kommata
getrennte Liste von policy-Flags fest, welche verschiedene
Aspekte des Audit-Verhaltens steuern. Der Flag
<para>Die Option <option>policy</option> legt eine durch
Kommata getrennte Liste von policy-Flags fest, welche
verschiedene Aspekte des Audit-Verhaltens steuern. Der Flag
<literal>cnt</literal> zeigt an, dass das System trotz eines
Audit-Fehlers weiterlaufen soll (dieses Flag wird dringend
empfohlen). Ein anderes, häufig genutztes Flag ist
empfohlen). Ein anderes, häufig genutztes Flag ist
<literal>argv</literal>, welches dazu führt, dass
Befehlszeilen-Argumente für den Systemauruf
&man.execve.2; als Teil der Befehlsausführung
@ -586,8 +605,8 @@ expire-after:10M</programlisting>
<para>Die <option>filesz</option>-Option spezifiziert die
maximale Größe der Audit-Datei, bevor sie automatisch
beendet und rotiert wird. Der Wert <literal>0</literal>
setzt die automatische Log-Rotation ausser Kraft. Falls die
beendet und rotiert wird. Der Wert <literal>0</literal>
setzt die automatische Log-Rotation ausser Kraft. Falls die
angeforderte Dateigröße unterhalb des Minimums von 512K
ist, dann wird die Angabe verworfen und ein Log-Hinweis wird
erzeugt.</para>
@ -601,7 +620,7 @@ expire-after:10M</programlisting>
<para>Die <filename>audit_user</filename>-Datei erlaubt es dem
Administrator, weitere Audit-Erfordernisse für bestimmte
Benutzer festzulegen. Jede Zeile konfiguriert das Auditing
Benutzer festzulegen. Jede Zeile konfiguriert das Auditing
für einen Benutzer über zwei Felder:
<literal>alwaysaudit</literal> gibt eine Ansammlung von
Ereignissen vor, welche immer für diesen Benutzer
@ -613,14 +632,14 @@ expire-after:10M</programlisting>
<filename>audit_user</filename>-Datei zeichnet
Anmelde/Abmelde-Ereignisse, erfolgreiche
Befehlsausführungen für den Benutzer
<systemitem class="username">root</systemitem>, Anlegen von Dateien und
erfolgreiche Befehlsausführungen für den Benutzer
<systemitem class="username">www</systemitem> auf. Falls die
voreingestellte <filename>audit_control</filename> benutzt wird, dann ist
der Eintrag <literal>lo</literal> für <systemitem
class="username">root</systemitem> überflüssig und
Anmelde/Abmelde-Ereignisse werden für <systemitem
class="username">www</systemitem> ebenfalls
<systemitem class="username">root</systemitem>, Anlegen von
Dateien und erfolgreiche Befehlsausführungen für den
Benutzer <systemitem class="username">www</systemitem> auf.
Falls die voreingestellte <filename>audit_control</filename>
benutzt wird, dann ist der Eintrag <literal>lo</literal> für
<systemitem class="username">root</systemitem> überflüssig
und Anmelde/Abmelde-Ereignisse werden für <systemitem
class="username">www</systemitem> ebenfalls
aufgezeichnet.</para>
<programlisting>root:lo,+ex:no
@ -632,39 +651,38 @@ www:fc,+ex:no</programlisting>
<sect1 xml:id="audit-administration">
<title>Audit-Trails</title>
<para>Weil Audit-Trails werden im binären
<acronym>BSM</acronym>-Format gespeichert werden, gibt es
verschiedene Werkzeuge, um derartige Dateien zu ändern oder sie
in Textdateien zu konvertieren. Der Befehl
<command>praudit</command> wandelt alle Pfad-Dateien in ein
einfaches Textformat um. Der Befehl
<command>auditreduce</command> kann genutzt werden, um die
Pfad-Dateien für Analyse, Ausdruck, Archivierung oder andere
Zwecke zu reduzieren. Eine Reihe von Auswahl-Parametern werden
von &man.auditreduce.1; unterstützt, einschliesslich
Ereignistyp, Ereignisklasse, Benutzer, Datum und Uhrzeit des
Ereignisses und den Dateipfad oder das Objekt, mit dem
gearbeitet wurde.</para>
<para>Weil Audit-Trails werden im binären
<acronym>BSM</acronym>-Format gespeichert werden, gibt es
verschiedene Werkzeuge, um derartige Dateien zu ändern oder
sie in Textdateien zu konvertieren. Der
Befehl <command>praudit</command> wandelt alle Pfad-Dateien in
ein einfaches Textformat um. Der Befehl
<command>auditreduce</command> kann genutzt werden, um die
Pfad-Dateien für Analyse, Ausdruck, Archivierung oder andere
Zwecke zu reduzieren. Eine Reihe von Auswahl-Parametern
werden von &man.auditreduce.1; unterstützt,
einschliesslich Ereignistyp, Ereignisklasse, Benutzer, Datum
oder Uhrzeit des Ereignisses und den Dateipfad oder das
Objekt, mit dem gearbeitet wurde.</para>
<para>Der folgende Befehl schreibt den gesamten Inhalt einer
angegebenen Audit-Protokolldatei in eine Textdatei:</para>
<para>Der folgende Befehl schreibt den gesamten Inhalt einer
angegebenen Audit-Protokolldatei in eine Textdatei:</para>
<screen>&prompt.root; <userinput>praudit /var/audit/<replaceable>AUDITFILE</replaceable></userinput></screen>
<screen>&prompt.root; <userinput>praudit /var/audit/<replaceable>AUDITFILE</replaceable></userinput></screen>
<para><replaceable>AUDITFILE</replaceable> ist hier die zu
schreibende Protokolldatei.</para>
<para><replaceable>AUDITFILE</replaceable> ist hier die zu
schreibende Protokolldatei.</para>
<para>Audit-Pfade bestehen aus einer Reihe von Datensätzen, die
wiederum aus Kürzeln (token) gebildet werden, die von
&man.praudit.1; fortlaufend zeilenweise ausgegeben werden.
Jedes Kürzel ist von einem bestimmten Typ, z.B. enthält
<literal>header</literal> einen audit-Datensatz-Header oder
<literal>path</literal> enthält einen Dateipfad von einer
Suche. Hier ein Beispiel eines
<literal>execve</literal>-Ereignisses:</para>
<para>Audit-Pfade bestehen aus einer Reihe von Datensätzen, die
wiederum aus Kürzeln (token) gebildet werden, die von
&man.praudit.1; fortlaufend zeilenweise ausgegeben werden.
Jedes Kürzel ist von einem bestimmten Typ, z.B. enthält
<literal>header</literal> einen audit-Datensatz-Header oder
<literal>path</literal> enthält einen Dateipfad von einer
Suche. Hier ein Beispiel eines
<literal>execve</literal>-Ereignisses:</para>
<programlisting>header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
<programlisting>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
@ -672,67 +690,66 @@ subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
return,success,0
trailer,133</programlisting>
<para>Dieser Audit stellt einen erfolgreichen
<literal>execve</literal>-Aufruf dar, in welchem der Befehl
<literal>finger doug</literal> ausgeführt wurde.
<literal>exec arg</literal> enthält die Befehlszeile,
welche die Shell an den Kernel weiterleitet. Das Kürzel
<literal>path</literal> enthält den Pfad zur
ausführbaren Datei (wie vom Kernel wahrgenommen). Das
Kürzel <literal>attribute</literal> 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 <literal>subject</literal>
speichert die 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, da der
Benutzer <systemitem class="username">robert</systemitem> zum
Benutzer <systemitem class="username">root</systemitem> wurde,
bevor er diesen Befehl ausführte, aber er wird auditiert mit
dem ursprünglich authentifizierten Benutzer. Das Kürzel
<literal>return</literal> zeigt die erfolgreiche Ausführung an
und <literal>trailer</literal> schließt den Datensatz
ab.</para>
<para>Dieser Audit stellt einen erfolgreichen
<literal>execve</literal>-Aufruf dar, in welchem der Befehl
<literal>finger doug</literal> ausgeführt wurde.
<literal>exec arg</literal> enthält die Befehlszeile,
welche die Shell an den Kernel weiterleitet. Das Kürzel
<literal>path</literal> enthält den Pfad zur
ausführbaren Datei (wie vom Kernel wahrgenommen). Das
Kürzel <literal>attribute</literal> 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 <literal>subject</literal>
speichert die 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, da der
Benutzer <systemitem class="username">robert</systemitem> zum
Benutzer <systemitem class="username">root</systemitem> wurde,
bevor er diesen Befehl ausführte, aber er wird auditiert mit
dem ursprünglich authentifizierten Benutzer. Das Kürzel
<literal>return</literal> zeigt die erfolgreiche Ausführung an
und <literal>trailer</literal> schließt den Datensatz ab.</para>
<para>Die Ausgabe im <acronym>XML</acronym>-Format wird
ebenfalls unterstützt und kann über die Option
<option>-x</option> ausgewählt werden.</para>
<para>Die Ausgabe im <acronym>XML</acronym>-Format wird ebenfalls
unterstützt und kann über die Option <option>-x</option>
ausgewählt werden.</para>
<para>Da Audit-Protokolldateien sehr groß sein können, kann mit
Hilfe von <command>auditreduce</command> auch nur eine
Teilmenge der Datensätze ausgewählt werden. Dieses Beispiel
selektiert alle Datensätze des Benutzers <systemitem
class="username">trhodes</systemitem> aus der Datei
<filename>AUDITFILE</filename>:</para>
<para>Da Audit-Protokolldateien sehr groß sein können, kann mit
Hilfe von <command>auditreduce</command> auch nur eine
Teilmenge der Datensätze ausgewählt werden. Dieses Beispiel
selektiert alle Datensätze des Benutzers <systemitem
class="username">trhodes</systemitem> aus der Datei
<filename>AUDITFILE</filename>:</para>
<screen>&prompt.root; <userinput>auditreduce -u <replaceable>trhodes</replaceable> /var/audit/<replaceable>AUDITFILE</replaceable> | praudit</userinput></screen>
<screen>&prompt.root; <userinput>auditreduce -u <replaceable>trhodes</replaceable> /var/audit/<replaceable>AUDITFILE</replaceable> | praudit</userinput></screen>
<para>Mitglieder der Gruppe <systemitem
class="groupname">audit</systemitem> sind berechtigt,
Audit-Pfade in <filename>/var/audit</filename> zu lesen. In
der Voreinstellung ist diese Gruppe leer, daher kann nur der
Benutzer <systemitem class="username">root</systemitem> die
Audit-Pfade lesen. Benutzer können der Gruppe <systemitem
class="groupname">audit</systemitem> 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.</para>
<para>Mitglieder der Gruppe <systemitem
class="groupname">audit</systemitem> sind berechtigt,
Audit-Pfade in <filename>/var/audit</filename> zu lesen. In
der Voreinstellung ist diese Gruppe leer, daher kann nur der
Benutzer <systemitem class="username">root</systemitem> die
Audit-Pfade lesen. Benutzer können der Gruppe <systemitem
class="groupname">audit</systemitem> 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.</para>
<sect2>
<title>Aktive Überwachung mittles Audit-Pipes</title>
<para>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,
<para>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
des Stroms von Ereignissen durch Log-Rotation. Um den
laufenden Audit-Ereignisstrom zu verfolgen, geben Sie
folgendes ein:</para>
@ -740,25 +757,24 @@ trailer,133</programlisting>
<para>In der Voreinstellung kann nur der Benutzer
<systemitem class="username">root</systemitem> auf die
Audit-Pipe-Geräte-Knotenpunkte zugreifen. Um sie allen
Mitgliedern der Gruppe <systemitem class="groupname">audit</systemitem>
zugänglich zu machen, fügen Sie eine
<literal>devfs</literal>-Regel in
Audit-Pipe-Geräte-Knotenpunkte zugreifen. Um sie allen
Mitgliedern der Gruppe <systemitem
class="groupname">audit</systemitem> zugänglich zu machen,
fügen Sie eine <literal>devfs</literal>-Regel in
<filename>/etc/devfs.rules</filename> hinzu:</para>
<programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting>
<para>Lesen Sie &man.devfs.rules.5; für weitere
Informationen, wie das devfs-Dateisystem konfiguriert
wird.</para>
<para>Lesen Sie &man.devfs.rules.5; für weitere Informationen,
wie das devfs-Dateisystem konfiguriert wird.</para>
<warning>
<para>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-<acronym>I/O</acronym> auditiert wird, während
<command>praudit</command> in einer
mehr Audit-Ereignissen mündet. Wenn zum Beispiel der
gesamte Netzwerk-<acronym>I/O</acronym> auditiert wird,
während <command>praudit</command> in einer
<acronym>SSH</acronym>-Sitzung gestartet wurde, dann wird
ein kontinuierlicher, mächtiger Strom von Audit-Ereignissen
erzeugt, da jedes ausgegebene Ereignis wiederum neue
@ -777,22 +793,22 @@ trailer,133</programlisting>
Audit-Daemon &man.auditd.8; verwaltet. Administratoren
sollten nicht versuchen, &man.newsyslog.conf.5; oder andere
Werkzeuge zu benutzen, um Audit-Protokolldateien direkt zu
rotieren. Stattdessen sollte <command>audit</command> 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:</para>
rotieren. Stattdessen sollte <command>audit</command> 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:</para>
<screen>&prompt.root; <userinput>audit -n</userinput></screen>
<para>Falls der &man.auditd.8;-Daemon gegenwärtig nicht läuft,
wird dieser Befehl scheitern und eine Fehlermeldung wird
ausgegeben.</para>
<para>Falls der &man.auditd.8;-Daemon gegenwärtig nicht läuft,
wird dieser Befehl scheitern und eine Fehlermeldung wird
ausgegeben.</para>
<para>Das Hinzufügen der folgenden Zeile in
<para>Durch das Hinzufügen der folgenden Zeile in
<filename>/etc/crontab</filename> wird die Log-Rotation alle
zwölf Stunden durchgeführt:</para>
@ -802,15 +818,15 @@ trailer,133</programlisting>
<filename>/etc/crontab</filename> gespeichert wird.</para>
<para>Die automatische Rotation der Audit-Pfad-Datei in
Abhängigkeit von der Dateigröße ist möglich
durch die Angabe der Option <option>filesz</option> in
Abhängigkeit von der Dateigröße ist möglich durch die Angabe
der Option <option>filesz</option> in
<filename>audit_control</filename>. Dieser Vorgang ist in
<xref linkend="audit-auditcontrol"/> beschrieben.</para>
<para>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
geschlossen wurden. Das Skript
<filename>audit_warn</filename> kann genutzt werden, um
angepasste Aktionen für eine Vielzahl von audit-bezogenen
Ereignissen auszuführen, einschliesslich der sauberen