Intelligence Artificielle

Le machine learning pour retrouver l’auteur d’un code informatique

Un algorithme de machine learning permet d'identifier les développeurs à partir de leur code

Deux chercheuses américaines ont révélé lors d’une conférence au dernier DEF CON, une convention de hackers prestigieuse qui a lieu chaque année depuis 1993 à Las Vegas, qu’il était possible de reconnaître les développeurs rien qu’à partir de leur production de code, et ce grâce au machine learning. On parle alors de « désanonymisation » du code informatique, qui peut être publié anonymement de la part des développeurs sur les plateformes open-source comme GitHub.

Poussant encore plus loin les techniques développées par la stylométrie, la science qui permet d’identifier le style d’un texte, le machine learning arrive à reconnaître les caractéristiques spécifiques à un développeur à partir d’un extrait de code informatique. Pour ce faire, l’algorithme développé par Rachel Greenstadt et Alyn Caliskan nécessite d’être alimenté avec plusieurs exemples de code du même auteur afin de les analyser. Du code binaire compilé, c’est-à-dire sans texte et composé uniquement de 0 et de 1, peut également être utilisé comme données initiales.

Et les résultats produits par l’outil sont plutôt encourageants. Lors d’un test réalisé à l’occasion d’un évènement intitulé le « Google Code Jam », l’algorithme est parvenu à identifier correctement les auteurs des extraits de code dans 83% des cas, avec un échantillon de 600 développeurs ayant chacun fourni huit exemples de leur code. Les deux chercheuses précisent cependant qu’il est plus facile d’identifier un développeur expérimenté qu’un développeur débutant : l’expert aura développé un style unique au cours de ses nombreuses années d’expérience tandis que les plus juniors auront eux, tendance à copier des bouts de code provenant de la très connue plateforme d’entraide Stack Overflow. Par ailleurs, il a été démontré que plus le code analysé permet de résoudre un problème complexe, plus l’algorithme sera efficace pour en identifier l’auteur.

Les applications de cette découverte sont nombreuses. L’outil pourrait servir à retrouver les textes plagiés, mais également à traquer les créateurs de malware. Cela pourrait en revanche dissuader certains développeurs à contribuer publiquement sur les plateformes open-source.

Send this to a friend