John Deere

Secure Software Engineering für eingebettete Systeme

Heutige Nutzfahrzeuge verfügen über einen nicht unerheblichen Anteil an Software. Dies beinhaltet zum Beispiel hochintelligente Motorsteuerungen, welche die aktuelle Arbeitssituation miteinbeziehen und den Schadstoffausstoß in Verhältnis zur benötigten Leistung stellen, um umweltschonende Arbeitsprozesse zu ermöglichen. Komfortfunktionen setzen auf ein intelligentes Zusammenspiel mehrerer vernetzter Komponenten innerhalb des Fahrzeugs, um bestmögliche Ergebnisse zu erzielen. Weiterhin ist die zunehmende Vernetzung Fahrzeug-zu-Fahrzeug, aber auch Fahrzeug-zu-Infrastruktur zu nennen, die einen immer wichtigeren Stellenwert einnimmt (z. B. beim Flottenmanagement).

Die heutzutage zur Verfügung stehenden Kommunikationseigenschaften erlauben es Herstellern, ihren Anwendern vielfältige Dienste und Dienstleistungen zur Nutzung anzubieten. Dies ermöglicht zum Beispiel die Diagnose und Wartung aus der Ferne. Zudem können Eigenschaften und Merkmale moderner Nutzfahrzeuge softwaretechnisch realisiert werden, ohne dass physischer Zugriff auf das System erforderlich ist. Somit werden Fahrzeuge immer stärker zu vernetzten Systemen, die auch das Interesse von Hackern wecken können.

Die Überwindung von Schutzmaßnahmen zur Erschleichung von kostenpflichtigen Leistungsmerkmalen, Diensten und Dienstleistungen kann ein lohnenswertes Ziel sein. Von dubiosen Anbietern kann das Überwinden von Schutzmaßnahmen sogar systematisch vermarktet werden, zum Schaden der Hersteller und autorisierten Diensterbringer. Weitere Begehrlichkeiten wecken schützenswerte Daten, die unter Umständen zwischen den Fahrzeugen und der Infrastruktur ausgetauscht werden.

In einem Projekt mit John Deere aus dem Bereich der sicheren Softwareentwicklung hat das Fraunhofer IESE deshalb in einem ersten Schritt anhand einer umfassenden Recherche Gefahrenpotenziale für moderne Nutzfahrzeuge ermittelt. Die Ergebnisse reichen hierbei von weltweit möglichen Angriffen aus der Ferne bis hin zu direktem physischen Zugriff auf interne Steuerungen. Die gewonnenen Erkenntnisse unterstützen den Projektpartner, aktuelle und auf Grund zukünftiger Entwicklungen absehbare Gefahrenpotenziale zu verstehen, um darauf aufbauend geeignete Gegenmaßnahmen einzuleiten.

Ergänzend dazu unterstützt das Fraunhofer IESE den Projektpartner John Deere bei der Entwicklung von Methoden und Werkzeugen zur sicheren Entwicklung von Software für eingebettete Systeme. Zur Identifikation geeigneter Sicherheitsmaßnahmen für die Entwicklung hat das Fraunhofer IESE entlang der Softwareentwicklung existierende Verfahren und Hilfsmittel erfasst und auf ihre Anwendbarkeit für eingebettete Systeme untersucht. Die Erfahrungen des Fraunhofer IESE im Bereich der sicheren Softwareentwicklung für Informationssysteme fanden hierbei Verwendung, um die dort etablierten Security-Engineering-Techniken an die Besonderheiten eingebetteter Systementwicklung anzupassen. Kundenspezifische Randbedingungen, wie zum Beispiel agile Entwicklungsmethoden, waren dabei zu berücksichtigen.

Gerade der Bereich der eingebetteten Systeme stellt das Secure Software Engineering vor neue Herausforderungen, da besondere Einschränkungen und Randbedingungen zu beachten sind. Insbesondere Anforderungen in Bezug auf Echtzeit, Zuverlässigkeit, Funktionssicherheit sowie Hardware-Beschränkungen beeinflussen maßgeblich die Freiheitsgrade bei der Auswahl und Anwendung von Qualitätssicherungsmaßnahmen für Security. Zudem sind die Auswirkungen von Sicherheitsmaßnahmen auf andere Qualitätsattribute zu berücksichtigen. Hier besteht noch erheblicher Forschungsbedarf.

Im ersten Schritt wurden vor allem Methoden und Praktiken der frühen Entwicklungsphasen der Softwareentwicklung auf ihre Anwendbarkeit im speziellen Umfeld der eingebetteten Systeme für Nutzfahrzeuge überprüft, weil hier fundamentale Entscheidungen zu treffen sind. Grundlegend ist zum Beispiel die Bedrohungsanalyse (engl. Threat Modeling), die sich im Bereich der Informationssysteme als äußerst erfolgreich erwiesen hat. Aber auch der Nutzen von verschiedenen Techniken in der Realisierungs- und Testphase wurde untersucht. Programmierstandards, statische und dynamische Quellcode-Analysen oder auch spezielle Testverfahren wie Fuzz Tests sind vielversprechende Ansätze, um die Security eingebetteter Systeme nachhaltig zu verbessern.