La question de la certification des données et de la confiance dans les algorithmes se pose de plus en plus, notamment avec la montée en puissance de la blockchain… Qu’est-ce que l’audit de code ? Comment est-il possible de certifier des algorithmes ? Patrick Stachtchenko et Serge Yablonsky livrent une tribune à ce sujet.
Patrick Stachtchenko est expert-comptable et commissaire aux comptes (non inscrit), CPA canadien, CISA, CGEIT, CRISC, ancien Président de l’ISACA, Président d’honneur de l’AFAI et membre du comité scientifique Lab 50. Serge Yablonsky est expert-comptable et commissaire aux comptes, CISA, CGEIT, CRISC, Co-Président du groupe de travail Audit informatique de la CRCC de Paris, Président d’honneur de l’AFAI et membre du comité scientifique Lab 50.
Qu’est-ce que l’audit de code ?
L’audit de code ne se pratique presque jamais. Il s’agit de l’analyse, instruction par instruction, du code source d’un ou plusieurs programmes. Mais les programmes comportent rapidement des milliers de lignes, avec des instructions faisant appel à des routines externes, standards ou spécifiques, développées par plusieurs personnes au sein de plusieurs équipes utilisant de multiples technologies.
Pour qu’un code soit lisible et compréhensible, il faut qu’il soit documenté. Mais ce que l’auditeur recherche n’est justement peut-être pas documenté ou mal documenté.
En pratique, les différentes méthodes pour « auditer » un algorithme sont des jeux d’essai, des simulations de traitement par un autre algorithme et des analyses de données par rapport à des attendus, qui peuvent être appliquées simultanément.
En synthèse, un code est très difficile à déchiffrer et la logique des algorithmes très compliquée à reconstituer à partir du code source. En matière d’intelligence artificielle, la problématique se complique particulièrement dans le cas de la machine apprenante.
Les limites de l’analyse de code ont donc conduit les auditeurs à privilégier l’audit de l’efficacité des dispositifs mis en œuvre pour concevoir, développer, tester, modifier et exploiter les algorithmes, leur permettant d’obtenir une assurance raisonnable quant à leur qualité. Mais ce type d’audit a aussi des limites dans le contexte de l’IA, notamment lorsque l’obtention d’une assurance raisonnable ne suffit pas.
Comment est-il possible de certifier des algorithmes ?
Certifier les algorithmes sans les données a-t-il du sens ? Prenons le cas de la voiture autonome. Les algorithmes traitent de nombreuses données que des capteurs transmettent, que les GPS fournissent, que l’expérience passée a permis d’accumuler… et ces données sont traitées par les algorithmes, qui les enrichissent également. La fiabilité du résultat de ce système algorithmique dépend en très grande partie de la qualité de ces données (qualité des sources, informations pertinentes non biaisées, souvent prétraitées et nettoyées par des « data scientists »…). Ne conviendrait-il donc pas d’auditer plutôt le système algorithmique que les algorithmes ?
C’est dans ce sens qu’un groupe de travail de l’Académie des sciences et techniques comptables et financières a créé le « commissariat aux algorithmes et aux données ».
D’autres travaux de recherche sont poursuivis notamment par l’ISACA – représentée en France par l’AFAI – par l’AICPA et CPA Canada. Mais les travaux de l’Académie ont pour vocation d’aller beaucoup plus loin dans l’explicitation de l’audit des algorithmes et des données. Un premier livre blanc bien plus abouti est en préparation qui, au-delà des problématiques de référentiel et d’approche d’audit, démontrera l’éventail des audits par des cas pratiques notamment sur la voiture autonome ou encore, sur Parcoursup…
Patrick Stachtchenko et Serge Yablonsky
Sur le même sujet : [Interview Vidéo] Serge Yablonsky : « La blockchain va simplifier l’accès aux données pour les commissaires aux comptes »