Open Source im professionellen Einsatz

Policy-Modul automatisch erzeugen

Das Policygentool erwartet beim Aufruf einen Namen für das zu erzeugende Modul und den Pfad des Programms, für das dieses Modul gilt. Es stellt anschließend dem Administrator einige Fragen und erzeugt entsprechende Konfigurationsdateien sowie das fertige Modul. Wer es aus den drei Dateien manuell erzeugen will, übersetzt die TE-Datei mit »checkmodule« und baut mit »semodule_package« die »foo.pp«-Moduldatei und lädt sie dann mit »semodule -i foo.pp«.

IDEs

Es gibt mehrere grafische Oberflächen für die Verwaltung und Administration von SE Linux. Mit Slide ([5], siehe Abbildung 3) steht auch ein erstes GUI für die Reference Policy zur Verfügung. Hierbei handelt es sich um ein Eclipse-Plugin von Tresys Technology. Slide unterstützt Syntax-Highlighting, Wizards und Auto-Completion für die vordefinierten Bezeichner der Modulschnittstellen.

Eclipse-Plugin für die Reference Policy

Slide verlangt das Eclipse SDK 3.1 sowie die Reference Policy und die SE-Tools. Am einfachsten klappt die Installation des Plugin über ein RPM oder direkt durch Eclipse von der Webpage [8]. Anschließend präsentiert sich eine übersichtliche und aufgeräumte IDE, die zwar in einigen Punkten noch Schwachstellen aufweist, aber trotz ihrer niedrigen Versionsnummer 0.1.0 die Arbeit bereits stark vereinfacht.

Lernmodus

Statt alle Details einer Policy mühsam manuell zusammenzusuchen, bietet es sich an, Regeln aus den protokollierten Audit-Meldungen verbotener Zugriffe zusammenzustellen. Genau dies erledigt der Befehl »audit2allow« (Abbildung 2), er implementiert gewissermaßen einen Lernmodus. Ohne Auditd protokolliert SE Linux wie gewohnt in »/var/log/messages«.

Abbildung 2: Mit »audit2allow« analysiert SE Linux die Audit-Trails nach Vorgängen, die gegen die Policy verstoßen, und erklärt sie zu künftig erlaubten Aktionen.

Abbildung 2: Mit »audit2allow« analysiert SE Linux die Audit-Trails nach Vorgängen, die gegen die Policy verstoßen, und erklärt sie zu künftig erlaubten Aktionen.

Das Ergebnis des Lernens sind SE-Linux-Regeln, die genau die bisher verbotenen Zugriffe gestatten. Sinnvollerweise läuft dieser Befehl im Permissive-Modus von SE Linux, bei dem das System Übertretungen der Richtlinien nur protokolliert, sie aber nicht unterbindet.

Die für die Reference Policy angepasste Version dieses Befehls unterstützt auch direkt das Erzeugen von Modulen (in der Abbildung gezeigt). Anschließend lädt und aktiviert der Befehl »semodule -i local.pp« das neue Modul. Manuelle Änderungen an der erzeugten TE-Datei sind möglich und sinnvoll, mindestens ein kritischer Blick empfiehlt sich immer.

Bisher kann nur der Systemadministrator selbst die SE Linux Policy modifizieren und eine neue laden. Während das bei der alten Technik auf Grund des monolithischen Designs gar nicht anders möglich war, bietet die neue Reference Policy mit ihrem modularen Aufbau grundsätzlich die Möglichkeit, Policy-Moduldateien mit unterschiedlichen Zugriffsattributen zu versehen.

Multi Level Security

Obwohl Multi Level Security als Kernkonzept von SE Linux gilt, war MLS lange Zeit als experimentell gekennzeichnet. Mit der Reference Policy steht erstmals eine MLS-Policy zur Verfügung, die das Bell-La-Padula-Modell umsetzt. Das Modell wurde 1973 für die Wahrung militärischer Geheimnisse entwickelt. Im Wesentlichen ordnet es Subjekten Zuständigkeiten und Ermächtigungen zu. Objekte erhalten Zuständigkeiten und Einstufungen.

MLS stellt sicher, dass ein Objekt innerhalb seiner Zuständigkeit nur von Subjekten mit gleicher oder höherer Ermächtigung gelesen werden darf. Das Schreiben von Objekten ist nur möglich, wenn das Subjekt eine identische oder geringere Einstufung besitzt. Sobald eine Person mit einer hohen Einstufung eine Datei erzeugt, dürfen nur noch Personen mit identischer oder höherer Einstufung diese Datei lesen, damit sensitive Daten nicht in falsche Hände gelangen. Für die Umsetzung von MLS erhält der Security Context zwei weitere Parameter: MLS-Level von »s0« bis »s15« sowie MLS-Range von »c0« bis »c255«.

Multi-Category Security

Da bis auf Militärs und Nachrichtendienste kaum jemand ein MLS-Konzept benötigt, haben die Entwickler ihre Reference Policy um die Idee der Multi-Category Security (MCS) erweitert. Sie schwächt die MLS-Funktion ab. Alle Objekte erhalten den MLS-Level »s0«. Der Benutzer kann nun die Kategorie jedes Objekts frei wählen. Um die Nummern mit sinnvollen Bedeutungen zu belegen, darf er diesen Kategorien in der Datei »setrans.conf« auch Namen zuweisen:

s0:c0=Vertraulich
s0:c1=Entwicklung
s0:c2=HumanResources


Nun versteht der Befehl »chcat« auch Namen als Kategorie, die er einer Datei zuweist:

chcat -- +Vertraulich /tmp/file.txt


Besaß die Datei den Security-Kontext »root:object_r:tmp_t:«, dann hat sie nun den Kontext »root:object_r:tmp_t:Vertraulich«. Das »chcat«-Kommando kann auch einem Benutzer eine Kategorie zuweisen. Jede von ihm erzeugte Datei trägt anschließend seine MCS-Kategorie. Fehlt dem Benutzer eine Kategorie, erhält er keinen Zugriff auf die Datei.

Während diese Funktion den Posix-ACLs ähnelt (Access Control List), bietet MCS künftig noch mehr Möglichkeiten. So könnte ein Print-System abhängig von der Kategorie beim Drucken eines Dokuments einen Warnhinweis einfügen. Ein E-Mail-Client könnte sich weigern Dokumente einer bestimmten Kategorie zu versenden.

Abbildung 3: Die SE-Linux-IDE Slide erleichtert die Arbeit mit der modularen SE Linux Reference Policy. Slide ist als Plugin für Eclipse implementiert und profitiert damit von dem enormen Funktionsumfang dieser grafischen Entwicklungsumgebung.

Abbildung 3: Die SE-Linux-IDE Slide erleichtert die Arbeit mit der modularen SE Linux Reference Policy. Slide ist als Plugin für Eclipse implementiert und profitiert damit von dem enormen Funktionsumfang dieser grafischen Entwicklungsumgebung.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4,5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook