diff options
Diffstat (limited to 'de_DE.ISO8859-1/books/handbook/audit/chapter.xml')
-rw-r--r-- | de_DE.ISO8859-1/books/handbook/audit/chapter.xml | 840 |
1 files changed, 840 insertions, 0 deletions
diff --git a/de_DE.ISO8859-1/books/handbook/audit/chapter.xml b/de_DE.ISO8859-1/books/handbook/audit/chapter.xml new file mode 100644 index 0000000000..b5aac5a9e5 --- /dev/null +++ b/de_DE.ISO8859-1/books/handbook/audit/chapter.xml @@ -0,0 +1,840 @@ +<?xml version="1.0" encoding="iso-8859-1" standalone="no"?> +<!-- + The FreeBSD Documentation Project + The FreeBSD German Documentation Project + + $FreeBSD$ + $FreeBSDde: de-docproj/books/handbook/audit/chapter.xml,v 1.14 2012/02/16 20:28:26 bcr Exp $ + basiert auf: 1.36 +--> + +<!-- Need more documentation on praudit, auditreduce, etc. Plus more info +on the triggers from the kernel (log rotation, out of space, etc). +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 id="audit"> + <chapterinfo> + <authorgroup> + <author> + <firstname>Tom</firstname> + <surname>Rhodes</surname> + <contrib>Geschrieben von </contrib> + </author> + <author> + <firstname>Robert</firstname> + <surname>Watson</surname> + </author> + </authorgroup> + <authorgroup> + <author> + <firstname>Daniel</firstname> + <surname>Seuffert</surname> + <contrib>Übersetzt von </contrib> + </author> + </authorgroup> + </chapterinfo> + + <title>Security Event Auditing</title> + + <sect1 id="audit-synopsis"> + <title>Einleitung</title> + + <indexterm><primary>AUDIT</primary></indexterm> + <indexterm> + <primary>Security Event Auditing</primary> + <see>MAC</see> + </indexterm> + + <para>Das &os;-Betriebssystem unterstützt + ein feingranuliertes Sicherheits-Auditing. + Ereignis-Auditing erlaubt die + zuverlässige, feingranulierte und konfigurierbare + Aufzeichnung einer Vielzahl von sicherheitsrelevanten + Systemereignissen einschliesslich Benutzereingaben, + Konfigurationsänderungen sowie Datei- und + 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 + zugängliche <acronym>BSM</acronym> API und Dateiformat. Die + &os;-Implementierung 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 + Audit-Richtlinien und stellt ein Beispiel einer + Audit-Konfiguration vor.</para> + + <para>Nach dem Lesen dieses Kapitels werden Sie + Folgendes wissen:</para> + + <itemizedlist> + <listitem> + <para>Was Ereignis-Auditing ist und wie es arbeitet.</para> + </listitem> + + <listitem> + <para>Wie man Ereignis-Auditing in &os; für Benutzer + und Prozesse konfiguriert.</para> + </listitem> + + <listitem> + <para>Wie man den Audit-Pfad mittels Audit-Reduktion und + Revisionswerkzeugen überprüft.</para> + </listitem> + </itemizedlist> + + <para>Vor dem Lesen dieses Kapitels sollten Sie:</para> + + <itemizedlist> + <listitem> + <para>Sowohl &unix; als auch &os;-Basismechanismen + beherrschen (<xref linkend="basics"/>).</para> + </listitem> + + <listitem> + <para>Mit den grundlegenden Mechanismen der + Kernel-Konfiguration und -Kompilierung vertraut sein (<xref + linkend="kernelconfig"/>).</para> + </listitem> + + <listitem> + <para>Mit den Maßnahmen zur Sicherung von &os; + vertraut sein (<xref linkend="security"/>).</para> + </listitem> + </itemizedlist> + + <warning> + <para>Die Audit-Funktionalität in &os; besitzt die + Einschränkungen, dass zur Zeit nicht alle + sicherheitsrelevanten System-Ereignisse auditierbar sind und + dass einige Anmelde-Mechanismen, wie z.B. X11-basierte + Bildschirm-Manager und Daemonen von Drittanbietern, das + Auditing für Benutzeranmeldungen nicht korrekt + konfigurieren.</para> + + <para>Das Sicherheits-Auditing ist in der Lage, sehr + detaillierte Log-Dateien von Systemaktivitäten zu + erzeugen. Auf einem ausgelasteten System kann die Pfad-Datei + sehr groß werden, wenn sie für hohe Auflösung + konfiguriert ist, und im 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> + </warning> + </sect1> + + <sect1 id="audit-inline-glossary"> + <title>Schlüsselbegriffe</title> + + <para>Vor dem Lesen dieses Kapitels müssen einige + Audit-bezogene Schlüsselbegriffe erläutert + werden:</para> + + <itemizedlist> + <listitem> + <para><emphasis>event</emphasis>: Ein auditierbares Ereignis + ist ein Ereignis, das mit dem Audit-Subsystem + aufgezeichnet werden kann. Beispiele für + sicherheitsrelevante Systemereignisse sind etwa das Anlegen + von Dateien, das Erstellen einer Netzwerkverbindung oder + eine Benutzeranmeldung. Ereignisse sind entweder + <quote>attributierbar</quote>, können also zu einen + authentifizierten Benutzer zurückverfolgt werden, oder + sind <quote>nicht-attributierbar</quote>, falls dies nicht + möglich ist. Nicht-attributierbare Ereignisse erfolgen + daher vor der Authentifizierung im Anmeldeprozess + (beispielsweise die Eingabe eines falschen Passworts).</para> + </listitem> + + <listitem> + <para><emphasis>class</emphasis>: Ereignisklassen sind + benannte Zusammenstellungen von zusammengehörenden + Ereignissen und werden in Auswahl-Ausdrücken benutzt. + 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 Datensatz ist ein + Audit-Logeintrag, welcher 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 + Scheitern der Operation.</para> + </listitem> + + <listitem> + <para><emphasis>trail</emphasis>: Ein Audit-Pfad (audit + trail) oder eine Log-Datei besteht aus einer Reihe von + Audit-Datensätzen, die Sicherheitsereignisse + beschreiben. Normalerweise sind die Pfade 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>: Ein + Auswahlausdruck ist eine Zeichenkette, welche eine Liste von + Präfixen und Audit-Ereignisklassennamen enthält, + um Ereignisse abzugleichen.</para> + </listitem> + + <listitem> + <para><emphasis>preselection</emphasis>: Die Vorauswahl ist + 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> + </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 + 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> + </listitem> + </itemizedlist> + </sect1> + + <sect1 id="audit-install"> + <title>Installation der Audit-Unterstützung</title> + + <para>Die Unterstützung des Ereignis-Auditings für den + Benutzerbereich wird bereits als Teil des Basissystems installiert. + Die Audit-Unterstützung ist bereits im &os;-Standardkernel + enthalten, jedoch müssen Sie die folgende Zeile explizit in + Ihre Kernelkonfigurationsdatei aufnehmen und den Kernel neu bauen:</para> + + <programlisting>options AUDIT</programlisting> + + <para>Bauen und installieren Sie den Kernel wie in + <xref linkend="kernelconfig"/> beschrieben ist.</para> + + <para>Nachdem der Kernel mit Audit-Unterstützung + gebaut und installiert ist und das System neu gestartet wurde, + aktivieren Sie den Audit-Daemon + durch das Einfügen der folgenden Zeile in die Datei + &man.rc.conf.5;:</para> + + <programlisting>auditd_enable="YES"</programlisting> + + <para>Die Audit-Unterstützung kann nun durch einen + Neustart des Systems oder durch das manuelle Starten + des Audit-Daemon aktiviert werden:</para> + + <programlisting>/etc/rc.d/auditd start</programlisting> + </sect1> + + <sect1 id="audit-config"> + <title>Die Konfiguration des Audit</title> + + <para>Alle Konfigurationsdateien für das Sicherheits-Audit + finden sich unter + <filename class="directory">/etc/security</filename>. + Die folgenden Dateien müssen vorhanden sein, bevor + der Audit-Daemon gestartet wird:</para> + + <itemizedlist> + <listitem> + <para><filename>audit_class</filename> – Enthält + die Definitionen der Audit-Klassen.</para> + </listitem> + + <listitem> + <para><filename>audit_control</filename> – Steuert + Teile des Audit-Subsystems wie Audit-Klassen, minimaler + Plattenplatz auf dem Audit-Log-Datenträger, maximale + Größe des Audit-Pfades usw.</para> + </listitem> + + <listitem> + <para><filename>audit_event</filename> – Wörtliche + Namen und Beschreibungen von System-Audit-Ereignissen sowie + eine Liste, welche Klassen welches Ereignis + aufzeichnen.</para> + </listitem> + + <listitem> + <para><filename>audit_user</filename> – Benutzerspezifische + Audit-Erfordernisse, welche mit den globalen Vorgaben bei + der Anmeldung kombiniert werden.</para> + </listitem> + + <listitem> + <para><filename>audit_warn</filename> – Ein + anpassbares Shell-Skript, welches von + <application>auditd</application> benutzt wird, um + Warnhinweise in aussergewöhnlichen Situationen zu + erzeugen, z.B. wenn der Platz für die + Audit-Datensätze knapp wird oder wenn die Datei des + Audit-Pfades rotiert wurde.</para> + </listitem> + </itemizedlist> + + <warning> + <para>Audit-Konfigurationsdateien sollten vorsichtig gewartet und + bearbeitet werden, da Fehler in der Konfiguration zu falscher + Aufzeichnung von Ereignissen führen könnten.</para> + </warning> + + <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, jede mit einem Präfix, welches anzeigt, + ob verglichene Datensätze akzeptiert oder ignoriert + werden sollen und optional, um anzuzeigen, ob der Eintrag + beabsichtigt, erfolgreiche oder fehlgeschlagene Operationen + zu vergleichen. Auswahlausdrücke werden von links nach + rechts ausgewertet und zwei Ausdrücke werden durch + Aneinanderhängen miteinander kombiniert.</para> + + <para>Die folgende Liste enthält die + Standard-Ereignisklassen für das Audit und ist in + <filename>audit_class</filename> festgehalten:</para> + + <itemizedlist> + <listitem> + <para><literal>all</literal> – <emphasis>all</emphasis> – Vergleiche + alle Ereignisklassen.</para> + </listitem> + + <listitem> + <para><literal>ad</literal> – <emphasis>administrative</emphasis> – Administrative + Aktionen ausgeführt auf dem System als Ganzes.</para> + </listitem> + + <listitem> + <para><literal>ap</literal> – <emphasis>application</emphasis> – Aktionen + definiert für Applikationen.</para> + </listitem> + + <listitem> + <para><literal>cl</literal> – <emphasis>file + close</emphasis> – Audit-Aufrufe für + den Systemaufruf <function>close</function>.</para> + </listitem> + + <listitem> + <para><literal>ex</literal> – <emphasis>exec</emphasis> – 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>-Parametergemäss der + <literal>Richtlinien</literal>-Einstellungen.</para> + </listitem> + + <listitem> + <para><literal>fa</literal> – <emphasis>file + attribute access</emphasis> – Auditierung + des Zugriffs auf Objektattribute wie &man.stat.1;, + &man.pathconf.2; und ähnlichen Ereignissen.</para> + </listitem> + + <listitem> + <para><literal>fc</literal> – <emphasis>file + create</emphasis> – Audit-Ereignisse, + bei denen eine Datei als Ergebnis angelegt wird.</para> + </listitem> + + <listitem> + <para><literal>fd</literal> – <emphasis>file + delete</emphasis> – Audit-Ereignisse, + bei denen Dateilöschungen vorkommen.</para> + </listitem> + + <listitem> + <para><literal>fm</literal> – <emphasis>file + attribute modify</emphasis> – Audit-Ereignisse, + bei welchen Dateiattribute geändert werden, wie + &man.chown.8;, &man.chflags.1;, &man.flock.2; etc.</para> + </listitem> + + <listitem> + <para><literal>fr</literal> – <emphasis>file + read</emphasis> – Audit-Ereignisse, bei + denen Daten gelesen oder Dateien zum lesen geöffnet + werden usw.</para> + </listitem> + + <listitem> + <para><literal>fw</literal> – <emphasis>file write</emphasis> – Audit-Ereignisse, + bei welchen Daten geschrieben oder Dateien geschrieben + oder verändert werden usw.</para> + </listitem> + + <listitem> + <para><literal>io</literal> – <emphasis>ioctl</emphasis> – Nutzung + des Systemaufrufes &man.ioctl.2; durch Audit.</para> + </listitem> + + <listitem> + <para><literal>ip</literal> – <emphasis>ipc</emphasis> – Auditierung + verschiedener Formen von Inter-Prozess-Kommunikation + einschliesslich POSIX-Pipes und System V + <acronym>IPC</acronym>-Operationen.</para> + </listitem> + + <listitem> + <para><literal>lo</literal> – <emphasis>login_logout</emphasis> – Audit-Ereignisse + betreffend &man.login.1; und &man.logout.1;, welche auf + dem System auftreten.</para> + </listitem> + + <listitem> + <para><literal>na</literal> – <emphasis>non + attributable</emphasis> – Auditierung + nicht-attributierbarer Ereignisse (Ereignisse, die nicht auf + einen bestimmten Benutzer zurückgeführt werden + können).</para> + </listitem> + + <listitem> + <para><literal>no</literal> – <emphasis>invalid + class</emphasis> – Kein Abgleich von + Audit-Ereignissen.</para> + </listitem> + + <listitem> + <para><literal>nt</literal> – <emphasis>network</emphasis> – Audit-Ereignisse + in Zusammenhang mit Netzwerkaktivitäten wie + z.B. &man.connect.2; und &man.accept.2;.</para> + </listitem> + + <listitem> + <para><literal>ot</literal> – <emphasis>other</emphasis> – Auditierung + verschiedener Ereignisse.</para> + </listitem> + + <listitem> + <para><literal>pc</literal> – <emphasis>process</emphasis> – Auditierung + von Prozess-Operationen wie &man.exec.3; und + &man.exit.3;.</para> + </listitem> + </itemizedlist> + + <para>Diese Ereignisklassen können angepasst werden durch + Modifizierung der Konfigurationsdateien + <filename>audit_class</filename> und + <filename>audit_event</filename>.</para> + + <para>Jede Audit-Klasse in dieser Liste ist kombiniert mit + einem Präfix, welches anzeigt, ob + erfolgreiche/gescheiterte Operationen abgebildet werden, und + ob der Eintrag den Abgleich hinzufügt oder entfernt + für die Klasse und den Typ.</para> + + <itemizedlist> + <listitem> + <para>(none) Kein Präfix, sowohl erfolgreiche als + auch gescheiterte Vorkommen eines Ereignisses werden + auditiert.</para> + </listitem> + + <listitem> + <para><literal>+</literal> Auditiere nur erfolgreiche + Ereignisse in dieser Klasse.</para> + </listitem> + + <listitem> + <para><literal>-</literal> Auditiere nur gescheiterte + Operationen in dieser Klasse.</para> + </listitem> + + <listitem> + <para><literal>^</literal> Auditiere weder erfolgreiche + noch gescheiterte Ereignisse in dieser Klasse.</para> + </listitem> + + <listitem> + <para><literal>^+</literal> Auditiere keine erfolgreichen + Ereignisse in dieser Klasse.</para> + </listitem> + + <listitem> + <para><literal>^-</literal> Auditiere keine gescheiterten + Ereignisse in dieser Klasse.</para> + </listitem> + </itemizedlist> + + <para>Das folgende Beispiel einer Auswahl-Zeichenkette + wählt erfolgreiche und gescheiterte + Anmelde/Abmelde-Ereignisse aus, aber nur erfolgreich beendete + Ausführungs-Ereignisse:</para> + + <programlisting>lo,+ex</programlisting> + </sect2> + + <sect2> + <title>Konfigurationsdateien</title> + + <para>In den meisten Fällen müssen Administratoren + nur zwei Dateien ändern, wenn sie das Audit-System + konfigurieren: <filename>audit_control</filename> und + <filename>audit_user</filename>. Die erste Datei steuert + systemweite Audit-Eigenschaften und -Richtlinien; die zweite + Datei kann für die Feinanpassung der Auditierung von + Benutzern verwendet werden.</para> + + <sect3 id="audit-auditcontrol"> + <title>Die <filename>audit_control</filename>-Datei</title> + + <para>Die <filename>audit_control</filename>-Datei legt eine + Anzahl Vorgabewerte fest. Beim Betrachten des Inhaltes der + Datei sehen wir Folgendes:</para> + + <programlisting>dir:/var/audit +flags:lo +minfree:20 +naflags:lo +policy:cnt +filesz:0</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> + + <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> + + <para>Die Option <option>minfree</option> definiert den + minimalen Prozentsatz an freiem Plattenplatz für das + Dateisystem, in welchem der Audit-Pfad abgespeichert wird. + Wenn diese Schwelle überschritten ist, wird ein + Warnhinweis erzeugt. Das obige Beispiel legt den minimalen + freien Platz auf zwanzig Prozent fest.</para> + + <para>Die <option>naflags</option>-Option bestimmt diejenigen + Audit-Klassen, für die nicht-attributierbare Ereignisse + aufgezeichnet werden sollen (beispielsweise Anmeldeprozesse + und System-Daemonen.</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 vorgegebene Flag + <literal>cnt</literal> zeigt an, dass das System trotz eines + Audit-Fehlers weiterlaufen soll (dieses Flag wird dringend + angeraten). 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 + aufgezeichnet werden.</para> + + <para>Die <option>filesz</option>-Option spezifiziert die + maximale Größe in Bytes, welche eine + Audit-Pfad-Datei wachsen darf, bevor sie automatisch beendet + und rotiert wird. Die Standardvorgabe <literal>0</literal> + setzt die automatische Log-Rotation ausser Kraft. Falls die + angeforderte Dateigröße größer Null + und gleichzeitig unterhalb des Minimums von 512K ist, dann + wird die Angabe verworfen und ein Log-Hinweis wird + erzeugt.</para> + </sect3> + + <sect3 id="audit-audituser"> + <title>Die Datei <filename>audit_user</filename></title> + + <para>Die <filename>audit_user</filename>-Datei erlaubt es dem + Administrator, weitere Audit-Erfordernisse für bestimmte + Benutzer festzulegen. Jede Zeile konfiguriert das Auditing + für einen Benutzer über zwei Felder: Das erste Feld + ist <literal>alwaysaudit</literal>, welches eine Ansammlung + von Ereignissen vorgibt, welche immer für diesen Benutzer + aufgezeichnet werden. Das zweite Feld + <literal>neveraudit</literal> legt eine Menge an Ereignissen + fest, die niemals für diesen Benutzer auditiert werden + sollen.</para> + + <para>Das folgende Beispiel einer + <filename>audit_user</filename>-Datei zeichnet + Anmelde/Abmelde-Ereignisse, erfolgreiche + Befehlsausführungen für den Benutzer + <username>root</username>, Anlegen von Dateien und + erfolgreiche Befehlsausführungen für den Benutzer + <username>www</username> auf. Falls das Beispiel zusammen + mit der vorstehend als Beispiel gezeigten Datei + <filename>audit_control</filename> benutzt wird, dann ist + der Eintrag <literal>lo</literal> für Benutzer + <username>root</username> überflüssig und + Anmelde/Abmelde-Ereignisse werden für den Benutzer + <username>www</username> ebenfalls aufgezeichnet.</para> + + <programlisting>root:lo,+ex:no +www:fc,+ex:no</programlisting> + </sect3> + </sect2> + </sect1> + + <sect1 id="audit-administration"> + <title>Administration des Audit-Subsystems</title> + + <sect2> + <title>Audit-Pfade betrachten</title> + + <para>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 &man.praudit.1; wandelt alle Pfad-Dateien in ein + einfaches Textformat um. Der Befehl &man.auditreduce.1; kann + genutzt werden, um die Pfad-Dateien für Analyse, + Ausdruck, Archivierung oder andere Zwecke zu reduzieren. + <command>auditreduce</command> 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.</para> + + <para>Das Dienstprogramm <command>praudit</command> schreibt + zum Beispiel den gesamten Inhalt einer angegebenen + Audit-Protokolldatei in eine simple Textdatei:</para> + + <screen>&prompt.root; <userinput>praudit /var/audit/AUDITFILE</userinput></screen> + + <para><filename><replaceable>AUDITFILE</replaceable></filename> + 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 + <command>praudit</command> 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 +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</programlisting> + + <para>Dieser Audit stellt einen erfolgreichen + <literal>execve</literal>-Aufruf dar, in welchem der Befehl + <literal>finger doug</literal> ausgeführt wurde. Das + Kürzel des Argumentes 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 (insbesondere den Datei-Modus, der genutzt + werden kann, um zu bestimmen, ob setuid auf die Applikation + angewendet wurde). Das Kürzel <literal>subject</literal> + 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 + <username>robert</username> wurde zum Benutzer + <username>root</username>, bevor er diesen Befehl + ausführte, aber er wird auditiert mit dem + ursprünglich authentifizierten Benutzer. Schließlich zeigt + das Kürzel <literal>return</literal> die erfolgreiche + Ausführung an und <literal>trailer</literal> schließt + den Datensatz ab.</para> + + <para><command>praudit</command> unterstützt auch + die Ausgabe im XML-Format (die sie über die Option + <option>-x</option> auswählen können).</para> + </sect2> + + <sect2> + <title>Audit-Pfade reduzieren</title> + + <para>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:</para> + + <screen>&prompt.root; <userinput>auditreduce -u trhodes /var/audit/AUDITFILE | praudit</userinput></screen> + + <para>Dies wird alle Audit-Datensätze des Benutzers + <username>trhodes</username> auswählen, die in der + Datei + <filename><replaceable>AUDITFILE</replaceable></filename> + gespeichert sind.</para> + </sect2> + + <sect2> + <title>Delegation von Rechten für Audit-Reviews</title> + + <para>Mitglieder der Gruppe <groupname>audit</groupname> haben + die Erlaubnis, Audit-Pfade in <filename>/var/audit</filename> + zu lesen; standardmässig ist diese Gruppe leer, daher + kann nur der Benutzer <username>root</username> die Audit-Pfade + lesen. Benutzer können der Gruppe + <groupname>audit</groupname> 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> + + <sect2> + <title>Aktive Überwachung mittles Audit-Pipes</title> + + <para>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:</para> + + <screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen> + + <para>In der Voreinstellung kann nur der Benutzer + <username>root</username> auf die + Audit-Pipe-Geräte-Knotenpunkte zugreifen. Um sie allen + Mitgliedern der Gruppe <groupname>audit</groupname> + zugänglich zu machen, fügen Sie eine + <literal>devfs</literal>-Regel in + <filename>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> + + <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-I/O auditiert wird, während + &man.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, + <command>praudit</command> an einem Audit-Pipe-Gerät + nur von Sitzungen anzuwenden (ohne feingranuliertes + I/O-Auditing), um dies zu vermeiden.</para> + </warning> + </sect2> + + <sect2> + <title>Rotation von Audit-Pfad-Dateien</title> + + <para>Audit-Pfade werden nur vom Kernel geschrieben und nur + vom Audit-Daemon <application>auditd</application> verwaltet. + Administratoren sollten nicht versuchen, &man.newsyslog.conf.5; + oder andere Werkzeuge zu benutzen, um Audit-Protokolldateien + direkt zu rotieren. Stattdessen sollte das + <command>audit</command> 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.</para> + + <screen>&prompt.root; <userinput>audit -n</userinput></screen> + + <warning> + <para>Falls der <application>auditd</application>-Daemon + gegenwärtig nicht läuft, wird dieser Befehl scheitern + und eine Fehlermeldung wird ausgegeben.</para> + </warning> + + <para>Das Hinzufügen der folgenden Zeile in + <filename>/etc/crontab</filename> wird die Log-Rotation alle + zwölf Stunden durch &man.cron.8; erzwingen:</para> + + <programlisting>0 */12 * * * root /usr/sbin/audit -n</programlisting> + + <para>Die Änderung wird wirksam, sobald Sie die neue + <filename>/etc/crontab</filename> gespeichert haben.</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 + &man.audit.control.5;. Dieser Vorgang ist im Abschnitt + Konfigurationsdateien dieses Kapitels beschrieben.</para> + </sect2> + + <sect2> + <title>Komprimierung von Audit-Pfaden</title> + + <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 + <filename>audit_warn</filename> 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 + <filename>audit_warn</filename>-Skript aufnehmen, um + Audit-Pfade beim Beenden zu komprimieren:</para> + + <programlisting># +# Compress audit trail files on close. +# +if [ "$1" = closefile ]; then + gzip -9 $2 +fi</programlisting> + + <para>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.</para> + </sect2> + </sect1> +</chapter> |