Verbundprojekt: Effektives Testen von Cyber-physikalischen Systemen - CPSec; Teilvorhaben: Effektives Testen von IoT Systemen
Date
Authors
Volume
Issue
Journal
Series Titel
Book Title
Publisher
Link to publishers version
Abstract
Ziel des CPSec-Projektes (Effektives Testen von Cyber-physikalischen Systemen) war es, die IT-Sicherheit von eingebetteten Systemen auf allen Systemschichten nachhaltig und signifikant zu steigern. Hierzu setzte das Projekt auf die Entwicklung und Anwendung neuartiger Verfahren im Bereich des Software-Testens mit spezifischem Fokus auf Fuzz-Testings (kurz: Fuzzing), einer Technik, bei der Komponenten mit einer Vielzahl von Eingaben vollautomatisch auf Fehler und Sicherheitslücken getestet werden. Die Sicherheitsprüfung von Software im Kontext von eingebetteten und IoT-Systemen (IoT = „Internet of Things“ = „Internet der Dinge“) stellt mehrere offene Herausforderungen dar. Die aktuellen Fuzzing-Analysewerkzeuge basieren auf Annahmen, die meist für klassische IT-Systeme gelten, aber nicht zu en Anforderungen und Einschränkungen in eingebetten Systemen passen:
- Herkömmliche Fuzzer gehen davon aus, dass es eine System-Eingabe gibt, die sich durch eine Folge von Daten darstellen lässt – also etwa ein Dateiinhalt. Die Kommunikation mit und zwischen eingebetteten Systemen (z. B. einem Motorsteuergerät und Peripheriegeräten) ist jedoch weit komplexer und schließt neben gewöhnlichen Funktionsaufrufen auch Kommunikationskanäle wie geteilten Speicher (Memory-mapped I/O (MMIO)) oder komplexe, proprietäre Protokolle wie I2C und UART ein.
- Zudem bieten Cyber-physikalische Systeme nur selten vordefinierte Wege, Fehlverhalten festzustellen oder auch nur zuzuordnen.
- Vorhandene Tools konzentrieren sich auf das Testen oder Analysieren von Programmpfaden unabhängig voneinander.
- Neuere Arbeiten haben vorgeschlagen, das traditionelle emulationsbasierte Fuzzing zu erweitern, indem das Originalgerät nur dann verwendet wird, wenn die Firmware auf die Hardware zugreift.
- Der Testprozess der Schnittstellen zwischen eng miteinander verwobenen externen webbasierten Anwendungen und CPS sollte so optimiert werden, dass der Testprozess von einem manuellen, aufwändigen Prozess in einen toolgestützten Prozess umgewandelt wird.
