Enforcing Flexible Access Control Policies in a Rust-based Linux Security Module
In Betriebssystemen durchgesetzte Sicherheitspolitiken sind von zentraler Bedeutung um die Sicherheitsanforderungen von Anwendungen zu unterstützen. Für eine Vielzahl von Anwendungen ist attributbasierte Zugriffskontrolle (ABAC) wegen ihrer Flexibilität, Ausdrucksstärke und Skalierbarkeit zu einer beliebten Klasse von Politiken geworden. Standardbetriebssysteme nutzen allerdings vorrangig restriktivere Sicherheitspolitiken, die eng mit ihren Abstraktionen verknüpft sind. Dies limitiert nicht nur die Anwendbarkeit für dynamischere Einsatzzwecke, sondern es erschwert auch formale Analysen von Politiken, die Korrektheitsgarantien ermöglichen. Um diese Vorteile in Standardbetriebssystemen nutzen zu können, und um die Herausforderungen dieser Integration zu untersuchen, stellen wir eine erste Version des Rust DABAC LSMs vor, einem Linux Security Module (LSM), das flexible, formelbasierte ABAC Politiken mit zustandsverändernden Post-Conditions unterstützt. Wir nutzen dazu ein Referenzmonitor-Architekturschema als Basis und entscheiden uns aufgrund der Korrektheitsgarantien für eine Implementierung in Rust. Zusätzlich zur Implementierung und ihrer umfassenden Evaluierung steuern wir eine Analyse des Stands der Technik zu ABAC-Implementierungen in Linux sowie eine Anforderungsspezifikation und ein gründliches Design des Rust DABAC LSMs bei. Der Fokus des Entwurfs liegt auf der Anwendbarkeit der Referenzmonitor-Architektur im Linux-Kernel und auf Leistungsverbesserungen durch Caching. Unsere Ergebnisse zeigen den Grad der Praxistauglichkeit des Rust DABAC LSMs. Einzelne aufeinanderfolgende Anfragen werden effizient abgewickelt, jedoch führen die strengen Anforderungen der durchgesetzten dynamischen ABAC-Politiken nach wechselseitigem Ausschluss zu Leistungseinbußen bei Sperrkonflikten. Für die ausgewählte Architektur und solche Politiken zeigen wir auch, dass die Caching-Verfahren die Performanz der Variante ohne Caching nicht effektiv verbessern können. Eine qualitative Analyse bestätigt die Tatsache, dass die monolithische Architektur von Linux die ordnungsgemäße Erfüllung des Verifizierbarkeitskriteriums der Referenzmonitoreigenschaften verhindert. Darüber hinaus kommen wir zu dem Schluss, dass sich die Unterstützung von Rust im Kernel zwar noch im Anfangsstadium befindet, für die Implementierung aber größtenteils genügt und stetig besser wird.
Publication Details
- Journal
- Common Library Network (Der Gemeinsame Bibliotheksverbund)
- Published
- 2025-12-04
- DOI
- https://doi.org/10.22032/dbt.66733
- Primary Topic
- Access Control and Trust
- Type
- article
- Field-Weighted Citation Impact
- 0.00