TU Darmstadt / ULB / TUbiblio

Robustness Evaluation of Operating Systems

Johansson, Andréas (2008)
Robustness Evaluation of Operating Systems.
Technische Universität Darmstadt
Dissertation, Erstveröffentlichung

Kurzbeschreibung (Abstract)

The premise behind this thesis is the observation that Operating Systems (OS), being the foundation behind operations of computing systems, are complex entities and also subject to failures. Consequently, when they do fail, the impact is the loss of system service and the applications running thereon. While a multitude of sources for OS failures exist, device drivers are often identified as a prominent cause behind failures. In order to characterize the impact of driver failures, at both the OS and application levels, this thesis develops a framework for error propagation-based robustness profiling for an OS. The framework is first developed conceptually and then experimentally validated on a real OS, namely Windows CE .Net. The choice of Windows CE .Net is driven by its representativeness for a multitude of OSs, as well as the ability to customize the OS components for particular needs. For experimental validation, fault injection is a prominent technique that can be used to simulate faults (or errors) in the system by inserting synthetic ones and study their effect. Three key questions with such a technique are where, what and when to inject faults. This thesis shows how injecting errors at the interface between drivers and the OS can be very effective in evaluating the effects driver faults can have. To quantify the OS's robustness, this thesis defines a series of error propagation measures, specifically tailored for device drivers. These measures allow for quantifying and comparing both individual services and device drivers on their susceptibility and diffusing abilities. This thesis compares three contemporary error models on their suitability for robustness evaluation. The classical bit-flip model is found to identify a higher number of severe failures in the system. It also identifies failures for more services than both other models, data type and fuzzing. However, its main drawback is that it requires substantially more injections than the other two. Fuzzing, even though not giving rise to as many failures is able to find new additional services with severe failures. A careful study of the injections performed with the bit-flip model shows that only a few bits are generally useful for identifying new services with robustness weaknesses. Consequently, a new composite model is proposed, combining the most effective bits of the bit-flip model with the fuzzing model's ability to identify new services, giving rise to new model without loss of important information and at the same time incurring a moderate number of injections. To answer the question of when to inject an error this thesis proposes a novel model of a driver's usage profile, focusing on high-level operations being carried out. It guides the injection of errors to instances when the driver is carrying out specific operations. Results from extensive fault-injection experiments show that more service vulnerabilities can be discovered. Furthermore, a priori profiling of the drivers can show how effective the proposed approach will be.

Typ des Eintrags: Dissertation
Erschienen: 2008
Autor(en): Johansson, Andréas
Art des Eintrags: Erstveröffentlichung
Titel: Robustness Evaluation of Operating Systems
Sprache: Englisch
Referenten: Fetzer, Prof. Ph.D Christof
Berater: Suri, Prof. Ph.D Neeraj
Publikationsjahr: 19 Februar 2008
Ort: Darmstadt
Verlag: Technische Universität
Datum der mündlichen Prüfung: 14 Januar 2008
URL / URN: urn:nbn:de:tuda-tuprints-9431
Kurzbeschreibung (Abstract):

The premise behind this thesis is the observation that Operating Systems (OS), being the foundation behind operations of computing systems, are complex entities and also subject to failures. Consequently, when they do fail, the impact is the loss of system service and the applications running thereon. While a multitude of sources for OS failures exist, device drivers are often identified as a prominent cause behind failures. In order to characterize the impact of driver failures, at both the OS and application levels, this thesis develops a framework for error propagation-based robustness profiling for an OS. The framework is first developed conceptually and then experimentally validated on a real OS, namely Windows CE .Net. The choice of Windows CE .Net is driven by its representativeness for a multitude of OSs, as well as the ability to customize the OS components for particular needs. For experimental validation, fault injection is a prominent technique that can be used to simulate faults (or errors) in the system by inserting synthetic ones and study their effect. Three key questions with such a technique are where, what and when to inject faults. This thesis shows how injecting errors at the interface between drivers and the OS can be very effective in evaluating the effects driver faults can have. To quantify the OS's robustness, this thesis defines a series of error propagation measures, specifically tailored for device drivers. These measures allow for quantifying and comparing both individual services and device drivers on their susceptibility and diffusing abilities. This thesis compares three contemporary error models on their suitability for robustness evaluation. The classical bit-flip model is found to identify a higher number of severe failures in the system. It also identifies failures for more services than both other models, data type and fuzzing. However, its main drawback is that it requires substantially more injections than the other two. Fuzzing, even though not giving rise to as many failures is able to find new additional services with severe failures. A careful study of the injections performed with the bit-flip model shows that only a few bits are generally useful for identifying new services with robustness weaknesses. Consequently, a new composite model is proposed, combining the most effective bits of the bit-flip model with the fuzzing model's ability to identify new services, giving rise to new model without loss of important information and at the same time incurring a moderate number of injections. To answer the question of when to inject an error this thesis proposes a novel model of a driver's usage profile, focusing on high-level operations being carried out. It guides the injection of errors to instances when the driver is carrying out specific operations. Results from extensive fault-injection experiments show that more service vulnerabilities can be discovered. Furthermore, a priori profiling of the drivers can show how effective the proposed approach will be.

Alternatives oder übersetztes Abstract:
Alternatives AbstractSprache

Der Hintergrund dieser Dissertation beruht auf der Beobachtung, dass das Betriebssystem, welches die Grundlage für den Betrieb von Rechnersystemen darstellt, eine sehr komplexe Struktur aufweist, was häufig zu Fehlern im Betriebssystem führen kann. Wenn diese betriebssysteminternen Fehler Ausfälle von Diensten zur Folge haben, sind auch die im Rahmen des Betriebssystems laufenden Applikationen gefährdet. Auch wenn es im allgemeinen viele Fehlerquellen gibt, werden oft fehlerhafte Treiber als die häufigste Ursache angegeben. Um die Auswirkungen von Treiberdefekten auf der Betriebssystem- und Applikationsebene zu charakterisieren, wird in dieser Dissertation ein auf der Ausbreitung von Fehlern basierendes Framework für Robustheitsauswertung entwickelt. Das Framework wird sowohl konzeptionell entwickelt als auch auf einem echten Betriebssystem experimentell validiert. Das gewählte Betriebssystem, Windows CE .Net, ist repräsentativ für viele andere Betriebssysteme. Es ist modular aufgebaut, was die Anpassung der Betriebssystemkomponenten an verschiedene Bedürfnisse erheblich vereinfacht. Fehlerinjektion ist eine bedeutende Technik für die experimentelle Validierung, wobei Fehler simuliert werden indem man sie in das System injiziert und ihre Folgen beobachtet. Drei wichtige Aspekte, die hierbei berücksichtigt werden müssen, sind: Welche Fehler sollen wo und wann injiziert werden. In dieser Dissertation wird gezeigt, dass Fehlerinjektion in die Schnittstelle zwischen dem Betriebssystem und den Treibern eine effektive Vorgehensweise darstellt, die Folgen von Treiberfehlern abzuschätzen. Um die Robustheit eines Betriebssystems zu quantifizieren, werden eine Reihe von Fehlerausbreitungsmetriken definiert, die speziell auf Treiberfehler zugeschnitten sind. Anhand dieser Metriken können Dienste und Treiber hinsichtlich Empfindlichkeit und Ausbreitungsvermögen verglichen werden. Diese Dissertation vergleicht drei Fehlermodelle in Bezug auf ihre Tauglichkeit zur Robustheitsbewertung. Das klassische Bit-Flip-Modell ermittelt am häufigsten schwere Ausfälle im System. Mehr als die beiden anderen Modelle, Data Type und Fuzzing, ermittelt dieses Modell auch die meisten Dienste, die zu Ausfällen führen könnten. Der grösste Nachteil dieses Modells ist allerdings, dass es sehr viele Injektionen erfordert. Fuzzing ermittelt weniger Dienste, dafür aber neue fehlerhafte, von Bit-Flip nicht erkannte Dienste. Eine sorgfältige Untersuchung der Ergebnisse des Bit-Flip-Modells zeigt, dass schon eine Teilmenge der Bits ausreichend ist, um neue Dienste, die zu Robustheitsausfällen führen, zu ermitteln. Daraufhin wird ein neues, zusammengesetztes Modell vorgeschlagen, das die guten Eigenschaften des Bit-Flip-Modells und das Vermögen des Fuzzing-Modells neue Dienste zu identifizieren miteinander kombiniert. Das neue Modell verliert keine wichtige Information, und erfordert insgesamt deutlich weniger Injektionen. Um die Frage zu beantworten wann es sinnvoll ist Fehler zu injizieren, wird ein neues, an das Benutzerprofil des Treibers angelehntes Timingmodell vorgeschlagen. Das neue Modell basiert auf der Ausführung von Befehlen in einer höheren Schicht. Bestimmte Fehlerinjektionen werden zum Zeitpunkt der Ausführung bestimmter Befehle getätigt. Die Ergebnisse der Fehlerinjektionen zeigen, dass ein Vielfaches an störungsanfälligen Diensten gefunden werden kann. Auflerdem gibt das Benutzerprofil des Treibers im Voraus Aufschluss über die Effektivität der neuen Methode.

Deutsch
Freie Schlagworte: Propagierung
Schlagworte:
Einzelne SchlagworteSprache
Fault Injection, Injection Trigger, Operating System, RobustnessEnglisch
Sachgruppe der Dewey Dezimalklassifikatin (DDC): 000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
Fachbereich(e)/-gebiet(e): 20 Fachbereich Informatik
Hinterlegungsdatum: 17 Okt 2008 09:22
Letzte Änderung: 26 Aug 2018 21:25
PPN:
Referenten: Fetzer, Prof. Ph.D Christof
Datum der mündlichen Prüfung / Verteidigung / mdl. Prüfung: 14 Januar 2008
Schlagworte:
Einzelne SchlagworteSprache
Fault Injection, Injection Trigger, Operating System, RobustnessEnglisch
Export:
Suche nach Titel in: TUfind oder in Google
Frage zum Eintrag Frage zum Eintrag

Optionen (nur für Redakteure)
Redaktionelle Details anzeigen Redaktionelle Details anzeigen