Verräterischer Programmierstil Neues System kann Programmiererinnen und Programmierer am „Schreibstil“ erkennen
Nicht nur wer ein Gedicht oder einen Roman verfasst, hat einen ganz persönlichen Schreibstil, sondern offenbar auch Programmiererinnen und Programmierer. Ein Team um Dr. Aylin Calsikan von der Princeton University, USA, und Prof. Konrad Rieck von der Technischen Universität (TU) Braunschweig jedenfalls hat ein System entwickelt, das Computerprogramme den Urhebern zuordnen kann, mit hohen Trefferquoten. Präsentiert wird es heute, 20.02.2018, auf der Konferenz Network and Distributed System Security Symposium (NDSS) in San Diego, USA.
Das System besteht aus zwei Programmen: „Das erste analysiert Software mit bekannter Autorenschaft und extrahiert charakteristische Elemente und Strukturen“, erklärt Rieck. 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.
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.
Hintergrund
Damit ein Rechner ein in einer gängigen Programmiersprache 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.
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 Spionageprogrammen, 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.“
Text: Andrea Hoferichter