A Secure Isolation of Software Activities in Tiny Scale Systems
Total Page:16
File Type:pdf, Size:1020Kb
A Secure Isolation of Software Activities in Tiny Scale Systems Von der Fakultät 1 MINT - Mathematik, Informatik, Physik, Elektro- und Informationstechnik der Brandenburgischen Technischen Universität Cottbus - Senftenberg zur Erlangung des akademischen Grades Doktor der Naturwissenschaften (Dr. rer. nat.) genehmigte Dissertation vorgelegt von Dipl.-Informatiker Oliver Stecklina geboren am 22.09.1976 in Cottbus Gutachter: Prof. Dr. rer. nat. Peter Langendörfer Gutachter: Prof. Dr.-Ing. habil. Jochen H. Schiller Gutachter: Asst. Prof. Ph.D. Aurelien Francillon Tag der mündlichen Prüfung: 28.10.2016 ii Abstract With the introduction of the Internet at the end of the last century the modern society was fundamentally changed. Computer systems became an element of nearly all parts of our daily live. Due to the interconnection of these systems local borders are mostly vanished, so that information is accessible and exchangeable anywhere and at anytime. But this increased connectivity causes that physical fences are not longer an adequate protection for computer systems. Whereas the security of commodity computer systems was improved continuously and similarly with their increased connectivity, deeply embedded systems were then and now mostly protected by physical fences. But the ubiquitous availability of embedded systems in personal and commercial environments makes these systems likewise accessible and moves them strongly into the focus of security investigations. Deeply embedded systems are usu- ally equipped with tiny scale micro controllers, which are limited in their available resources and do not feature secure mechanisms to isolate system resources. Hence, a single error in a local software component is not limited to the component itself, instead the complete system may be influenced. The lack of resource isolation makes tiny scale systems prone for accidental errors but in particular vulnerable for a broad variety of malicious software. For a safe and secure operation of computer systems it is strongly recommended that software components are isolated in such a manner that they have access only to those resources, which are assigned to them. Even though a substantial number of approaches in the con- text of embedded system’s safety were investigated during the last fifteen years, security was mostly neglected. This thesis is focused on security aspects where malicious software wittingly tries to bypass available protection mechanisms. The thesis introduces a security platform for tiny scale systems that enforces an isolation of software components considering security aspects. Due to the limited resources of tiny scale systems the proposed solution is based on a co-design process that takes the static and predefined nature of deeply em- bedded systems into account and includes hardware, compile-time, and run-time partitions to reduce the number of additional run-time components, to avoid performance drawbacks, and to minimize the memory as well as the components footprint overhead. To prove the applicability of the presented platform it was applied and evaluated with two real applications. In addition, an investigation of technologies of commodity computer systems that are suitable to build secure systems is presented. The thesis analyzes their enforcement based on the features provided by the introduced security platform. The contributions of this thesis include an enforcement of a security isolation of system resources on tiny scale systems and enable the development of a broad variety of secure tiny scale system applications. iii iv Zusammenfassung Mit der Einführung des Internets am Ende des letzten Jahrhunderts hat sich in der heutigen Gesellschaft ein nachhaltiger Wandel vollzogen. Computer-Systeme wurden Bestandteil in nahezu allen Bereichen unseres täglichen Lebens. Durch die zunehmende Vernetzung der Systeme sind räumliche Grenzen weitgehend verschwunden, so dass die Informationen überall und jederzeit verfügbar sind bzw. verändert werden können. Diese erhöhte Konnek- tivität bedingt jedoch, dass der Schutz der Computer-Systeme durch physische Maßnahmen nicht mehr gewährleistet werden kann. Während die Sicherheit von alltäglichen Computer- Systemen kontinuierlich und in nahezu gleicher Weise zu ihrer gestiegenden Konnektivität verbessert wurde, sind tief eingebettete Systeme damals wie heute meist durch physikalische Maßnahmen geschützt. Die allgegenwärtige Verfügbarkeit von eingebetteten Systemen in persönlichen als auch in kommerziellen Umgebungen macht diese Systeme jedoch in glei- cher Weise für jedermann zugänglich und macht sie damit zu einem zentralen Bestandteil der aktuellen Sicherheitsforschung. Tief eingebettete Systeme sind in der Regel mit kleinen Mikrocontrollern ausgestattet, die über begrenzte Ressourcen verfügen und keine sicheren Mechanismen zur Trennung von Systemressourcen bereitstellen. Hierdurch ist ein einzelner Fehler in einer lokalen Softwarekomponente nicht auf diese Komponente beschränkt, son- dern beeinträchtigt nicht selten das gesamte System. Diese Schwäche macht eingebettete Systeme anfällig für zufällige Fehler, aber auch insbesondere anfällig für eine Vielzahl von bösartiger Software. Für einen stabilen und sicheren Betrieb von Computer-Systemen ist es zwingend erforderlich, dass Software-Komponenten in einer Art und Weise isoliert werden, dass sie nur Zugriff auf jene Ressourcen haben, die ihnen zugeordnet wurden. Wenngleich in den letzten fünfzehn Jahren eine beträchtliche Anzahl von Ansätzen zur Erhöhung der funktionalen Sicherheit in tief eingebetteten Systemen untersucht wurden, wurde die Sicher- heit gegenüber Angriffen Dritter weitestgehend vernachlässigt. Die hier vorliegende Arbeit konzentriert sich auf Sicherheitsaspekte zur Abwehr von bösartiger Software, die wissentlich versucht verfügbare Schutzmechanismen zu umgehen. Die Arbeit stellt eine Sicherheits- plattform für kleine tief eingebettete Systeme bereit, die eine Trennung von Softwarekom- ponenten unter Berücksichtigung von Sicherheitsaspekten erzwingt. Aufgrund der begrenz- ten Ressourcen dieser Systeme basiert die vorgeschlagene Lösung auf einem Co-Design- Prozess, der den statischen und vordefinierten Charakter von tief eingebetteten Systemen berücksichtigt. Der Prozess beinhaltet Hardware-, Compile-Zeit- und Laufzeit-Komponenten um die Zahl der zur Laufzeit notwendigen Komponenten möglichst gering zu halten. Hier- durch sollen nachteilige Einflüsse auf die Laufzeit, den Speicherplatzbedarf sowie die Größe von Hardware-Komponenten minimiert werden. Um die Verwendbarkeit der präsentierten Plattform nachzuweisen, wurden zwei reale Anwendungen auf diese portiert. Zusätzlich v wurden etablierte Technologien zum Bau von sicheren Systemen hinsichtlich ihrer Verwend- barkeit auf tief eingebetteten Systemen analysiert. Hierzu wurde deren Umsetzbarkeit unter Nutzung der durch die Sicherheitsplattform bereitgestellten Sicherheitsfunktionen untersucht. Der wesentliche Beitrag dieser Arbeit beinhaltet die Bereitstellung einer sicheren Trennung von Systemressourcen auf kleinen, tief eingebetteten Systemen, so dass eine Entwicklung einer Vielzahl von sicheren Systemanwendungen auf diesen Systemen möglich wird. vi Table of Contents 1 Introduction ........................................ 1 1.1 Theubiquitousofcyber-physicalsystems(CPSs) . 2 1.2 Contribution of this thesis . 4 1.3 Publications related to this work . 5 1.4 Structure of the thesis . 6 2 Goalsandassumptions ................................. 9 2.1 Security threats and system weaknesses . 9 2.1.1 Local attacks, software vulnerabilities . 9 2.1.1.1 Stack smashing . 10 2.1.1.2 Function pointers . 11 2.1.1.3 Return-oriented programming (ROP) attacks . 11 2.1.2 Non-localattacks............................... 11 2.1.2.1 Remote attacks . 12 2.1.2.2 Tampering attacks . 12 2.2 Thethreatmodel................................... 13 2.3 Buildingsecuresystems. 14 2.4 Systemassumptions................................. 15 2.4.1 Micro-processor architectures of tiny scale systems (TSSs) . 15 2.4.2 Soft-coreprocessor ............................. 17 2.5 Examplesoftinyscaleapplications . 18 2.5.1 Meeteringapp ................................ 18 2.5.1.1 Components, software activities and resources . 19 2.5.1.2 Interfaces and security threats . 20 2.5.2 Asecurewake-upreceiver(SWUR) . 21 2.5.2.1 Security module of a secure wake-up receiver (SWUR) . 22 2.5.2.2 Security threats . 23 vii 3 Theartofresourceisolation ............................ 25 3.1 Accesscontrol .................................... 25 3.1.1 Accessmatrix ................................ 26 3.1.1.1 Access control lists (ACLs) . 27 3.1.1.2 Capabilities . 27 3.1.2 Basicmodelsofaccesscontrol . 28 3.1.2.1 Discretionary access control (DAC) . 28 3.1.2.2 Mandatory access control (MAC) . 28 3.1.2.3 Role-basedaccesscontrol(RBAC) . 29 3.1.2.4 RBACinwirelesssensornetworks. 30 3.2 Memoryseparationschemes . 30 3.2.1 Messagesystems .............................. 31 3.2.1.1 Messages ............................. 31 3.2.1.2 Marshalling............................. 31 3.2.2 General-purposememorymanagement . 32 3.2.2.1 Protection rings . 33 3.2.2.2 Segmentation . 34 3.2.2.3 Paging ............................... 34 3.2.3 Capability-based computer systems . 36 3.2.4 Memory protection units . 37 3.2.4.1 Infineonembeddedprocessors. 38 3.2.4.2 Texas Instruments MSP430 . 38 3.2.4.3 Lopriore memory protection unit (MPU) . 39 3.2.4.4 Mondriaan memory protection (MMP) . 39 3.2.4.5 Micro memory protection unit (UMPU) . 40 3.2.4.6 Sancus..............................