Bereiten Sie einen erfolgreichen Einsatz von Novell AppArmor auf Ihrem System vor, indem Sie die folgenden Punkte genau beachten:
Ermitteln Sie die Anwendungen, die ein Profil brauchen. Weitere Informationen dazu finden Sie unter Abschnitt 49.3.1, „Wählen der Anwendungen, die ein Profil erhalten sollen“.
Erstellen Sie die erforderlichen Profile wie in Abschnitt 49.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. Informationen finden Sie in Abschnitt 49.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. Informationen finden Sie in Abschnitt 49.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) haben offene Netzwerkports und Netzwerkagenten sind Serverprogramme, die auf diese Netzwerkports reagieren. Benutzerclients, wie Mail-Clients und Webbrowser, haben ebenfalls offene Netzwerkports und vermitteln Berechtigungen. Bei jedem Angriff auf den Webbrowser oder E-Mail-Client eines Benutzers kann der Angreifer private Daten des Benutzers stehlen. Darüber hinaus kann der Angreifer den durch den Angriff erhaltenen Zugriff nutzen, um weitere Berechtigungen im System zu erhalten.
CGI-Skripts in Perl, PHP-Seiten und komplexere Webanwendungen können durch einen Webbrowser gestartet werden.
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 49.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.
![]() | Weitere Informationen |
---|---|
Weitere Informationen zur Auswahl der richtigen Anwendungen für die Profilerstellung finden Sie unter Kapitel Auswählen von Programmen, die immunisiert werden sollen (↑Novell AppArmor 2.0 Administration Guide). |
Novell AppArmor unter SUSE Linux Enterprise wird mit einem vorkonfigurierten Satz an 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 besteht in der Verwendung des grafischen Frontend der YaST Novell AppArmor-Module, bei der anderen werden die Kommandozeilenwerkzeuge genutzt, 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 49.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 ein grundlegendes Profil, indem Sie den
+ + 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 (Systemprotokoll auf AppArmor-Ereignisse prüfen) 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.
Sobald alle Berechtigungen festgelegt sind, wird Ihr Profil in den Erzwingen-Modus gesetzt. Das Profil wird angewendet und AppArmor beschränkt die Anwendung entsprechend dem soeben erstellten Profil.
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 Abschnitt „aa-complain—Eingabe des Meldungs- oder Lernmodus“ (Kapitel 3, Erstellen von Novell AppArmor-Profilen, ↑Novell AppArmor 2.0 Administration Guide) und Abschnitt „aa-enforce—Eingeben des Erzwingen-Modus“ (Kapitel 3, Erstellen von Novell AppArmor-Profilen, ↑Novell AppArmor 2.0 Administration Guide).
Testen Sie Ihre Profileinstellungen, indem Sie jede benötigte Aufgabe mit der soeben eingeschränkten Anwendung ausführen. Normalerweise läuft das eingeschränkte Programm reibungslos und Sie bemerken überhaupt keine AppArmor-Aktivitäten. 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.log
Wenn das Paket audit
installiert ist und auditd ausgeführt wird, werden AppArmor-Ereignisse wie folgt protokolliert:
type=APPARMOR msg=audit(1140325305.502:1407): REJECTING w access to /usr/lib/firefox/update.test (firefox-bin(9469) profile /usr/lib/firefox/firefox-bin active /usr/lib/firefox/firefox-bin)
/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:
Feb 22 18:29:14 dhcp-81 klogd: audit(1140661749.146:3): REJECTING w access to /dev/console (mdnsd(3239) profile /usr/sbin/mdnsd active /usr/sbin/mdnsd)
dmesg
Wird auditd nicht ausgeführt, können AppArmor-Ereignisse auch mit dem Befehl dmesg überprüft werden:
audit(1140661749.146:3): REJECTING w access to /dev/console (mdnsd(3239) profile /usr/sbin/mdnsd active /usr/sbin/mdnsd)
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.
![]() | Weitere Informationen |
---|---|
Weitere Informationen zum Erstellen und Ändern von Profilen finden Sie in Kapitel Erstellen von Novell AppArmor-Profilen (↑Novell AppArmor 2.0 Administration Guide). |
Richten Sie Ereignisbenachrichtigung in Novell AppArmor ein, damit Sie Sicherheitsereignisse überprüfen können. Ereignisbenachrichtigung ist eine Novell AppArmor-Funktion, die einen angegebenen E-Mail-Empfänger benachrichtigt, wenn im System eine Novell AppArmor-Aktivität unter der gewählten Sicherheitsebene auftritt. Diese Funktion steht derzeit in der 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.
Melden Sie sich als root
an und starten Sie YaST. Wählen Sie anschließend + .
Wählen Sie unter
die Option .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 .![]() | Auswählen zu protokollierender 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:
Melden Sie sich als root
an und 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.
![]() | Weitere Informationen |
---|---|
Weitere Informationen zur Konfiguration der Ereignisbenachrichtigung in Novell AppArmor finden Sie unter Abschnitt „Einrichten der Ereignisbenachrichtigung“ (Kapitel 4, Verwalten von Anwendungen mit Profilen, ↑Novell AppArmor 2.0 Administration Guide). Weitere Informationen zur Berichtkonfiguration finden Sie in Abschnitt „Berichte“ (Kapitel 4, Verwalten von Anwendungen mit Profilen, ↑Novell AppArmor 2.0 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 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:
Melden Sie sich als root
an und starten Sie YaST.
Starten Sie den
+ .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.
![]() | Weitere Informationen |
---|---|
Weitere Informationen zur Aktualisierung Ihrer Profile über die Systemprotokolle finden Sie in Abschnitt „Updating Profiles from Log Entries“ (Kapitel 3, Erstellen von Novell AppArmor-Profilen, ↑Novell AppArmor 2.0 Administration Guide). |