Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

30.06.2005

SE Linux schließt Sicherheitslücken

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.

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 maxi- mal Notwendige zu begrenzen, bieten nahezu alle Unix-Ver- sionen 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 Ac-cess 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".

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. Poli-cies zu erstellen ist allein der Rolle des Systemadministrators vorbehalten.

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

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" (Download-Möglichkeit im Kasten unter "Mehr zum Thema"). 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.

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-<version>.noarch.rpm" und "SE Linux-policy-strict-<version>.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.

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 gespei-cherten Daten durch Vertraulichkeitsstufen ("vertraulich" bis "streng geheim") gesichert werden.

Die handgreiflichsten Vortei- le erbringt SE Linux in Unter- nehmen - insbesondere solchen, die eine überschaubare An- zahl 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 un- verhä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)