Gaiswinkler, G. (2009). Automatisierte Softwarediversität zur Erkennung von Hardwarefehlern [Diploma Thesis, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/185655
Softwarediversität; Hardwarefehler; Erkennung; Heisenbugs; Compilerfehler; CPU Emulator
de
software diversity; hardware faults; heisenbugs; compiler faults; CPU emulator
en
Abstract:
Werden Computersysteme in sicherheitskritischen Anwendungen eingesetzt, müssen Mechanismen implementiert werden, die das Auftreten eines kritischen Ausfalls verhindern. Dieser Mechanismus kann das sicherheitskritische Computersystem in einen sicheren Zustand überführen, wenn Fehler erkannt werden. Diese Arbeit beschäftigt sich mit der Frage, ob die Methode automatisierter Softwarediversität zur Erkennung von Hardwarefehlern eingesetzt werden kann. Die Softwarediversität wird mithilfe unterschiedlicher Compiler bzw. unterschiedlicher Optimierungsstufen des Compilers erzeugt. Bei der Ausführung werden Elemente des Prozessors unterschiedlich verwendet: Die Versionen verhalten sich bei gleichen Hardwarefehlern unterschiedlich und beim Vergleich der Ergebnisse können Hardwarefehler erkannt werden. Um die Fragestellung zu bearbeiten, werden für zwei spezielle Testprogramme - mit unterschiedlichen Programmaufbau - fünf Versionen mittels automatisierter Softwarediversität erstellt und hinsichtlich der Unterschiede im Code und dem Verhalten beim Auftritt eines Registerfehlers untersucht. Zur Fehlerinjektion wird ein mit Hardwarefehlerinjektion erweiterter CPU Emulator verwendet. In der statischen Analyse des Codes konnte gezeigt werden, dass - abhängig vom Programmaufbau - Unterschiede zwischen den Versionen vorhanden sind. Diese Unterschiede im Code führen zu unterschiedlichem Verhalten. Im Zuge dieser Arbeit konnten alle injizierten Fehler erkannt werden. Es wurde gezeigt, dass automatisierte Softwarediversität zur Erkennung der untersuchten Hardwarefehler (bei der Verwendung der Testprogramme) eingesetzt werden kann. Um allgemeine Aussagen treffen zu können, müssen Tests mit weiteren Testprogrammen durchgeführt werden.
If a computer system is used in a safety-critical application, mechanisms must be implemented to prevent catastrophic failures. If a failure is being detected, such a mechanism can transfer the safety-critical system into a fail-safe state. To detect hardware faults, this thesis introduces the method of automatized software diversity: The variants of a program are produced with different compilers and/or optimization options of the compiler. The variants use hardware parts during execution in a different way. Because a hardware fault affects the variants differently, the hardware fault can be detected by comparison of the results. Two different test programs - with different structures - are analyzed within this thesis. The method of automatized software diversity is used to generate five variants for each test program. During the analysis, the differences in the code and the behavior in case of a hardware fault between the variants are examined. To produce artificial hardware faults, a CPU emulator was extended with the possibility of fault injection. The analysis shows that differences in the code between the variants are present. These differences result in a different behavior between the variants in case of a fault. Therefore all examined injected hardware faults were detected. The method of automatized software diversity is being proved that it can be used to detect the examined hardware faults (together with the test programs). To make a general statement about the method of automatized software diversity and the possibility for hardware fault detection, additional tests with different programs must be performed.
en
Additional information:
Abweichender Titel laut Übersetzung der Verfasserin/des Verfassers Zsfassung in engl. Sprache