1. #1
    Expert confirmé
    Avatar de Blondelle Mélina
    Femme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    mars 2018
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : mars 2018
    Messages : 82
    Points : 5 471
    Points
    5 471

    Par défaut Des chercheurs utilisent des techniques de machine learning pour identifier des codeurs anonymes

    Des chercheurs utilisent des techniques de machine learning pour identifier des codeurs anonymes
    en analysant des échantillons de code source

    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.

    Nom : images.png
Affichages : 2121
Taille : 5,7 Ko

    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
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre éclairé Avatar de onilink_
    Profil pro
    Inscrit en
    juillet 2010
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 26
    Localisation : France

    Informations forums :
    Inscription : juillet 2010
    Messages : 224
    Points : 833
    Points
    833

    Par défaut

    Autant je trouve l'affirmation au niveau du code source très logique, autant un binaire C++, avec toutes les passes de transformation et d'opti qui s'appliquent (surtout qu'on parle d'un langage basé sur des principes de meta prog), ça me laisse perplexe.
    Des tutos de pixel art: https://twitter.com/OniMille

  3. #3
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2013
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : octobre 2013
    Messages : 484
    Points : 1 286
    Points
    1 286

    Par défaut

    Cela me fait penser aux enseignants.
    A force de corriger les copies ils sont capables de reconnaitre les écritures et les styles de l'auteur.
    alors quand les élèvent copient les un sur les autres ils ne se font pas avoir
    Surtout quand il y a les mêmes erreurs ou termes.
    Au brevet l'examen était anonyme, mais les profs reconnaissaient quand même les copies de leurs élèves, pour moi ça posait un problème de partialité

    Pour le code c'est pareil, on a des préférence pour des fonctions une façon de nommer nos variables de commenter ou pas le code.
    Tout cela permet de déduire une empreinte.

    Je pense que ça se faisait déjà de façon artisanale pour les malware.
    La preuve en est que certains essayaient de se faire passer pour des russes, pour cacher leur vrai langue.
    Pour moi l'emploi du nom Babare était sûrement de l'intoxication, pourquoi ne pas l'appelé camembert

    Levé l'anonymat des développeurs libre va peut être refroidir certains, qui ont peur de rentrer en conflit avec leur employeur, des problèmes avec leur close de non-concurrence,...
    un code anonyme est un peu suspect , on le regardera un peu plus

    Concernant l'offuscation contrairement à ce qui est dit dans l'article.
    Pour moi c'est surtout pour rendre le code plus dur à comprendre, car son auteur ne veut pas partager
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    juin 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : juin 2018
    Messages : 2
    Points : 6
    Points
    6

    Par défaut

    Je ne pense pas que cette technologie puisse régler un problème de plagiat. Il faudrait demander à ceux qui se prétendent être les auteurs du programme disputé de fournir des extrait de code avec le même style. Il est facile de tricher.

    Pour que l'on reconnaisse le style d'un développeur, il faut que celui-ci cesse d'évoluer. Hors il suffit de continuer ďapprendre pour que le style évolue. Il faut aussi que le code n'ai été écrit que par une seule personne.

    Cette méthode pourrait être rendue inefficace.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    mars 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : mars 2017
    Messages : 9
    Points : 14
    Points
    14

    Par défaut moué

    une technique sujette à des dérives est toujours à jeter à la poubelle selon moi... car l'Homme l'utilisera toujours à mauvais escient, à moins de réussir à l'interdire ...

    et ça me laisse tout aussi perplexe que onilink_ concernant une décompilation des binaires issus d'une compilation d'un code C++

  6. #6
    Membre éclairé Avatar de onilink_
    Profil pro
    Inscrit en
    juillet 2010
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 26
    Localisation : France

    Informations forums :
    Inscription : juillet 2010
    Messages : 224
    Points : 833
    Points
    833

    Par défaut

    Citation Envoyé par Felecarp Voir le message
    Je ne pense pas que cette technologie puisse régler un problème de plagiat. Il faudrait demander à ceux qui se prétendent être les auteurs du programme disputé de fournir des extrait de code avec le même style. Il est facile de tricher.

    Pour que l'on reconnaisse le style d'un développeur, il faut que celui-ci cesse d'évoluer. Hors il suffit de continuer ďapprendre pour que le style évolue. Il faut aussi que le code n'ai été écrit que par une seule personne.

    Cette méthode pourrait être rendue inefficace.
    Cela est vrai pour de petites bases de code et pour de jeunes développeurs.

    Mais il y a un moment ou ton style d'écriture se stabilise. Quand tu as des bases de code de centaines de milliers de ligne a ton actif, je pense qu'on peut créer une empreinte numérique de ton style de manière très efficace.
    Et on pourrait même aller plus loin si ton code est versionné, car cela permettrait en plus d'évaluer ton style au cours du temps et de définir un profile encore plus solide.

    Bref, ces méthodes la fonctionnent très bien quand il y a beaucoup de données disponibles. C'est d'ailleurs utilisé dans de nombreux domaines.


    Pour le plagiat par contre je suis d'accord qu'il y a de très forts risques de détournement. Si l'outil est disponible pour tout le monde, il suffit de refactorer le code jusqu'a qu'il colle a ce que l'on veut...
    On pourrait même imaginer des outils de transformation de style automatiques.
    Des tutos de pixel art: https://twitter.com/OniMille

Discussions similaires

  1. Que devons-nous privilégier dans la rédaction de notre code ? La vitesse ou la qualité ?
    Par Stéphane le calme dans le forum Débats sur le développement - Le Best Of
    Réponses: 34
    Dernier message: 21/01/2016, 15h10
  2. Réponses: 39
    Dernier message: 21/08/2015, 23h48
  3. Larry Ellison : Google a volé notre code
    Par Hinault Romaric dans le forum Actualités
    Réponses: 46
    Dernier message: 03/09/2013, 17h06
  4. Humour : Comment notre OS conditionne notre vision des mises à jour
    Par Katleen Erna dans le forum Humour Informatique
    Réponses: 37
    Dernier message: 15/03/2011, 23h30
  5. Réponses: 15
    Dernier message: 07/09/2009, 19h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo