Inhaltsverzeichnis
Ein Novell® AppArmor-Profil repräsentiert Sicherheitsrichtlinien für eine einzelne Programminstanz oder einen Prozess. Es gilt für ein ausführbares Programm. Wenn aber ein Teil des Programms abweichende Zugriffsberechtigungen benötigt, kann das Programm den „Hat wechseln“, um einen anderen Sicherheitskontext zu verwenden, der sich vom Zugriff auf das Hauptprogramm unterscheidet. Dies wird als Hat oder Unterprofil bezeichnet.
ChangeHat ermöglicht Programmen, innerhalb eines Novell AppArmor-Profils von oder zu einem Hat zu wechseln. Es gibt Ihnen die Möglichkeit, Sicherheit in feineren Abstufungen als dem Prozess zu definieren.
Diese Funktion setzt voraus, dass „Changehat“ jeder Anwendung "bekannt" ist, d. h., die Anwendung wird so geändert, dass sie eine Anforderung an das Novell AppArmor-Modul sendet, zu beliebigen Zeitpunkten während der Anwendungsausführung die Sicherheitsdomäne zu wechseln.
Ein Profil kann eine beliebige Anzahl an Unterprofilen enthalten, aber es gibt nur zwei Ebenen: Ein Unterprofil kann keine weiteren Unterprofile besitzen. Ein Unterprofil wird als separates Profil geschrieben und erhält denselben Namen wie das übergeordnete Profil, gefolgt von einem ^
und dann dem Unterprofilnamen. Unterprofile müssen in derselben Datei gespeichert werden wie ihr übergeordnetes Profil.
Anmerkung | |
---|---|
Weitere Informationen finden Sie auf der Manualpage |
Novell AppArmor stellt ein mod-apparmor
-Modul für das Apache-Programm bereit. Das mod-apparmor
-Modul sorgt auf Ihrem SUSE Linux dafür, dass der Apache-Webserver „ChangeHat-fähig“ wird. Es wird installiert, wenn sich Apache auf Ihrem System befindet.
Wenn Apache ChangeHat-fähig ist, prüft es in der angegebenen Reihenfolge für jede empfangene URI-Anforderung, ob die folgenden benutzerdefinierten Novell AppArmor-Sicherheitsprofile vorhanden sind.
URI-spezifischer Hat (z. B. ^phpsysinfo-dev/templates/classic/images/bar_left.gif
)
DEFAULT_URI
HANDLING_UNTRUSTED_INPUT
Wenn auf Ihrem System das erforderliche Apache 2 vorhanden ist, wird das mod-apparmor
-Modul automatisch mit Novell AppArmor installiert und der Apache-Konfiguration hinzugefügt. Apache 1.3 wird nicht unterstützt.
Anmerkung | |
---|---|
Wenn Sie LoadModule change_hat_module modules/mod_change_hat.so |
Wie bei den meisten Novell AppArmor-Werkzeugen stehen Ihnen zwei Methoden zur Verwaltung von ChangeHat zur Verfügung: YaST oder die Befehlszeilenschnittstelle. ChangeHat-fähige Anwendungen lassen sich an der Befehlszeile viel flexibler verwalten, aber der Prozess ist auch komplizierter. Beide Methoden gestatten Ihnen, die Hats für Ihre Anwendung zu verwalten und sie mit Profileinträgen zu füllen.
Die folgenden Schritte zeigen Ihnen, wie einem Apache-Profil mithilfe von YaST Hats hinzugefügt werden. Im
werden Sie durch die Novell AppArmor-Profil-Dienstprogramme aufgefordert, neue Hats für einzelne URI-Anforderungen zu erstellen. Wenn Sie sich für die Erstellung eines neuen Hats entscheiden, können Sie individuelle Profile für jeden URI erstellen. Damit lassen sich sehr strenge Regeln für jede Anforderung festlegen.Wenn der verarbeitete URI keine wichtige Verarbeitung bzw. kein wesentliches Sicherheitsrisiko bedeutet, können Sie einfach
(Standard-Hat verwenden) wählen, um diesen URI im Standard-Hat zu verwenden, der das Standard-Sicherheitsprofil darstellt.
In der Demo erstellen wir einen neuen Hat für den URI phpsysinfo-dev
und seine darauf folgenden Zugriffe. Mithilfe der Dienstprogramme zur Profilerstellung legen wir fest, was diesem neuen Hat hinzugefügt wird. Der resultierende Hat wird zu einem Hochsicherheits-Container, der sämtliche Verarbeitung auf dem Server beinhaltet, die bei der Übergabe des phpsysinfo-dev
-URI an den Apache-Webserver stattfindet.
In dieser Demo erzeugen wir ein Profil für die Anwendung phpsysinfo (siehe http://phpsysinfo.sourceforge.net für weitere Informationen). Es wird angenommen, dass das phpsysinfo-dev-Paket unter /srv/www/htdocs/phpsysinfo-dev/
in einer sauberen (neuen) Installation von Novell AppArmor installiert wird.
Sobald phpsysinfo-dev installiert ist, können Sie dem Apache-Profil Hats hinzufügen. Starten Sie den
in der Novell AppArmor-Benutzeroberfläche.Geben Sie in httpd2-prefork ein.
(Neues Profil) den TextKlicken Sie auf
. Das Fenster des wird geöffnet.Starten Sie Apache neu, indem Sie rcapache2 restart in ein Terminalfenster eingeben.
Anmerkung | |
---|---|
Starten Sie jetzt jedes Programm neu, für das Sie gerade Profile erstellen. |
Öffnen Sie http://localhost/phpsysinfo-dev/
in einem Webbrowserfenster. Das Browserfenster sollte Netzwerkauslastung und Systeminformationen anzeigen.
Anmerkung | |
---|---|
Damit sichergestellt ist, dass der Server diese Anforderung verarbeitet und Sie keine Cache-Daten in Ihrem Browser sehen, sollten Sie die Seite aktualisieren. Klicken Sie dazu im Browser auf die Schaltfläche |
Klicken Sie auf
(Systemlog auf Einträge für Profile prüfen). Novell AppArmor startet das logprof-Werkzeug, das alle Informationen scannt, die im vorherigen Schritt erfasst wurden. Es beginnt, Ihnen Profilfragen zu stellen.
In unserer Demo bittet uns logprof um die Entscheidung zwischen phpsysinfo-dev
auf einen URI zugegriffen hat. Wählen Sie (Angeforderten Hat hinzufügen).
Klicken Sie auf
(Erlauben).Durch die Wahl von
(Angeforderten Hat hinzufügen) im vorherigen Schritt wird ein neuer Hat im Profil erstellt und festgelegt, dass folgende Fragen über die Aktionen des Skripts im neu erstellten Hat und nicht im Standard-Hat für diese Anwendung hinzugefügt werden.Im nächsten Fenster zeigt Novell AppArmor ein externes Programm an, das vom Skript ausgeführt wurde. Sie können festlegen, dass die Ausführung des Programms durch den phpsysinfo-dev-Hat (
(Erben) wählen) oder durch ein separates Profil ( wählen) eingeschränkt werden oder uneingeschränkt bzw. ohne Sicherheitsprofil ( (Uneingeschränkt) erfolgen soll. Nach Wahl der Option wird für das Programm ein neues Profil erstellt, sofern noch keines existiert.Anmerkung | |
---|---|
Die Option (Uneingeschränkt) kann eine erhebliche Sicherheitslücke verursachen und sollte mit Umsicht verwendet werden. |
Die weiteren Fragen fordern Sie zur Erstellung neuer Hats und zum Hinzufügen von Einträgen zu Ihrem Profil und dessen Hats auf. Das Hinzufügen von Einträgen zu Profilen wird detailliert im Abschnitt Abschnitt 3.3.1, „Hinzufügen eines Profils mit dem Assistenten“ (↑ Novell AppArmor 2.0-Administrationshandbuch ) beschrieben.
Klicken Sie nach der Beantwortung aller Profilfragen auf
(Beenden), um Ihre Änderungen zu speichern und den Assistenten zu beenden.Dies ist ein Beispiel für einen phpsyinfo-dev-Hat:
Beispiel 5.1. Beispiel für phpsysinfo-dev-Hat
^phpsysinfo { #include <program-chunks/base-files> /bin/df ix, /bin/bash ix, /dev/tty rw, /etc/SuSE-release r, /etc/fstab r, /etc/hosts r, /etc/mtab r, /proc/** r, /sbin/lspci ix, /srv/www/htdocs/sysinfo/** r, /sys/bus/pci/devices r, /sys/devices/** r, /usr/bin/who ix, /usr/share/pci.ids r, /var/log/apache2/{access,error}_log w, /var/run/utmp r, }
Anmerkung | |
---|---|
Das Profil |
Wenn Sie das Dialogfeld Abschnitt 3.3.3, „Bearbeiten eines Profils“ (↑ Novell AppArmor 2.0-Administrationshandbuch )) oder über (Anleitungen siehe unter Abschnitt 3.3.2, „Manuelles Hinzufügen eines Profils“ (↑ Novell AppArmor 2.0-Administrationshandbuch )) ein neues Profil hinzufügen, erhalten Sie die Option, Ihren Novell AppArmor-Profilen Hats (Unterprofile) hinzuzufügen.
verwenden (Anleitungen siehe unterSie können ein ChangeHat-Unterprofil über das Fenster
hinzufügen.Klicken Sie im Fenster
auf (Eintrag hinzufügen) und wählen Sie dann . Das Dialogfeld (Hat-Namen eingeben) wird geöffnet:Geben Sie den Namen des Hats ein, der dem Novell AppArmor-Profil hinzugefügt werden soll. Der Name ist der URI, der beim Zugriff die im Hat festgelegten Berechtigungen erhält.
Klicken Sie auf
(Hat erstellen). Sie kehren in das Fenster zurück.Nachdem Sie den neuen Hat hinzugefügt haben, klicken Sie auf
.Anmerkung | |
---|---|
Ein Beispiel für ein Novell AppArmor-Profil finden Sie unter Beispiel 5.1, „Beispiel für phpsysinfo-dev-Hat“ (↑ Novell AppArmor 2.0-Administrationshandbuch ). |