Machine learning

Un algorithme peut reconnaître l’auteur d’un code informatique

| mise à jour

Des chercheurs ont mis au point un algorithme en mesure d’identifier les développeurs en reconnaissant leur façon de coder.

(Source: Unsplash)
(Source: Unsplash)

Comme pour les écrivains, il serait possible de reconnaître le style d’un développeur. Et donc de lever l’anonymat relatif aux codes et applications dont il serait l’auteur. Le média spécialisé Wired rapporte en effet qu’un duo de chercheurs universitaires américains a imaginé une méthode algorithmique exploitant le machine learning pour «désanonymiser» les auteurs de bouts de codes. L’intelligence artificielle est déjà capable d’identifier l’auteur d’un livre ou même d’un billet de blog, en se basant sur la stylométrie, une discipline d’analyse statistique du style linguistique. Lors de la conférence DefCon, les chercheurs ont montré que la stylométrie pouvait aussi s’appliquer aux langages informatiques.

Régler des plaintes de plagiat ou identifier l’auteur d’un malware

L’algorithme mis au point par le duo de chercheurs pourrait par exemple être utile pour savoir si un code a été plagié ou si un développeur a violé une clause de non-concurrence. La méthode pourrait aussi permettre à des chercheurs en sécurité de déterminer qui a créé un type spécifique de logiciels malveillants. Mais elle a aussi des implications en matière de protection de la vie privée pour les développeurs qui contribuent à des projets open source.

Une cinquantaine de caractéristiques prises en compte

Pour créer leur algorithme, les chercheurs ont isolé une cinquantaine de caractéristiques différentes en mesure de différencier le style d’un développeur. Ces caractéristiques reflètent la structure sous-jacente du code, plutôt que ses composantes arbitraires, note Wired. La technique ne permet toutefois pas d’identifier n’importe quel codeur puisque les modèles de machine learning ont au préalable besoin d’être entraînés en puisant dans des échantillons de codes connus écrits par un développeur. En outre, les chercheurs ont constaté que les développeurs expérimentés sont plus faciles à identifier que les développeurs débutants. Cet algorithme aura aussi probablement des difficultés à reconnaître l’auteur d’un logiciel créé avec des outils low code

Webcode
DPF8_102432