Analyse von Software Verräterischer Code: Neues System erkennt Programmierer am Schreibstil

Auch beim Schreiben von Softwarecode lässt sich ein individueller Stil erkennen.

20.02.2018

Auch Programmiererinnen und Programmierer haben einen persönlichen Schreibstil. Ein Team um zwei Professoren der amerikanischen Princeton University sowie der TU Braunschweig hat ein System entwickelt, das mit hohen Trefferquoten Computerprogramme den Urhebern zuordnen kann. Präsentiert wird es auf der Konferenz Network and Distributed System Security Symposium (NDSS) in San Diego.

Das System besteht aus zwei Programmen: „Das erste analysiert Software mit bekannter Autorenschaft und extrahiert charakteristische Elemente und Strukturen“, erklärt Prof. Konrad Rieck von der Technischen Universität Braunschweig. Das zweite versucht, die erkannten Muster in Programmen unbekannter Herkunft wieder zu finden. Bei einem Versuch mit 100 Proben lag die Trefferquote bei 96 Prozent, bei Tests mit 600 Proben aus dem Programmierwettbewerb Google Code Jam noch bei 83 Prozent. Die Arbeiten wurden von der Deutschen Forschungsgemeinschaft (DFG) finanziert.

Rieck war selber überrascht, wie gut das System funktioniert. „Software ist ja kein Kunstwerk wie ein Gedicht oder so etwas. Für mich war sie eigentlich immer etwas ziemlich Anonymes“, sagt er. Im Nachhinein hat er aber eine Erklärung für das Phänomen „Wenn jemand programmiert, muss er ja eine Art Rezept schreiben. Und nicht so sehr was, sondern wie er es aufschreibt, ist offenbar sehr individuell“, so der Informatiker. Dabei gehe es weniger um Wörter als um die Syntax, also darum wie das Programm zusammengesetzt sei.

Den Urheber von Schadsoftware finden

Die neue Methode könnte zum Beispiel helfen, herauszufinden, wer eine Schadsoftware geschrieben hat. „Allerdings bietet sie auch repressiven Staaten die Möglichkeit, ungeliebte Gegner zu entlarven, wenn diese zum Beispiel die Firewall des Landes umgehen wollen“, gibt Rieck zu bedenken. Es sei eben eine Medaille mit zwei Seiten.

Zum Hintergrund: Damit ein Rechner ein in einer gängigen geschriebenes Computerprogramm ausführen kann, wird es über mehrere Zwischenstufen in binäre Codes übersetzt, also in Abfolgen aus Nullen und Einsen. Bisher dachte man, dass dabei alle Spuren des Urhebers beziehungsweise der Urheberin verloren gehen. Dass Riecks Team dennoch die jeweils persönliche Note findet, hat vor allem zwei Gründe. „Wir arbeiten mit der Technik des maschinellen Lernens, einer Spielart der künstlichen Intelligenz, die bei der Mustererkennung hilft“, berichtet er. Zudem führe das neue System den binären Code in vorherige Übersetzungsstufen zurück und suche dann auf allen Stufen nach Auffälligkeiten.

System funktioniert nur mit einer Arbeitsprobe

Die Methode hat allerdings auch Grenzen: Sie funktioniert nur mit mindestens einer Arbeitsprobe und sie versagt, wenn mehrere Personen an einem Programm geschrieben haben. „Das kann unser System bisher noch nicht auseinanderdividieren“, räumt Rieck ein. Doch die Teammitglieder wollen auch diese Hürde bald nehmen, unter anderem in einem Folgeprojekt, in dem sie mit Bundeskriminalamt und Landeskriminalämtern zusammen arbeiten. Das Ziel ist, Programmiererinnen und Programmierer von Schadsoftware, etwa von Viren oder dingfest zu machen.

Auf der anderen Seite arbeitet die Arbeitsgruppe auch an Methoden, mit denen man sich vor dem Entlarven schützen kann. Das mag paradox klingen, doch so ein Werkzeug könnte zum Beispiel Menschen helfen, die unter einem repressiven Regime unverhältnismäßige Bestrafungen fürchten müssen, wenn sie erkannt werden. „Wir sind sozusagen gut und böse zugleich“, sagt der Informatiker. „Letztlich ist unsere Aufgabe aber nicht, moralisch zu werten, sondern schlicht für Transparenz zu sorgen, denn das schafft am meisten Sicherheit.“

Firmen zu diesem Artikel
Verwandte Artikel