5 conseils pour adopter l’assistance au codage par IA en toute sécurité
30 mai 2024
0 minutes de lectureCes dernières années, l’IA générative a suscité un vif intérêt, en particulier dans le développement logiciel. Des développeurs de tous niveaux se tournent vers des outils d’IA comme GitHub Copilot, Amazon CodeWhisperer et ChatGPT d’OpenAI pour les aider à coder. En fait, GitHub a constaté que 92 % des développeurs utilisent des outils de codage par IA.
Cependant, de nombreuses entreprises comprennent qu’elles doivent faire preuve de plus de prudence lorsqu’elles utilisent l’IA dans le développement logiciel. L’IA générative est encore sujette aux inexactitudes et aux hallucinations et peut exposer les organisations à de nouveaux vecteurs de menace, tels que l’empoisonnement des données et l’injection de prompts.
Pour bien utiliser l’IA, il ne s’agit ni de l’éliminer ni de laisser les équipes l’utiliser sans contrôle, mais de définir des garde-fous adaptés pour exploiter en toute sécurité le code généré par l’IA.
Voici cinq conseils pour utiliser les assistants de codage par IA en toute sécurité tout au long du cycle de développement logiciel :
Gardez toujours un humain dans la boucle.
Analysez le code généré par l’IA depuis l’IDE à l’aide d’un outil de sécurité distinct et impartial.
Validez le code tiers.
Automatisez les tests dans toutes les équipes et tous les projets.
Protégez votre propriété intellectuelle.
Gardez toujours un humain dans la boucle
L’IA générative, c’est en quelque sorte un développeur junior qui a accès à des millions d’exemples de code provenant d’Internet. Même si les assistants de codage par IA travaillent rapidement, ils sont loin d’être infaillibles : leurs données d’entraînement incluent du bon comme du mauvais code. Il est donc essentiel de prévoir des contrôles humains suffisants lors de l’adoption d’outils de génération de code par IA. Les équipes peuvent garder un humain dans la boucle en adoptant les pratiques suivantes :
Effectuer les mêmes tests de sécurité du code qu’avant l’IA, par exemple en validant, testant et corrigeant les vulnérabilités dans l’IDE avec des outils de tests statiques de sécurité des applications (SAST).
Organiser régulièrement des formations sur les avantages et les risques du code généré par l’IA.
Élaborer des politiques et des procédures pour examiner régulièrement le code généré par l’IA.
Analysez le code généré par l’IA depuis l’IDE avec un outil de sécurité distinct et impartial
Pour tester la sécurité de votre code généré par l’IA, il est recommandé d’utiliser un outil différent de celui qui a produit une grande partie du code. Un outil de sécurité distinct garantit l’impartialité. De plus, les outils se spécialisent dans différents domaines. Un outil d’IA conçu pour générer du code fonctionnel ne connaît pas l’ensemble de votre posture de sécurité et n’a pas forcément les fonctionnalités nécessaires pour comprendre les subtilités complexes de la sécurité.
Voici deux critères essentiels à prendre en compte pour choisir cet outil distinct et impartial de sécurisation du code généré par l’IA :
Une vision complète et contextuelle de l’ensemble de votre application, et pas seulement des vues partielles des extraits de code générés par l’IA. L’outil peut ainsi proposer des correctifs sans compromettre le reste de votre application.
Des capacités d’analyse intégrées à l’IDE pour intervenir le plus tôt possible dans le cycle de développement. Les développeurs peuvent ainsi corriger les vulnérabilités du code généré par l’IA comme du code écrit manuellement, juste après sa rédaction.
Validez le code tiers
Le code open source représente 70 à 90 % d’une application moyenne. Les développeurs font régulièrement appel à ces ressources tierces, et le code généré par l’IA s’appuie lui aussi sur des dépendances tierces. Le code open source permet aux développeurs de créer des applications plus rapidement, mais sa qualité et son niveau de sécurité peuvent varier. Les bibliothèques open source recommandées par l’IA peuvent également présenter des risques : l’IA n’est souvent pas au fait des dernières informations sur les menaces et peut recommander des ressources tierces obsolètes ou dont les vulnérabilités sont connues.
L’analyse de la composition logicielle (SCA) aide les organisations à détecter et à corriger les vulnérabilités de ces ressources tierces. Elle peut analyser les dépendances choisies par des humains ou par l’IA, en détectant les packages open source vulnérables, en signalant ces vulnérabilités et en suggérant des mesures correctives. Lorsqu’elles utilisent des assistants de codage par IA, les équipes doivent tester et vérifier les bibliothèques open source recommandées par l’IA à l’aide d’un outil SCA de qualité.
Automatisez les tests dans toutes les équipes et tous les projets
Lorsque votre équipe réfléchit à la mise en œuvre de ces bonnes pratiques de sécurité du code écrit par des humains ou par l’IA, repérez les tâches qui pourraient être automatisées. Les assistants de codage par IA accélèrent plus que jamais les cycles de développement. Si vos tests de sécurité ne sont pas automatisés, ils ne pourront pas suivre cette cadence sans précédent. Pour automatiser efficacement, intégrez les tests de sécurité aux workflows déjà utilisés par les équipes de développement, comme les pipelines CI/CD.
Protégez votre propriété intellectuelle
Les équipes doivent également s’intéresser au code utilisé dans les prompts adressés aux assistants de codage par IA et trouver comment éviter que les membres du personnel y exposent accidentellement des données sensibles. Les outils d’IA utilisent généralement les prompts de leurs clients comme données d’entraînement : tout ce que vous y écrivez peut donc être réutilisé. Il est par conséquent essentiel de ne pas saisir de code sensible ou propriétaire dans un outil d’IA. Voici quelques précautions à prendre lorsque vous rédigez des prompts pour des outils d’IA :
Consignez des politiques détaillées sur l’utilisation de l’IA et formez les équipes à ces directives, notamment aux conséquences possibles de leur non-respect.
Partez du principe que toutes les données saisies dans un LLM seront utilisées pour son entraînement.
Ne fournissez à un outil d’IA que les informations strictement nécessaires à son fonctionnement.
Envisagez des contrôles des entrées et des sorties afin de nettoyer les données saisies par les utilisateurs et les résultats produits par les outils d’IA.
Découvrez comment Snyk permet d’adopter en toute sécurité les assistants de codage par IA.
