SELinux ist das Ergebnis einer langen Entwicklung, bei der unter der
Federführung der NSA viele unterschiedliche Unternehmen und Institute
teilhatten. Wie bereits in dem Teil I erwähnt
entwickelten die beiden Wissenschaftler David Bell und Leonard
LaPadula 1973 das nach ihnen benannte Modell eines
Multi-Level-Security Systems. Später waren Bell und LaPadula auch
beteiligt an der Entwicklung des Orange Books
. Das
Orange Book definiert sechs verschiedene Klassen: C1, C2, B1, B2, B3
und A1. Die Betriebssysteme in den Klassen C1 und C1 setzen für die
Sicherheit der Daten lediglich DAC-Systeme ein, während ab der Stufe
B1 Mandatory Access Systeme verlangt werden.
Die ersten MAC-Systeme waren Multi-Level-Security Systeme und wurden
für militärische und geheimdienstliche Zwecke eingesetzt. Es handelte
sich häufig um Betriebssysteme, die außerhalb dieser Einsatzbereich
nicht genutzt wurden. Die MLS-Systeme waren aber sehr starr und
konnten nicht flexibel angepasst werden. Sie hatten nur ein Ziel: Die
Vertraulichkeit der Daten musste gewährleistet werden. Flexiblere
Betriebssysteme der
Stufen B1 und aufwärts wurden benötigt. Forscher der
Information Assurance Research Group der NSA entwickelten daraufhin
zusammen mit dem Unternehmen Secure Computing Corporation (SCC) eine
neue flexible Mandatory Access Control Architektur basierend auf dem
Modell des Type-Enforcement. Dieser Mechanismus wurde zuerst für das
Logical Coprocessing Kernel (LOCK) Betriebssystem entwickelt. LOCK wurde noch von Honeywells Secure
Computing Technology Center (SCTC) entwickelt aus dem später die Firma
SCC hervorging.
In Zusammenarbeit mit der NSA entstanden zwei Mach-Kernel basierte
Prototypen: DTMach und DTOS
. An
der Entwicklung von DTOS war auch die Flux Forschungsgruppe der
Universität in Utah beteiligt. Gemeinsam wurden die Techniken in das
Fluke Betriebssystem implementiert. Dabei wurde die Architektur
erweitert und ergänzt, so dass nun die Richtlinien dynamisch geladen
werden konnten. Diese neue Architektur erhielt den Namen
Flask
.
Fluke war aber immer noch ein OS, welches lediglich zu
Forschungszwecken eingesetzt wurde. Um die Technologie einem breiteren
Publikum zur Verfügung zu stellen und so mehr Erfahrung zu sammeln,
implementierte die NSA die Flask-Architektur in Linux. Dabei wurde die
NSA von Network Associates und MITRE unterstützt. Im Dezember wurde
SELinux auf der Basis des Linux Kernel 2.2 als Open Source Software
veröffentlicht.
Auf dem Linux Kernel Summit 2001 in Ottawa wurde das Linux Security Module (LSM) Projekt gestartet. Hiermit sollte erstmals eine standardisierte Sicherheitsschnittstelle im Linux Kernel geschaffen werden. In den folgenden Jahren wurde SELinux auf die LSM-Schnittstelle portiert und ist seid dem Kernel 2.6 fest im Kernel enthalten.
Eine der ersten Distributionen, die SELinux in den Kernel aufgenommen hat, war Fedora Core. Ab Version 2 enthält diese Distribution die SELinux Erweiterung. Während in der Version 2 die Unterstützung noch fehlerhaft ist, konnte in den Version 3 bis 5 eine bessere Unterstützung erreicht werden. Debian Etch unterstützt ebenfalls SELinux.
Die erste kommerzielle Distribution mit SELinux Unterstützung ist Red Hat Enterprise Linux. Die Version 4 unterstützt SELinux mit einer Targeted Policy (siehe 23).
Inzwischen wurde die Architektur auch in BSD
und
Darwin
implementiert.
Ralf Spenneberg 2007-11-13