Zum Hauptinhalt Zur Navigation

Security: Forscher können Autoren von Programmiercode identifizieren

Wie normale Texte besitzt auch Programmiercode bestimmte stilistische Eigenschaften. Diese reichen aus, um auch aus anonymen Codefragmenten den Autor herauszulesen, wie zwei Wissenschaftler zeigen. Ihre Methode funktioniert sogar mit kompiliertem Code recht zuverlässig.
/ Tobias Költzsch
37 Kommentare News folgen (öffnet im neuen Fenster)
Quellcode kann durch den Stil den Autor verraten. (Bild: Tobias Költzsch/Golem.de)
Quellcode kann durch den Stil den Autor verraten. Bild: Tobias Költzsch/Golem.de

Zwei Wissenschaftler aus den USA haben eine Methode entwickelt, mit der anonym verfasster Programmiertext Autoren zugeordnet werden kann. Über die Forschungsergebnisse von Rachel Greenstadt von der Drexel University und Aylin Caliskan von der George Washington University berichtet Wired(öffnet im neuen Fenster) .

Mit Hilfe von Maschinenlernalgorithmen können die beiden Wissenschaftler aus dem Quellcode den Autor herausfinden, auch wenn dieser ihnen zuvor nicht bekannt ist. Der Algorithmus muss aber trainiert werden, sprich: Er muss zuvor bekanntes Codematerial verarbeiten. Hierfür genügen den Wissenschaftlern zufolge aber schon kurze Fragmente.

Programmierstil ist eindeutig zuzuordnen

Die Analyse basiert nicht auf einfachen äußerlichen Merkmalen wie dem Setzen von Absätzen, sondern erfolgt anhand des Programmierstils. Wie bei einem Schreibstil ermöglicht es dieser, Coder voneinander zu unterscheiden und wiederzuerkennen.

Die Identifizierung funktioniert den Angaben zufolge sogar mit kompiliertem Quellcode, da der Programmierstil auch die Kompilierung übersteht. Dabei wird der Quelltext zurück in C++ dekompiliert. Mit Code-Fragmenten von Googles Code-Jam-Veranstaltung konnten Greenstadt und Caliskan auf diese Weise eine Gruppe von 100 Programmierern mit einer Erfolgsquote von 96 Prozent korrekt identifizieren.

Nach Angaben der Wissenschaftler kann ihr Ansatz dazu verwendet werden, Plagiate aufzudecken. Sie weisen aber auch darauf hin, dass das Verfahren dazu verwendet werden kann, Programmierer zu benennen, die eigentlich anonym bleiben wollen. Es könnte beispielsweise von autoritären Regimes verwendet werden, um Programmierer eines die Zensur umgehenden Tools ausfindig zu machen.


Relevante Themen