Bereiten Sie Ihr System für einen erfolgreichen Einsatz von Novell AppArmor vor, indem Sie die folgenden Punkte genau beachten:
Ermitteln Sie die Anwendungen, die ein Profil brauchen. Weitere Informationen dazu finden Sie unter Abschnitt 37.3.1, „Wählen der Anwendungen, die ein Profil erhalten sollen“.
Erstellen Sie die erforderlichen Profile wie in Abschnitt 37.3.2, „Erstellen und Ändern von Profilen“ umrissen. Prüfen Sie die Ergebnisse und passen Sie die Profile bei Bedarf an.
Bleiben Sie auf dem Laufenden über die Vorgänge auf Ihrem System, indem Sie AppArmor-Berichte erzeugen und auf Sicherheitsereignisse reagieren. Weitere Informationen finden Sie unter Abschnitt 37.3.3, „Konfigurieren von Novell AppArmor-Ereignisbenachrichtigung und -Berichten“.
Aktualisieren Sie Ihre Profile, wenn sich Ihre Umgebung ändert. Andernfalls müssen Sie auf Sicherheitsereignisse reagieren, die das AppArmor-Berichtwerkzeug protokolliert. Weitere Informationen finden Sie unter Abschnitt 37.3.4, „Aktualisieren Ihrer Profile“.
Sie müssen nur die Programme schützen, die in Ihrer speziellen Konfiguration Angriffen ausgesetzt sind. Verwenden Sie also nur Profile für die Anwendungen, die Sie wirklich ausführen. Ermitteln Sie anhand der folgenden Liste die wahrscheinlichsten Kandidaten:
Programme (Server und Clients) mit offenen Netzwerkports. Benutzer-Clients, wie Mail-Clients und Webbrowser, haben bestimmte Privilegien. Diese Programme werden mit der Berechtigung ausgeführt, in das Home-Verzeichnis des Benutzers zu schreiben, und sie verarbeiten Eingaben von potenziell feindseligen entfernten Quellen, wie feindseligen Websites und per E-Mail gesendeten bösartigen Code.
Programme, die sich durch einen Webbrowser aufrufen lassen, einschließlich CGI-Skripten in Perl, PHP-Seiten und komplexere Webanwendungen.
Programme, die der cron-Daemon regelmäßig ausführt, lesen Eingaben aus einer Vielzahl von Quellen.
Um die Prozesse zu ermitteln, die derzeit mit offenen Netzwerkports laufen und eventuell ein Profil zur Beschränkung brauchen, führen Sie den Befehl aa-unconfined als root
aus.
Beispiel 37.1. Ausgabe von aa-unconfined
19848 /usr/sbin/cupsd not confined 19887 /usr/sbin/sshd not confined 19947 /usr/lib/postfix/master not confined 29205 /usr/sbin/sshd confined by '/usr/sbin/sshd (enforce)'
In obigem Beispiel brauchen die Prozesse mit der Beschriftung not confined
eventuell ein benutzerdefiniertes Profil zur Einschränkung. Die Prozesse mit der Angabe confined by
sind bereits durch AppArmor geschützt.
Weiterführende Informationen | |
---|---|
Weitere Informationen zur Auswahl der richtigen Anwendungen für die Profilerstellung finden Sie unter Section “Determining Programs to Immunize” (Chapter 1, Immunizing Programs, ↑Novell AppArmor Administration Guide). |
Novell AppArmor auf openSUSE wird mit einem vorkonfigurierten Satz von Profilen für die wichtigsten Anwendungen geliefert. Zusätzlich können Sie mit AppArmor Ihre eigenen Profile für jede beliebige Anwendung erstellen.
Es gibt zwei verschiedene Möglichkeiten, Profile zu verwalten. Die eine verwendet das grafische Frontend der YaST Novell AppArmor-Module und die andere nutzt die Befehlszeilen-Werkzeuge, die in der AppArmor-Suite zur Verfügung stehen. Beide Methoden arbeiten grundsätzlich auf dieselbe Weise.
Die Ausführung von aa-unconfined (wie in Abschnitt 37.3.1, „Wählen der Anwendungen, die ein Profil erhalten sollen“ beschrieben) identifiziert eine Liste von Anwendungen, die eventuell ein Profil benötigen, um in einem sicheren Modus abzulaufen.
Führen Sie für jede Anwendung die folgenden Schritte aus, um ein Profil zu erstellen:
Melden Sie sich als root
an und lassen Sie AppArmor das Profil der Anwendung grob umreißen, indem Sie aa-genprof Programmname
ausführen.
oder
Umreißen Sie das grundlegende Profil, indem Sie
+ + ausführen und den vollständigen Pfad der Anwendung angeben, für die ein Profil erstellt werden soll.Ein grundlegendes Profil wird umrissen und AppArmor wird in den Lernmodus gebracht, d. h., es protokolliert jede Aktivität des ausgeführten Programms, schränkt es aber noch nicht ein.
Führen Sie die vollständige Palette der Anwendungsaktionen aus, damit AppArmor ein sehr genaues Bild der Aktivitäten ermittelt.
Lassen Sie AppArmor die Protokolldateien analysieren, die in Schritt 2 generiert wurden, indem Sie S in aa-genprof eingeben.
oder
Analysieren Sie die Protokolle, indem Sie im
auf klicken und den Anweisungen des Assistenten folgen, bis das Profil fertig gestellt ist.AppArmor prüft die Protokolle, die während der Ausführung der Anwendung aufgezeichnet wurden, und fordert Sie auf, für jedes protokollierte Ereignis die Zugriffsberechtigungen festzulegen. Legen Sie die Zugriffsberechtigungen für jede Datei fest oder verwenden Sie Platzhalterzeichen.
Abhängig von der Komplexität Ihrer Anwendung müssen Schritt 2 und Schritt 3 eventuell wiederholt werden. Begrenzen Sie die Anwendung, führen Sie sie unter diesen neuen Bedingungen aus und verarbeiten Sie sämtliche neuen Protokollereignisse. Um die ganzen Möglichkeiten einer Anwendung richtig einzugrenzen, müssen Sie diese Vorgehensweise möglicherweise oft wiederholen.
Sobald alle Berechtigungen festgelegt sind, wird Ihr Profil in den Erzwingen-Modus gesetzt. Das Profil wird angewendet und AppArmor schränkt die Anwendung gemäß dem soeben erstellten Profil ein.
Wenn aa-genprof für eine Anwendung gestartet wurde, die über ein vorhandenes Profil im Meldungsmodus verfügte, bleibt dieses Profil beim Verlassen dieses Lernzyklus im Lernmodus. Weitere Informationen zum Ändern des Modus eines Profils finden Sie unter Section “aa-complain—Entering Complain or Learning Mode” (Chapter 5, Building Profiles from the Command Line, ↑Novell AppArmor Administration Guide) und Section “aa-enforce—Entering Enforce Mode” (Chapter 5, Building Profiles from the Command Line, ↑Novell AppArmor Administration Guide).
Testen Sie Ihre Profileinstellungen, indem Sie jede benötigte Aufgabe mit der soeben eingeschränkten Anwendung ausführen. Normalerweise funktioniert das eingeschränkte Programm reibungslos und die AppArmor-Aktivitäten verlaufen unbemerkt. Wenn Sie jedoch in Ihrer Anwendung ein gewisses Fehlverhalten erkennen, prüfen Sie anhand der Systemprotokolle, ob AppArmor Ihre Anwendung zu stark einschränkt. Je nachdem, welcher Protokollierungsmechanismus in Ihrem System eingesetzt wird, müssen Sie an mehreren Stellen nach AppArmor-Protokolleinträgen suchen:
/var/log/audit/audit.log
Wenn das Paket audit
installiert ist und auditd ausgeführt wird, werden AppArmor-Ereignisse wie folgt protokolliert:
type=APPARMOR_DENIED msg=audit(1210347212.123:18): operation="inode_permission" requested_mask="::w" denied_mask="::w" fsuid=1000 name="/tmp/.X11-unix/X0" pid=9160 profile="/usr/bin/ksmserver
/var/log/messages
Wird auditd nicht verwendet, werden die AppArmor-Ereignisse im Standardsystemprotokoll unter /var/log/messages
protokolliert. Ein Beispieleintrag würde wie folgt aussehen:
May 9 17:39:56 neovirt klogd: type=1503 audit(1210347596.146:23): operation="inode_permission" requested_mask="::w" denied_mask="::w" fsuid=1000 name="/tmp/.X11-unix/X0" pid=9347 profile="/usr/bin/ksmserver"
dmesg
Wird auditd nicht ausgeführt, können AppArmor-Ereignisse auch mit dem Befehl dmesg überprüft werden:
type=1503 audit(1210347596.146:23): operation="inode_permission" requested_mask="::w" denied_mask="::w" fsuid=1000 name="/tmp/.X11-unix/X0" pid=9347 profile="/usr/bin/ksmserver"
Analysieren Sie die Protokollmeldungen für diese Anwendung erneut, wie in Schritt 3 beschrieben, um das Profil anzupassen. Bestimmen Sie die Zugriffsberechtigungen oder Einschränkungen, wenn Sie dazu aufgefordert werden.
Weiterführende Informationen | |
---|---|
Weitere Informationen zum Erstellen und Ändern von Profilen finden Sie in Chapter Profile Components and Syntax (↑Novell AppArmor Administration Guide), Chapter Building and Managing Profiles with YaST (↑Novell AppArmor Administration Guide) und Chapter Building Profiles from the Command Line (↑Novell AppArmor Administration Guide). |
Richten Sie eine Ereignisbenachrichtigung in Novell AppArmor ein, damit Sie Sicherheitsereignisse überprüfen können. Ereignisbenachrichtigung ist eine Novell AppArmor-Funktion, die einen angegebenen Email-Empfänger benachrichtigt, wenn im System eine Novell AppArmor-Aktivität unter der gewählten Sicherheitsebene auftritt. Diese Funktion steht derzeit über die YaST-Schnittstelle zur Verfügung.
Zum Einrichten der Ereignisbenachrichtigung in YaST gehen Sie wie folgt vor:
Stellen Sie sicher, dass ein Mailserver auf Ihrem System ausgeführt wird, der die Ereignismitteilungen liefert.
Starten Sie YaST. Wählen Sie dann
+ aus.Wählen Sie unter
die Option aus.Stellen Sie für jeden Eintragstyp (
, und ) eine Berichthäufigkeit ein, geben Sie die E-Mail-Adresse ein, an welche die Berichte gesendet werden, und legen Sie den Schweregrad der aufzuzeichnenden Ereignisse fest. Zur Aufnahme von unbekannten Ereignissen in die Ereignisberichte aktivieren Sie .Auswahl der zu protokollierenden Ereignisse | |
---|---|
Wenn Sie nicht mit der Ereigniskategorisierung von AppArmor vertraut sind, lassen Sie sich über alle Ereignisse in allen Sicherheitsstufen benachrichtigen. |
Schließen Sie dieses Dialogfeld mit
+ , um Ihre Einstellungen anzuwenden.Mithilfe von Novell AppArmor-Berichten können Sie wichtige Novell AppArmor-Sicherheitsereignisse nachlesen, die in Protokolldateien aufgezeichnet wurden, ohne mühselig alle Meldungen zu durchsuchen, die nur für das aa-logprof-Werkzeug nützlich sind. Sie können die Größe des Berichts reduzieren, indem Sie nach Datumsbereich oder Programmname filtern.
Gehen Sie zur Konfiguration der AppArmor-Berichte wie folgt vor:
Starten Sie YaST. Wählen Sie
+ .Wählen Sie den Berichttyp, den Sie prüfen oder konfigurieren möchten, aus
, und .Bearbeiten Sie die Häufigkeit der Berichtgenerierung, E-Mail-Adresse, Exportformat und Speicherort der Berichte, indem Sie
wählen und die erforderlichen Daten angeben.Um einen Bericht des ausgewählten Typs zu generieren, klicken Sie auf
.Blättern Sie durch die archivierten Berichte eines bestimmten Typs, indem Sie
auswählen und den gewünschten Berichttyp angeben.oder
Löschen Sie nicht mehr benötigte Berichte oder fügen Sie neue Berichte hinzu.
Weiterführende Informationen | |
---|---|
Weitere Informationen zum Konfigurieren der Ereignisbenachrichtigung in Novell AppArmor finden Sie in Section “Configuring Security Event Notification” (Chapter 7, Managing Profiled Applications, ↑Novell AppArmor Administration Guide). Weitere Informationen zur Berichtkonfiguration finden Sie in Section “Configuring Reports” (Chapter 7, Managing Profiled Applications, ↑Novell AppArmor Administration Guide). |
Software- und Systemkonfigurationen ändern sich im Lauf der Zeit. Daher kann Ihre Profileinstellung für AppArmor gelegentliche Anpassungen erfordern. AppArmor prüft Ihr Systemprotokoll auf Verletzungen der Richtlinien oder andere AppArmor-Ereignisse und ermöglicht es Ihnen, Ihren Profilsatz entsprechend anzupassen. Jedes Anwendungsverhalten, das außerhalb einer Profildefinition liegt, kann auch über den
behandelt werden.Gehen Sie wie folgt vor, um Ihren Profilsatz zu aktualisieren:
Starten Sie YaST.
Starten Sie in
+Passen Sie Zugriffs- oder Ausführungsberechtigungen für jede protokollierte Ressource oder jedes protokollierte ausführbare Programm an, wenn Sie dazu aufgefordert werden.
Beenden Sie YaST, nachdem Sie alle Fragen beantwortet haben. Ihre Änderungen werden auf die jeweiligen Profile angewendet.
Weiterführende Informationen | |
---|---|
Weitere Informationen zur Aktualisierung Ihrer Profile über die Systemprotokolle finden Sie in Section “Updating Profiles from Log Entries” (Chapter 4, Building and Managing Profiles with YaST, ↑Novell AppArmor Administration Guide). |