SElinux Geschichte

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