Innovative Sicherheitsösungen
Wie Fraunhofer IESE und die Robert Bosch GmbH komplexe sicherheitskritischer Anwendungen unter Verwendung von Linux als Betriebssystemplattform automatisiert testbar machen.

Letzte Änderung:
Wie Fraunhofer IESE und die Robert Bosch GmbH komplexe sicherheitskritischer Anwendungen unter Verwendung von Linux als Betriebssystemplattform automatisiert testbar machen.
Letzte Änderung:
Um was es geht:
Das Fraunhofer IESE unterstützt Bosch bei der Entwicklung eines Ansatzes für das Testen sicherheitskritischer Anwendungen
Die Herausforderung:
Bewertung der Auswirkungen von Fehlern innerhalb des Betriebssystems oder der Hardwareplattform auf sicherheitskritische Anwendungen unter Linux.
Die Unterstützung:
Fraunhofer IESE unterstützt Bosch bei Entwurf, Architektur und Entwicklung eines Frameworks für die Fehlerinjektion sicherheitskritischer Anwendungen unter Linux
Das Ergebnis:
Chaos-Engineering basiertes Test-Framework für sicherheitskritische Anwendungen unter Linux
Ihr Nutzen:
Das Fraunhofer IESE ist ihr kompetenter Partner für Entwicklung innovativer Safety Lösungen
In bestimmten Branchen, wie der Automobilindustrie, ist die Sicherheit der eingesetzten Software von größter Bedeutung und oft mit hohen Kosten verbunden. Ein Ansatz zur Reduzierung der Entwicklungskosten für Software besteht darin, Linux als Betriebssystemplattform zu verwenden. Der Einsatz von Linux erlaubt ebenso die Verwendung von Virtualisierungslösungen wie Docker. Diese ermöglichen es, mehrere Applikationen auf einer Rechenplattform zu betreiben und deren Kontexte voneinander zu isolieren. Ein weiterer Vorteil von Linux als Plattform besteht in der Möglichkeit der Verwendung von bereits existierenden Open-Source-Anwendungen als Basis für eigene Entwicklungen und Erweiterungen.
Trotz der Möglichkeit, den Sourcecode von Linux (Kernel sowie Laufzeitbibliotheken) einzusehen, auf Fehler zu analysieren und diese zu beheben, ist eine detaillierte Analyse aufgrund des Umfangs sehr schwierig. Dies gilt insbesondere für Fehler und deren Auswirkungen auf das Verhalten und die Ausgaben sicherheitskritischer Applikationen, die auf Fehler innerhalb der Hardware oder des Betriebssystems (z.B. des Kernels) zurückzuführen sind. Aufgrund des Umfangs wird eine effiziente und automatisierte Methodik zur Identifikation möglicher kritischer Fehler der Rechenplattform in Bezug auf die sicherheitskritische Anwendung benötigt. Diese identifizierten Fehler gilt es systematisch zu erfassen und die sicherheitskritische Anwendung entsprechend abzusichern bzw. zusätzliche Sicherheitsmechanismen aufzuplanen und zu integrieren. Die nachfolgende Grafik illustriert die Komponenten des entwickelten Frameworks und deren Zusammenwirken. In der Darstellung repräsentiert die „Application under Test“ die abzusichernde sicherheitskritische Anwendung, die in diesem Fall innerhalb einer virtuellen Umgebung mit Linux als Betriebssystem läuft.
Software, die von Open-Source-Communities entwickelt wird, ist eine beliebte Alternative zu selbst entwickelten Lösungen. Der Einsatz spart nicht nur Kosten im Vergleich zu einer eigenen Entwicklung, sondern ermöglicht auch kürzere Update-Intervalle, in denen Fehler behoben oder neue Funktionen hinzugefügt werden. Trotz der häufig großen Community sind die meisten Anwendungen nur auf die korrekte Ausführung der Funktionalität hin getestet worden. Ein Einsatz der Anwendung in einem sicherheitskritischen Kontext ist in der Regel kein Bestandteil der Entwicklung klassischer Open-Source-Applikationen. Insbesondere wird der Aspekt, dass die Funktionalität und Robustheit einer Anwendung auch durch Hardware- oder Betriebssystemfehler eingeschränkt sein kann, nicht oder nicht ausreichend adressiert.
Die Herausforderungen im Projekt bestanden darin, eine Möglichkeit zu schaffen, (virtualisierte) Anwendungen nicht nur auf ihre Funktionalität zu testen, sondern auch die Auswirkungen von Fehlern an der Schnittstelle zwischen Anwendung und Betriebssystem zu testen und im Anschluss eine Analyse zu ermöglichen.
Das Fraunhofer IESE unterstützte die Robert Bosch GmbH mit seiner Erfahrung in der Validierung und Entwicklung von Applikationen, um ein Framework zu schaffen, das durch Fehlerinjektion sicherheitskritische Anwendungen semiautomatisch testet und eine anschließende Analyse ermöglicht. Zunächst wurden die Anforderungen zusammen mit Bosch analysiert und priorisiert. Danach wurde der Stand der Technik sowie die bestehenden Best Practices im Bereich Chaos Engineering evaluiert und ein zugeschnittenes Konzept für das Test-Framework erstellt. Das entwickelte Framework erlaubt die automatisierte Ausführung einer Testsequenz, bei der das Verhalten der Applikationsläufe aufgezeichnet und eine automatisierte Detektion von Abweichungen durchgeführt wird.
Basierend auf den analysierten Anforderungen wurde das Test-Framework durch das Fraunhofer IESE realisiert, wobei ein hoher Grad an Konfigurierbarkeit angestrebt wurde, um das Framework so generisch wie möglich zu gestalten und unterschiedliche Applikationstypen in Bezug auf Tests zu unterstützen. Gleichzeitig wurde die Architektur offen und modular gestaltet, um eine leichte Erweiterbarkeit der Funktionalität zu gewährleisten. Die Testergebnisse können in verschiedenen Formaten bereitgestellt werden, um eine detaillierte Analyse zu ermöglichen. Darüber hinaus können die Ergebnisse der Testläufe so analysiert werden, dass das erfasste fehlerhafte Verhalten der Applikation entsprechend der Fehlerursache klassifiziert werden kann. Das entwickelte Test-Framework wurde anhand einer Beispielapplikation zusammen mit der Robert Bosch GmbH evaluiert.
Das sagt Peter Schneider, Projektleiter der zentralen Forschung der Robert Bosch GmbH:
Das Ergebnis dieser Zusammenarbeit ist ein Test-Framework für sicherheitskritische (sowie optional virtualisierte) Anwendungen, welches es einem Tester ermöglicht, automatisiert eine Vielzahl von Testläufen mit unterschiedlichen Fehlerinjektionen durchzuführen. Die automatische Klassifikation von Verhaltensabweichungen der Anwendung gestattet eine effiziente Identifikation relevanter Fehler und reduziert die Anzahl von Tests, die einer manuellen Sicherheitsanalyse unterzogen werden müssen.