Viele Sicherheitsrisiken resultieren aus Fehlern in vertrauenswürdigen Programmen. Ein vertrauenswürdiges Programm läuft mit einer Berechtigung, die ein Angreifer gerne hätte. Das Programm kann dieses Vertrauen nicht rechtfertigen, wenn ein Fehler dem Angreifer erlaubt, sich diese Berechtigung zu verschaffen.
Novell® AppArmor ist eine Lösung für Anwendungssicherheit, die insbesondere konzipiert wurde, um verdächtige Programme auf die geringste Berechtigungsstufe einzuschränken. Mit AppArmor kann der Administrator den Bereich der Aktivitäten angeben, die das Programm ausführen darf, indem er ein Sicherheitsprofil für diese Anwendung entwickelt — d. h. eine Liste der Dateien, auf die das Programm zugreifen darf, und der Operationen, die das Programm ausführen darf.
Für die wirksame Immunisierung eines Computersystems muss die Anzahl der Programme minimiert werden, die Berechtigungen vermitteln. Dann müssen die Programme so gut wie möglich abgesichert werden. Mit Novell AppArmor brauchen Sie für die Programme, die in Ihrer Umgebung Angriffen ausgesetzt sind, nur Profile zu erstellen und verringern damit den Aufwand für die Immunisierung Ihres Computers erheblich. AppArmor-Profile erzwingen die Einhaltung von Richtlinien und stellen damit sicher, dass Programme ihre Aufgaben erfüllen und keine anderen Aktionen ausführen.
Administratoren müssen sich nur um die Anwendungen kümmern, die durch Angriffe gefährdet sind, und Profile für diese Anwendungen anlegen. Die Immunisierung eines Systems besteht im Wesentlichen aus dem Erstellen und Pflegen des AppArmor-Profilsatzes und der Überwachung aller Richtlinienverstöße oder Ausnahmen, die durch die Protokollfunktion von AppArmor aufgezeichnet werden.
Die Erstellung von AppArmor-Profilen zur Einschränkung einer Anwendung ist sehr bequem und einfach. AppArmor wird mit mehreren Werkzeugen geliefert, die Sie bei der Profilerstellung unterstützen. AppArmor verlangt keine Programmierung oder den Einsatz von Skripts. Als einzige Aufgabe muss der Administrator eine strenge Zugriffsrichtlinie und Ausführungsberechtigungen für jede Anwendung festlegen, die immunisiert werden muss.
Aktualisierungen oder Änderungen der Anwendungsprofile sind nur erforderlich, wenn sich die Softwarekonfiguration oder der gewünschte Aktionsumfang ändert. AppArmor bietet einfach zu handhabende Werkzeuge für Profilaktualisierungen oder -änderungen.
Benutzer bemerken AppArmor gar nicht. Es läuft „im Hintergrund“ und erfordert keinerlei Benutzereingriffe. Die Leistung wird durch AppArmor nicht merklich eingeschränkt. Wenn eine Aktivität der Anwendung nicht durch ein AppArmor-Profil abgedeckt ist oder durch AppArmor verhindert wird, muss der Administrator das Profil dieser Anwendung für die entsprechende Verhaltensweise anpassen.
Diese Anleitung umreißt die grundlegenden Aufgaben, die mit AppArmor ausgeführt werden müssen, um ein System wirksam zu schützen. Ausführlichere Informationen finden Sie im Novell AppArmor 2.0-Administrationshandbuch.
Benutzer, die eine GNOME- oder die KDE-Desktop-Auswahl installieren, können diesen Abschnitt überspringen, da Novell AppArmor standardmäßig als Teil dieser Optionen installiert wird.
Wenn keine dieser Desktop-Optionen installiert oder sogar eine vollständig textbasierte Umgebung geplant ist, führen Sie mithilfe des YaST-Paket-Managers die folgenden Schritte aus, um die erforderlichen Pakete zu installieren.
Melden Sie sich als root
an und starten Sie YaST.
Wählen Sie im YaST-Kontrollzentrum
+ .Verwenden Sie die Suchfunktion von YaST (Schlüsselwort „AppArmor“), um die folgenden Pakete zu installieren:
apparmor-parser
libapparmor
apparmor-docs
yast2-apparmor
apparmor-profiles
apparmor-utils
Wählen Sie alle diese Pakete für die Installation aus und wählen Sie dann
. YaST löst etwaige Abhängigkeiten auf und installiert alle Pakete automatisch.Nachdem YaST die Systemkonfiguration aktualisiert hat, wählen Sie
, um den Paket-Manager zu beenden.Nachdem Novell AppArmor installiert wurde, müssen Sie es explizit aktivieren, um sicherzustellen, dass es bei jedem Systemstart gestartet wird. Verwenden Sie für diese Aufgabe die YaST-Systemdienste (Runlevel):
Melden Sie sich als root
an und starten Sie YaST.
Starten Sie
+ .Wählen Sie in der Diensteliste apparmor
aus. Siehe Abbildung 4.3, „Aktivieren von Novell AppArmor mithilfe von YaST“.
Klicken Sie zur permanenten Aktivierung von AppArmor auf
.Klicken Sie zum Übernehmen der Einstellungen auf
.Mithilfe des YaST-Runlevel-Werkzeugs aktivieren Sie Dienste permanent – diese Einstellungen bleiben auch einen Neustart Ihres Systems in Kraft. Um AppArmor temporär – nur für die Dauer einer Sitzung – zu aktivieren, gehen Sie wie folgt vor:
Melden Sie sich als root
an und starten Sie YaST.
Starten Sie
+ .Setzen Sie den
auf , indem Sie auf + + klicken.Übernehmen Sie die Einstellungen mit
.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 4.4.3.1, „Wählen der Anwendungen, die ein Profil erhalten sollen“.
Erstellen Sie die erforderlichen Profile wie in Abschnitt 4.4.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 4.4.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 4.4.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.
CGI-Skripts in Perl, PHP-Seiten und komplexere Webanwendungen können durch einen Webbrowser aufgerufen 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 unconfined als root
aus.
Beispiel 4.1. Ausgabe von 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 über die Wahl der richtigen Anwendungen für ein Profil finden Sie im Kapitel Wählen von Programmen zur Immunisierung (Novell AppArmor 2.0-Administrationshandbuch). |
Novell AppArmor unter SUSE Linux 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 eine Gruppe von Anwendungen festlegen, die in /etc/apparmor/README.profiles
definiert sind.
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 Befehlszeilenwerkzeuge genutzt, die in der AppArmor-Suite zur Verfügung stehen. Beide Methoden arbeiten grundsätzlich auf dieselbe Weise.
Die Ausführung von unconfined (wie in Abschnitt 4.4.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 genprof programmname
ausführen.
Oder:
Führen Sie den
+ + aus und geben Sie den vollständigen Pfad der Anwendung an, 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. Geben Sie dazu S in genprof ein
Oder:
Klicken Sie auf
(Systemprotokoll auf AppArmor-Ereignisse prüfen) im und folgen Sie den Anweisungen des Assistenten, 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 Platzhalter.
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 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 über das Ändern des Modus für ein Profil finden Sie im Abschnitt Meldungs- oder Lernmodus (Kapitel 3, Erstellen von Novell AppArmor-Profilen, Novell AppArmor 2.0-Administrationshandbuch) und im Abschnitt Erzwingen-Modus (Kapitel 3, Erstellen von Novell AppArmor-Profilen, Novell AppArmor 2.0-Administrationshandbuch).
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. Suchen Sie die entsprechenden Protokolle in /var/log/messages
oder führen Sie dmesg aus.
Jeder Eintrag, der dem folgenden Beispiel gleicht, deutet darauf hin, dass AppArmor Ihre Anwendung zu stark einschränkt:
AppArmor: REJECTING w access to /var/run/nscd/socket (traceroute(2050) profile /usr/sbin/traceroute active /usr/sbin/traceroute)
Um das Profil anzupassen, führen Sie erneut den
aus wie oben beschrieben und lassen Sie ihn die Protokolleinträge für diese spezielle Anwendung analysieren. Bestimmen Sie die Zugriffsberechtigungen oder Einschränkungen, wenn YaST Sie dazu auffordert.Weitere Informationen | |
---|---|
Weitere Informationen über die Erstellung und Änderung von Profilen finden Sie im Kapitel Erstellen von Novell AppArmor-Profilen (Novell AppArmor 2.0 Administrationshandbuch) . |
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 ü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.
Melden Sie sich als root
an und starten Sie YaST. Wählen Sie anschließend + .
Wählen Sie im Bereich
die Option .Stellen Sie für jeden Eintragstyp (
(Knapp), und (Ausführlich)) 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. Wenn Sie unbekannte Ereignisse in die Ereignisberichte aufnehmen möchten, aktivieren Sie .Anmerkung | |
---|---|
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.Konfigurieren Sie Novell AppArmor-Berichte. Mithilfe von Berichten können Sie wichtige Novell AppArmor-Sicherheitsereignisse nachlesen, die in Protokolldateien aufgezeichnet wurden, ohne mühselig alle Meldungen durchsuchen zu müssen, die nur für das 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 (SIR).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 über das Konfigurieren der Ereignisbenachrichtigung in Novell AppArmor finden Sie im Abschnitt „Einrichten der Ereignisbenachrichtigung“ (Kapitel 4, Verwalten von Anwendungen mit Profil, Novell AppArmor 2.0-Administrationshandbuch). Weitere Informationen über die Berichtkonfiguration finden Sie im Abschnitt „Berichte“ (Kapitel 4, Verwalten von Anwendungen mit Profil, Novell AppArmor 2.0-Administrationshandbuch). |
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 über das Aktualisieren Ihrer Profile aus den Systemprotokollen finden Sie im Abschnitt „Aktualisieren von Profilen aus Syslog-Einträgen“ (Kapitel 3, Erstellen von Novell AppArmor-Profilen, Novell AppArmor 2.0-Administrationshandbuch). |