\# enforce /usr/bin/ethereal Setting /usr/bin/ethereal to enforce mode.Achtung. SUSE bezeichnet die in diesem Verzeichnis vorhandenen Profile als nicht ausreichend ausgereift. Die Profile wurden in vielen Fällen nicht auf die aktuelle Distribution angepasst. Pfade stimmen daher nicht. Wenn Sie diese Profile verwenden möchten, müssen Sie meist die Profile noch anpassen. Daher zeige ich Ihnen nun, wie Sie selbst für ein Programm ein Profil erzeugen können. Am einfachsten erfolgt das mit Yast. Ich werde in einem späteren Kapitel auch weitere Methoden vorstellen. Hier soll nun ein Profil für das Programm nmap erzeugt werden. Im weiteren werde ich Ihnen die Schritte vorstellen, damit Sie diese auch auf Ihrem System direkt nachvollziehen können. Hierzu muss zunächst das Programm installiert werden. Dies erfolgt ganz einfach mit yast -i nmap.
Nun Starten Sie Yast2 und rufen den Assistent zum Hinzufügen von Profilen auf (siehe Abb. 9.5).
In dem neuen Fenster geben Sie den Namen der zu überwachenden Anwendung mit ihrem kompletten Pfad an (siehe Abb. 9.6). Anschließend bestätigen Sie die Eingabe mit Create. Leider ist bei SUSE Linux 10.1 dieser Dialog noch nicht in die deutsche Sprache übersetzt worden. Nun müssen Sie den Befehl nmap benutzen. Rufen Sie zum Beispiel als Root den Befehl folgendermaßen auf:\# nmap -sS localhost \# nmap -sS -O -v some_other_hostEs ist sinnvoll möglichst alle Funktionen der Applikation zu nutzen. Yast2 wird anschließend ein Profil erzeugen, welches genau diese Funktionen erlaubt. Natürlich sollten Sie sicherstellen, dass der Befehl gerade jetzt nicht für einen Angriff genutzt werden kann. Wenn Sie den Befehl ausreichend getestet haben, betätigen Sie Scan system log for AppArmor events im Bild 9.7. Nun präsentiert Ihnen Yast2 auf den folgenden Dialogen die Dateien und Funktionen, die der getestete Befehl genutzt hat. Sie haben hier die Möglichkeit zu entscheiden, ob das Profil den Zugriff erlauben soll oder nicht. Sie müssen nun in jedem Dialog einzeln entweder Allow oder Deny auswählen. Damit die Anwendung später erfolgreich funktioniert, ist ein Erlauben erforderlich (Abb. 9.8).
|
Wenn Sie alle Dialoge beantwortet haben, beginnt der Assistent wieder von neuen
und bietet Ihnen an, die Protokolle zu analysieren. Sie können nun den
Assistenten beenden. Der Assistent hat nun ein Profil für den Befehl Nmap
erzeugt. Dieses Profil wurde in dem Verzeichnis /etc/apparmor.d unter
dem Namen usr.bin.nmap
gespeichert und auch direkt geladen. Wenn Sie nun
Nmap aufrufen, wird der Prozess von AppArmor überwacht. Im folgenden sehen Sie
das von dem Assistenten erzeugte Profil:
1 # vim:syntax=apparmor
2 # Last Modified: Mon Jun 26 12:10:10 2006
3 #include <tunables/global>
4
5 /usr/bin/nmap {
6 #include <abstractions/base>
7 #include <abstractions/consoles>
8 #include <abstractions/nameservice>
9
10 capability net_raw,
11
12 /usr/bin/nmap r,
13 /usr/share/nmap/nmap-mac-prefixes r,
14 /usr/share/nmap/nmap-os-fingerprints r,
15 /usr/share/nmap/nmap-services r,
16 }
Die Zeilennummern zu Beginn jeder Zeile wurde von mir für die Lesbarkeit
hinzugefügt. Die Zeilen 1-2 sind lediglich Kommentare und enthalten nur für den
Vim einen Syntax-Highlighting Hinweis. Leider ist in der Version SUSE Linux 10.1
keine Syntax-Beschreibung für AppArmor enthalten, obwohl die Manpage
apparmor.vim(5) vorhanden ist. Wahrscheinlich wird ein Update dieses
Problem beheben. Ab Zeile 3 beginnt das Profil. Hier wird über eine
Include-Direktive der Inhalt der Datei tunables/global zu diesem Profil
geladen. Alle Pfade in dieser Datei sind relativ zum Verzeichnis
/etc/apparmor.d. Die geladene Datei ist daher
/etc/apparmor.d/tunables/global. Anschließend beginnt das Profil für das
Kommando /usr/bin/nmap. Zunächst werden hier einige Abstraktionen
geladen. Wenn Sie wissen möchte, was sich in diesen Abstraktionen befindet,
können Sie die entsprechenden Dateien in einem Editor öffnen.
Nun wird die Capability CAP_NET_RAW zur Verfügung gestellt. Insgesamt gibt es in Abhängigkeit des Kernels bis zu 31 verschiedene Capabilities, die in der Manpage capabilities(7) erläutert werden. Die weiteren Zeilen 12-15 erlauben dem Nmap-Prozess auf die verschiedenen Dateien zuzugreifen.
Wenn Sie nun den Nmap-Befehl benutzen, wird er immer von AppArmor überwacht. Falls eine bestimmte Funktion nicht zur Verfügung steht, sollten Sie die AppArmor-Protokolle analysieren. Falls Sie dort Meldungen finden, die auf einen Fehler im Profil hinweisen, können Sie den gesamten Vorgang wiederholen. Wenn Sie vorher das bereits erzeugte Profil nicht löschen, erweitert der Assistent das Profil nur um die fehlenden Punkte.
Ralf Spenneberg 2007-11-13