Computer und Kommunikation / Archiv /

 

Rolle rückwärts

"Reverse Engineering" deckt Schwachstellen in der Softwarentwicklung auf

Von Holger Bruns

Rainer Koschke untersucht Software-Kode mit Reverse Engineering.
Rainer Koschke untersucht Software-Kode mit Reverse Engineering. (uni-bremen.de)

<strong>Rekompilieren, so steht es auf allen Lizenzverträgen für Software, ist untersagt. Denn die Analyse der Software lässt Rückschlüsse auf die Kniffe der Hersteller zu. Andererseits lassen sich so auch Programmierfehler aufspüren und beseitigen.</strong>

Moderne Softwaresysteme sind meist komplexe Produkte. Gerne schleichen sich hier Fehler ein, die so genannten Bugs. Diese Bugs führen oft zu unerwünschten Programmeigenschaften und manchmal sogar zu Rechnerabstürzen mit spektakulären Folgen. Man denke beispielsweise an den Erstflug der Ariane 5, die vor ziemlich genau zehn Jahren in der Luft explodierte, weil die Software des Bordcomputers der Trägerrakete kläglich versagte. Bis heute bleibt die Forderung nach zuverlässigen Softwaresystemen ein wichtiges Thema in der Informatik, sagt der Softwaretechniker Professor Rainer Koschke von der Universität Bremen.

"Also einerseits gibt es statische Methoden. Man kann also das Programm, ohne es auszuführen, analysieren, oder eben das Ganze dynamisch machen. Dynamisch heißt, wir protokollieren mit, welche Objekte im Programm herumlaufen und was für Operationen darauf jeweils angewandt werden."

Die Analyse existierender Software ist meist aufwändig und verursacht hohe Kosten. Rainer Koschke will maschinell unterstützt verstehen, wie ein zu untersuchendes Softwaresystem funktioniert, um auf diese Weise auch die enthaltenen Fehler zu finden. Der Debugger, ein Tool zur schrittweisen Ausführung eines Programms, ist hier zwar ein gängiges Entwicklungswerkzeug, aber eines, das in der Regel nicht den Überblick über das gesamte Konzept eines komplexen Softwaresystems liefert. Das Team von Rainer Koschke geht deshalb einen anderen Weg. Ihr Analysewerkzeug protokolliert das Verhalten von Objekten innerhalb einer Software. Wie werden Variablen benutzt? Welche Operationen werden auf welchen Modulen ausgeführt? Am Ende steht eine grafische Darstellung des Innenlebens einer Software, die eine sehr fundierte Fehleranalyse zulässt.

"Die Erfahrung zeigt, wenn man also zu Softwarefirmen geht, dass sie in der Regel wenig Dokumentation haben, beziehungsweise die Dokumentation, die sie haben, obsolet ist. Und dann steht ein neuer Programmierer, der neu ins Projekt kommt, vor dem Problem, dass er gar nicht weiss, wie er die Komponente zu benutzen hat. Und es gibt Statistiken, die zeigen, dass die Programmierer zu fünfzig Prozent mit ihrer Zeit einfach nur dasitzen und versuchen, dass Programmm überhaupt erst zu verstehen, bevor sie tatsächlich eine Änderung machen. Und die Zeit wollen wir eben verkürzen mit diesen Analysen."

Im Kern geht es also um Reverse Engineering und damit um die Frage, welche Algorithmen in welcher Weise in einer Software verwendet werden. Softwarehersteller verbieten dies ihren Kunden zwar meist ausdrücklich, um ihr Knowhow zu schützen, aber es gibt Ausnahmen; dann nämlich, wenn einem der Quellkode sowieso selbst gehört, oder wenn die Schnittstellen einer Softwarekomponente offen gelegt werden sollen, damit sich diese Komponente innerhalb einer Organisation auch benutzen lässt. Die daraus hergeleitete Re-Dokumentation gibt den Programmierern eines Softwaresystems sogar oft erst die Möglichkeit, ihr Produkt wenigstens zu warten. Rainer Koschke:

"Bauhaus ist der Name für das Forschungsprojekt. Und die Idee "form follows function" von Bauhaus ist genau das, was wir als Maxime in der Softwaretechnik auch verfolgen."

Eine Maxime, die auf der Hand liegt, denn natürlich beschreibt der Kode einer Software genau, was ein System tun soll. Die präzise Ergründung dessen, was der Kode eigentlich beschreibt, versetzt den Programmierer in die Lage, nicht mehr blind ein paar Änderungen zu probieren, die dann plötzlich irgendwie magisch doch zu funktionieren scheinen. Rainer Koschke glaubt jedenfalls, dass wir in Zukunft ganz allgemein mit wesentlich stabilerer Software zu rechnen haben, und an dieser Entwicklung haben seine Werkzeuge zum Verstehen von Software einen sichtbaren Anteil.

"Wenn es uns gelingt, die Kosten zu reduzieren, und genau das ist unser Ziel, wird die Software erstens billiger. Zweitens, unsere Analysen decken Fehler auf, so dass auch das einen Vorteil hat im Bezug auf Qualität. Die Software sollte dann langfristig auch weniger Fehler enthalten."



Mehr bei deutschlandradio.de

Beitrag hören

 
 
Dradio Audio
Kein Audio aktiv
 
 
 
 
 

Für dieses Element wird eine aktuelle Version des Flash Players benötigt.

Computer und Kommunikation

Smartphones Hybride Netze für permanentes mobiles Internet

Zwei Hände tippen auf einem Smartphone

Laut einer Studie wird sich der Internet-Datenverkehr in deutschen Mobilfunknetzen bis zum Jahr 2018 verzehnfachen. Für eine weniger ansteigende Belastung könnte eine Umleitung des digitalen Aufkommens sorgen. Ein Ansatz ist der sogenannte Traffic Offload. Dabei wird Datenverkehr vom Mobilfunknetz in ein drahtloses LAN abgeleitet.

Hybride Funknetze Die Perspektiven von Voice over LTE und WiFi

Displays zum Selberdrucken "Sie können im Prinzip jedes Material nehmen"