Coding-Style ist wie ein digitaler Fingerabdruck
Wenn Sie denken, dass guter Code eine Ebene, ausdruckslos ist und elegante Zeichenfolge von, die Zeichen ist auf seine besten, völlig anonym, denken wieder. Neue Forschung schlägt vor, dass Programmierer haben Möglichkeiten, Code zu schreiben, die als eine digitale Fingerabdrücke verwendet werden können.
Ob es ist, wie sie Code mit Leerzeichen und Tabulatoren, Namenskonventionen mit Kapitellen und Unterstriche oder Macken im kommentieren, ein Team von Drexel University, der University of Maryland, der Universität Göttingen Raum, und Princeton kann vor Ort schrieb ein Stück Code – mit alarmierenden Genauigkeit. Mit Natural Language Processing und des maschinellen Lernens zu erarbeiten, die anonyme Stücke von Source-Code basierend auf coding-Stil allein schrieb, kann das Team die Person hinter dem Skript mit 95-prozentiger Genauigkeit identifizieren.
Die Arbeit verwendet Indikatoren wie Layout und lexikalische Attribute zu erarbeiten, die ein Stück Code geschrieben. Aber es nutzt auch so genannte "abstrakte Syntaxbäume," die "Eigenschaften von coding-Stil, die völlig unabhängig vom Schreibstil sind zu erfassen." Das heißt, blickt es über Namensgebung, Kommentaren und Leerzeichen, um versteckte Hinweise in die Struktur des Codes zu finden. Testen ihre Maschine Lernsoftware auf Skripte öffentlich verfügbaren Daten aus Google Code Jam, zeigte das Team, dass die Analyse von 630 Zeilen Code für einen Autor mit genügend Informationen zur Identifizierung der Coder aus einem frischen Stück Skript mit 95-prozentiger Genauigkeit zur Verfügung stellt. Erhöhen Sie die Anzahl der Zeilen auf 1.900, und die Identifikation Genauigkeit erreicht 97 Prozent.
Abgesehen davon, dass ein netter Trick, gibt es klare Anwendungen für Code dieser Art. In der Lage, genau zu identifizieren, die eine anonyme Stück Code schrieb könnte helfen Behörden wenden sich Hacker leichter, zum Beispiel, oder identifizieren diejenigen Online-Betrug zu begehen. Jetzt ist es Zeit mit programmieren zu tun was Sie zu tun mit Handschrift als Kind pflegte: lernen, fremdes zu fälschen. [Drexel über IT-Welt]
Bild von Olly/Shutterstock