Hardware/Software Cross-Layer Fehleranalyse für den Entwurf sicherer eingebetteter Systeme
Sicherheit und Verlässlichkeit, Betriebs-, Kommunikations- und verteilte Systeme
Zusammenfassung der Projektergebnisse
Eingebettete Systeme kommen heute zunehmend in sicherheitskritischen Anwendungen zum Einsatz. Autonomes Fahren ist hierfür ein prominentes Beispiel. Die Anforderungen an die funktionale Sicherheit eines Systems rücken daher in den Mittelpunkt des industriellen Interesses und bestimmen nicht selten den „ökonomischen Betriebspunkt“ einer neuen Technologie. Die Situation wird durch neue mikroelektronische Fertigungstechniken verschärft, aus der Hardwarekomponenten mit einer deutlich höheren Fehleranfälligkeit hervorgehen, als dies bislang der Fall war. Um dennoch eine hohe Zuverlässigkeit der Systeme zu gewährleisten, werden neue Methoden zum Schutz gegen Fehler benötigt. Jeder Versuch, alle Fehler in allen theoretisch denkbaren Szenarien abzudecken, in denen das System möglicherweise verwendet wird, kann jedoch leicht zu exzessiven Kosten führen. Es besteht daher Konsens in der Test-Community, dass neue, anwendungsspezifische Ansätze benötigt werden, um diesen Herausforderungen zu begegnen. Dies bedeutet, dass Strategien für Test und Fehlertoleranz nur diejenigen Fehler ins Auge fassen sollten, die eine Auswirkung in der Anwendung haben können, in der das System tatsächlich verwendet wird. Diese Anwendung wird durch die Software definiert. Dieses Projekt verfolgte das Ziel, eine HW/SW-Cross-Layer-Analyse zu erforschen, die den Effekt von Hardwarefehlern auf der Softwareebene bestimmt. Methoden wurden erforscht, wie durch eine formale Analyse die Propagation von Hardwarefehlern unter allen möglichen Programmläufen erfasst werden kann. Insbesondere war es ein Ziel unserer Forschung, Techniken bereitzustellen, mit deren Hilfe festgestellt werden kann, welche Fehler überhaupt keinen Effekt auf die Ausführung der Software oder ausgewählte, sicherheitskritische Komponenten der Software haben. Darüber hinaus soll der entwickelte Ansatz es erlauben, Fehler bezüglich ihrer Auswirkungen zu klassifizieren. Beispielsweise können Fehler identifiziert werden, die zwar die Daten eines Programms verfälschen können, aber niemals zu einer Veränderung des Kontrollflusses führen. Der erarbeitete Ansatz gibt nicht nur Hinweise, welche Fehler besonders kritisch sind. Im Unterschied zu bisherigen simulationsbasierten Ansätzen kann durch den Einsatz formaler Techniken zertifiziert werden, dass bestimmte Fehler das Systemverhalten niemals beeinträchtigen, oder in ihrer Wirkung auf bestimmte Teilfunktionen garantiert beschränkt sind. Im Laufe des Projektes wurde unser Forschungsansatz erheblich über die ursprünglich geplanten Konzepte ausgedehnt. Unsere Verfahren waren ursprünglich lediglich zur Bestimmung der Effekte von Hardwarefehlern auf die unteren Softwareschichten konzipiert. Während der Projektlaufzeit entstanden in unserem Forschungsteam jedoch neue Ideen, die zur Erweiterung unseres Ansatzes um die Methoden der Abstrakten Interpretation führten. Dadurch wurde erstmals eine HW/SW-Cross-Layer-Analyse möglich, die mit wohldefinierten Abstraktionen die Fehlerinjektionen in der Hardware im Zusammenspiel mit der Anwendungssoftware auf höheren Ebenen formal analysieren kann. Die Bedeutsamkeit und Skalierbarkeit des neuen Ansatzes wurde für ein eingebettetes System mit mehr als 100.000 Zeilen C-Code erfolgreich demonstriert.
Projektbezogene Publikationen (Auswahl)
- “A HW/SW Cross-Layer Approach for Determining Application-Redundant Hardware Faults in Embedded Systems,” Journal of Electronic Testing (JETTA), vol. 33, pp. 77 – 92, Springer, 2017
C. Bartsch, C. Villarraga, D. Stoffel, and W. Kunz
(Siehe online unter https://doi.org/10.1007/s10836-017-5643-3) - “Efficient Binary-Level Coverage Analysis,” in ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering - ESEC/FSE’20, November 2020
M. A. Ben Khadra, D. Stoffel, and W. Kunz
(Siehe online unter https://doi.org/10.1145/3368089.3409694) - “Compositional Fault Propagation Analysis in Embedded Systems Using Abstract Interpretation”, IEEE International Test Conference (ITC), October 2021
Daniel Kästner, Stephan Wilhelm, Christian Bartsch, Dominik Stoffel and Wolfgang Kunz
(Siehe online unter https://doi.org/10.1109/ITC50571.2021.00057) - “Combining Fault Effect Analysis and Fault Propagation Analysis to Determine Source-Level Effects of Hardware Faults”, Embedded World Conference and Exhibition, June 2022
Christian Bartsch, Stephan Wilhelm, Daniel Kästner, Dominik Stoffel and Wolfgang Kunz
- “Generation of Formal CPU Profiles for Embedded Systems”, 30th IFIP/IEEE International Conference on Very Large Scale Integration (VLSI-SoC), Patras, Greece, 2022
Stian Sørensen, Christian Bartsch, Dominik Stoffel and Wolfgang Kunz
(Siehe online unter https://doi.org/10.1109/VLSI-SoC54400.2022.9939572)