Votre style d'écriture est un peu comme votre empreinte digitale. Votre choix de mots, l'orthographe, la ponctuation, la structure de la phrase et la syntaxe sont tous des informations qui identifient de façon unique le propriétaire d'un contenu. Nous disent les experts en stylométrie, l'analyse statistique du style linguistique. Les nouvelles recherches montrent que la stylométrie peut également s'appliquer à des échantillons de langage artificiel, comme du code. Il s'avère que les développeurs de logiciels laissent également une empreinte digitale. Telle est la découverte faite par Rachel Greenstadt, professeur agrégé d'informatique à l'université de Drexel, et Aylin Caliskan, professeur adjoint à l'université George Washington. Leur recherche a été présentée vendredi dernier à la DefCon, une conférence sur le hacking.
Ils ont constaté que le code, comme d'autres formes d'expression stylistique, n'est pas anonyme. Les chercheurs ont utilisé des techniques d’apprentissage automatique pour dés-anonymiser les auteurs des échantillons de code. Leur travail pourrait être utile dans un conflit de plagiat, par exemple, mais cela pourrait également avoir des répercussions sur la vie privée des codeurs qui se veulent anonymes, en particulier pour les milliers de développeurs qui contribuent au code source ouvert au monde.
Caliskan et une équipe d’autres chercheurs ont également montré qu’il était possible de dévoiler l'identité d'un programmeur en utilisant uniquement le code binaire compilé. Lorsqu'un code est écrit, un programme appelé compilateur le transforme en une série de 1 et de 0 compréhensible par une machine. Il est possible de décompiler le code binaire en langage de programmation C++ tout en préservant les éléments du style unique du développeur.
Un scénario illustratif peut être imaginé avec un article écrit et qu'on a utilisé Google Translate pour le transformer en une autre langue. Bien que le texte puisse sembler complètement différent, les éléments de l'écriture sont toujours intégrés à des traits tels que votre syntaxe. La même chose est vraie pour le code selon les chercheurs. « Le style est préservé », déclare Caliskan. « Il y a une empreinte stylistique très forte qui reste quand les choses sont basées sur l'apprentissage sur une base individuelle ».
Greenstadt et Caliskan disent également qu'il est plus facile d'identifier les développeurs expérimentés que les novices. Plus vous êtes compétent, plus votre travail devient unique. Cela peut être en partie dû au fait que les programmeurs débutants copient et collent souvent des solutions de code à partir de sites web tels que Stack Overflow ou sur GitHub. De même, que les échantillons de code traitant des problèmes plus difficiles sont également plus faciles à attribuer.
Selon Caliskan et Greenstadt, leur travail pourrait être utilisé pour mettre fin au plagiat. « Les gens doivent être conscients qu’il est généralement très difficile de masquer à 100 % leur identité dans ce genre de situation », déclare Greenstadt. Puis, il rappelle que même certaines méthodes d’obscurcissement standard, des outils utilisés par les ingénieurs logiciels pour rendre le code plus compliqué et donc sûr, ne réussissent pas à masquer le style unique d’un développeur.
Source : DefCon Hacking Conference
Et vous ?
Qu'en pensez-vous ? Bonne ou mauvaise nouvelle pour vous ? Partagez vos avis.
Quels impacts selon vous cette méthode pourrait avoir dans l'environnement de la programmation ?
Voir aussi :
Les développeurs peuvent être identifiés à partir de leur code source, des chercheurs estiment qu'ils laissent leurs traces dans leurs programmes
La première vente aux enchères pour les algorithmes attire des offres de plus de 1000$, voici les mérites esthétiques du code
Peut-on définir des normes d'écriture d'un beau code ? « Il n'y a pas de style de code correct », il faut être cohérent selon un bloggeur
Des chercheurs utilisent des techniques de machine learning pour identifier des codeurs anonymes
En analysant des échantillons de code source
Des chercheurs utilisent des techniques de machine learning pour identifier des codeurs anonymes
En analysant des échantillons de code source
Le , par Blondelle Mélina
Une erreur dans cette actualité ? Signalez-nous-la !