Software für sicheres Fliegen
Das Flugzeug ist nach dem Schiff das sicherste Verkehrsmittel, gemessen an der Zahl der Todesopfer pro zurückgelegten Kilometer. Doch die Europäische Union möchte das Risiko von Abstürzen und Unfällen auf null senken. Forschende des Instituts für Wirtschaftsinformatik der FHNW entwickeln deshalb automatisierte Methoden, mit denen sich Schwachstellen in der Computersoftware von Flugzeugen aufspüren lassen.
Während beim Motorradfahren statistisch rund 50 Menschen pro Milliarde gefahrener Kilometer sterben, sind es beim Fliegen «nur» 0.003 Todesopfer auf einer gleich langen Gesamtstrecke. Doch auf dieser Sicherheitsbilanz des Flugverkehrs will sich die Europäische Union (EU) nicht ausruhen, zumal neue Herausforderungen hinzukommen: So verändert der Klimawandel die Unwetter-Risiken. Ausserdem bergen klimafreundliche Antriebssysteme, zum Beispiel mit Batterien, andere mögliche Gefahren als die etablierte Technik. Seit Anfang 2023 fördert die EU daher im Projekt ALBATROS ein grosses Konsortium aus Flugzeugherstellern, Flughafenbetreibern, Fluggesellschaften und Forschungseinrichtungen. Die 20 Partner des Konsortiums, darunter die Fachhochschule Nordwestschweiz FHNW, wollen die Luftfahrt künftig noch sicherer machen.
Das Ziel: Garantierte Cybersicherheit
Ein Sicherheitsrisiko ergibt sich daraus, dass heutige Passagierflugzeuge längst fliegende Computer sind. «Digitale Systeme können angegriffen werden, das gilt auch für Flugzeuge», sagt der Computerwissenschaftler Christopher Scherb von der Hochschule für Wirtschaft FHNW. Dabei gehen Hacker immer raffinierter gegen Computersysteme vor. «Die Sicherheitsanforderungen an Software, die im Flugbetrieb eingesetzt wird, sind natürlich besonders hoch», so Scherb.
«In unserem ALBATROS-Teilprojekt entwickeln wir deshalb Methoden, mit denen sich die Sicherheit der Flugzeugsoftware nicht nur überprüfen, sondern auch eindeutig nachweisen lässt.» Dabei geht es insbesondere um die Software für den Flugcontroller, also für die Steuerung des Flugzeugs. Das Team um Scherb vom Kompetenzzentrum Digital Trust des Instituts für Wirtschaftsinformatik arbeitet dabei eng mit dem Flugzeughersteller Airbus zusammen.
Einfallstor egal
Jeder Cyberangriff braucht Wege, um Schadsoftware einzuschleusen. Flugzeuge sind von möglichen Angriffspunkten weitgehend abgeschottet: Beispielsweise ist die Flugcontroller-Software nicht mit dem Internet verbunden. «Die Crew im Cockpit lädt jedoch vor dem Flug die Flugdaten für den Autopiloten hoch. Sie bringt also Daten von aussen mit ins Flugzeug – vielleicht ein mögliches Einfallstor für Schadsoftware», weiss Scherb. Für ihn und sein Team ist es aber zweitrangig, auf welche Weise ein Angreifer versucht, in die Steuerung einzugreifen. «Wir wollen zeigen, dass die Steuerungssoftware keine Schwachstelle hat, unabhängig davon, ob ein Angreifer diese Sicherheitslücke ausnutzen könnte», erklärt er.
Rechenzeit-Explosion
In der Informatik gibt es bereits bewährte Methoden, um das Verhalten von Computerprogrammen zu testen und Schwachstellen aufzudecken. Die am weitesten verbreitete, das sogenannte Fuzzing, beschreibt Scherb so: «Man erzeugt Eingabedaten, die den korrekten Eingabedaten ähneln, aber fehlerhaft sind, und überprüft dann, wie das Programm darauf reagiert.» Dieser Ansatz ähnelt dem, wenn ein Benutzer wahllos im Programm herumklickt, um zu sehen, ob es abstürzt. «Fuzzing beruht sehr auf Zufall, daher liefert es trotz seiner Verbreitung keine formale Sicherheitsgarantie», so Scherb.
Das FHNW-Team setzt dagegen auf ein Verfahren namens Symbolic Execution. Diese Methode funktioniert zwar gut bei kleinen Programmen, ist aber für Flugsoftware und andere komplexere Programme noch nicht geeignet: Selbst mit der Rechenleistung eines Supercomputers dauert es noch viel zu lange, bis sie ein Ergebnis liefert. Denn sie verfolgt alle möglichen Pfade, die aus den Eingabedaten resultieren. Mit zunehmender Komplexität des Problems steigt die Anzahl dieser Pfade exponentiell an: Wenn sich beispielsweise die Grösse des Problems verdoppelt, vervierfacht sich die Laufzeit für die Analyse. Und wenn sich die Grösse des Problems vervierfacht, verlängert sich die Laufzeit bis zum Ergebnis bereits um das 256-Fache.
Ein erster Lösungsansatz
Seit Beginn des Projekts hat das FHNW-Team bereits erfolgreich Flugsoftware in kleine Teilprogramme zerlegt und sie dann mit der Symbolic-Execution-Methode geprüft. Diese getesteten Teilprogramme werden später wieder zusammengefügt, um die Gesamtaufgabe auszuführen. Die Laufzeit für die Gesamtprüfung lässt sich mit diesem Prinzip, das in der Informatik auch als «Teile und Herrsche»-Ansatz bezeichnet wird, erheblich verkürzen. Eine Besonderheit ist, dass die Prüfung auf einer tieferen Ebene erfolgt, nämlich auf dem Binärcode, der aus Nullen und Einsen besteht. Normalerweise wird Software anhand des Quellcodes des jeweiligen Programms getestet. Doch schon bei der Übersetzung des Binärcodes – der Maschinensprache – in die Sprache des Programms können sich Fehler einschleichen.
«In den nächsten Monaten werden wir daran arbeiten, unsere Methode noch effizienter zu machen, indem wir alles aus der Symbolic-Execution-Prüfung entfernen, was nicht für die Sicherheit relevant ist», sagt Scherb. Am Ende des Projekts, das bis Anfang 2027 von der EU gefördert wird, steht im Idealfall ein Computerprogramm, das mithilfe der Symbolic-Execution-Methode Flugzeug-Software mit höchster Zuverlässigkeit prüft.