Small Tcbs of Policy-Controlled Operating Systems
Total Page:16
File Type:pdf, Size:1020Kb
Anja Pölck Small TCBs of Policy-controlled Operating Systems Small TCBs of Policy-controlled Operating Systems Anja Pölck Universitätsverlag Ilmenau 2014 Impressum Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Angaben sind im Internet über http://dnb.d-nb.de abrufbar. Diese Arbeit hat der Fakultät für Informatik und Automatisierung der Technischen Universität Ilmenau als Dissertation vorgelegen. Tag der Einreichung: 1. Juli 2013 1. Gutachter: Prof. Dr.-Ing. habil. Winfried E. Kühnhauser (Technische Universität Ilmenau) 2. Gutachter: Prof. Dr. Elisa Bertino (Purdue University, West Lafayette, Indiana, USA) 3. Gutachter: Prof. Dr.-Ing. habil Wolfgang Fengler (Technische Universität Ilmenau) Tag der Verteidigung: 19. Dezember 2013 Technische Universität Ilmenau/Universitätsbibliothek Universitätsverlag Ilmenau Postfach 10 05 65 98684 Ilmenau www.tu-ilmenau.de/universitaetsverlag Herstellung und Auslieferung Verlagshaus Monsenstein und Vannerdat OHG Am Hawerkamp 31 48155 Münster www.mv-verlag.de ISBN 978-3-86360-090-7 (Druckausgabe) URN urn:nbn:de:gbv:ilm1-2013000632 Titelphoto: photocase.com Abstract IT systems with advanced security requirements increasingly apply problem-specific security policies for describing, analyzing, and implementing security properties. Security policies are a vital part of a system’s trusted computing base (TCB). Hence, both correctness and tamper-proofness of a TCB’s implementation are essential for establishing, preserving, and guaranteeing a system’s security properties. Today’s operating systems often show that implementing security policies is a challenge; for more than forty years, they have provided only a rather elementary support for discretionary, identity-based access control policies. As a consequence, major parts of the applications’ security policies are implemented by the applications themselves, resulting in large, heteroge- neous, and distributed TCB implementations. Thus, precisely identifying a TCB’s functional perimeter is hard, which renders essential TCB properties – correctness, robustness, and tamper-proofness – difficult to achieve. Efforts have been made to re-collect the policy components of operating systems and appli- cations into a central component. So called policy-controlled operating systems provide kernel abstractions for security policies along with a policy decision and enforcement environment to protect and enforce the policies. Current policy-controlled operating systems are based on monolithic architectures so that their policy enforcement mechanisms are distributed all over the kernel. Additionally, they share the ambition to provide support for a wide variety of security policies that leads to universal policy decision and enforcement environments. Both results in large, complex, and expensive operating system TCBs, whose functional perimeter can hardly be precisely identified. As a consequence, a TCB’s essential properties are hard to ensure in its implementation. This dissertation follows a different approach based on the idea of methodically engineering TCBs by tailoring their policy decision and enforcement environment to support only those security policies that are actually present in a TCB. A TCB’s functional perimeter is identified by exploiting causal dependencies between security policies and TCB functions, which results in causal TCBs that contain exactly those functions that are necessary to establish, enforce, and protect their policies. The precise identification of a TCB’s functional perimeter allows for implementing a TCB in a safe environment that indeed can be isolated from untrusted system components. Thereby, causal TCB engineering sets the course for implementations whose size and complexity pave the way for analyzing and verifying a TCB’s correctness and tamper-proofness. The application scenarios for causal TCB engineering range from embedded systems and policy-controlled operating systems to database management systems in large information systems. v Zusammenfassung IT Systeme mit qualitativ hohen Sicherheitsanforderungen verwenden zur Beschreibung, Analyse und Implementierung ihrer Sicherheitseigenschaften zunehmend problemspezifische Sicherheitspolitiken, welche ein wesentlicher Bestandteil der Trusted Computing Base (TCB) eines IT Systems sind. Aus diesem Grund sind die Korrektheit und Unumgehbarkeit der Implementierung einer TCB entscheidend, um die geforderten Sicherheitseigenschaften eines Systems herzustellen, zu wahren und zu garantieren. Viele der heutigen Betriebssysteme zeigen, welche Herausforderung die Realisierung von Sicherheitspolitiken darstellt; seit mehr als 40 Jahren unterstützen sie wahlfreie identitäts- basierte Zugriffssteuerungspolitiken nur rudimentär. Dies führt dazu, dass große Teile der Sicherheitspolitiken von Anwendersoftware durch die Anwendungen selbst implementiert wer- den. Infolge dessen sind die TCBs heutiger Betriebssysteme groß, heterogen und verteilt, so dass die exakte Bestimmung ihres Funktionsumfangs sehr aufwendig ist. Im Ergebnis sind die wesentlichen Eigenschaften von TCBs – Korrektheit, Robustheit und Unumgehbarkeit – nur schwer erreichbar. Dies hat zur Entwicklung von Politik gesteuerten Betriebssystemen geführt, die alle Sicher- heitspolitiken eines Betriebssystems und seiner Anwendungen zentral zusammenfassen, in- dem sie Kernabstraktionen für Sicherheitspolitiken und Politiklaufzeitumgebungen anbieten. Aktuelle Politik gesteuerte Betriebssysteme basieren auf monolithischen Architekturen, was dazu führt, dass ihre Komponenten zur Durchsetzung ihrer Politiken im Betriebssystem- kern verteilt sind. Weiterhin verfolgen sie das Ziel, ein möglichst breites Spektrum an Sicherheitspolitiken zu unterstützen. Dies hat zur Folge, dass ihre Laufzeitkomponenten für Politikentscheidung und -durchsetzung universal sind. Im Ergebnis sind ihre TCB- Implementierungen groß und komplex, so dass der TCB-Funktionsumfang nur schwer iden- tifiziert werden kann und wesentliche Eigenschaften von TCBs nur mit erhöhtem Aufwand erreichbar sind. Diese Dissertation verfolgt einen Ansatz, der die TCBs Politik gesteuerter Betriebssys- teme systematisch entwickelt. Die Idee ist, das Laufzeitsystem für Sicherheitspolitiken so maßzuschneidern, dass nur die Politiken unterstützt werden, die tatsächlich in einer TCB vorhanden sind. Dabei wird der Funktionsumfang einer TCB durch kausale Abhängigkeiten zwischen Sicherheitspolitiken und TCB-Funktionen bestimmt. Das Ergebnis sind kausale TCBs, die nur diejenigen Funktionen enthalten, die zum Durchsetzen und zum Schutz der vorhandenen Sicherheitspolitiken notwendig sind. Die präzise Identifikation von TCB- Funktionen erlaubt, die Implementierung der TCB-Funktionen von nicht-vertrauenswürdigen Systemkomponenten zu isolieren. Dadurch legen kausale TCBs die Grundlage für TCB- Implementierungen, deren Größe und Komplexität eine Analyse und Verifikation bezüglich ihrer Korrektheit und Unumgehbarkeit ermöglichen. Kausale TCBs haben ein breites An- wendungsspektrum – von eingebetteten Systemen über Politik gesteuerte Betriebssysteme bis hin zu Datenbankmanagementsystemen in großen Informationssystemen. vii Acknowledgements First of all, I would like to thank my supervisor Prof. Winfried E. Kühnhauser. He drew my interest to the exciting world of computer security research and supported me with lively and interesting discussions throughout my work. I also want to thank the reviewers of my dissertation for their valuable feedback and their preparedness to review my dissertation. Special thanks to the Carl-Zeiss-Stiftung for awarding me a PhD scholarship and thus providing the financial background for my research. Further, I would like to thank my colleagues for all the valuable and motivating discussions. This particularly concerns Peter Amthor, who was always prepared for in-depth discussions and valuable feedback over a cup of tea, and my favorite office mate Katja Hose, who is a good listener. I also want to thank the students and their theses that contributed to my research work with new ideas and their implementation. In particular, special thanks to Felix Neumann for having the guts and the endurance for dealing with formal specifications. I would also like to thank all my friends and neighbors for their continuous motivation and support as well as for their occasional pestering – all kept me going. Thanks to my friend Janine Seifert for a recreational girl’s night out once in a while; I always had a good time. Last but not least, I would like to thank my family for their moral support – my parents always made me believe that I can achieve my goals. I also like to thank Alex for his never- ending energy, administrative support, and confirmation. ix Contents 1 Introduction 1 1.1 Motivation . 1 1.2 Causal Trusted Computing Bases . 2 1.3 Challenges and Contributions . 3 1.4 Organization . 4 2 Related Work 7 2.1 Policy-controlled Operating Systems . 7 2.1.1 Flask Security Architecture . 7 2.1.2 Rule Set Based Access Control . 9 2.1.3 Policy Machine . 10 2.1.4 Summary . 11 2.2 Reducing the Size and Complexity of TCBs . 11 2.2.1 Nizza Security Architecture . 11 2.2.2 Other Approaches . 13 2.3 Security Models . 13 2.3.1 Model-based Security Policy Engineering . 14 2.3.2 Access Control Models . 15 2.3.3 Information Flow Control Models . 16 2.4 Summary . 17 3 Security Model Core 19 3.1 Security Model Family Tree . 19 3.2 Core Definition . 23 3.3 Core Specialization