Version 0.42-with-extra-sparkles

Lecture: SELinux und AppArmor

Wenn rwx mit ugo zu ungenau ist

Linux verwaltet Zugriffsrechte als Erlaubnis zum Lesen ("r"), Schreiben ("w") und Ausführen ("x") für den Eigentümer ("u"), die Gruppe ("g") und alle anderen ("o").

So haben alle Anwendungen für einen Benutzer die gleichen Rechte, das ist aber oft nicht sinnvoll:
Mein Mail-Client muss mein Adressbuch lesen und ändern können,
aber warum soll z.B. mein Browser das tun dürfen?

Die Kernel-Erweiterungen "SELinux" ("Security-Enhanced Linux") und "AppArmor" ("Application Armor") ändern das: Sie prüfen alle Zugriffe der Anwendungen und blockieren, was in der eingerichteten Sicherheitspolitik nicht vorgesehen ist.

Im Vortrag werden diese beiden Systeme vorgestellt und die grundlegenden Admininistrations-Aufgaben beschrieben:
- den Status der Komponente bestimmen und ändern (an- und ausschalten),
- die eingestellte Politik anzeigen lassen und kontrollieren,
- die Zugriffs-Erlaubnisse ändern,
- die Defaults (der Distribution) an die geänderte Anwendungs-Konfiguration (Port, Data Directory, ...) anpassen (statt die Zugriffskontrolle einfach abzuschalten).

Unix-Systeme (also auch Linux) verwalten Zugriffsrechte, die für jedes Objekt (Datei, Verzeichnis, Gerät, ...) dem Eigentümer ("user"), der Gruppe ("group") und allen anderen ("other") das Lesen ("read"), Schreiben ("write") und Ausführen ("execute") erlauben oder verbieten.
Mit dem Kommando "chmod" kann man diese Rechte "r", "w" und "x" für "u", "g" oder "o" gewähren oder entziehen.

Dieses System unterscheidet nur nach Benutzern, aber nicht nach Anwendungen:
Was das Programm X nach Aufruf durch den Benutzer "meier" tun darf, das dürfen auch die Programme Y und Z.

In vielen Fällen ist das sachlich nicht begründet:
Mein Mail-Client muss mein Adressbuch lesen und ändern können,
aber warum soll z.B. mein Browser das tun dürfen?
Die Kontrolle der Zugriffe nicht nur nach Benutzer, sondern auch nach Anwendung schränkt den möglichen Schaden eines erfolgreichen Angriffs ein.

Hier setzen die Kernel-Erweiterungen "SELinux" ("Security-Enhanced Linux") und "AppArmor" ("Application Armor") an: Durch sie erhält der Kernel eine "Mandatory Access Control", die alle Zugriffe der Anwendungen prüft und solche verbietet, die in der eingerichteten Sicherheitspolitik nicht vorgesehen sind.
Es handelt sich um Positiv-Listen: Erlaubt ist nur das, was dort eingetragen ist, alles andere ist verboten.
(Was die Permission-Bits schon verbieten, bleibt natürlich verboten.)
Funktional sind die beiden Erweiterungen ähnlich; Ubuntu bevorzugt AppArmor, RedHat nutzt SELinux.

Dieser Gewinn an Sicherheit bewirkt einen Mehraufwand bei der Administration:
Für zusätzliche Anwendungen (also alle, die nicht von der Distribution geliefert wurden), die überwacht werden sollen, müssen die erlaubten Zugriffe eingerichtet werden.
Das ist auch nötig, wenn die Daten einer Anwendung an einem Nicht-Standard-Pfad abgelegt werden sollen, z.B. eine Datenbank auf einem separaten Filesystem (NAS, RAID, ...) gespeichert werden soll.

Manchen Administratoren ist das zuviel Aufwand: Sie schalten SELinux bzw. AppArmor auf dem System aus. Das erhöht natürlich die Flexibilität und vermeidet Probleme, die durch unvollständige Regeln entstehen (zu erlaubende Zugriffe, die im Test
nicht erfasst wurden), aber es reduziert die Sicherheit.

Im Vortrag werden diese beiden Systeme vorgestellt und die grundlegenden Admininistrations-Aufgaben beschrieben:
- den Status der Komponente bestimmen und ändern (an- und ausschalten),
- die eingestellte Politik anzeigen lassen und kontrollieren,
- für erfasste Anwendungen die erlaubten Zugriffe ändern,
z.B. wegen der Benutzung von Nicht-Standard-Verzeichnissen.

Info

Day: 2017-08-19
Start time: 15:15
Duration: 01:00
Room: HS 8
Track: Security
Language: de

Links:

Feedback

Click here to let us know how you liked this event.

Concurrent Events