L'Agence nationale de la sécurité des systèmes d'information (ANSSI) et le Bundesamt für Sicherheit in der Informationstechnik (BSI) ont publié récemment un rapport conjoint détaillant les risques de sécurité associés aux assistants de codage basés sur l'IA. Ce document met en lumière les opportunités et les dangers potentiels de ces outils de plus en plus populaires dans le développement logiciel et fournit une série de recommandations de sécurité à destination des responsables et développeurs.
Les assistants de programmation basés sur l'IA sont de plus en plus utilisés, tant dans le secteur public que privé. Ils peuvent générer du code, mais également aider au débogage, créer des cas de test, expliquer le code, le formater et le documenter ou encore le traduire entre différents langages de programmation. Ils augmentent ainsi la productivité des développeurs et simplifient la gestion de projets complexes, devenant ainsi des éléments essentiels dans les environnements de développement. Cependant, leur utilisation soulève des questions cruciales de sécurité.
Le rapport souligne que ces outils, bien qu'efficaces, peuvent être manipulés par des attaquants pour générer des bibliothèques malveillantes, insérer du code vulnérable ou divulguer des informations sensibles à partir des données d’entrée. Les modèles IA, qui sont formés sur de vastes corpus de code source, peuvent également proposer des suggestions erronées ou des méthodes inexistantes, ce que les experts appellent des "hallucinations de paquets".
Les principales menaces identifiées
Le rapport de l'ANSSI et du BSI identifie plusieurs vecteurs d'attaques liés à l'utilisation des assistants de codage IA, notamment :- Les hallucinations de méthodes et de paquets : Les assistants IA peuvent suggérer des méthodes ou des classes inexistantes, résultant en une confusion de paquets. Les attaquants peuvent créer des bibliothèques avec des noms similaires et y injecter du code malveillant, compromettant ainsi toute la chaîne d'approvisionnement logicielle ;
- Les injections indirectes de prompts : Ces attaques consistent à insérer des entrées malveillantes dans les demandes faites aux modèles IA. Cela peut amener le modèle à générer des commandes ou du code nuisible, ou à divulguer des informations sensibles ;
- Empoisonnement de données et du modèle : Les attaquants peuvent publier du code malveillant sur des plateformes ouvertes comme GitHub, visant à contaminer les ensembles de données d'entraînement des assistants IA. Ces attaques peuvent compromettre les modèles eux-mêmes et produire du code non sécurisé.
Mesures d'atténuation recommandées
Pour chaque menace identifiée, l'ANSSI et le BSI proposent des mesures d'atténuation visant à réduire les risques associés à l'utilisation des assistants de codage IA. Parmi ces recommandations figurent :- Vérification du code généré : Il est essentiel que les développeurs vérifient minutieusement le code produit par les assistants IA, notamment en validant les bibliothèques suggérées et en s'assurant de leur authenticité et sécurité ;
- Hébergement local des modèles IA : Afin de protéger les données sensibles, les entreprises devraient envisager d’héberger localement des modèles open source plutôt que de recourir à des services cloud tiers, souvent moins contrôlables ;
- Formation et sensibilisation des développeurs : Une sensibilisation accrue des développeurs aux risques de sécurité liés aux outils IA est cruciale. Les entreprises doivent fournir des formations sur la manière d’utiliser ces outils de manière sécurisée, tout en garantissant la protection des données sensibles ;
- Analyse des données d’entraînement : Les concepteurs d’assistants de codage IA doivent renforcer la sélection des données d’entraînement pour éviter l’empoisonnement. Une documentation rigoureuse des composants utilisés (SBOM - Software Bill of Materials) aidera à identifier rapidement les failles potentielles en cas d'incident.
