Risques liés au code généré par l'IA : qualité, responsabilité, sécurité

Risques liés au code généré par l'IA : qualité, responsabilité, sécurité

Le code généré par l’IA semble souvent abouti avant de l’être réellement. C’est précisément là que résident les risques liés au code généré par l’IA, qui diffèrent des erreurs de programmation classiques. Un modèle linguistique génère un code syntaxiquement correct et exécutable, qui peut néanmoins comporter une faille de sécurité, une violation de licence ou une validation d'entrée manquante, sans que cela ne se remarque à première vue.

En bref

Le code généré par l’IA comporte trois risques qui n’existent pas dans le développement manuel classique : des failles de sécurité dans le code exécutable, l’absence de validation des entrées et des obligations de licence liées aux données d’entraînement du modèle. Ces trois risques passent facilement inaperçus lors d’une révision superficielle, car le code semble à première vue anodin. Pour y remédier, il est efficace de combiner des scanners automatisés, un deuxième examen par des développeurs expérimentés et une analyse des licences avant le déploiement.

Le code généré par l'IA en chiffres

Une étude souvent citée de la Université de l'Illinois a examiné en 2022 environ 1 689 exemples de code générés par GitHub Copilot dans des scénarios liés à la sécurité. D'après cette étude, environ 40 % des exemples présentaient des vulnérabilités issues du MITRE CWE Top 25, une liste répertoriant les failles logicielles les plus courantes et les plus dangereuses. Ce chiffre provient d’un cadre de test contrôlé utilisant un modèle unique, désormais obsolète. Il ne peut pas être transposé tel quel aux outils actuels, mais la tendance générale a été confirmée par des études plus récentes.

40 %

Un grand nombre des exemples de code Copilot analysés présentaient des vulnérabilités issues du classement MITRE CWE Top 25 dans des scénarios liés à la sécurité.

Université de l'Illinois, 2022

Une Analyse sur arXiv Une étude datant de 2026 a analysé 86 726 exemples de code, couvrant sept modèles linguistiques et quatre langages de programmation, afin de détecter les erreurs de compilation et d'exécution. D'après cette analyse, le code généré omet très souvent la validation des entrées, c'est-à-dire précisément l'étape au cours de laquelle un programme vérifie si les données entrantes sont plausibles. En l'absence de cette vérification, une simple entrée erronée peut entraîner le plantage du programme ou, dans le pire des cas, une faille de sécurité.

Un exemple typique illustre comment cela se passe dans la pratique. Un modèle linguistique propose, pour une fonction de connexion, un code qui vérifie les identifiants d’accès, mais sans intégrer de limite au nombre de tentatives infructueuses. Le code se compile, la fonction fonctionne parfaitement lors des tests, mais le système reste néanmoins vulnérable à des tentatives de connexion automatisées sans que cela ne soit détecté. De telles failles passent facilement inaperçues lors d’une revue superficielle, car le code semble à première vue tout à fait normal.

Trois types d'erreurs dans le code généré et les mesures à prendre pour y remédier
Risque À quoi cela se remarque-t-il ? mesure corrective
faille de sécurité Ce n'est qu'après un contrôle ciblé portant sur des modèles de vulnérabilités connus Un scan automatisé à chaque commit
Absence de validation des données saisies En cas d'erreur de saisie lors d'un test ou en fonctionnement Révision par un développeur expérimenté
violation de licence Souvent, ce n'est qu'au moment de l'audit ou lors de la cession d'une entreprise Analyse des licences avant le déploiement

Risque lié aux licences : qui est responsable du code repris ?

Outre la sécurité, il existe un deuxième risque souvent négligé : le droit des licences. Les modèles linguistiques sont entraînés à l'aide de code provenant de référentiels librement accessibles, y compris du code soumis à des licences « copyleft » telles que la GPL, qui peuvent entraîner certaines obligations en cas de réutilisation, comme la divulgation de son propre code source. Si un développeur déclenche ainsi une telle obligation sans s'en rendre compte, ce sont les entreprises qui utilisent l'outil qui en subissent les conséquences. En règle générale, le fournisseur de l'outil d'IA n'est pas tenu pour responsable.

D'après une enquête menée par Black Duck, seules environ 54 % des organisations vérifient les risques liés aux licences et à la propriété intellectuelle du code généré par l'IA avant son déploiement. Près de la moitié des entreprises interrogées utilisent donc ce code en production sans savoir quelles obligations de licence il pourrait comporter. Lors d’un audit ou de la vente d’une entreprise, cela peut justement poser problème, car un acheteur ou un investisseur fait généralement vérifier la base de code à la recherche de tels antécédents. L’article décrit les implications contractuelles globales qui en découlent pour les donneurs d’ordre. Développement de logiciels assisté par l'IA : ce qui change pour les donneurs d'ordre.

Les limites du nombre de copilotes

Le chiffre de 40 % issu de l'étude de l'Illinois est souvent cité hors contexte, mais mérite d'être replacé dans son contexte. Il date de 2022 et se réfère à un modèle unique ainsi qu'à un ensemble limité de scénarios de test, qui reproduisaient spécifiquement des situations liées à la sécurité, et non à la moyenne de toutes les lignes de code générées. Les modèles actuels obtiennent de meilleurs résultats dans certains domaines, car les fournisseurs ont révisé à plusieurs reprises leurs données d'entraînement et leurs filtres de sécurité depuis 2022.

Le problème fondamental subsiste néanmoins, comme le montre l'analyse de 2026 portant sur 86 726 exemples de code. Un modèle linguistique ne connaît pas le contexte du système cible et ne peut donc pas savoir quelle entrée est considérée comme dangereuse dans une entreprise donnée. Cette lacune peut être réduite grâce à de meilleures données d'entraînement, mais elle ne peut pas être complètement comblée.

Comment réduire ce risque dans la pratique

C'est une combinaison de plusieurs mesures, plutôt banales, qui s'avère efficace. Les scanners de sécurité automatisés, qui vérifient chaque commit par rapport à des modèles de vulnérabilités connus, détectent une partie des problèmes avant même qu’un humain ne s’en aperçoive. Un deuxième examen par un développeur expérimenté reste néanmoins nécessaire, car les scanners ne recherchent que des modèles connus et peuvent passer à côté de nouvelles combinaisons d’erreurs. Dans les domaines sensibles en matière de sécurité, tels que l’authentification, le traitement des paiements ou les interfaces avec des systèmes externes, il est en outre judicieux d’instaurer une règle stricte selon laquelle les suggestions de l’IA ne doivent en principe jamais être adoptées sans vérification préalable, quelle que soit l’urgence d’une échéance.

Ce que cela implique pour la refactorisation et la qualité du code

Le code d'IA repris sans avoir été vérifié a un deuxième effet, à plus long terme. Il s'intègre rapidement dans le dettes techniques d'un système, car bien qu'il fonctionne, il n'est ni documenté ni harmonisé avec les modèles du reste du système. Quiconque reprend régulièrement du code issu d'un modèle de langage devrait donc également mesurer la part de ce code dans son propre taux d'erreurs, plutôt que de se fier à l'impression que le développement est globalement devenu plus rapide.

Les limites de cette approche
Les scanners ne détectent que ce dont ils connaissent le modèle. Ils passent systématiquement à côté des nouvelles combinaisons d'erreurs et des erreurs techniques dans la logique métier. De même, l'analyse des licences ne détecte que ce qui se rapproche suffisamment d'une source connue ; le code reformulé passe entre les mailles du filet. Et ce chiffre de 40 % provient d'un test réalisé en 2022 avec un seul modèle ; il ne reflète pas la moyenne des outils actuels.

Faire analyser un code d'IA existant
Les failles de sécurité, l'absence de validation des entrées et les obligations de licence non clarifiées passent souvent inaperçues lors d'une revue superficielle. Un coup d'œil à sa propre base de code permet de déterminer par où commencer pour effectuer un examen plus approfondi.

Nous contacter

Foire aux questions

Le prestataire de services est-il responsable du code d'IA ?

En principe, oui, si le prestataire fournit et valide le code, qu'il ait été écrit par un être humain ou par un modèle linguistique. En droit allemand, la responsabilité découlant d'un contrat d'entreprise est liée au résultat et non à l'outil utilisé pour l'obtenir. Il convient néanmoins de définir clairement comment traiter les violations de licence résultant de l'entraînement du modèle. Une clause couvrant également les violations découvertes a posteriori a fait ses preuves, car de tels cas ne sont souvent détectés que plusieurs mois après la réception, lors d'un audit externe.

Comment vérifier s'il y a des problèmes de licence ?

Les logiciels d’analyse des licences, souvent appelés « Software Composition Analysis », comparent des segments de code avec des projets open source connus et signalent les correspondances ainsi que la licence associée. En complément, une règle stricte s’impose dans le processus de développement : les segments de code qu’un modèle linguistique reprend presque mot pour mot à partir d’une source connue sont signalés séparément et vérifiés avant d’être intégrés à un produit. Cette vérification doit avoir lieu avant le déploiement, et non lors d’une phase de nettoyage ultérieure, car il est pratiquement impossible de récupérer du code déjà livré dont la licence n’est pas clarifiée.

Faut-il interdire l'utilisation de l'IA ?

Une interdiction ne ferait que repousser le problème plutôt que de le résoudre, car son utilisation est pratiquement impossible à contrôler totalement dans la pratique et les gains de productivité sont bien réels. Il est plus judicieux de mettre en place un cadre réglementaire définissant précisément dans quels cas le code généré par l’IA peut être utilisé sans vérification supplémentaire et dans quels cas un contrôle de sécurité est obligatoire, par exemple pour tout ce qui concerne l’authentification, les données de paiement ou les interfaces externes.

Chez torck, le code généré par l’IA est soumis au même processus de révision que n’importe quel autre code, sous la responsabilité des équipes de développement de Maxhütte-Haidhof, Vienne et Rabat. La société allemande torck GmbH étant le partenaire contractuel, les questions relatives à la responsabilité et à la vérification des licences peuvent être réglées contractuellement avant le lancement d'un projet destiné à l'industrie et au commerce. Si vous souhaitez faire analyser une base de code existante afin d'identifier précisément ces risques, vous pouvez le faire dans le cadre d'un Premier entretien s'adresser à.

Prendre rendez-vous

Avertissement
Cet article cite des lois et des règlements pour situer des décisions techniques. Il ne constitue pas un conseil juridique. Pour savoir si et comment une règle s'applique à votre entreprise, adressez-vous à votre service juridique ou à un cabinet d'avocats.

Une question sur cet article ?

Deux phrases suffisent pour décrire votre situation. La réponse vous sera donnée par quelqu'un qui conçoit lui-même ce genre de systèmes.

Réponse dans un délai d'un jour ouvrable.torck · code with torque
Florian Blischke
Directeur général de torck GmbH · plus de 20 ans d'expérience dans le développement de logiciels
Florian Blischke est directeur général de torck GmbH et travaille depuis plus de 20 ans dans le développement de logiciels. Il est responsable de logiciels individuels destinés à l'industrie et au commerce, allant de l'intégration des processus physiques à l'architecture cloud, en passant par l'IoT et les systèmes basés sur les données et l'IA. Chez torck, il supervise notamment la plateforme énergétique Jouvoli et le produit de gestion de flotte KVM Fleet. torck développe ses solutions sur ses sites de Maxhütte-Haidhof, Vienne et Rabat, et accorde une grande importance à la mise au point de logiciels qui fonctionnent réellement en conditions réelles d'exploitation.

Vous vous posez la même question ?

Depuis 2017, nous développons des logiciels pour l'industrie et le commerce depuis Maxhütte-Haidhof, avec des équipes à Vienne et à Rabat. Un premier entretien dure 30 minutes et est gratuit. À l'issue de celui-ci, vous saurez si le projet en vaut la peine, même si la réponse est négative.

Autres articles