Hacker mit Stil: Programmierer sind auch nur Autoren

Coder kann man an ihrem Schreibstil genauso gut erkennen wie Autoren von Romanen. Das machen sich jetzt auch Geheimdienste zunutze

4 Minuten
Das Bild zeigt Quellcode von Software

In Fort Meade, dem Hauptquartier des technischen Geheimdienstes der USA, wird viel gelesen. Und so verfolgten die dort beschäftigten Computerlinguisten aufmerksam den Streit um die Autorenschaft des Romans „Der Ruf des Kuckucks“.

Robert Galbraith sollte den Roman geschrieben haben. Doch es gab Zweifel an der Urheberschaft. Eine genaue Analyse des Schreibstils ergab schließlich, dass der Text von der Struktur her große Ähnlichkeiten zu den Harry-​Potter-Romanen aufwies. Und tatsächlich stellte sich heraus, dass Harry-​Potter-Autorin Joanne K. Rowling den Roman unter dem Pseudonym Robert Galbraith veröffentlicht hatte.

Es begann mit Harry Potter

Die Literaturwissenschaftler hatten das mit sogenannten stilometrischen Methoden herausgefunden. „Autoren können identifiziert werden, in dem die Struktur ihres Textes du ihre individuelle Ausdrucksformen mathematisch exakt analysiert werden“, erläutert Computerwissenschaftlerin Aylin Caliska-​Islam, die sich seit ihrer Dissertation mit der Frage beschäftigt, wie Softwareentwickler anhand ihres Programmierstils identifiziert werden können.

Eingesetzt werden dafür Algorithmen maschinellen Lernens und der Mustererkennung. Diese stilometrische Analysesoftware wird mit vielen Quelltexten von Computerprogrammen trainiert. Die sind in einer sogenannten Hochsprache verfasst.

Ähnlich wie ein Romanautor seinen Text in deutscher oder englischer Sprache schreibt, schreibt ein Softwareentwickler seinen Programmtext in C++, Java oder PHP. „Weil wir wissen, dass Programmieren genauso gelernt wird wie Sprachen, können wir die stilometrischen Methoden zur Identifizierung eines Autors auch nutzen, um herauszufinden, wer ein bestimmtes Programm geschrieben hat“, berichtet Aylin Caliska-​Islam.

Programmieren lernen läuft wie Sprachen lernen

Die Art, Klammern zu setzen, Variablennamen zu vergeben, Leerzeichen einzufügen und die Struktur, die ein Programm-​Quelltext aufweist, geben dabei den einzigartigen Stil eines Programmierers wieder. Allerdings kann der Programmierer nur dann identifiziert werden, wenn bereits bekannte Programme von ihm vorliegen.

Anonym verfasste Programme werden nämlich von der Stilometrie-​Software auf Ähnlichkeiten zu Schreibstilen bekannter Programmierer untersucht. Die Quelltexte werden einfach abgeglichen. Je besser die Datengrundlage ist, auf der Programmierstile verglichen werden, umso größer ist die Wahrscheinlichkeit, dass der Programmierer einer bestimmten Software identifiziert werden kann.

Die Wahrscheinlichkeitswerte schwanken da ein wenig. Mit der Anzahl der Quelltexte steigt die Ermittlungswahrscheinlichkeit. Bei kommerziell verwendeter Software kann der Autor eines Programms in 92 von 100 Fällen auf diese Weise ermittelt werden. Bei Schadsoftware wie Computerviren ist das in weniger als zehn von 100 Fällen möglich.

Vergleichbare Quelltexte müssen her

Deshalb legen die Ermittlungsexperten der NSA große Wert darauf, vergleichbare Datenproben zu bekommen. Und das funktioniert am besten mit Quelltexten, die im Rahmen von Programmierwettbewerben geschrieben worden sind.