SE Linux schließt Sicherheitslücken

07.07.2005 von Eva-Katharina Kunst
Linux gilt als ein ähnlich sicheres System wie Unix. Doch mit "Security Enhanced Linux" lässt sich eine Standarddistribution noch erheblich sicherer machen.

Hier lesen Sie…

  • welche Unix-typischen Sicherheitslücken SE Linux schließt;

  • wie das technische Konzept der Erweiterung für Distributionen angelegt ist;

  • was bei der Installation zu beachten ist;

  • wie sich SE Linux betreiben lässt und was man dabei beachten sollte.

*Eva-Katharina Kunst ist freie Journalistin und Buchautorin, Jürgen Quade ist Informatikprofessor an der Hochschule Niederrhein. Beide leben in Kempen.

Der Security-Server im Kernel erlaubt oder verbietet entsprechend den geladenen Policies die Zugriffe auf Dateien.Unix-Systeme gelten seit jeher als stabil und sicher. Kein Wunder: Als Multiuser-Systeme entwickelt, mussten sie von Anfang an über Mechanismen verfügen, die die einzelnen Dateien vor unberechtigtem Zugriff schützen. Ein simples und wirkungsvolles Verfahren - als Discretionary Access Control (DAC) bezeichnet - bestimmt für jedes Objekt einen Besitzer, der Lese-, Schreib- und Ausführungsrechte vergeben kann. Rechenprozesse, die unter der Kennung des Besitzers (User Identifier = UID) laufen, können je nach Rechtevergabe auf Dateien zugreifen oder nicht.

Sicherheitstechnischer Knackpunkt des Verfahrens: Ein Benutzer im System, der Superuser, darf alles. Seine Rechte, uneingeschränkt auf alle Objekte zuzugreifen und sämtliche Ressourcen zu nutzen, sind der Traum eines jeden Hackers und damit der Alptraum jedes Systemadministrators. Machen sich Angreifer Sicherheitslücken wie Buffer Overflows oder eine falsche Web-Konfiguration zunutze und erhalten Root-Rechte, kontrollieren sie das gesamte System.Geheimdienst-Initiative

Um die Allmacht des Superusers zu brechen und auf das maximal Notwendige zu begrenzen, bieten nahezu alle Unix-Versionen Techniken an - wenn auch nicht unbedingt in ihrer Standardvariante. Im Linux-Umfeld hat sich Security Enhanced Linux (SE Linux) etabliert, das nach Modifikationen am Betriebssystem-Kern und an den Systemprogrammen über das Framework der Linux Security Modules (LSM) direkt in Kernel 2.6 integriert ist. Vom US-Geheimdienst National Security Agency (NSA) initiiert und mitentwickelt, zwingt es dem Benutzer ein zusätzliches, schär- feres Rechte- und Zugriffsmodell auf.

Das technische Konzept basiert auf "Type Enforcement" (TE) sowie dem "Role Based Access Control" (RBAC). Beim Type Enforcement werden jedem Benutzer beziehungsweise Prozess (in der Sprache der Security-Spezialisten jedem Subjekt) Domains und jedem Objekt (Datei, Verzeichnis, Gerät, Socket) ein Typ zugeordnet. Diesen Vorgang nennt man "labeln".

Steckbrief

Produkt: Security Enhanced Linux (SE Linux);

Homepage: http://www.nsa.gov/SELinux;

Lizenz: GPL;

Plattformen: Linux - mittels Linux Security Modules (LSM) in Kernel 2.6 integriert;

Implementierungen: - RHEL 4 (Standardbestandteil, voll unterstützt); - Fedora 3 (Standardbestandteil, voll unterstützt); - Debian (zusätzliche Pakete erforderlich); - Suse (zusätzliche Pakete erforderlich); - Gentoo (zusätzliche Pakete erforderlich);

Konzept: MAC-System mit Type Enforcement und Role Based Access Control.Rollen und Regeln

Mit RBAC werden in einem weiteren Schritt verschiedene Rollen definiert und dem Benutzer zugewiesen. Typische Rollen könnten den normalen Anwender (user_r), den Mitarbeiter für ein bestimmtes Projekt (staff_r) oder eine Gruppe Systemadministratoren (sysadm_r) bezeichnen. Dass es sich um Rollen handelt, ist an der jeweiligen Endung auf "_r" ersichtlich. SE Linux vergibt jedem Subjekt und Objekt einen so genannten Security-Kontext (Benutzer:Rolle:Typ/ Domain), der als Zugriffsattribut in den xattr-Attributen des Dateisystems gespeichert wird.

Ein solches regelbasierendes Konzept firmiert unter dem Begriff "Mandatory Access Control", kurz MAC. Die Zuordnung, mit welchen Rollen auf welche Typen zugegriffen werden darf, wird als Policy bezeichnet. Policies zu erstellen ist allein der Rolle des Systemadministrators vorbehalten.

SE Linux zieht eine zusätzliche Sicherheitsinstanz in den Linux-Kernel ein.Das Aufstellen von Policies ist eine diffizile Aufgabe, "in der Komplexität vergleichbar mit Firewalls in einer komplexeren Netzwerktopologie", wie Daniel Riek, Solution Architect bei Red Hat, betont. Glücklicherweise liefern SE-Linux-Distributionen Policies mit. Red Hat hat unter den Distributoren am meisten in SE Linux investiert und sowohl allen Versionen von Red Hat Enterprise Linux 4 (RHEL 4) wie auch der Community-Variante Fedora Core 3 gleich zwei Sätze von Policies mitgegeben. Während die "Strict-Policy" möglichst viel absichert, aber deutlich unkomfortabler zu handhaben ist, schützt die per Default eingestellte "Targeted-Policy" nur die von außen erreichbaren Netzwerkdienste. Kompromittiert ein Cracker beispielsweise das Web-Frontend, erhält er dennoch keinen Zugriff auf die Middleware oder gar die Backend-Datenbanken.

Mit Targeted Policy lässt sich Third-Party-Software vergleichsweise einfach einspielen und verwenden. Alle lokalen Programme laufen in einem gemeinsamen Sicherheitskontext. Der Administrator merkt nicht einmal viel davon, vor einem gesicherten SE-Linux-System zu sitzen: So hat Red Hat beispielsweise den Befehl "su" mit dem SE-Linux-Kommando "newrole" kombiniert.Abhängig von Distributionen

Mittels der neuen Befehlsoption "-Z" offenbaren bekannte Unix-Kommandos die neuen Sicherheitseinstellungen.In der Installation eines Fedora-Core-3- oder eines RHEL-4-Systems liegt denn auch gegenwärtig der einfachste Weg, SE Linux kennen zu lernen. In beiden Systemen ist von Haus aus SE Linux enthalten und angeschaltet. Etwas umständlicher ist die Installation unter Gentoo oder Debian. Eine Anleitung findet sich im "Gentoo x86 SE Linux Handbuch" beziehungsweise im "Getting Started with SE Linux Howto". Der neugierige Gentoo-Jünger sollte sich übrigens nicht vom Namen SE-Linux-Live-CD verwirren lassen: Hier handelt es sich nur um eine CD, mit der man das Gentoo-SE Linux installieren kann. Die Live-CD selbst stellt kein abgesichertes System dar. Der Nürnberger Distributor Suse hält sich bezüglich seiner SE-Linux-Strategie noch bedeckt. Allerdings hat die Community Pakete beispielsweise für Suse 9.2 bereitgestellt (http://SELinux.sourceforge.net/distros/suse.php3).

Wer sich erstmalig an einem SE-Linux-Rechner anmeldet, wird auf den ersten Blick keinen Unterschied zu einem Standard-Linux ausmachen. Die Eingabe von "ls -Z" offenbart jedoch, dass jede Datei "gelabelt", das heißt einem Typ zugeordnet ist. Weitere, modifizierte Unix-Kommandos sind "ps" und "id". Ersteres zeigt über die Option "-Z" die Domains der im System befindlichen Rechenprozesse an, Letzteres die eigene Rolle.

Weitere Sicherheitsprojekte

grsecurity (http://www.grsecurity.org), realisiert Mandatory Access Control;

systrace (http://www.citi.umich.edu/u/provos/systrace/), Open BSD auf Linux portiert: Mechanismus, der verhindert, dass eine Applikation alle Systemaufrufe starten kann;

Trusted BSD (http://www.trustedbsd.org), Free BSD;

rsbac (Rule Set Based Access Control, http://www.rsbac.org), Open-Source-Framework für Linux-Kernel, ACL-basierendes MAC-System.Neue Systemkommandos

SE Linux kommt darüber hinaus mit einigen neuen Kommandos daher: "newrole" ermöglicht es, eine neue Rolle anzunehmen, und "chcon" teilt den Dateien einen Security-Kontext zu. Das ebenfalls neue Kommando "sestatus" zeigt unter anderem den aktuellen Betriebsmodus des Systems an.

SE-Linux-Systeme nämlich können in zwei Modi betrieben werden. Im Permissive-Modus werden die Sicherheitsregeln nur überprüft, aber nicht angewendet. Unerlaubte Aktionen werden im Syslog verzeichnet. So lassen sich die Policies anpassen, ohne dass es bei Fehlern zu Abstürzen kommt. Erst im Enforcing-Modus sind die Regeln aktiv und verhindern unerlaubte Zugriffe. Zum Einschalten des Enforcing-Modus schreibt der Administrator per "echo"-Kommando eine "1" in die Datei "/SE Linux/enforce", zum Einschalten des Permissive-Modus eine "0".Bordwerkzeuge sind Pflicht

Auf einem SE-Linux-System ist es wichtig, für administrative Tätigkeiten die dafür vorgesehenen Werkzeuge zu benutzen. Wer als alter Unix-Hase einen neuen User Account durch Editieren der Datei "/etc/passwd" und Erzeugen des Home-Verzeichnisses anlegt, hat ein Problem: Das Home-Verzeichnis des Users wird nicht richtig gelabelt. Das modifizierte Kommando "useradd" demgegenüber sorgt für die korrekte Typ-Bezeichnung aller angelegten Ordner und Dateien. Soll der User zusätzlich mit dem Recht ausgestattet werden, administrative Tätigkeiten zu übernehmen, ist je nach eingestellten Policies deren Modifikation notwendig.

Auf einem Fedora- oder RHEL-4-System müssen dazu vorher die Quelldateien der Policies eingespielt werden. Die erforderlichen Pakete ("SE Linux-policy-targeted-.noarch.rpm" und "SE Linux-policy-strict-.noarch.rpm") finden sich beispielsweise unter http://download.fedora.redhat.com/pub/fedora/linux/core/updates/3/SRPMS/. Insbesondere muss die Datei "/etc/SE Linux/targeted/src/policy/users" ange-passt werden. Der Aufruf "make -C/etc/SE Linux/targeted/src/ policy policy" generiert die geänderte Policy, und "make -C /etc/SE Linux/targeted/src/policy load" aktiviert sie. Zum Generieren wird vom Makefile übrigens das neue SE-Linux-Programm "checkpolicy" und zum Aktivieren "load_policy" aufgerufen.

Die Aufgaben, die auf administrativer Seite zu leisten sind, dürften das Vermögen eines einfachen Home-Users übersteigen. Es brauche einige Erfahrung und Know-how, um eine strikte Policy flexibel und effektiv einzusetzen, konstatiert denn auch Red-Hat-Manager Riek. Noch befindet sich die Markteinführung in einem frühen Stadium, die Weiterentwicklungen sind im vollen Gang.

Pro und Kontra

Ausdifferenzierte und fein granulare Kontrolle der Zugriffsrechte für Anwender, Prozesse, Programme, Dateien und Komponenten;

Systemsicherheit wird wirkungsvoll erhöht: Schäden durch einen erfolgreichen Angriff werden begrenzt;

Policies lassen sich den Bedürfnissen des Unternehmens anpassen.

Konfiguration komplex;

Performance-Verlust;

noch nicht genügend vorgefertigte Policies und vereinfachende Tools;

die notwendige File-System-Unterstützung ist nur im "ext2/ext3" und "xfs" vorhanden.Der Schwerpunkt der derzeitigen Arbeiten liegt weniger auf dem SE-Linux-Kern selbst. Er gilt als technisch ausgereift. Auf der To-do-Liste der Entwickler steht in erster Linie vielmehr die Bereitstellung von vorgefertigten Policies für neu zu installierende Software. Zu den vordringlichsten Aufgaben zählen daneben vereinfachende Tools, die zu einer komfortableren Administration des Systems führen. Darüber hinaus arbeiten die Entwickler an "Multi Level Security", mit der die im System gespeicherten Daten durch Vertraulichkeitsstufen ("vertraulich" bis "streng geheim") gesichert werden.

Die handgreiflichsten Vorteile erbringt SE Linux in Unternehmen - insbesondere solchen, die eine überschaubare Anzahl verschiedener Internet-Dienste anbieten, die voreinander isoliert werden sollen. Ist hingegen nur ein einziger Dienst im Einsatz, nutzt SE Linux wenig. Umgekehrt stellen komplexe Server eine zu große Herausforderung dar: Hierfür SE-Linux-Policies zu erstellen würde den Administrationsaufwand unverhältnismäßig in die Höhe schrauben.

Die Bereitschaft von Unternehmen, SE Linux anzunehmen, ist vorhanden. "SE Linux trägt dazu bei, dass wir auch die letzten Bedenken ausräumen können, die einem Umstieg von Solaris auf Linux zuweilen entgegengebracht werden", so Riek. SE Linux sei die Antwort auf ein drängendes Problem moderner IT und ihrer sicherheitsbewussten Anwender. (ls)