17 juillet 2011

Une histoire simple et banale

Il y a des affaires qui nécessitent des moyens techniques importants, ou des connaissances pointues en matière d'analyses inforensiques. Il y a des dossiers qui dépassent mes compétences, soit par leur complexité, soit par les enjeux associés, et qui nécessitent l'intervention de confrères bien plus armés et aguerris que moi. L'intervention de spécialistes de la sécurité, du chiffrage, des télécommunications, du grand banditisme, du terrorisme s'avère parfois nécessaire, et je ne suis alors qu'une petite pièce dans le dossier, vite mise de côté quand elle ne comprend pas qu'elle doit se déporter d'elle-même.

Il y a les séries américaines et françaises, où l'on voit des personnages toujours compétents réagir avec précision et discernement dans toutes les situations extrêmement subtiles. Il y a donc dans l'esprit du public une image des experts judiciaires dont l'intervention dénoue une situation nécessairement complexe et incompréhensible par le commun des mortels.

Et pourtant, mes dossiers sont pour la plupart des histoires techniquement simples et banales.

Une société de vente en gros de matériaux de construction, que j'appellerai "ARRAKIS", dispose d'un service informatique très compétent. Le directeur informatique, Monsieur Léto, souhaite améliorer la productivité de son entreprise et monte le projet d'intégrer l'ensemble des fonctions de l'entreprise dans un système informatique centralisé qui permettra à tous les utilisateurs de collaborer plus efficacement et d'augmenter leur efficacité. J'appellerai ce logiciel "ERP".

Monsieur Léto souhaite se faire accompagner pour l'installation d'ERP par une société de service spécialiste de ce logiciel. En effet, Monsieur Léto ne souhaite pas que son service sache déployer ERP dans la société ARRAKIS (le déploiement n'aura lieu qu'une seule fois), mais que celui-ci se concentre sur le soutien aux utilisateurs une fois le logiciel déployé.

Après appel d'offres et étude des différentes réponses, Monsieur Léto retient la société de service CORRINO qui a déjà déployé ERP auprès de plusieurs sociétés de même taille qu'ARRAKIS, à chaque fois avec succès.

La société de service CORRINO désigne un chef de projet et celui-ci établit avec Monsieur Léto un planning de projet pour le déploiement d'ERP. Le planning s'étale sur 10 mois, temps jugé normal par les deux parties pour l'installation, le paramétrage, les tests, les formations et le passage en production d'ERP.

ARRAKIS et CORRINO travaillent ensembles de manière satisfaisante pendant toute la durée du projet.

A ce stade de mon récit, je me dois de préciser que le logiciel ERP est conçu par un important éditeur américain et appartient à une gamme de produits permettant d'équiper aussi bien des TPE que des grosses entreprises multinationales. Par le jeu incessant de rachats/fusions, la gamme de produits vient d'être étendue et le nom harmonisé par les équipes marketings de l'éditeur.

Pendant les 10 mois de déploiement du logiciel ERP chez ARRAKIS par la société CORRINO, le logiciel a changé de nom et s'appelle désormais PGI. Pour être plus précis, le logiciel ERP version 11.2 devient le logiciel PGI version 7.5 avec quelques modules supplémentaires (fournis gratuitement) et un périmètre fonctionnel un peu plus important.

Monsieur Léto (directeur informatique chez ARRAKIS) prend bonne note des changements, s'assure que le projet n'est pas impacté de manière importante du fait que les modifications sont essentiellement marketings et poursuit le déploiement de "PGI" avec la société de service CORRINO.

Le projet se termine correctement, l'informatisation est réussie, la productivité des utilisateurs augmente, tout va bien.

Deux années s'écoulent tranquillement.

L'entreprise ARRAKIS paye une maintenance annuelle auprès de l'éditeur de PGI à travers la société de service CORRINO qui garde un oeil sur le bon fonctionnement de PGI.

Et justement, dans le cadre d'une intervention de maintenance concernant la mise à jour du logiciel PGI vers une version supérieure, l'éditeur du logiciel demande à la société de service CORRINO de lui envoyer le contenu d'une table de la base de données intégrée au logiciel PGI installé chez ARRAKIS.

Et là patatra. La société américaine éditrice du logiciel PGI déclare que celui-ci est installé d'une manière non conforme au contrat de licence. Ce constat s'appuie sur le contenu de la table envoyée par la société CORRINO. Cette table contient les droits des différents utilisateurs du logiciel et l'éditeur constate que tous les utilisateurs sont "niveau 1" alors que le contrat de vente précise que seuls deux d'entre eux peuvent posséder ce droit, tous les autres étant "niveau 2".

L'éditeur de "PGI" demande à la société ARRAKIS de régulariser sa situation et réclame 100 000 euros au titre des licences indument utilisées.

La société ARRAKIS se tourne vers sa société de service CORRINO qui a procédé à l'installation et à la configuration des licences.

La société de service CORRINO explique aux deux autres sociétés qu'elle a configuré le logiciel ERP conformément aux licences achetées alors, que le passage à PGI en cours de projet l'a obligé à étendre les droits des utilisateurs pendant les phases de tests, et que le paramétrage final ne permet pas aux utilisateurs d'exploiter les droits supplémentaires qu'ils possèdent.

L'éditeur américain, par l'intermédiaire de son service juridique, maintient sa demande de régularisation de 100 000 euros.

La société ARRAKIS prend attache avec un avocat et se tourne vers la justice française. Les avocats des sociétés ARRAKIS et CORRINO exposent leurs conclusions et demandent au magistrat la désignation d'un expert judiciaire en informatique.
Je reçois un courrier avec comme missions de:
1) convoquer les parties et entendre tous sachants
2) dire si le logiciel PGI était installé par la société de service CORRINO en conformité avec les licences concédées par l'éditeur de PGI
3) si non, établir les responsabilités des sociétés ARRAKIS et CORRINO
4) estimer les préjudices
5) donner tout élément utile à la manifestation de la vérité.

Cette affaire est d'une affligeante banalité technique. Elle montre que pour être expert judiciaire, il ne faut pas nécessairement être un hacker white hat, un pentester de haute volée ou un développeur Occam.

Je vous laisse réfléchir sur les actions à mener en tant qu'expert judiciaire stagiaire.

La suite de ce billet est à lire ici.

-------------------------------
Les noms des sociétés évoquées dans cette série de billets sont empruntés à l'univers du Cycle de Dune de Frank Herbert. Toute ressemblance avec des sociétés existantes serait fortuite.

Cette série de billet s'appuie sur l'ensemble des très nombreuses expertises que j'ai pu mener dans ce domaine particulier des conflits au Commerce. Je ne dévoile aucun secret ni ne brise la confidentialité d'une affaire particulière. Je "romance" au sens de la décision de la chambre de discipline de ma compagnie des experts judiciaires rendue dans l'"affaire Zythom".

21 commentaires:

  1. Ce que je trouve le plus difficile dans un tel cas, c'est de pas prendre parti...

    Et la mission est un peu ambigüe je trouve : "dire si le logiciel PGI était installé par la société de service CORRINO en conformité avec les licences concédées par l'éditeur de PGI".
    Le "était" signifie-t-il qu'il faut voir si ça correspondait au moment de l'installation, et que l'état présent importe peu ?

    RépondreSupprimer
  2. S'il y a un point commun avec les séries américaines, c'est la coupure au moyen où il y a le plus de suspense !

    RépondreSupprimer
  3. Je ne comprends pas bien où est le préjudice (estimé visiblement à 100 000 €) ! Les utilisateurs ont un niveau 1 (sûrement paramétré par erreur, la suite le dira), mais je ne vois pas en quoi cela gêne l'éditeur...

    RépondreSupprimer
  4. Le prix de la licence niveau 1 est peut-être plus élevée que celle de niveau 2 et l'éditeur de PGI estime qu'il a fournit plus de service que la licence niveau 2 ne le demandais ou ne l'autorisais, d'où préjudice.
    C'est un problème qu'on peut rencontrer un peu partout à partir du moment où il y a contrat d'assistance et changements de structure du produit ou d'une des société impliquée.
    Dans cette affaire je me demande s'il y a eu une modification du contrat, par un avenant par exemple, lors du passage du logiciel ERP vers PGI ou lors du rachat du premier éditeur.
    L'évolution de ERP vers PGI avec les options ajoutées n'a t elle pas modifié certains éléments du contrat, définitions des services fournies ou des droits et périmètres d'utilisation ? qu'il aurait été préférable de détecter plus tôt, mais la routine aidant, c'est peut-être passé à la trappe.
    C'est un dossier qui peut s'avérer complexe par son aspect plus juridique que technique, à mon avis.

    RépondreSupprimer
  5. L'éditeur de PGI que je nommerais Harkonnen cherche vraiment à récolter le maximum d'épice sans la moindre considération pour son client.
    Est-ce que ça donne vraiment envie de continuer avec Harkonnen ?
    Mais l'investissement déjà effectué met Harkonnen en position de force et le baron Vladimir sait très bien récolter l'épice où elle se trouve :x

    RépondreSupprimer
  6. Facile : on récupère les backups et on regarde dans celui du moment de la recette de l'installation pour voir comment étaient configurés les utilisateurs.

    "pardon ? comment ca quel backups ?" :)

    RépondreSupprimer
  7. Ah si seulement ce directeur du service informatique avait entendu parler des logiciels libres...

    RépondreSupprimer
  8. pas si simple comme histoire "simple et banale".

    je pense que tout repose sur le changement d'éditeur. Quels ont été les impacts sur les licences du passage d'ERP à PGI.

    Si il n'y a pas eut d'impacts alors, il faudra prouver que les utilisateurs même si ils sont niveau 1 utilisent ou non les fonctionnalités ouvertes par le niveau 1 (il est possible que ce ne soit qu'un problème de configuration mal faite de PGI) ce qui permettra d'estimer le réel préjudice de PGI.

    Ensuite, pour les responsabilités si il y a bien un défaut dans les licences : Je dirais un 50-50 entre l'intégrateur et le client : il y a une forte probabilité d'un défaut de conseil de la part de l'intégrateur. Par contre la confiance n’empêchant pas la vérification, la responsabilité du client est elle aussi mis en cause. (De plus qu'ils doivent avoir la main sur l'administration).

    reste à savoir si il n'y a pas un "bug" dans l'application qui rendrait les utilisateurs de niveau 2 incapables d'utiliser l'application telles que décrite dans les licences et dans ce cas l'utilisation de licence de niveau 1 serait sans préjudice pour l'éditeur.

    J'ai déjà eu à faire directement et indirectement avec des problèmes de licences. Et je peux vous dire que certains contrats prennent les utilisateurs vraiment pour des poires...

    RépondreSupprimer
  9. En tous cas le fond de l'histoire est vraiment intéressant j'aimerai bien en connaitre l'issue, si c'est possible.
    Je pense qu'il est trés compliqué de statuer.

    RépondreSupprimer
  10. La dernière partie de l'antépénultième phrase signifie-t-elle que certaines missions sont rasoir ?

    Il me semble que la première chose à faire serait de vérifier les licences effectivement en place et de les comparer aux contrats, même si personne ne conteste l'existence d'un décalage.

    La société de service affirme que « le paramétrage final ne permet pas aux utilisateurs d'exploiter les droits supplémentaires qu'ils possèdent. » Cela n'est pas pertinent pour répondre à la deuxième question : « dire si le logiciel PGI était installé par la société de service CORRINO en conformité avec les licences concédées par l'éditeur de PGI », mais ça peut l'être pour répondre à la quatrième : « estimer les préjudices ». On peut rechercher des situations du type suivant : Madame Michu s'est vu octroyer une licence de niveau 1, qui pourrait lui permettre d'ajouter des comptes au plan de comptes et de créer des fiches client, seulement elle ne dispose pas des autorisations pour le faire.

    Il faut aussi je pense rechercher les traces d'actions effectuées grâces à ces licences attribuées indûment. Monsieur Tartempion a-t-il créé des nouveaux compte dans le plan de compte ? J'imagine que ERP/PGI possède un mécanisme de traçabilité des actions des utilisateurs.

    Je ne comprends pas pourquoi l'intégrateur a jugé nécessaire d'étendre les droits des utilisateurs pendant les phases de tests. Ce point sera à creuser.

    RépondreSupprimer
  11. La licence evoque probablement un résultat à atteindre en matière de privilèges utilisateurs, non un moyen lié à l'application elle même et susceptible d'évoluer au fil des versions.

    Si la société de service a réalisé cet objectif autrement je suppose qu'il n'y a pas lieu de l'inquiéter.

    En réalité, la véritable preuve à apporter par l'éditeur serait probablement un log disant que plus de deux utilisateurs auraient utilisé à un instant donné les privilèges maximaux?

    Par ailleurs, cette demande faite un an après la mise en production pourrait être un abus de droit: On sait l'erreur probable... 1 an après on demande les preuves, fournies sans arrière pensées par un client n'ayant aucune raison de penser être en faute... puis on réclame des comptes?

    Exactement le genre de société qui motive de plus en plus de clients et prestataires de service à migrer vers des solutions libres: Non que ce soit moins cher à déployer/administrer... mais au moins on évite de devoir choisir entre blocage (retour à la préhistoire pour 10 mois!) et potentiellement payer une rançon en prime de la licence.

    Il faut juste faire attention aux pb potentiels liés à l'AGPL, surtout si des choses sortent de l'intranet.

    RépondreSupprimer
  12. Je vais faire comme avec la télé.
    J'attend le prochain épisode sauf si j'ai mieux à faire...
    Ou une flemme subite.

    RépondreSupprimer
  13. Si la société Corrino à volontairement étendu les droits à tous les utilisateurs pendant la migration (comme ça semble être indiqué), alors qu'elle savait que seuls deux utilisateurs avaient le droit à ce niveau, je pense qu'elle risque gros. S'ils ont de la chance, ils ont décrit cette bidouille à Arrakis qui l'a validé (et est donc également responsable). Sinon, s'ils ont fait ça en sous-marin, c'est qu'ils ont volontairement violé la licence en mentant au client chez qui ils installaient, et j'aurais tendance à penser que c'est une mauvaise idée ...

    Et un bug n'est certainement pas un prétexte pour ne pas respecter la licence (rien n'est un prétexte pour ne pas respecter la licence, en fait).

    Pour les investigations, je dirais:
    - Regarder l'état actuel du système (confirmer l'état du problème)
    - récupérer tous les documents de livraison (en particulier ceux qui spécifient les configurations à déployer)
    - récupérer et examiner les backups éventuels
    => vérifier le respect de la licence (avec ce qui est dit dans le post, je penche pour le non, mais tout dépends du texte précis et de la configuration)
    - regarder l'affirmation de Corrino comme quoi les droits sont limités autrement
    => pour estimer le préjudice

    RépondreSupprimer
  14. Comparatif SNCF, pour être sur de bien comprendre :
    -un passage a acheté un billet de train 2eme classe
    -le guichetier lui a donné un billet 1ere classe
    -le passager s'est installé en 2eme classe car de toute façon le guichetier a fermé la porte de 1ere classe
    -la SNCF réclame un supplément pour le billet de train

    J'ai tendance à dire :
    -le passager n'a rien a se reprocher
    -le guichetier a fait une erreur mais sans conséquence

    Conclusion :
    -le guichetier échange gratuitement le billet de train
    -pas de préjudice pour la SNCF

    RépondreSupprimer
  15. Excellent billet!

    La première question à se poser, je pense, est relative à la responsabilité de ERP/PGI:

    - ERP, devenu PGI, était il lui aussi supposé ne contenir que deux utilisateurs Niveau 1 dans ce cadre de licence?

    Et, question directement liée:

    - En cas de réponse négative à la question précédente, sinon sans objet: lors du passage de ERP à PGI, était il clairement indiqué par l'éditeur que seuls 2 utilisateurs pouvaient recevoir le statut Niveau 1 dans ce cadre de licence ?

    Concernant les responsabilités du client final et du prestataire technique, je vois deux choses qu'il conviendra de voir avec les sociétés ARRAKIS et CORRINO:

    - ARRAKIS a dit ne pas souhaiter savoir déployer ERP, futur PGI. A-t-elle eu, en ce cas, connaissance des modalités d'installation effectuées, et avait-elle la compétence nécessaire pour les évaluer?

    - CORRINO a-t-elle suivi la procédure d'installation telle que documentée par ERP? Si tel n'est pas le cas, est-ce le fruit d'une erreur ou d'un acte délibéré? Ce n'est évidemment pas eux qui répondront, mais peut être est-il possible de déterminer s'il peut s'agir d'une bête erreur de type "INSERT 1 IN TABLE" au lieu de "INSERT 2 IN TABLE", ce psudo-SQL étant laissé au soin de l'installateur.

    Et, question liée et concernant ERP/PGI:

    - Le logiciel ERP/PGI n'a-t-il aucune limitation automatique ni aucun dispositif d'alerte relatif au dépassement de droits donnés par la licence? En d'autres termes, si la licence autorise deux utilisateurs niveau 1, le logiciel ne se bloque ni n'informe lorsque ce nombre est dépassé ?

    Concernant le préjudice, enfin:

    - Combien d'utilisateurs d'ARRAKIS ont effectivement utilisé les droits conférés par le statut Niveau 1? Un utilisateur peut en effet avoir ces droits sans les utiliser, et sans même le savoir.

    - Si la réponse à la question précédente est supérieure à 2, sinon sans objet (car pas de préjudice effectif): quel aurait été le prix de la licence pour ce nombre d'utilisateurs niveau 1 ? La question est d'importance car c'est sur la différence entre ce prix et le prix effectivement payé pour 2 utilisateurs niveau 1 que porte le préjudice (préjudice que les juges peuvent attribuer à la seule responsabilité de PGI/ERP comme à ARRAKIS et/ou CORRINO, comme aux trois, cela est décorrellé et on ne juge pas ici. On rapporte des faits et une analyse de ces faits).

    Voilà voilà, c'est tout ce que je vois au premier abord, après vous avoir lu il y a 20 minutes. Mais il y a certainement plein d'autres choses encore...

    A suivre ! Merci pour ce feuilleton de l'été !

    RépondreSupprimer
  16. En fait, c'est surtout ça qu'il faut prouver :

    "que le paramétrage final ne permet pas aux utilisateurs d'exploiter les droits supplémentaires qu'ils possèdent."

    Que quoique la table envoyée contienne, que les utilisateurs de niveau 1 ( - 2 personnes) n'aient pas pu techniquement avoir les droits supplémentaires.

    Par le biais de tests, de l'historisation des actions, etc.

    RépondreSupprimer
  17. Bonjour,

    Juste pour l'anecdote, la Société ARRAKIS existe vraiment. Elle réalise des logiciels d'orthodontie (je pense que l'orthographe est correct ?) avec certains modules spécifiques de mesure d'angles faciaux assez pointus.

    Cordialement,

    RépondreSupprimer
  18. - Est-il d'usage que ce genre de contrat comporte une formation du client par la SSII ?
    - Est-ce que la SSII, contractuellement, règlementairement ou légalement a obligation de livrer cette application dans une configuration respectant toutes les dispositions légales, règlementaires et contractuelles ?
    - A t-elle une obligation similaire dans le cadre du volet de maintenance ?

    Dans l'affirmative, Arrakis ne dispose d'aucun moyen pour évaluer de manière indépendante l'action de Corrino et la violation de licence résulterait directement du non respect de ses obligations par Corrino.

    Si les points 2 et 3 sont faux, je me demande comment ce genre de contrat est rédigé.

    RépondreSupprimer
  19. Hum, perso une société de service qui vient fouiller dans mes BDD pour en refiler des bouts à des tiers, je la mords et violemment!

    RépondreSupprimer
  20. je plussoie Ulysse. C'est ce qui m'a le plus choqué dans cette histoire, avant même l'esprit commercial de l'éditeur

    RépondreSupprimer
  21. Pour ce qu'on en sait, le client aurait très bien pu être consulté et approuver l'extraction et l'envoi de la BDD.

    J'imagine et j'espère qu'un changement de version de PGI est suivi en interne.

    RépondreSupprimer