Softwareanalyse-Tool Joana durchleuchtet Quelltext auf Sicherheitslücken

(Bild: Shutterstock/FuzzBones)

Hierfür überprüft das vom Karlsruher Institut für Technologie entwickelte Open-Source-Werkzeug sämtliche Datenkanäle einer Programms, durch die Informationen fließen können. Gleichzeitig soll es die Anzahl an Fehlalarmen reduzieren, ohne die Funktionsfähigkeit einer Software zu beeinträchtigen. Es steht ab sofort zum Download bereit.

Ein vom Karlsruher Institut für Technologie (KIT) entwickeltes Softwareanalyse-Tool namens “Joana” soll den Quellcode eines Programms auf verdächtiges Verhalten überprüfen und auf diese Weise potenzielle Sicherheitslücken aufspüren, über die vertrauliche Informationen nach außen gelangen oder durch die Dritte von außen in das System eindringen könnten.

Den Forschern zufolge reduziert das Open-Source-Werkzeug die Zahl der Fehlalarme zugleich auf ein Minimum, ohne die Funktionstüchtigkeit eines Programms zu beeinträchtigen. Künftig soll es so gängige Softwarezertifikate ergänzen und auf lange Sicht sogar ersetzen.

(Bild: Shutterstock/FuzzBones)

Hierzu sagt Gregor Snelting, der das Analysewerkzeug mit seiner Forschergruppe am KIT-Lehrstuhl Programmierparadigmen entwickelt hat: “Längerfristig könnte mit Joana geprüfte Software ein neuartiges Zertifikat erhalten, das die Sicherheit des Programmcodes bescheinigt”

Das Analyse-Tool habe sich bereits in realistischen Testszenarien bewährt. Als Nächstes ist dann eine industrielle Fallstudie vorgesehen. Zunächst sollen Softwareunternehmen ihre Produkte prüfen lassen können, bevor das Produkt offiziell auf den Markt kommt, da gegenwärtig noch Fachleute das Einrichten und Bedienen übernehmen müssten. Aus diesem Grund sei es für Privatnutzer aktuell weniger geeignet. Für interessierte Fachkundige steht es jedoch schon zum Download bereit.

Im Fokus der Wissenschaftler stehen derzeit mobile Applikationen für Android-Smartphones. Prinzipiell lassen sich mit der quelloffenen Lösung fast alle Programme testen, die in den Sprachen Java, C oder C++ geschrieben sind. Joana überprüft dabei sämtliche Datenkanäle einer Software, durch die Informationen fließen können, und findet hierdurch Sicherheitslücken, die meist auf unbeabsichtigte Programmierfehler zurückgehen.

“Wir unterscheiden zwischen öffentlich sichtbaren Kanälen, die beispielsweise die Nutzeroberfläche abbilden, und geschützten Kanälen, auf die Anwender nicht zugreifen können”, erklärt Snelting. Wo sich geheime und öffentliche Datenströme kreuzten, sei auch ein Informationsaustausch prinzipiell möglich und so bestehe die Gefahr, dass vertrauliche Informationen, wie etwa Kontonummern und Passwörter, weitergegeben würden.

Die Wissenschaftler unterscheiden generell mehrere Arten von Sicherheitslecks: Bei einem expliziten Leck etwa können direkt lesbare Kopien privater Daten nach außen gelangen, während bei einem impliziten Leck nur die Muster, nach welchen sie chiffriert sind, bekannt werden. Problematisch ist auch, wenn Passwörter dadurch rekonstruierbar sind, dass sie die wahrscheinliche Reihenfolge sichtbarer Datenströme beeinflussen. Das bezeichnen Experten dann als probabilistisches Leck.

Ein Beispiel dafür wäre etwa, wenn der Befehl, ein „rotes L“ zu drucken, einen Drucker zeitgleich mit dem Passwort für die Zugriffsberechtigung erreicht: Lautet das Passwort etwa AB, kommt die Information „L“ in den meisten Fällen kurz vor der Information „rot“ an. Lautet das Passwort hingegen BA, ist es genau umgekehrt. Joana soll den Wissenschaftlern zufolge auch solche Sicherheitslücken zuverlässig erkennen, obwohl sie schwerer identifizierbar sind.

Die Forscher haben das Problem umgangen, indem sie eine neue Rechenmethode entwickelt haben, die an sicherheitskritischen Stellen stets die gleiche Reihenfolge für sicht- und nachvollziehbare Prozessschritte festlegt.