A Temporal Logic Approach to Information-Flow Control
Total Page:16
File Type:pdf, Size:1020Kb
R S V E I T I A N S U S S A I R S A V I E N A Temporal Logic Approach to Information-flow Control Thesis for obtaining the title of Doctor of Natural Science of the Faculty of Natural Science and Technology I of Saarland University by Markus N. Rabe Saarbrücken February, 2016 Dean of the Faculty Prof. Dr. Markus Bläser Day of Colloquium January 28, 2016 Chair of the Committee Prof. Dr. Dr. h.c. Reinhard Wilhelm Reviewers Prof. Bernd Finkbeiner, Ph.D. Prof. David Basin, Ph.D. Prof. Sanjit A. Seshia, Ph.D. Academic Assistant Dr. Swen Jacobs i Abstract Information leaks and other violations of information security pose a severe threat to individuals, companies, and even countries. The mechanisms by which attackers threaten information security are diverse and to show their absence thus proved to be a challenging problem. Information-flow control is a principled approach to prevent security incidents in programs and other tech- nical systems. In information-flow control we define information-flow proper- ties, which are sufficient conditions for when the system is secure in a particu- lar attack scenario. By defining the information-flow property only based on what parts of the executions of the system a potential attacker can observe or control, we obtain security guarantees that are independent of implementa- tion details and thus easy to understand. There are several methods available to enforce (or verify) information-flow properties once defined. We focus on static enforcement methods, which automatically determine whether a given system satisfies a given information-flow property for all possible inputs to the system. Most enforcement approaches that are available today have one problem in common: they each only work for one particular programming language or information-flow property. In this thesis, we propose a temporal logic approach to information-flow control to provide a simple formal basis for the specification and enforcement of information-flow properties. We show that the approach can be used to enforce a wide range of information-flow properties with a single algorithm. The main challenge is that the standard temporal logics are unable to ex- press information-flow properties. They lack the ability to relate multiple executions of a system, which is essential for information-flow properties. We thus extend the temporal logics LTL and CTL∗ by the ability to quantify over multiple executions and to relate them using boolean and temporal operators. The resulting temporal logics HyperLTL and HyperCTL∗ can express many information-flow properties of interest. The extension of temporal logics com- pels us to revisit the algorithmic problem to check whether a given system (model) satisfies a given specification in HyperLTL or HyperCTL∗; also called the model checking problem. On the technical side, the main contribution is a model checking algorithm for HyperLTL and HyperCTL∗ and the detailed complexity analysis of the model checking problem: We give nonelementary lower and upper bounds for its computational complexity, both in the size of the system and the size of the specification. The complexity analysis also reveals a class of specification, which includes many of the commonly consid- ered information-flow properties and for which the algorithm is efficient (in NLOGSPACE in the size of the system). For this class of efficiently checkable properties, we provide an approach to reuse existing technology in hardware model checking for information-flow control. We demonstrate along a case study that the temporal logic approach to information-flow control is flexible and effective. We further provide two case studies that demonstrate the use of HyperLTL and HyperCTL∗ for proving properties of error resistant codes and distributed protocols that have so far only been considered in manual proofs. ii iii Zusammenfassung Informationssicherheit stellt eine immer größere Bedrohung für einzelne Per- sonen, Firmen und selbst ganze Länder dar. Ein grundlegender Ansatz zur Vorbeugung von Sicherheitsproblemen in technischen Systemen, wie zum Beispiel Programmen, ist Informationsflusskontrolle. In der Informationsfluss- kontrolle definieren wir zunächst sogenannte Informationsflusseigenschaf- ten, welche hinreichende Bedingungen für die Sicherheit des gegebenen Sys- tems in einem Sicherheitsszenario darstellen. Indem wir Informationsfluss- eigenschaften nur auf Basis der möglichen Beobachtungen eines Angreifers über das System definieren, erhalten wir einfach zu verstehende Sicherheits- garantien, die unabhängig von Implementierungsdetails sind. Nach der Defi- nition von Eigenschaften muss sichergestellt werden, dass ein gegebenes Sys- tem seine Informationsflusseigenschaft erfüllt, wofür es bereits verschiedene Methoden gibt. Wir fokussieren uns in dieser Arbeit auf statische Metho- den, welche für ein gegebenes System und eine gegebene Informationsfluss- eigenschaft automatisch entscheiden, ob das System die Eigenschaft für alle möglichen Eingaben erfüllt, was wir auch das Modellprüfungsproblem nen- nen. Die meisten verfügbaren Methoden zum Sicherstellen der Einhaltung von Informationsflusseigenschaften teilen jedoch eine Schwäche: sie funk- tionieren nur für eine einzelne Programmiersprache oder eine einzelne Infor- mationsflusseigenschaft. In dieser Arbeit verfolgen wir einen Ansatz basierend auf Temporallogi- ken, um eine einfache theoretische Basis für die Spezifikation von Informa- tionsflusseigenschaften und deren Umsetzung zu erhalten. Wir analysieren den Zusammenhang von der Ausdrucksmächtigkeit von Spezifikationsspra- chen und dem algorithmischen Problem Spezifikationen für ein System zu überprüfen. Anhand einer Fallstudie im Bereich der Hardwaresicherheit zei- gen wir, dass der Ansatz dazu geeignet ist eine breite Palette von bekannten und neuen Informationsflusseigenschaften mittels eines einzelnen Modell- prüfungsalgorithmus zu beweisen. Das Kernproblem hierbei ist, dass wir in den üblichen Temporallogiken Informationsflusseigenschaften nicht ausdrücken können, es fehlt die Fähig- keit mehrere Ausführungen eines Systems miteinander zu vergleichen, was der gemeinsame Nenner von Informationsflusseigenschaften ist. Wir erweit- ern Temporallogiken daher um die Fähigkeit über mehrere Ausführungen zu quantifizieren und diese miteinander zu vergleichen. Der Hauptbeitrag auf der technischen Ebene ist ein Modellprüfungsalgorithmus und eine de- taillierte Analyse der Komplexität des Modellprüfungsproblems. Wir geben einen Modellprüfungsalgorithmus an und beweisen, dass der Algorithmus asymptotisch optimal ist. Die Komplexitätsanalyse zeigt auch eine Klasse von Eigenschaften auf, welche viele der üblichen Informationsflusseigenschaften beinhaltet, und für welche der gegebene Algorithmus effizient ist (in NLOG- SPACE in der Größe des Systems). Für diese Klasse von effizient überprüf- baren Eigenschaften diskutieren wir einen Ansatz bestehende Technologie zur Modellprüfung von Hardware für Informationsflusskontrolle wiederzu- iv verwenden. Anhand einer Fallstudie zeigen wir, dass der Ansatz flexibel und effektiv eingesetzt werden kann. Desweiteren diskutieren wir zwei weit- ere Fallstudien, welche demonstrieren, dass die vorgeschlagene Erweiterung von Temporallogiken auch eingesetzt werden kann, um Eigenschaften für fehlerresistente Kodierungen und verteilte Protokolle zu beweisen, welche bisher nur Abstrakt betrachtet werden konnten. v Acknowledgements It is impossible to do justice to all those wonderful people who contributed in direct and indirect ways to this thesis. Nevertheless I want to highlight several persons and groups to which I am particularly indebted. I want to start with expressing my deep gratitude to my advisor Bernd Finkbeiner. I admire his commitment to his students and his ability to provide subtle guidance. He showed a great deal of patience with me and always kept his door open. I cannot imagine a better supervisor. I want to thank my colleagues, Rayna Dimitrova, Klaus Dräger, Rüdi- ger Ehlers, Peter Faymonville, Michael Gerke, Swen Jacobs, Felix Klein, Lars Kuhtz, Andrey Kupriyanov, Hans-Jörg Peter, Christa Schäfer, Leander Ten- trup, Hazem Torfah, and Martin Zimmermann for the countless shared cof- fees and inspiring conversations. I am grateful for having worked with Sven Schewe during the first year of my PhD. Even though our common work is not directly a part of this thesis, my research is heavily influenced by him. Thanks also to my doctoral committee for their time and feedback; the exter- nal reviewers, David Basin and Sanjit A. Seshia, the committee chair Reinhard Wilhelm, and the academic staff committee member Swen Jacobs. It would take too many pages to describe what each of my friends means to me, but at least I want to mention their names here. I will always remember my flatmates with whom I shared a home for all those years: Justus, Anika, Claudia, Jana; and of course the co-founders Klaas and Matthias who also hap- pen to be two of my oldest friends. Let us enjoy more roof parties, sunny af- ternoons on the balcony, and evenings in the kitchen. I am grateful for having met so many wonderful people during conferences, summer schools, and my stay at Cambridge; in particular I want to mention Heidy Khlaaf, Christoph Wintersteiger, and Anton Stefanek. The friends I made in Saarbrücken influ- enced this thesis in so many ways; Anna Marie, Anne-Christin, Christian, Eva, Fabian, Jonas, Jörg, Kevin, Nikolai, Nora, Richard, and Verena, and also my cinema buddies Ariane and Jana. And finally I want to mention two friends who had big influence on this thesis: