1841893

Apparmor - So machen Sie Linux bombensicher

22.10.2013 | 12:09 Uhr |

Apparmor ergänzt die bereits vorhandenen Sicherheitsroutinen von Linux, indem den Zugriff von speziellen Programmen auf Wunsch begrenzt. Wir zeigen, wie Sie es einsetzen.

Zugriffsrechte unter Linux regeln, wer der Eigentümer einer Datei ist und welche Benutzer oder Gruppen auf den Inhalt zugreifen dürfen. Wenn aber Anwendungen auf Systembereiche zugreifen, die für die Erledigung der Aufgabe gar nicht notwendig wären, bleibt das unkontrolliert. Diesem Problem begegnen die Hersteller kommerzieller Betriebssysteme immer mehr dadurch, dass sie die Installation neuer Programme nur noch durch offizielle App-Stores erlauben. Und damit eine Software auch ausgeführt werden kann, muss der Entwickler den Code digital signiert haben. Für ein Betriebssystem wie Linux, das per se quelloffen ist, entfallen solche zentralisierten Ansätze. Anwender mit besonders hohem Sicherheitsbedürfnis möchten aber sicher sein, dass Programme nicht hinter ihrem Rücken Teile des Systems ausspionieren. Das Framework Apparmor kann hier die Lösung sein.

Der zusätzliche Zugriffsschutz

Apparmor arbeitet nach dem Prinzip des „Mandatory Access Control“. Anders als bei den im Alltag so geläufigen Sicherheitskonzepten wird der Zugriff auf ein Objekt nicht ausschließlich auf Basis des Akteurs (Benutzer oder auch Prozess) definiert, sondern auch aufgrund zusätzlicher Regeln. Das Objekt kann eine Datei, ein Verzeichnis oder auch ein Gerät sein, das am System angeschlossen ist. Da sich diese zusätzlichen Regeln sehr fein definieren lassen, erhöht sich die Sicherheit, aber auch der Komplexitätsgrad. Deswegen ist die Einrichtung und Nutzung von Apparmor sicherlich nicht für jedes System und nur für fortgeschrittene Linux- Nutzer geeignet.

Das klassische Paradebeispiel für ein Programm, bei der der Einsatz von Apparmor für mehr Sicherheit sorgt, ist der Internet-Browser. Dadurch, dass Sie sich mit dem Browser im öffentlichen Netzwerk des Internets bewegen, öffnen Sie das System auch nach außen. Deswegen ist es ratsam, dem Browser etwa nur Zugriff auf bestimmte Orte oder Prozesse des Systems zu geben, damit es nicht zu unliebsamen Überraschungen kommt.

Perfekter Schutz für Ihr Linux

So installieren Sie Apparmor

Statusabfrage: Nach der Eingabe dieses Kommandos meldet Ihnen Apparmor, wie viele Profile geladen werden und ob die Überwachung läuft.
Vergrößern Statusabfrage: Nach der Eingabe dieses Kommandos meldet Ihnen Apparmor, wie viele Profile geladen werden und ob die Überwachung läuft.

Apparmor gehört zu den Programmen, die von Ubuntu standardmäßig installiert werden. Sie können die Anwendung aber auch jederzeit nachträglich installieren. Dazu nutzen Sie entweder das Software-Center oder das Terminal mit dem Befehl:

sudo apt-get install apparmor

Empfehlenswert und Voraussetzung für einige der nachfolgend genannten Befehle ist auch die zusätzliche Einrichtung des Pakets apparmor-utils. Die Konfiguration des Programms erfolgt ausschließlich auf der Ebene der Kommandozeile und in Form von Einstellungsdateien. Um Veränderungen daran vorzunehmen, sind zwingend root-Rechte Voraussetzung.

Bei den Experimenten mit Apparmor müssen Sie einen Grundsatz im Hinterkopf behalten: Existiert zu einem Programm ein Apparmor-Profil, dann ist der Anwendung nur das erlaubt, was auch im Profil als solches erlaubt ist. Alle anderen Zugriffe auf das System sind verboten. Wenn eine Software also nicht mehr wie gewohnt arbeitet, sollten Sie unbedingt kontrollieren, ob es ein Profil gibt und was darin enthalten ist.

Status von Apparmor abfragen

Um zu überprüfen, ob Apparmor auf Ihrem System überhaupt läuft und welche Prozesse von der Software bereits überwacht werden, öffnen Sie ein Terminal und geben dort sudo aa-status ein. Als Alternative hätten Sie auch den Befehl apparmor_status eintragen können. Sie erhalten damit eine Ausgabe in dieser Form zurück:

apparmor module is loaded. 22 profiles are loaded. 22 profiles are in enforce mode./ sbin/dhclient<Auflistung von Programmen>/usr/bin/evince 0 profiles are in complain mode. 5 processes have profiles defined. 5 processes are in enforce mode. 0 processes are in complain mode. 0 processes are unconfined but have a profile defined.

Die Zusammenfassung am Ende verrät es: Apparmor kennt drei verschiedene Modi, die beim Ablaufen eines Prozesses eine Rolle spielen können.

Datenschutz unter Linux durch Verschlüsselung

Die Modi von Apparmor

Im Verzeichnis der Software finden Sie einen Ordner „Abstractions“. Er enthält eine Reihe von instruktiven Vorlagen, die Sie in eigene Profile einbinden können.
Vergrößern Im Verzeichnis der Software finden Sie einen Ordner „Abstractions“. Er enthält eine Reihe von instruktiven Vorlagen, die Sie in eigene Profile einbinden können.

Auf einem stark abgesicherten System existiert im Idealfall für jede sicherheitskritische Anwendung genau ein Apparmor-Profil. In der Profildatei ist definiert, welche Aktionen das Programm durchführen darf und welche Ressourcen ihr dabei zur Verfügung stehen. Jedes Profil kann mit einem von drei Modi gekennzeichnet sein. Der Enforce-Modus, der auch unter Ubuntu voreingestellt ist, unterbindet alle Aktionen, die gegen die definierten Regeln verstoßen. Im Complain-Modus darf eine Anwendung auch eine an sich verbotene Aktion durchführen. Diese wird allerdings protokolliert. Complain ist die ideale Betriebsart, um ein Profil zu testen, bevor Sie es in den Modus Enforce schalten.

Mit Hilfe des Protokolls lässt sich überprüfen, ob es zu Störungen oder Problemen käme. Der Audit-Modus dient der Protokollierung von Regelverstößen und Regelanwendungen. Die Profile, die von AppArmor genutzt werden, liegen im Verzeichnis „/etc/ apparmor.d/“. Der Dateiname entspricht dabei dem Namen und dem Verzeichnis der ausführbaren Datei. Um ein Profil in den jeweiligen Zustand zu setzen, nutzen Sie die Syntax sudo aa- < M o d u s > <Pfad zum Profil>, also etwa:

sudo aa-audit /etc/apparmor.d/usr. sbin.avahi-daemon

Das Beispiel versetzt das Profil für den Avahi-Daemon (Netzwerk-Dienst) in den Audit-Modus.

Profile ansehen und bearbeiten

Include-Anweisungen: Durch die Einbindung der Abstractions sparen Sie sich viel Tipparbeit in einem Profil, das dadurch auch übersichtlicher wird.
Vergrößern Include-Anweisungen: Durch die Einbindung der Abstractions sparen Sie sich viel Tipparbeit in einem Profil, das dadurch auch übersichtlicher wird.

Aus naheliegenden Gründen stehen Programme im Fokus, die eine Verbindung mit dem Netzwerk (Internet) haben, aber von keinem Profil im Zugang beschränkt sind. Um sich alle aktiven Prozesse anzusehen, die auf das Netzwerk zugreifen, aber noch nicht geschützt sind, geben Sie auf der Konsole

sudo aa-unconfined

ein. Die Liste zeigt Ihnen auch gleich den Pfad zur ausführbaren Datei an, so dass Sie es beim Aufstellen einer Anweisung leichter haben.

Am einfachsten ist die Anlage eines neuen Profils, wenn Sie als Basis eine bereits bestehende Datei weiterverwenden. Starten Sie mit root-Rechten Ihren Lieblings-Texteditor, und öffnen Sie einen der Einträge unter „/etc/ apparmor.d“. Auf den ersten Blick erscheint der Inhalt eines solchen Profils komplex und verwirrend. Nach einem optionalen Spruch, den der Autor des Profiles hinterlassen kann, wird generell mit #include auf den Ordner „/etc/ apparmor.d/tunables/global“ verwiesen. In diesem Ordner ist eine Reihe von Variablen definiert. Das spart viel Arbeit, weil Sie andernfalls Apparmor gegenüber erst einmal definieren müssten, was Sie denn unter dem Benutzerverzeichnis „Home“ verstehen.

Danach folgt der Pfad zum Prozess, der beschränkt werden soll. Die eigentlichen Anweisungen stehen in geschweiften Klammern. Jede Zeile darin endet mit einem Komma, es sei denn, es handelt sich um einen Kommentar oder eine include-Anweisung. Auch das ist ein wichtiges Instrument, weil Sie sich dabei schon bestimmter Anweisungen und Einschränkungen bedienen dürfen.

In der Datei selbst folgen danach Programmaufrufe und Auflistungen von Ordnern. Dahinter sind Kürzel notiert, die das Zugriffsrecht definieren:

/etc/passwd r, /etc/group/ rw,

In diesem Beispiel hat die Anwendung lesenden Zugriff auf das Verzeichnis „passwd” sowie Lese- und Schreibzugriff auf „group“. Neben den Ihnen aus dem Dateimanangement bekannten Kürzeln kennen die Profile noch einige weitere Optionen (siehe Kasten). Bei der Angabe von Ordnern lassen sich auch Unterordner einschließen oder Dateien mit einer bestimmten Endung einbeziehen:

• eine bestimmte Datei im Ordner /ordner/datei ,
• alle Unterordner /ordner/*/ ,
• alle Dateien in einem Ordner /ordner/* ,
• alle Dateien mit bestimmter Endung /ordner/*.pdf,

Auch der Datenverkehr im Netzwerk lässt sich sehr genau regeln oder auch generell unterbinden:

• verbietet jeglichen TCP-Netzverkehr deny network tcp ,
• erlaubt jeglichen Netzwerkverkehr network ,
• erlaubt Netzwerkzugriff über TCP nach dem IPv4 Protokoll network inet stream ,

Auch zu diesem Punkt finden Sie auf den Projektseiten im Internet zusätzliche Informationen und Parameter.

Windows-Schutz unter Linux aushebeln

Der Weg zum eigenen Profil

Neues Profil für eine Anwendung: Lassen Sie Apparmor am besten „zuhören“, während Sie mit dem Programm arbeiten. Dadurch wird die spätere Konfiguration deutlich einfacher.
Vergrößern Neues Profil für eine Anwendung: Lassen Sie Apparmor am besten „zuhören“, während Sie mit dem Programm arbeiten. Dadurch wird die spätere Konfiguration deutlich einfacher.

In den Paketquellen und im Internet finden Sie weitere Profile für Apparmor. Damit kommen Sie zwar schnell ans Ziel, besser ist es jedoch, anderen nicht kritiklos zu vertrauen, sondern selbst ein Profil anzulegen. Starten Sie ein Terminal und geben Sie dort

sudo aa-genprof <Ausführbare Datei>.

ein. Sie werden von AppArmor dazu aufgefordert, die Anwendung in einem separaten Fenster zu starten. Benutzen Sie das Programm ganz normal, und verwenden Sie dabei möglichst alle Funktionen. Am Ende kehren Sie zum Terminal zurück und drücken die Taste „s“. Jetzt stellt Apparmor eine Reihe von englischsprachigen Fragen. Am Ende haben Sie damit ein Profil für die Anwendung angelegt, das Sie natürlich manuell weiterbearbeiten dürfen. Mit root-Rechten löschen Sie bei Bedarf das Profil auch wieder oder verschieben es unter einem anderen Namen in ein anderes Verzeichnis, sofern es bei der Arbeit mit dem Programm, das Sie kontrollieren wollten, zu Problemen gekommen ist.

Apparmor gehört sicher zu jenen Programmen, deren Verwendung etwas Einarbeitung erfordert. Als Lohn der Mühe erhalten Sie aber ein System, das auf Ihr individuelles Sicherheitsbedürfnis genau zugeschnitten ist.

0 Kommentare zu diesem Artikel
1841893