Journal d'un avocat

Instantanés de la justice et du droit

Aller au contenu | Aller au menu | Aller à la recherche

Affaire Guillermito : le compte rendu de l'audience d'appel (première partie)

Le président, après avoir constaté la présence des parties, et demandé pourquoi elles avaient fait appel (Guillermito parce qu'il demande la relaxe ; Feu Tegam et l'auteur du programme parce qu'ils n'ont reçu qu'un dixième de leurs demandes pécuniaires), le président a rappelé les faits sur la base du jugement, en ne retenant que ceux non contestés. Il a au passage présenté Viguard comme étant "un logiciel que nous connaissons bien puisqu'il équipe tous les ordinateurs du ministère de la justice".

Puis la parole a été donnée à Guillermito qui a expliqué que c'est quand il a vu la publicité pour Tegam affirmant que Viguard était une protection arrêtant 100% des virus connus et inconnus, affirmation qu'il estime être scientifiquement impossible, qu'il a décidé de démontrer que Viguard ne pouvait pas tenir cette promesse. D'abord en soumettant plusieurs virus de sa collection à Viguard (14 n'auraient pas été détectés) puis, et on en arrive aux faits qui lui sont reprochés, démontrant qu'il était aisé de berner Viguard.

Le président s'est enquis du problème de la licence d'utilisation et de l'exemplaire téléchargé sans autorisation, mais Guillermito a rappelé qu'il avait bénéficié d'un non lieu sur ce point.

Guillermito a exposé qu'il n'a jamais recopié le logiciel Viguard, et que nulle part dans le dossier on ne compare ses logiciels tests (POC) à Viguard pour montrer où il y aurait eu reproduction. Les POCs étant son oeuvre, il peut les diffuser librement. Le président lui a demandé si ces logiciels étaient tirés des sources de Viguard, ce à quoi Guillermito a répondu énergiquement non.

Le président a rappellé alors que les policiers de l'OCLCTIC ont précisé dans leur rapport que des extraits du logiciel désassemblé auraient été utilisés et que les logiciels de Guillermito permettraient d'exploiter les failles de Viguard et de désassembler ce logiciel. Guillermito a démenti catégoriquement cette affirmation, dans ses deux branches : ses logiciels ne servent pas à désassembler Viguard ni à exploiter ses failles, ou qu'on lui démontre le contraire.

Le président a ensuite rappelé l'existence de l'expertise controversée réalisée lors de l'instruction. L'avocat de Guillermito a fait remarquer que son client n'était pas mis en examen au moment de l'expertise et n'a pas pu y participer pour qu'elle soit contradictoire. Ce à quoi le président a objecté qu'il pouvait demander une contre-expertise postérieurement à sa mise en examen, au lieu de quoi chaque partie a préféré faire réaliser une expertise chacun de son côté, qui aboutissent à des conclusions assez divergentes.

Le président a donné lecture de l'expertise judiciaire, pour laquelle il a été assez critique, l'expert se contentant bien souvent de recopier les textes de lois (que la cour connaît) ou exprime des opinions personnelles ce qui ne lui était pas demandé.

La partie civile n'ayant pas de questions à poser au prévenu, la parole est donnée à l'avocat général.

L'avocat général a demandé à Guillermito quels étaient ses mobiles : intérêt scientifique, ou plus ludique ? Car c'est un travail considérable qui a été effectué, demandant des heures à être réalisé, et ce sans but lucratif (NdA : J'espère que personne ne lui parlera jamais des logiciels libres...). Guillermito n'a pas nié qu'il y avait un certain plaisir à démontrer scientifiquement la fausseté d'une affirmation vérifiable.

Puis l'avocat général a demandé si Guillermito avait pris en compte les éléments juridiques dans sa démarche ? Non, a répondu le prévenu, sinon, je ne serais pas là.

L'avocat général a demandé alors si Guillermito n'a pas cru qu'on pouvait tout faire sur internet, espace virtuel de non droit ?

Ce à quoi Guillermito a répliqué que bien au contraire, sa démarche vise à contrer ceux qui croient qu'on peut tout faire sur internet. Ainsi l'exemple récent de Sony qui installait via ses CD audios des chevaux de Troie sur les ordinateurs de ses clients, ce qui a été mis à jour par un informaticien curieux qui a publié ses résultats.

Mais alors, a interrogé l'avocat général, pourquoi TEGAM et pas les autres ?

Parce que, répond le prévenu, TEGAM est le seul à avoir affirmé avoir inventé une protection absolue même contre des virus inconnus. « J'ai dit sur des forums que c'était faux. Des journalistes m'ont mis au défit de prouver mes affirmations, ce que j'ai fait ».

Le président reprend alors la parole pour demander à Guillermito comment il a déterminé comment Viguard fonctionnait sans le "désosser" (comprendre désassembler), puisqu'un désassemblage constitue le délit de contrefaçon.

Réponse du prévenu : tout simplement par observation et déduction, comme en biologie moléculaire. On soumet un stimuli au logiciel (comme AAAAA),on regarde ce que ça fait, puis on change le stimuli (BAAAA) et on compare et ainsi de suite. Un programme a dû être utilisé quand même ? Oui, mais un programme de débuggage, pas un désassembleur.

Fin de l'interrogatoire du prévenu, plus personne n'ayant de questions à poser. La parole est donnée à E.D., auteur du logiciel.

Il commence en se déclarant choqué de ce qu'il vient d'entendre, puisque devant le tribunal, Guillermito aurait déclaré qu'il n'avait pas été gêné de désassembler Viguard. Le président a levé un sourcil intéressé : « Cela figure-t-il sur les notes d'audience ? » Non. Dans ce cas, le président ne peut considérer que cela a été dit. Sur les bancs de l'assistance, Veuve Tarquine manque de s'étrangler de rage. Elle est catégorique : jamais Guillermito n'aurait tenu ces propos en première instance. Je ne puis confirmer ou infirmer : je n'étais arrivé qu'en toute fin des débats.

La partie civile produit un rapport d'expertise. Le président exprime un vif mécontentement, ce rapport n'ayant pas été produit en temps utile pour que la cour en prenne préalablement connaissance. De fait, la cour le découvre aujourd'hui. Et l'expert n'a pas été cité pour témoigner.

Pour E.D., la désassemblage est établi par des éléments objectifs : Viguard est distribué crypté pour faire obstacle au désassemblage. Il y a deux couches de cryptage. Or sur les pages webs de Guillermito, on trouvait tous les algorithmes de Viguard lisibles en langage humain, ce qu'il n'a pu obtenir que par désassemblage.

Idem pour une clef de cryptage permettant de travailler sur la base de données de Viguard : elle figure dans un logiciel de Guillermito, ce qui établit le désassemblage.

Un débat technique s'engage sur la différence entre désassemblage et débogage, auquel je l'avoue je n'ai rien compris, ma prise de note s'en est alors ressentie.

La cour a ensuite fait entrer Monsieur Hoff, expert près la cour d'appel d'Amiens (Monsieur Rimbaud, qui a réalisé l'expertise judiciaire n'étant pas expert agréé par la cour d'appel, ce qui n'entache pas de nullité son travail, le juge pouvant faire appel à toute personne sachante, du moment qu'elle prête serment).

L'expert présente ses conclusions :

La partie civile présente un fichier (VGnaked) comme destiné à neutraliser Viguard. Leurs propres déclarations en attribuent la paternité à Guillermito, il n'y a donc pas contrefaçon, Guillermito est l'auteur.

Le rapport de Monsieur Rimbaud est passé au crible : il a été fait sur la seule lecture des pièces de la procédure. Les scellés où se trouvent les logiciels n'ont pas été analysés. On parle de contrefaçon, d'attaque, de désassemblage, or aucune analyse des sources de Viguard n'a été faite, ce qui est pourtant la base de la contrefaçon alléguée. Comment dire qu'un logiciel a été contrefait si on ne peut examiner l'original ?

Le logiciel VGnaked a été analysé par l'expert. Il fait 16 ko, contre 16 Mo pour Viguard, soit mille fois moins. Que fait-il, ce logiciel ? Il prend les fichiers certify.bvd, installés par Viguard dans tous les répertoires à des fins de surveillance du système, va les analyser et sortir leur contenu en langage lisible. Les fichiers certif.dvd contiennent des informations sur le contenu du répertoire et la machine de l'utilisateur, ils appartiennent donc à l'utilisateur. Viguard n'a pas pour fonctionnalité d'analyser le contenu des fichiers certify.bvd ; il a pour fonctionnalité de les crééer et les lire. Cette différence de fonctionnalité exclut toute contrefaçon. D'ailleurs, le fichier certify.bvd ne figure pas sur le CD-ROM d'installation (ce à quoi E.D. a objecté qu'il avait changé de nom dans les versions postérieures à celle sur laquelle M. Hoff avait travaillé). Il n'y a donc pas de propriété intellectuelle de TEGAM sur le fichier certify.bvd. De plus, VGnaked n'a aucune utilité pour qui n'a pas Viguard. Il ne cause donc aucun préjudice à l'éditeur, puisqu'il suppose que l'utilisateur ait déjà acheté Viguard.

VGnaked contient un autre fichier en code source de 661 octets, ce qui est ridiculement petit en informatique. Ce fichier d'ailleurs ne fait rien. Il a pour seul but d'être soumis à Viguard qui le détectera comme étant un virus, ce qu'il n'est pas puisqu'il ne fait rien. Là encore, cela suppose qu'on ait Viguard pour effectuer ce test.

En conclusion, on a des programmes fournis avec le code source qui permettent une comparaison facile avec les codes sources de Viguard. Ca n'a jamais été fait. Aucune preuve de contrfaçon n'est donc rapportée conclut l'expert

E.D. a alors pris la parole pour interroger Monsieur Hoff.

Guillermito a recopié une clef de 24 caractères qui sert à crypter le logiciel, a rappelé E.D. Pour l'expert, cette clef est une information, pas du code. Elle figure dans le fichier au même titre que la mention du nom de l'auteur. La contrefaçon doit porter sur le code.

E.D. a opposé à cela que si on suit le raisonnement de l'expert, on peut donc reproduire librement la base de signatures de Norton ? L'expert a rétorqué que Viguard n'étant pas un logiciel à signatures de la propre affirmation de l'auteur, l'analogie est sans objet : Guillermito n'a pas recopié une base de signatures mais une clef de cryptage.

E.D. a reproché ensuite à l'expert de n'avoir point analysé d'autres programmes de Guillermito. L'expert répond qu'il n'en a pas eu d'autres.

S'est ensuite engagée une longue discussion entre l'expert et E.D., qui a largué le président, l'avocat général, votre serviteur, mais pas l'assistance qui contenait plus de geeks qu'un Paris Carnet à la passerelle. Je suis désolé de n'avoir pu noter quoi que ce soit de retranscriptible, mais je doute que le contenu de cette controverse, qui de plus s'appuyait sur des passages de l'expertise de la partie civile qui n'étaient pas lus à haute voix et était ignorée de la cour, jouera un quelconque rôle dans la décision (elle a en tout cas mis les conseillers de la cour à l'abri de l'insomnie). Mise à jour : on m'indique que le débat a surtout porté sur ce qui était protégeable ou non dans un logiciel, E.D. adoptant une position maximaliste (tout), M. Hoff limitant la protection à l'activité créatrice, or une clef de cryptage est aussi créative en elle même que le code PIN de votre portable.

Les débats ont alors été clos par le président, place aux plaidoiries des parties civiles, aux réquisitions de l'avocat général et à la plaidoirie de la défense. Mais ce sera l'objet du prochain billet.

Merci aux trolls habituels de m'épargner la besogne d'effacer les commentaires qui sont des attaques ad hominem contre l'une ou l'autre des parties. Je serai intraitable, j'en ai marre de jouer les gardes chiourmes.

La discussion continue ailleurs

1. Le samedi 3 décembre 2005, 10:00 par Management du SI

Tegam vs Guillermito : compte-rendu d'audience

Pour faire suite à mon appel à témoins...Maître Eolas a réalisé un compte-rendu d'audience très complet : Billet 1Billet 2

Commentaires

1. Le jeudi 1 décembre 2005 à 13:21 par Bambino

Merci pour cette retranscription maitre.

Il va falloir que je relise les billets relatifs a la première comparution et la condanation de guillermito: en effet si il n'a été condamné ni pour reproduction de code de vigard, ni pour l'avoir utilisé sans en avoir la licence, et qu'il n'a pas non plus desassemblé le logiciel, je me demande bien sur quelle base il a été condamné. en tout cas, il me semble que guillermito marque quelque points sur cette affaire, car en lisant ce billet, j'ai le sentiment qu'il a établi qu'il n'y a pas de contrefacon. De plus il semblerais que l'auteur du logiciel n'a pas été capable d'énoncer clairement ce sur quoi il fondait ses revendications, puisque la discussion entre lui et l'expert semble avoir été assez difficile à suivre.

J'ajouterais enfin qu'a mon humble avis, le dechiffrement en utilisant une clé qui "traine" n'est absolument pas comparable à un désassemblage, mais qu'à l'avenir ce sera très certainement condamnable par la loi sur le DADVSI (droits d'auteur et droits voisins de la société de l'information si je n'ai pas trop mauvaise mémoire).

je ne sais pas pourquoi mais ce guillermito m'inspire une irrationnelle sympathie, et j'avoue franchement que j'aimerais vraiment avoir autant de competences que lui en informatique.

2. Le jeudi 1 décembre 2005 à 14:10 par lucasbfr

Merci beaucoup pour ce compte rendu (et de vous être libéré pour l'occasion :)).

C'est mon impression ou cette audience a vraiment tourné court pour Tegam ?

3. Le jeudi 1 décembre 2005 à 14:58 par Pangloss

"or une clef de cryptage est aussi créative en elle même que le code PIN de votre portable."

Si vous saviez ce que c'est chez moi,vous changeriez d'avis ;)

En tout cas bravo pour cette retranscription.

4. Le jeudi 1 décembre 2005 à 15:29 par Nelaton

Merci pour ce fidèle compte rendu d'audience.

Permettez moi simplement deux précisions :

- la désignation exacte des fichiers en provenance du logiciel ViGuard est "Certify.bvd",

- Si l'expert de la défense n'a analysé que le fichier "VGNaked", c'est probablement parce
que c'est le seul fichier qui a été placé sous scellé par l'OCLCTIC lors de l'instruction.

5. Le jeudi 1 décembre 2005 à 15:38 par guichoune

Je crains que la référence faite par le prévenu à la méthode empirique qu'il applique dans ses travaux de biologie moléculaire n'emporte pas la conviction de la cour sur la problématique dont dépend l'existence de l'infraction : comment peut-on comprendre, et donc critiquer un logiciel sans le désassembler ? Qui plus est quand on a les compétences évidentes pour le faire... Quelle caissière préfèrera se taper manuellement tous les codes barres plutôt que de se servir de son scanner ? Ca sent la condamnation...


Je ne sais ce que vaut votre analogie, mais la question du désassemblage sera en effet centrale dans le délibéré de la cour.

Eolas

6. Le jeudi 1 décembre 2005 à 15:44 par Popo

Amusant, le seul argument de E.D est donc que si la clé de cryptage est dans VGNaked, c'est forcément parce qu'il y a eu désassemblage !!

Pour un informaticien, c'est un peu comme de dire que la Terre est plate et le centre du monde à la fois. En effet, la science de la cryptographie a déjà fourni un grand nombre d'algorithmes qui permettent de récupérer les clés en analysant les résultats cryptés, et c'est d'autant plus *facile* si on possède le logiciel encrypteur qui génère ces résultats.

Cela correspond d'ailleurs tout à fait à la description qu'en fait Guillermito (on utilise un stimuli AAAAAA, puis AAAAAB, AAAABA, AAABAA, etc.. pour voir ce que ça change, on analyse pour trouver d'autres familles de tests, etc...). Au final, si l'algorithme de cryptage n'est pas très sophistiqué, on peut à la fois récupérer la clé et le texte original avant chiffrement. Et la plupart du temps, c'est même beaucoup plus rapide que de désassembler 16 Mo de code, je vous le garantis !!

A ce sujet, je conseille à ce sujet l'excellent livre "Histoire des Codes Secrets" de Simon Singh, qui est une merveille de vulgarisation sur le sujet, et qui explique, entre autre, que comment les codes Enigma ont pu être cassés par les Polonais et les Anglais.

A part cela, suis-je le seul à avoir peur à l'idée que ViGuard soit installé dans l'administration Française ?

7. Le jeudi 1 décembre 2005 à 15:54 par Popo

Pour répondre à guichoune qui se demande en 5 comment on peut faire pour comprendre un logiciel sans le désassembler:

c'est possible quand le programme a un comportement déterministe, c'est à dire qu'il donnera toujours le même résultat si on lui donne les mêmes données en entrée.

l'approche décrite par Guillermito est exactement ce que l'on fait alors. On étudie les changements induits dans les résultats lorsqu'on fait de petits changements dans l'entrée, et on analyse. Très souvent, des motifs récurrents apparaissent et un peu d'esprit mathématique permet d'en déduire beaucoup de choses sur ce qui se passe dans la boîte. Parfois, cela permet même de casser un algorithme cryptographique faible.

Encore une fois, le bouquin que je cite donne de lumineuses explications là dessus.


8. Le jeudi 1 décembre 2005 à 16:12 par djehuti

> Je ne sais ce que vaut votre analogie, mais la question du désassemblage sera en effet centrale dans le délibéré de la cour.

l'analogie ne vaut pas un clou... bizarre que votre détecteur de troll n'ait pas bronché :-)

pour le désassemblage, l'explication de l'expert me semble limpide
reste à savoir si la Cour a bien compris la chose

j'ai l'impression que le Président n'aime pas beaucoup E.D. (et ses petites "magouilles de procédure") et peut être... qu'en cas de doute... ça pourrait faire pencher la Balance du bon côté :-)

en tout cas, quel que soit le résultat... j'ai bien peur que ViGuard disparaisse rapidement des ordinateurs du ministère de la Justice
(ce qui serait justice pour le contribuable)

@tchao


Je n'ai pas eu le sentiment que le président ait de l'animosité pour l'une ou l'autre des parties. Quant à la disparition de Viguard, pourquoi donc ? S'il est établi que ses performances ont un temps été exagérées, il demeure que, couplé à une solution antivirus à signature, il constitue une protection efficace, je crois que tout le monde en convient. Quelles que soient nos sympathies dans cette affaire, il faut laisser de côté les voeux de malheur envers l'un ou l'autre. La seule question qui nous occupe est : y a-t-il eu contrefaçon et si oui quel dommage a-t-elle causé ?

Eolas

9. Le jeudi 1 décembre 2005 à 16:17 par Ulysse

Ce compte rendu est une bouffée d'oxygéne, j'ai particuliérement aimé l'expert...

Ceci dit je peux me tromper mais le desassemblage en soi n'est pas illegal si?
Il est autorisé a des fins d'interopérabilité il me semble, mais je peux me tromper.

Ceci dit l'expert m'a l'air de pencher sensiblement du coté de G., ce qui n'est pas son rôle, cela ne jouerait il pas en la defaveur de G.?

Pour Viguard dans l'administration, je crois qu'il n'est pas là, seul mais avec un autre antivirus classique a signatures.

Et tout le monde confirmera que l'on peut comprendre un logiciel sans le desassembler.
En particulier trouver une clé de cryptage, l'expert aurait peut être pu confirmer ce point au lieu d'estimer qu'une clé de cryptage n'était que de l'information.
Cela implique en effet qu'il y aurait eu desassemblage mais pas contrefaçon, or techniquement, il n'y a pas besoin du desassemblage apparement.

Quelqu'un peut m'expliquer la phrase "contenait plus de geeks qu'un Paris Carnet à la passerelle"?
J'avoues ne pas avoir compris (je maitrise bien le mot geek, c'est la suite qui me pose probléme)


Le désassemblage imputé à Guillermito ne peut en aucun cas être justifié par l'interopérabilité, ne serait-ce que parce que Guillermito n'était pas un utilisateur de Viguard et ne se présente pas comme tel. Monsieur Hoff était très favorable à Guillermito, sans nul doute. De même que l'expert de Tegam ne lui sera pas favorable. On ne mord pas la main qui nous nourrit... D'où le regret qu'il n'y ait pas eu d'expertise contradictoire exprimé par le président : si l'un ou l'autre avait du rédiger son rapport sous le feu croisé des objections d'E.D. et Guillermito, quelle qualité aurait eu ce document ! La dernière phrase est une private joke : Paris carnet est une réunion mensuelle de blogueurs parisiens ( http://paris-carnet.org ) où ça cause beaucoup fil RSS, xhtml, logiciel libre, mais heureusement il y a de la bière aussi.

Eolas

10. Le jeudi 1 décembre 2005 à 16:34 par Guignolito

@Eolas : "algorithmes", pas "algorythmes", svp.

Je réponds tout-à-fait OUI à la question "peut-on comprendre un logiciel sans le désassembler ?". Argumentation technique à la demande.

Sinon, c'est moi, ou c'est pas la première fois que je vois les gens de ViGuard sortir des rapports d'un chapeau au dernier moment ? Ainsi que d'user de procédés qui, s'ils sont tolérés sur les blogs et divers forums internet, ...

11. Le jeudi 1 décembre 2005 à 17:08 par Nelaton

Un expert inscrit sur une liste de Cour d'Appel, qu'il soit désigné par un magistrat
ou qu'il soit appelé par une des parties, ne doit jamais oublier son serment d'expert,
et en particulier les phrases : "Je jure d'apporter mon concours à la justice" (et non
au plus offrant) et, "je jure de donner mon avis en mon honneur et en ma conscience".

Naturellement, un "expert" qui ne figure sur aucune liste de Cour d'Appel ne peut pas
connaître ce serment ... et donc le respecter.

En ce qui concerne les experts inscrits sur une liste de Cour d'Appel, il en est comme
de tous les autres techniciens ... certains sont compétents et d'autres moins.

12. Le jeudi 1 décembre 2005 à 17:17 par Maxime

Je confirme, Guillermito n'a jamais dit qu'il avait déssassemblé ViGuard, et encore moins en première instance. Je comprends Veuve Tarquine.

Popo : il s'agit d'un cryptage XOR, soit le cryptage le plus simple qui soit. Facile à casser sans désassembleur, ni même débogueur (avec le débogueur, c'était juste plus facile de trouver la clef).

13. Le jeudi 1 décembre 2005 à 17:25 par palpatine

Je crois m'être étranglé bien plus de fois que Tarquine :p. Sur les 2h45, c'était un bon dialogue de sourd (l'histoire du désassembleur vs débuggeur, c'était le summum), entre des gens qui ne comprenaient manifestement pas grand chose à l'informatique (même la partie civile, mais quelle honte, je paie une partie de son salaire, mais c'est à mes dépends, je le jure !).
Bref, étant geek présent dans la salle de bout en bout, j'écrirai un p'tit truc (bon, ok, un gros ^^) pour expliquer au commun des mortels comment ça marche, un programme et un processus (2 mots qui n'ont jamais été prononcés, et là c'est mal barré pour comprendre...). Parce que ce n'est pas si compliqué, en réalité (et non, on ne désassemble pas un programme pour le comprendre, au delà de 100.000 lignes pour 12 ingénieurs, on ne fait plus d'assembleur ! Un débuggeur est là pour ça, justement...).
Saluons au passage le courage de Guillermito, qui a dû expliquer des choses pas simple sous le stress, et à l'expert de la défense, qui m'a épaté (ce qui est fort rare ; faudra expliquer aussi la partie BSS d'un programme, ça a été discuté pendant 20 bonnes minutes, sans jamais prononcer le nom non plus, très dommage).
Et puis l'avocat général, mythique, décidément, faut que je trackbacke un billet, dès que j'aurai fini de rusher (first jeudi ce soir, réunion contre DADVSI, j'y serai p'têtre, si ça intéresse du monde...).

14. Le jeudi 1 décembre 2005 à 17:33 par Saroumane

Euh...

Chuis pas informaticien, personne n'est parfait :-) ! C'est quoi la partie BSS ?

15. Le jeudi 1 décembre 2005 à 17:33 par Fred

A propos des experts :
Le souhait, pour ne pas dire le reve des presidents c'est de pouvoir dire :
Le juge : Bon, l'expert mandanté a fait une expertise contradictoire en presence des parties. Il a remis sont rapport . En avez vous pris connaissance ?
Les parties : Oui
le juge : Etes vous d'accord avec les conclusions de l'expert ?
Les parties : Oui
Le juge : L'expert a fait une evaluation du cout de la reparaton du préjudice. Etes vous d'accord avec cette evaluation ?
Les parties : Oui
Le juge : L'expert a proposé une répartition des responsabilités. Etes vous d'accord avec cette proposition ?
Les parties : Oui
Et voila ... reste plus qu'a statuer .

Ca arrive que ca se passe comme ca si l'expert a bien fait son travail. Et c'est pourquoi les presidents n'hesitent pas a metre les bons experts sur des affaires qui ne sont pas tout a fait de leur competence.

16. Le jeudi 1 décembre 2005 à 17:33 par Gascogne

Ulysse : "Pour Viguard dans l'administration, je crois qu'il n'est pas là, seul mais avec un autre antivirus classique a signatures."

Nan nan, je confirme qu'il est bien tout seul comme un grand (du moins pour le ministère de la justice, sauf en ce qui concerne la Chancellerie, ce me semble. On se demande pourquoi...). Après on s'étonne qu'il y ait des bugs judiciaires...

Nelaton : "Naturellement, un "expert" qui ne figure sur aucune liste de Cour d'Appel ne peut pas connaître ce serment ... et donc le respecter."

C'est inexact : on se sert très souvent d'experts qui ne sont pas inscrits, et on leur fait prêter serment par écrit. Le serment étant identique, ils le connaissent donc.


Absolument, j'ajouterai que le président a expressément mentionné le fait que l'expert judiciaire avait bien prêté serment par écrit, écrit annexé au rapport.

Eolas

17. Le jeudi 1 décembre 2005 à 18:17 par guichoune

Dois-je rappeler à mes sympathiques amis informaticiens (Popo et djehuti) - dont je ne suis malheureusement pas- que la cour, qui n'est composée que de juristes comme moi (certes plus brillants j'en conviens), se posera les mêmes questions que moi au moment du délibéré. L'ampathie est une notion fondamentale dans un procès où le propos doit toujours être dirigé à destination de son juge et non pour nourrir un dialogue d'initiés excluant par sa complexité le profane en la matière. D'où un indispensable effort pédagogique de vulgarisation à faire en l'absence d'avis technique fiable et impartial émanant d'un expert judiciaire.
Le comparatif évoqué en 5 avec le scan d'une caissière, pour ne pas être adapté, avait en revanche pour raison d'être de mettre en lumière la question suivante: si l'on dispose d'outils performants, pourquoi prendrait-on le parti d'utiliser de bonnes vieilles méthodes beaucoup plus fastidieuses pour arriver au même résultat. C'est ce doute qu'il faut lever dans l'esprit du juge par l'explication ébauchée par Popo (que je remercie de m'avoir éclairé sur la question).



Ravi en tous les cas qu'un logiciel puisse livrer tous ses secrets sans être dessassemblé. Puisse la Cour l'avoir compris.

18. Le jeudi 1 décembre 2005 à 18:42 par Nelaton

Fred -

Apparemment, vous décrivez une affaire civile où l'expert doit entendre les parties,
établir la répartition des responsabilités, etc.
L'affaire Guillermito est une affaire pénale, et dans ce cas l'expert a pour interlocuteur
principal, pour ne pas dire unique, le Juge d'Instruction et non le mis en examen ou
les parties civiles.

Le rôle de l'expert consiste, au pénal, à mettre à disposition du Juge, les éléments techniques,
à charge ou à décharge, et les explications qui permettent de comprendre ces éléments
techniques et leur intérêt pour l'affaire. L'expert a donc un rôle prépondérant et ses
conclusions (en civil et en pénal) sont très souvent suivies par les magistrats.

Malheureusement, tous les experts n'ont pas conscience de cette lourde responsabilité.

De plus, et pour de multiples raisons, certains experts vont à la solution de facilité qui
consiste à confirmer ce qui semble être la position du magistrat instructeur
("à la question est-il coupable ? la réponse est oui").
Il est, en effet, beaucoup plus facile de confirmer une position qui semble acquise par tous,
que de s'opposer au magistrat instructeur pour tenter de lui démontrer une position
différente (voir certaines affaires criminelles récentes).


Gascogne -

Vous avez raison et je vous prie d'excuser cette faute d'inattention.
L' "expert" en question, au travers de son rapport, semble tellement méconnaitre
les obligations et les limites de sa fonction, ainsi que les devoirs liés à ce serment,
que j'ai totalement oublié qu'il avait du le lire avant de commencer sa mission.

19. Le jeudi 1 décembre 2005 à 18:46 par Francesco

Peut-on me pointer le texte de loi, la jurisprudence, la doctrine.. qui fait que "un désassemblage constitue le délit de contrefaçon" ?

Je comprends parfaitement que quand le désassemblage est un moyen pour rendre possible une contrefaçon, il est coupable de le pratiquer. Mais qu'est-ce qui fait du désassemblage lui-même une contrefaçon ?

Il me semble avoir lu quelque part le raisonnement que pour désassembler, il faut faire une copie, et selon des modalités qui ne sont pas autorisées par l'auteur, ce qui constitue le déli de contrefaçon. Cela m'a toujours semblé extrèmement spécieux et capillotracté.

Par exemple, sur mon Macintosh, tous les logiciels que je possède et qui datent d'avant 1995 m'ont été fournis exprimés en code machine pour les processeurs 680x0. En 1994 Apple a changé de processeur, de sorte que ces programmes ne fonctionnent plus que s'il sont traduits pour le nouveau processeur (PowerPC). Cette traduction se fait automatiquement, au fur et à mesure de l'exécution du programme, par un logiciel fourni à cette fin par Apple. Une telle traduction dans une autre langue informatique n'était nullement anticipée ni autorisée par les auteurs des programmes concernés. Suis-je pour autant chaque jour contrefacteur, et Apple mon complice ? [note: cette histoire va se répéter: Apple abandonne le PowerPC, et va de même fournir un traducteur automatique pour son nouveau processeur]

Il me semble parfaitement légitime pour l'acheteur d'un logiciel de rechercher à savoir ce que le logiciel fait réellement, par exemple pour savoir si utiliser ce logiciel expose à un danger d'attaque informatique du fait d'une faille genre débordement de buffer. Le désassemblage est presque le seul moyen d'y parvenir (même d'ailleurs si le code source est disponible, du fait de la présence assez fréquente de bugs introduits ou révélés par le compilateur).

Bref cette interprétation "un désassemblage constitue le délit de contrefaçon" m'a tout l'air d'un bricolage juridique consitant à appliquer une vieille loi à un contexte nouveau, largement hors du champs de réflexion du législateur qui l'a établie, et en l'espèce en s'en tenant à la lettre de la loi (prohibition de l'acte de copie hors des termes contractuels) et non à la volonté du législateur (protéger les intérêts de l'auteur contre une perte de revenu résultant de la diffusion de la copie effectuée par le contrefacteur, et non protéger l'auteur contre les autres possibles conséquences de cette copie).

Un juge ne peut-il tout simplement constater que la loi n'est pas conçue pour le domaine dans lequel il est saisi, appliquer des principe généraux (code Napoléon, droit naturel..), et saisir le législateur pour la prochaine fois ?

20. Le jeudi 1 décembre 2005 à 19:02 par Nico

Merci pour le compte-rendu maitre Eolas.

Je me pose une question néanmoins, lorsque la loi DAVDSI sera votée (n'en doutons pas malheureusement :( , mais c'est un autre débat) sera-t-on encore en mesure de faire ce qu'a fait guillermito sans se faire condamner d'office ? (pour des infos rapides, cf eucd.info/documents/dossi... en page 5)

Merci encore pour vous être fait le rapporteur des faits :)


La loi DAVDSI ne s'applique pas aux logiciels, et ne crée aucune procédure de condamnation d'office. La réponse est donc non.

Eolas

21. Le jeudi 1 décembre 2005 à 19:14 par colectos

Bonjour,

Le contradictoire est une règle (impérative) en matière civile. Au pénal, il y a en général deux solutions : soit l'expert est commis par un magistrat (parquet ou juge d'instruction), soit directement par l'enquêteur. Ensuite, comme au civil, les parties peuvent s'adjoindre un expert qui, même s'il est expert judiciaire près une cour d'appel, n'est plus qu'un expert qui officie à titre privé. L'expert de Guillermito est connu et reconnu pour sa compétence dans le domaine des virus. Je ne connais pas le nom de l'expert de la partie adverse. Le fait qu'il ne se soit pas présenté à l'audience n'est pas très malin.

22. Le jeudi 1 décembre 2005 à 19:36 par palpatine

Francesco, tout à fait, c'est stupide, il y a bijection entre le code lisible par la machine, et l'assembleur. C'est vraiment bête, les gens croient qu'ils vont retomber sur du code lisible, je sais, m'enfin, l'imagination populaire, tout ça...
Donc en gros, il y aurait délit dès lors qu'il y a lecture du binaire tel quel ; en fait, ce n'est pas vrai (mais l'accusation pataugeait un peu de ce côté), il y a délit si le programme et modifié ; donc ce n'est pas le désassemblage qui est puni, mais le fait de redistribuer une partie de l'assembleur (comme si ça avait un sens ; d'un autre côté, on a aussi le droit de citation, non évoqué, dommage, même si les parties incriminées ne concernait pas du code mais la fameuse section .bss de l'assembleur, c'est-à-dire les données statiques telles les chaînes de caratère en dur). La question est aussi de savoir s'il est interdit ou non de modifier son propre programme sans autorisation ; pour Tegam, ce serait le cas, c'est comme dire que l'on n'a pas le droit de patcher un programme quelconque pour corriger un bug par exemple (plus le problème licence vs possession, et possession d'une copie du binaire vs possession des sources elles-mêmes).
Bref, ça patauge un peu. Tegam et le concepteur du programme (quels sont ses droits aussi ? Normalement, on abandonne tous les droits sur les sources produites à l'entreprise qui rémunère ; d'ailleurs, c'est plus pour diffamation qu'ils demandaient à être payé) vont encore plus loin : pour eux, il est interdit de patcher le programme une fois qu'il est en mémoire ! Donc en gros, une fois que l'on lance un programme, celui-ci se copie en méloire, et deviens alors un processus ; et bien d'après eux, on ne soit pas y toucher ! Le délire total, vous dis-je... Même DADVIS ne va pas aussi loin :p

23. Le jeudi 1 décembre 2005 à 20:36 par Lili

J'ai eu la chance (ou le malheur) de travailler pour le dernier niveau d'un support technique d'un éditeur de logiciel, pour dire que je suis définitivement d'accord avec tout ce qui est dit ici sur le fait qu'on n'a pas besoin de désassembler un logiciel pour le comprendre. Comme le disait si bien Guillermito et Popo "on utilise un stimuli AAAAAA, puis AAAAAB, AAAABA, AAABAA, etc.. pour voir ce que ça change, on analyse pour trouver d'autres familles de tests, etc...", sauf que pour moi, c'était plutôt des paramètres que des stimulis mais le résultat est le même. Quand on passe un certain nombre d'heures à tester le comportement d'un logiciel en lui passant tout une batterie de test sans accéder aux codes sources, on arrive à savoir plus ou moins le comportement dudit logiciel, et donc à déctecter ses faiblesses. C'est comme pour Microsoft. Je suppose que seuls ceux qui travaillent au R&D ont accès à la source et encore! Et j'imagine mal les "hackers" qui s'amusent à démonter les failles de Windows, Outlook ou autres, les désassembler.
Quant à moi, je suis plutôt inquiète sur la conséquence de ce procès. Donc maintenant si je découvre la faille d'un logiciel quel qu'il soit, j'ai plutôt interêt à me taire? Et si je voudrais faire partager ma découverte aux autres, je risque un procès? "Liberté" ou es-tu?

24. Le jeudi 1 décembre 2005 à 20:56 par Roland Garcia

"Pour E.D., la désassemblage est établi par des éléments objectifs : Viguard est distribué crypté pour faire obstacle au désassemblage." dixit l'accusation.

Dans ce cas l'évidence s'impose, il est plus facilement d'observer son comportement que de le désassembler. Etonnant que le concepteur d'un antivirus analysant les virus (souvent cryptés) par leur seul comportement n'y ait pas pensé.

25. Le jeudi 1 décembre 2005 à 21:34 par Popo

Pour répondre à guichoune en 17, je crains que vous n'ayez pas compris ce que je voulais dire. Je m'excuse si cela vient d'un manque de clarté dans mes propos. En tout cas:

Contrairement à ce que semble affirmer E.D., le fait que la clé se trouve dans VGnaked ne peut en aucun cas être considéré comme une preuve d'un quelconque désassemblage. Il existe des méthodes différentes qui permettent d'extraire ces données.

De plus, utiliser ces méthodes est parfois plus rapide que de désassembler un exécutable qui tourne autour des 16 Mo. *En particulier* dans le cas d'une clé XOR répétée, comme c'est le cas ici, car c'est l'un des algorithmes de cryptage les plus faciles à percer.


26. Le jeudi 1 décembre 2005 à 22:05 par Popo

Cher Saroumane,

Quand vous lancez un programme (par exemple en cliquant sur son icône), le système va grosso-modo le copier du disque dans la mémoire, avant de pouvoir le lancer. La section BSS est un moyen d'indiquer au système que le programme a besoin de plus de mémoire avant de se lancer.

Imaginez un programme de calcul sur une très grosse matrice, par exemple de 1000x1000 éléments, ce qui nécessite autour de 8 Mo. Grâce à la section BSS, le fichier de votre programme pourra rester beaucoup plus petit (ex: < 50 Ko).

Je rappelle aux informaticiens présents qu'il s'agit de vulgarisation. D'une façon générale, les seules personnes concernées par le BSS sont ceux qui s'intéressent aux couches les plus basses d'un système d'exploitation. Je ne serai pas étonné si la plupart des programmeurs ne savent pas ce que c'est, et très franchement, ils n'en ont probablement pas besoin !

Soyez donc sûr qu'il n'y a pas lieu d'avoir honte de votre ignorance en la matière. Pour les autres, pardonnez moi d'exposer des détails techniques aussi sordides dans un blog d'aussi belle facture que celui de Maître Eolas.


27. Le jeudi 1 décembre 2005 à 23:30 par yves

Merci Maitre, c'est très intéressant.
Je m'excuse, mais je n'ai pas compris ce que M. Hoff faisait là: il a commis un nouveau rapport d'expertise pour l'appel à la demande du juge? Ou bien il est un des experts des expertises «chacun de son côté»?



28. Le jeudi 1 décembre 2005 à 23:47 par troll piafant

c'est super ! vous vous emmélez à plaisir à défendre l'indéfendable. Patience, le débat est assez bien posé et la réponse reste très intéressante.

L'affaire pourrait presque devenir morale .... avec un jugement établissant la part du mensonge et reconnaissant les véritables motivations de l'"emmerdeur public"... à savoir "emmerder le monde pour nuire", non ??? ou ai-je raté quelque chose ?


Une occasion de vous taire, sans aucun doute.

Eolas

29. Le vendredi 2 décembre 2005 à 00:01 par Uma Thurman

A troll lassant, etc :
arrêtez cette caricature de vous même

merci.

30. Le vendredi 2 décembre 2005 à 02:12 par palpatine

Je voudrais juste préciser une petite chose par rapport à Viguard : en fait, leur cryptage est vraiment nul, puisque de toute façon, le logiciel est déchiffré en mémoire lors du chargement, et que justement un débugger agit sur un processus (ou alors, on dumpe, tout simplement...) ; ensuite, pour tester, il y a des techniques fort simples, qui permettent de tracer les appels de fonctions lorsque l'on envoie des entrées (les fonctions ont leur nom qui apparaît clairement, c'est le boulot du linker) ; il suffit ensuite, avec le débugger, d'appeler une fonction intéressante directement en mémoire, et de voir ce qu'elle renvoie sur la pile :p. Ça permet par exemple de trouver comment un programme chiffre, ou comment il se protège par mot de passe (mot de passe bien évidemment non écrit en clair, mais par exemple calculé de manière complexe). On ne désassemble donc pas le programme, encore une fois, ça n'a aucun sens, on ne peut même pas extraire des procédures, ça n'a aucun sens, tout est codé en dur, avec des adresses de renvoie et tout le bazar, on ne peut étudier que lorsque tout est chargé.

Bon, un petit exemple de bss en asm pour proc RISC :
.section bss .bss
.section_align 4
buf: .reserve 1
tab: .reserve 49
.ends
Là, je réserve de l'espace pour les variables 'buf' et 'tab', alignées sur 4 octets, soit une unité pour buf (une variable tampon pour un registre à sauver plus tard), et 49 unités pour tab (un tableau, comme son nom l'indique, ceci étant extrait d'un éditeur héxadécimal).
En fait, sans aller jusque dans des notions d'optimisations pareilles (qui font que penser que l'on puisse même à partir d'un binaire revenir à un assembleur "lisible", tel qu'on peut parfois être amené à le concevoir dans l'embarqué par exemple, est réellement utopique), il suffisait d'invoquer, pour contrer l'argument à propos des données vs code pur, la setion .rodata, qui contient les données pures, et qui ressemble à :
.section rodata .rodata
.section_align 4
.string msg "%i\n\0"
.ends
avec ici la définition de msg en tant que chaîne de caractère ; après, on appelle par exemple printf pour faire un affichage d'entier, comme suit :
@set .rodata:msg, %o0
;; ça met l'adresse mémoire msg dans le registre d'appel
mov %l2, %o1
;; on déplace un registre contenant un entier dans le second registre d'appel
call printf
;; on affiche %l2 en appelant printf
nop
;; ça c'est parce qu'on est sur de l'asm RISC, mais sur x86, on s'en fout, le pipe ne marche pas pareil

Comme dit Popo, c'est peut-être un peu gore de parler de ça ici. Mais il faut bien faire comprendre à tous les gens qui trollent sans cesse sur des choses dont ils n'ont pas idée, qu'il faut prendre conscience de l'absurdité de vouloir défendre la thèse du désassemblage et de la modification du binaire. Parce que ce que je viens décrire, en langage C, ça aurait donné un bête "printf("%i\n", i)", et voyez la longueur en assembleur ! Pire, ce bout de code est extrait d'un de mes programmes (pour un proj d'il y a deux ans), il m'est donc compréhensible (et encore, sans les commentaires, c'est pas la joie), mais il faut bien voir que lorsque l'on compile du C, ce genre du code est de l'assembleur intermédiaire, qui lui même va être remixé dans tous les sens pour être optimisé (par exemple, en inversant des instructions parallélisables sans effets de bord).

C'est ce genre de chose qu'il aurait fallu montrer lors du procès. Combien de fois a-t-on entendu l'expression "revenir à du code lisible". Je vais mettre un dernier exemple pour la route, en prenant le propre jeu que je développe :
palpatine@Hal ~/programmation/konquer * 02:06:40 * 0
->du konquer
3400 konquer
palpatine@Hal ~/programmation/konquer * 02:06:49 * 0
->objdump -D konquer | wc
1472978 7754822 77925498
palpatine@Hal ~/programmation/konquer * 02:07:11 * 0
->
Le programme fait 3,4mo, soit 1472978 lignes d'assembleur, et 22 secondes pour le désassembler, sur un PIV E 2.8Ghz. Considérez maintenant la taille de Viguard (135 mo avec les données, me semble-t-il, mais les signatures sont intégrées dans le binaire :s), et le fait que mon programme-exemple fait moins de 10000 lignes de code en C++, et vous aurez un bon argumentaire en faveur de la défense...

31. Le vendredi 2 décembre 2005 à 02:25 par oliv

Merci pour ce compte-rendu.

Juste une remarque : un stimulus, des stimuli.

32. Le vendredi 2 décembre 2005 à 07:41 par Popo

Palpatine, je vois bien que l'informatique vous passionne, mais je crains que votre description technique ne soit incompréhensible à la très large majorité des lecteurs de ce blog.

Je voudrai rajouter, pour enlever toute confusion que lorsque l'on écrit qu'il faut "22 secondes pour désassembler" votre code, cela signifie uniquement créer une représentation textuelle du code machine se situant dans le fichier.

D'abord, cela n'a quasiment rien à voir avec le code source originel, mais surtout, il faut vraiment *beaucoup* plus de temps à un humain pour comprendre ce que ce "texte" veut alors dire. Cela va de plusieurs heures pour quelque chose de trivial, à plusieurs jours pour la plupart des petits programmes, voire plusieurs mois pour n'importe quelle application complexe.

33. Le vendredi 2 décembre 2005 à 09:20 par neufs

Merci pour le compte-rendu. Passionnant.

Pour répondre à Yves (27) : JC Hoff était là aux côtés de Guillermito. C'était un expert appointé par la défense et qui, semble-t-il, a transmis son rapport à temps.

Les parties n'ont pas demandé de contre-expertise. Je comprends la position de Guillermito : si c'est pour avoir le même genre de rapport qu'en première instance ...

34. Le vendredi 2 décembre 2005 à 10:18 par YR

Bonjour,

Merci pour ce compte-rendu.

Guillermito affirme donc ne pas avoir "désassemblé", mais seulement "observé les réponses" du logiciel à des stimuli, à la manière d'un biologiste (qu'il est d'ailleurs, ce qui constitue me semble t'il un bon point pour sa défense). Le thème central du débat juridique semble donc bien de déterminer s'il y a eu désassemblage ou pas.

Eolas, vous écrivez d'ailleurs que "un désassemblage constitue le délit de contrefaçon". Est-ce votre appréciation, celle de la cour, ou celle de la loi ? Pouvez-vous expliquer au profane sur quoi repose cette affirmation (en langage simple, comme vous savez le faire ;o) ) ?

Par ailleurs, qu'en est-il des implications de cette assertion ? Cela signifie t'il par exemple que les éditeurs d'antivirus n'auraient pas le droit de chercher à connaître comment est "fabriqué" un virus, propriété de son auteur, mais ne pourraient qu'essayer de contrer ses effets par "observation" des dégâts qu'il produit ? Ce serait assez cocasse !

Merci.

YR

PS : je précise aux geeks de tout poil que j'ignore tout de ce domaine et que je ne sais donc pas comment on étudie un virus informatique pour y trouver une parade...


Il n'y a pas de jurisprudence sur la protection d'un virus informatique contre la contrefaçon. Leurs auteurs semblent très timides vis à vis des prétoires.

Sur le désassemblage : l'article L.122-6-1 du Code de la Propriété Intellectuelle (CPI), dans son IV, soumet à l'autorisation préalable de l'auteur « La reproduction du code du logiciel ou la traduction de la forme de ce code » sauf si celui qui effectue une telel opération a une licence d'utilisation, le fait à des seules fins d'interopérabilité et se limite aux strictes modifications opérées à cette fin. La violation d'un des droits de l'auteur d'un logiciel est une contrefaçon (Article L.335-3 aliné 2 du même code).

Eolas

35. Le vendredi 2 décembre 2005 à 11:33 par Fred

YR > je ne sais donc pas comment on étudie un virus informatique pour y trouver une parade...

On ne se gene pas pour le desassembler.

Si je tombe sur l'arme de mon ennemi, et qu'un juriste pointilleux et zélé vient me dire que je n'ai pas le droit de regarder comment elle est faite, il risque de se faire salement envoyer sur les roses...

36. Le vendredi 2 décembre 2005 à 11:48 par LDiCesare

A vous lire, je trouve l'explication de sa methode par Guillermito tres claire. Certes, je suis informaticien avec un background en biologie moleculaire, mais quand meme, j'espere que le juge a compris aussi.
Le meilleur exemple que je connaisse de cette technique consiste en la reconstitution de l'algorithme (et pas du code) utilise dans un jeu (civilization 2). Le reconstructeur a lance des centaines de parties pour trouver dans quel cas tel "bien" apparaissait dans telle ville a telle position. C'est une demarche scientifique, ca s'appelle deduction. Ca ne necessite meme pas forcement des outils comme un debugger. Comment deduire peut-il etre contrefaire? Comment une oeuvre peut-elle etre la contrefacon d'une oeuvre mille fois plus grosse?
Pour reprendre ce que dit Palpatine en 22: Si le fait de patcher son programme est un acte de contrefacon, est-ce qu'on peut porter plainte contre soi-meme? Je me demande si c'est licite, et comment le prendrait un juge si on s'essayait a faire une chose pareille (apres tout, certains se font interdire de casino, on pourrait vouloir une decision de justice pour se faire interdire autre chose en se plaignant contre soi-meme)?

37. Le vendredi 2 décembre 2005 à 12:38 par palpatine

Popo, oui, c'est technique, et c'est en fait ce que ne semble pas comprendre les non informaticiens, habitués à la "magie" m$ (ça marche, on ne sait pas comment, ça plante, on ne sait pas pourquoi...) ; d'ailleurs, Viguard équipe les ordis du ministère de la justice, et franchement, ça fait peur... Sinon, oui, le désassemblage en tant que tel prend 22 secondes, mais l'étudier, heu, je crois que toute une vie suffirait à peine... Il a été répété je ne sais combien de fois durant le procès, que le code assembleur était lisible et utilisable directement ; même avec une haute dose de drogue, tout informaticien digne de ce nom ne se laisserait pas aller à de pareilles divagations...

YR, pour les virus, la loi n'est pas encore très claire, mais avec l'EUCD, quelques finlandais se sont amusés à faire un virus de protection d'oeuvre, qui ne doit donc pas être combattu puisque méthode technique de protection, et ce pour montrer l'absurdité de cette loi, justement ( linuxfr.org/2005/10/18/19... ).

Pour répondre à l'autre question, pour trouver qu'un programme est un virus, on regarde les appels systèmes qu'il effectue, et on en déduit une "trace" caractéristique (ce qui implique désassemblage, dans un certain sens, mais de toute façon il y a bijectivité hexadécimal/assembleur), appelé signature, que l'on compare bêtement ; c'est pour ça que les 42 versions différentes de sasser ont dû donner lieu à autant de patches d'antivirus, tout simplement parce qu'il ne reconnaît que ce qu'il connaît, et si l'on inverse deux opérations au sein du virus, l'antivirus se retrouve dans les choux. Le système "hautement révolutionnaire" de Viguard, c'est de parcourir en plus le disque dur en laissant un empreinte de chaque fichier (je vous laisse imaginer la place mémoire que ça prend :s), et regarder si les changements effectués sont normaux ou pas.

Juste une dernière chose : durant le procès, on a vanté l'efficacité de Viguard, qui a été le seul grâce au système sus-cité à détecter Iloveyou ; celui-ci étant évoqué en tant que virus. Or, il s'agit d'un script vbs (tout à fait lisible, il suffit d'un éditeur de texte), et qui plus est, c'est un ver (worm), pas un virus !! Et personne de corriger... Ça ne change pas grand chose sur le fond, mais ça montre le niveau général en informatique >_<, assez gênant lorsque l'on considère la nature hautement technique (m'enfin, pour certains c'est pas grand chose...) du dossier.

38. Le vendredi 2 décembre 2005 à 16:21 par Mr Peer

Merci pour ce magnifique résumé, vivement la suite :)

39. Le vendredi 2 décembre 2005 à 16:22 par Mr Peer

D'ailleurs je viens de la voir alors qu'elle n'était pas dans mon aggrégateur :|
J'y cours !

40. Le vendredi 2 décembre 2005 à 19:08 par François Battail

Merci pour ce blog fort intéressant. Concernant la question du désassemblage ou du debuggage la réponse est évidente pour quelqu'un du métier. Si le programme en question fait 16 Mo on peut en déduire que le listing assembleur sera de l'ordre de 4 millions de lignes (j'ai pris arbitrairement une moyenne de 4 octets par instruction, l'ordre de grandeur est là), ce qui représente un listing constitué de 60000 pages ; de plus ce n'est pas du code assembleur source (c'est-à-dire commenté et avec des noms évocateurs pour les variables, les labels et les fonction). Bref c'est tout simplement inexploitable et d'ailleurs sans intérêt.
Toutes les méthodes de reverse engineering sont dynamiques (ne s'appuient pas sur le code assembleur mais sur les « réactions » du programme en fonctionnement) et de nombreux outils sont utilisables pour faciliter l'analyse des actions externes du programme sur l'environnement (filemon, regmon...).
Il y a dix ans j'ai eu à analyser un programme implémentant un protocole de communication totalement propriétaire et non documenté pour faire un produit interopérable : 95% du travail a été fait de façon externe, les 5% restants sous debugger. Je n'ai jamais trouvé d'application utile à un programme de désassemblage excepté lorsque l'on travaille à réaliser un compilateur et que l'on veut vérifier que le code machine généré par le compilateur est correct.
Personne n'est capable de tirer parti d'un fichier à plat de 4 millions de lignes en assembleur, c'est d'ailleurs pour cela que la programmation est modulaire et structurée.

Pour guichoune (5) la question est tout à fait légitime et c'est vrai que cela peut sembler magique de comprendre dans le détail ce que fait un programme et plus important comment il le fait sans disposer d'un code source, donc j'espère que mon explication - simplifiée et imparfaite - clarifiera les choses.
Un programme prend des données en entrée, effectue un traitement dessus et retourne des résultats ; même si la nature exacte du traitement n'est pas connue, le programme a une utilité et un but cela limite déjà le champ d'exploration ensuite il est possible d'accéder aux données en entrée et aux résultats produits. L'étape suivante consiste donc à injecter des données en entrée et de voir si les résultats obtenus sont conformes à ce que l'on a supposé. La phase d'installation du logiciel, les messages d'erreur, etc. peuvent fournir énormément d'information au départ. Pour formuler les hypothèses il y a aussi des outils d'aide qui vont permettre d'établir que le programme dans telle ou telle condition accède au fichier X, utilise l'appel système Y dont on sait qu'il sert à réaliser la fonction Z car cet appel système est documenté...

Bref c'est du travail de fourmi, un grand puzzle, et cela demande des compétences certaines mais il n'y a rien de magique et c'est beaucoup plus rationnel et productif que de tenter d'exploiter un listing assembleur provenant du désassemblage d'un programme.

Pour ceux qui voudrait en savoir plus, Andrew Tridgell du projet Open Source Samba a décrit dans une présentation PDF en anglais samba.org/ftp/samba/slide... quelques exemples des techniques utilisées pour réimplémenter le protocole CIFS sans jamais désassembler du code Windows.

41. Le vendredi 2 décembre 2005 à 23:55 par jcs

Point de vocabulaire : si on parle bien de cryptographie, le verbe "crypter" n'est pas français. On lui préfèrera "chiffrer". L'opération inverse est donc "déchiffrer". "Décrypter" est cependant utilisé lorsqu'il est question de passer du texte chiffré au texte en clair sans disposer de la clé de chiffrement. Dans ce cas on parle alors de "cryptanalyse". Par extension, la cryptanalyse est aussi l'étude des faiblesses des algorithmes de chiffrement.

42. Le samedi 3 décembre 2005 à 00:09 par Popo

cher palpatine, ce que je veux dire, c'est que ce que vous écrivez est incompréhensible pour pratiquement tous les lecteurs de ce blog, et que vous utilisez des phrases comme "désassemblage en 22 secondes" qui peuvent être interprétés de façon erronnée (i.e. "le désassemblage, c'est super rapide") par qui n'est pas informaticien d'un certain niveau.

Par pitié ne le prenez pas mal.

Pour jcs, je remarque que "crypter" fait partie de mon Petit Robert de 1994. Il semble donc qu'il fasse partie de la langue française depuis plus de 10 ans ;-)

Je pinaille, je pinaille ...

désolé

43. Le samedi 3 décembre 2005 à 01:19 par palpatine

Popo, mais je ne le prend absolument pas mal du tout ;). D'ailleurs François Battail fait au dessus une explication bien plus compréhensible. La seule chose que je voulais signaler c'est à quel point on peut partir dans du grand n'importe quoi dès lors que l'on parle de choses que l'on ne connaît pas, et c'est valable tout autant pour les trolleurs d'ici que pour l'accusation du tribunal. Parce que l'on a beau répéter que l'assembleur est illisible, il faut montrer de manière explicite pour que le râleur comprenne enfin dans quoi il met les pieds (c'est comme St-Thomas, le neuneu il ne croît que ce qu'il voit, ou du moins ce qu'on lui montre...).

Pour "crypter", j'ai toujours entendu dire que ce n'est pas Français, et qu'effectivement, on lui préfère "chiffrer" ; le problème étant que le lecteur ne comprend pas très bien que l'on parle de la même chose s'il ne connaît pas la terminologie exacte ; personnellement, j'utilise donc les deux, avec en premier l'incorrect (enfin, pas d'après le Robert94 apparemment ^^) "crypter", puis "chiffrer". De toute façon, en informatique, on parle le franglais, alors à la limite, on est plus à ça près >_<

44. Le samedi 3 décembre 2005 à 04:52 par Tweakie

> S'il est établi que ses performances ont un temps été exagérées, il
> demeure que, couplé à une solution antivirus à signature, il constitue
> une protection efficace, je crois que tout le monde en convient.

J'ai moi meme ecrit ce genre de choses dans le passe', mais il est en fait presise' dans le manuel d'utilisation de Viguard publie' par Dodata qu'il faut desinstaller les autres antivirus presents sur la machine avant d'installer viguard (probablement a cause d'incompatibilites potentielles) :
Cf. page 27 :
www.dodata.fr/documents/p...

> E.D. a opposé à cela que si on suit le raisonnement de l'expert, on
> peut donc reproduire librement la base de signatures de Norton ?

Connaissant l'histoire du programme VDetect, developpe' par Tegam - initialement en closed-source - et utilisant les bases de signatures de l'antivirus GPL Clamwin, ce detail peut faire sourire :

www.newffr.com/viewtopic....

> Un débat technique s'engage sur la différence entre désassemblage et
> débogage, auquel je l'avoue je n'ai rien compris, ma prise de note s'en
> est alors ressentie.

J'y ai pour ma part releve' cette perle d'Eyal Dotan (professeur de securite' informatique a l'EPITA, s'il vous plait) :
"Quand c'est sur votre propre programme [que vous utilisez SoftIce*], vous deboguez, mais quand c'est sur un autre programme, alors vous le desassemblez".

Une conception originale de la difference entre analyse statique et analyse dynamique.

*Softice est un debogueur systeme. Une expliation concise de Pierre Vandevenne (PDG de Dataresue, editeur du desassembleur IDA) :
groups.google.fr/group/fr...

> Il n'y a pas de jurisprudence sur la protection d'un virus informatique
> contre la contrefaçon. Leurs auteurs semblent très timides vis à vis
> des prétoires.

En France, pas que je sache, mais dans d'autres pays certains editeurs de spyware/adware (programmes nuisibles a objetif commercial) ont deja menace' de poursuivre en justice des editeurs d'antivirus parce qu'ils entravaient leur business (je ne connais pas les motifs invoques)...

45. Le samedi 3 décembre 2005 à 12:30 par palpatine

Je précise (innocemment, hein ?), que le messire doit en fait travailler dans le labo de sécurité de l'EPITA, le LSE (quoique c'est déjà beaucoup), et que de temps en temps (genre 2 ou 3 fois par an peut-être), il donne un "cours" aux étudiants de l'EPITECH, une école de techniciens supérieurs jumelées à l'EPITA. En aucun cas il n'a jamais donné de cours à l'EPITA (du moins à ma connaissance, l'ambiance étant assez pourrie, le chef de labo est parti... :s Précisons que ce problème n'est que dans ce labo précis, tout le reste -- notamment le LRDE qui ne fait que du libre --, va très bien). Bon, ça ne va pas aussi loin que l'expert "professeur à Paris V" fantôme, mais c'était juste pour préciser qu'il n'y a pas que des boulets comme Dotan >_< (en fait, je connais que lui qui ne soit pas capable de faire la distinction asembleur/débugger, parce que même un ing1 le sait, ça... Ou alors il est d'une telle mauvaise foi qu'il faut lui décerner un oscar :p).

46. Le samedi 3 décembre 2005 à 14:44 par Nicob

> En France, pas que je sache, mais dans d'autres pays certains
> editeurs de spyware/adware (programmes nuisibles a objetif
> commercial) ont deja menace' de poursuivre en justice des editeurs
> d'antivirus parce qu'ils entravaient leur business

180solutions attaque Zonelabs :
fr.news.yahoo.com/0212200...


Nicob

47. Le lundi 5 décembre 2005 à 23:12 par guerby

Cher maitre, le projet de loi DADVSI parle tout du long de "mesures techniques", ces mesures techniques seront en pratique des logiciels, et donc :

"
« Art. L. 335-3-1.- Est assimilé à un délit de contrefaçon :

« 1° Le fait pour une personne de porter atteinte, en connaissance de cause, à une mesure technique mentionnée à l'article L. 331-5 afin d'altérer la protection, assurée par cette mesure, portant sur uneœuvre ;

« 2° Le fait, en connaissance de cause, de fabriquer ou d'importer une application technologique, un dispositif ou un composant ou de fournir un service, destinés à faciliter ou à permettre la réalisation, en tout ou en partie, du fait mentionné au 1° ci-dessus ;
"

Concerne tous les logiciels et leurs auteurs qui les "fabriquent", qui ne peuvent plus écrire un logiciel qui lit un fichier ou recoit des données du réseau sans se préoccuper de ces "mesures de protection". Et

"« 3° Le fait, en connaissance de cause, de détenir en vue de la vente, du prêt ou de la location, d'offrir à la vente, au prêt ou à la location, de mettre à disposition sous quelque forme que ce soit une application technologique, un dispositif ou un composant ou de fournir un service destinés à faciliter ou à permettre la réalisation, en tout ou en partie, du fait mentionné au 1° ci-dessus ;

« 4° Le fait, en connaissance de cause, de commander, de concevoir, d'organiser, de reproduire, de distribuer ou de diffuser une publicité, de faire connaître, directement ou indirectement, une application technologique, un dispositif, un composant ou un service destinés à faciliter ou à permettre la réalisation, en tout ou en partie, de l'un des faits mentionnés au 1° ou au 2° ci-dessus.
"

Le petit bout de code XOR de guillermito serait directement visé si Tegam décide que le codage XOR est une mesure technique de protection de leur données soumises au droit d'auteur (ce que leur juriste ne manquera pas de mettre dans la licence).

Pas de peine automatique, bien sur, mais au revoir liberté.

Science Fiction ? Dimitri Skylarov a passé trois semaine en prison aux USA et a été empéché de retourner chez lui pendant quelques mois pour avoir publiquement décrit dans une conférence une technique du même niveau (zéro) que XOR, technique utilisée par Adobe pour "protéger" ces e-books. Sur quelle loi ? Le DMCA qui contiens des articles tres similaires a ceux proposés pour notre DADVSI (qui vient de l'EUCD qui est le DMCA européen).

Laurent


Article 7 du projet de loi DADVSI : « Les mesures techniques efficaces destinées à empêcher ou limiter les utilisations non autorisées par le titulaire d'un droit d'auteur ou d'un droit voisin du droit d'auteur, d'une œuvre, d'une interprétation, d'un phonogramme, d'un vidéogramme ou d'un programme, sont protégées dans les conditions prévues au présent titre. Ces dispositions ne sont pas applicables aux logiciels ».

Eolas

48. Le mercredi 7 décembre 2005 à 19:38 par guerby

Cette phrase signifie qu'on ne peut pas se servir d'une mesure technique pour proteger un logiciel en tant qu'oeuvre, mais n'empeche pas qu'une mesure technique soit un logiciel (en pratique, comme le "rootkit" Sony, elles seront a 99% en logiciel).

La protection des logiciels en tant qu'oeuvre est traitee par la directive 91/250 CE.

Laurent

PS: avec l'aide d'eucd.info :)

49. Le jeudi 8 décembre 2005 à 01:32 par FreeBzH

@ guerby :

J'allais le dire...

Et le virus issus de l'université d'Helsinki le prouve.
Les autorisés finlandaises ont été contactées mais mettent bcp de temps à se prononcer. Très bonne initiative que ce virus "copyprot" !
Virus au passage bien plus docile qu'un rootkit ou mediamax by sony.
Prochain sujet : quand les virus deviennent legaux.

Pour suivre ce dossier depuis longtemps, je dois vous remercier Eolas pour votre travail, et j'aimerai savoir ce qu'il en est de Guillermito ? Son site n'étant pas à jour je me demande s'il aperçoit enfin le bout du tunnel...

Je lui souhaite encore bien du courage, et merci encore pour ce(s) compte(s) rendu(s) !

Mes logiciels, comme mes clients, sont libres. Ce blog est délibéré sous Firefox et promulgué par Dotclear.

Tous les billets de ce blog sont la propriété exclusive du maître de ces lieux. Toute reproduction (hormis une brève citation en précisant la source et l'auteur) sans l'autorisation expresse de leur auteur est interdite. Toutefois, dans le cas de reproduction à des fins pédagogiques (formation professionnelle ou enseignement), la reproduction de l'intégralité d'un billet est autorisée d'emblée, à condition bien sûr d'en préciser la source.

Vous avez trouvé ce blog grâce à

Blog hébergé par Clever-cloud.com, la force du Chouchen, la résistance du granit, la flexibilité du korrigan.

Domaine par Gandi.net, cherchez pas, y'a pas mieux.