Sécuriser le code généré par l'IA avec Digital.ai Release

Introduction : La sécurité du code d'IA et ses risques émergents

Les grands modèles de langage (LLM) et les outils de codage assisté par l'IA offrent un potentiel immense pour accélérer les cycles de développement, réduire les coûts et améliorer la productivité. Cependant, cette accélération a un prix : le code généré par l'IA introduit des risques de sécurité importants, dont beaucoup restent mal compris, insuffisamment atténués et largement non réglementés. Les vulnérabilités inhérentes au code généré par l'IA sont difficiles à identifier et à corriger avec les cadres et méthodologies limités conçus pour évaluer, sécuriser et gouverner le développement logiciel piloté par l'IA.

Les modèles de génération de code par intelligence artificielle (IA) sont susceptibles de produire du code non sécurisé ; cependant, les études indiquent Les utilisateurs perçoivent le code généré par l'IA comme plus fiable que le code généré par l'humain, et les cadres de référence détaillant comment identifier et résoudre les problèmes dans ce code sont limités. Il en résulte un angle mort important pour les organisations, source de vulnérabilités et de risques considérables.

Par exemple, les études suivantes explorent l'étendue des problèmes de sécurité liés au code généré par l'IA :

  • Sur 130 exemples de code Générés à l'aide d'InCoder et de Github Copilot, 68 % et 73 % des échantillons de code contenaient des vulnérabilités lors d'une vérification manuelle.
  • ChatGPT a été utilisé pour générer Vingt-et-un programmes écrits dans cinq langages de programmation différents ont été testés pour détecter les vulnérabilités critiques (CWE). Seuls cinq d'entre eux étaient initialement sécurisés. Ce n'est qu'après des instructions spécifiques de correction du code que sept autres programmes ont généré un code sécurisé.
  • Une moyenne de 48% Le code produit par cinq LLM différents contient au moins un bug susceptible d'être exploité de manière malveillante.

Malgré ces résultats, les premiers signes indiquent que les utilisateurs perçoivent le code généré par l'IA comme plus sûr que le code écrit par des humains. Ce « biais d'automatisation » en faveur du code généré par l'IA signifie que les utilisateurs peuvent négliger une revue de code rigoureuse et accepter un code non sécurisé tel quel. Par exemple, dans un Enquête sectorielle 2023 Sur 537 travailleurs et gestionnaires du secteur des technologies et de l'informatique, 76 % ont répondu que le code de l'IA est plus sûr que le code produit par l'homme.

Qu'est-ce qui rend le code de l'IA vulnérable ?

Les systèmes d'IA générative présentent des vulnérabilités connues face à plusieurs types d'attaques adverses. Parmi celles-ci figurent les attaques par empoisonnement de données, où un attaquant contamine les données d'entraînement d'un modèle pour obtenir le comportement souhaité, et les attaques par porte dérobée, où un attaquant tente de produire une sortie spécifique en soumettant le modèle à une phrase d'activation prédéterminée. Dans le contexte de la génération de code, une attaque par empoisonnement de données peut se traduire par la manipulation des données d'entraînement d'un modèle afin d'accroître la probabilité qu'il produise du code important un package ou une bibliothèque malveillante.

Une attaque par porte dérobée ciblant directement le modèle pourrait modifier radicalement son comportement par un simple déclencheur, et ce, de manière persistante même si les développeurs tentent de le supprimer. Ce changement de comportement peut engendrer un résultat enfreignant les restrictions imposées au modèle par ses développeurs (comme « ne pas suggérer de schémas de code associés à des logiciels malveillants ») ou révélant des informations indésirables ou sensibles. Des chercheurs ont souligné que, les modèles de génération de code étant entraînés sur de grandes quantités de données provenant d'un nombre limité de dépôts de code non nettoyés, des attaquants pourraient facilement infiltrer ces dépôts avec des fichiers contenant du code malveillant ou introduire intentionnellement de nouveaux dépôts contenant du code vulnérable.

Selon l'interface ou la structure du modèle de génération de code, d'autres formes d'attaques adverses peuvent être exploitées, comme l'injection indirecte d'instructions. Dans ce cas, un attaquant tente d'influencer le comportement du modèle tout en dissimulant ces instructions à l'utilisateur légitime. Contrairement à l'injection directe d'instructions (ou « jailbreak »), où un utilisateur attaque un modèle génératif en lui fournissant des instructions spécifiques, l'injection indirecte d'instructions exige que le modèle récupère des données compromises (contenant des instructions cachées) depuis une source tierce, comme un site web.

Dans le contexte de la génération de code, un modèle d'IA capable de référencer des pages Web ou de la documentation externes peut ne pas avoir de moyen de distinguer les invites légitimes des invites malveillantes, ce qui pourrait hypothétiquement l'amener à générer du code qui appelle un package spécifique ou qui adhère à un modèle de codage non sécurisé.

Enfin, les modèles de génération de code peuvent s'avérer plus efficaces et utiles s'ils bénéficient de permissions étendues, mais cela les expose également à des attaques et nécessite donc des mesures de sécurité renforcées. Dans un contexte professionnel, la plupart du code généré par l'IA est probablement intégré à un processus de développement comprenant des tests et une évaluation de sécurité. Cependant, les entreprises spécialisées en IA travaillent activement à des stratégies visant à conférer aux modèles – notamment aux modèles de génération de code – une plus grande autonomie et une meilleure capacité d'interaction avec leur environnement.

Les systèmes d'IA générative, notamment ceux utilisés pour la génération de code, sont intrinsèquement vulnérables à diverses attaques adverses, telles que l'empoisonnement des données, la manipulation de portes dérobées et l'injection de prompts. Ces attaques exploitent les faiblesses des données d'entraînement, du comportement des modèles et des dépendances externes, permettant ainsi aux attaquants d'introduire du code malveillant ou de contourner les systèmes de sécurité. safeL’incapacité des modèles d’IA à différencier systématiquement les entrées légitimes des entrées malveillantes aggrave encore ces risques, notamment dans les contextes où les modèles interagissent avec des ressources externes ou fonctionnent avec des autorisations étendues.

Cadre de bonnes pratiques pour le code généré par l'IA

La mise en œuvre d'un ensemble de bonnes pratiques permet aux organisations d'atténuer les risques, de garantir la conformité et de maintenir des mesures de sécurité efficaces. Vous trouverez ci-dessous un cadre de conformité proposé pour la sécurisation du code généré par l'IA.

Catégorie  Pratiques  Objectif  Des mesures d'action  Résultat 
Test et validation Tests des modèles linéaires à long terme et de leurs résultats Identifier les vulnérabilités et garantir un code généré par l'IA cohérent et sécurisé Effectuez des tests contradictoires, simulez diverses requêtes réelles et validez les cas limites. Risque minimisé de résultats non sécurisés et cohérence du code améliorée
Intégration d'outil Utilisez les outils SAST et SCA Détecter les vulnérabilités dans le code source, les dépendances et les environnements d'exécution Intégrez des outils dans les pipelines CI/CD, automatisez les analyses et corrigez les problèmes identifiés. Couverture de sécurité complète tout au long du cycle de développement
Contrôle d'Accès Implémenter le contrôle d'accès basé sur les rôles (RBAC) Limiter l'accès non autorisé aux systèmes d'IA et aux fonctionnalités sensibles Définir des rôles et des permissions précis, appliquer la segmentation et tenir des journaux d'accès détaillés. Risque d’utilisation abusive minimisé et responsabilisation accrue
Politique et conformité Automatisez l'application des politiques grâce à des modèles de conformité Se conformer aux exigences organisationnelles et réglementaires Deploy Modèles de conformité au RGPD, à la loi HIPAA et à la norme PCI DSS, et validation des résultats par rapport aux normes de sécurité Respect constant des politiques et réduction des infractions à la conformité
Traçabilité Maintenir une chaîne de traçabilité des logiciels Garantir la traçabilité et la responsabilité du code généré par l'IA Suivre l'origine du code, ses modifications et ses déploiements, et utiliser des outils de gouvernance pour signaler les écarts. Capacité accrue à détecter les vulnérabilités et à maintenir l'auditabilité
Mesures de résilience Intégrer des stratégies de déploiement progressif et de retour en arrière Détecter et atténuer les vulnérabilités dans les environnements de production Effectuez des tests canary, des déploiements bleu-vert et activez les restaurations automatisées pour les problèmes identifiés. Impact réduit des vulnérabilités sur les systèmes de production
Gestion centralisée  Utilisez une plateforme unifiée pour gérer les outils et les processus.  Rationalisez les flux de travail de sécurité, surveillez les risques et priorisez les mesures correctives.  Regroupez les données SAST, DAST et SCA, automatisez les flux de travail et offrez une visibilité via des tableaux de bord.  Amélioration de l'efficacité opérationnelle, de la réduction des risques et de la collaboration entre les équipes 

Réviserwing Tooutils et processus avec Digital.ai

Digital.ai Release et Déploy intègre une suite complète d'outils, d'alertes et de politiques pour garantir le respect des meilleures pratiques en matière de sécurisation du code généré par l'IA. Voici une liste de Digital.aises intégrations prêtes à l'emploi et ses fonctionnalités natives pertinentes sont utilisées pour garantir la sécurité du code généré par l'IA.

Digital.aiIntégrations de pour la sécurité du code généré par l'IA

  • Application Security Tests – Checkmarx facilite les analyses SAST, et Black Duck exécute les analyses SCA.
  • L'application de la politique – Open Policy Agent (OPA) implémente la politique sous forme de code dans le pipeline CI/CD.
  • Livraison continu – ArgoCD et Argo Rollouts facilitent la livraison continue et progressive ainsi que les flux de travail GitOps.

Digital.aiFonctionnalités natives pour la sécurité du code généré par l'IA

  • Contrôle d'accès basé sur les rôles – Applique le principe du moindre privilège entre les LLM et les utilisateurs tout en faisant respecter les obligations de conformité.
  • Audit et suivi de la conformité – Examine toutes les activités réalisées à travers les outils, les utilisateurs et les environnements, tout en évaluant leur impact sur l'atteinte de la conformité.
  • Analyses et flux de travail – Évalue les tendances environnementales et sécuritaires, délègue les tâches et facilite les flux de travail pour résoudre les problèmes au fur et à mesure qu'ils surviennent et faire respecter les obligations de conformité.

Cas d'utilisation complet : Renforcer la sécurité du code d'IA

En intégrant les outils susmentionnés, en configurant les alertes et en appliquant les politiques, Digital.ai Release et Deploy garantit que le code généré par l'IA est sécurisé, conforme et opérationnel. Ce point est examiné plus en détail dans tous les cas d'utilisation potentiels pour Release et Deploy, qui sont énumérés ci-dessous.

Application Security Tests

  • L'analyse SAST de Checkmarx détecte les failles de sécurité dans le code généré par l'IA des applications. Ces analyses sont configurées pour se déclencher automatiquement après chaque validation de code dans les pipelines CI/CD, offrant ainsi un retour d'information immédiat aux développeurs et minimisant le risque de vulnérabilités en aval.
  • Black Duck SCA identifie les vulnérabilités des dépendances tierces recommandées par des modèles d'IA. Ces dépendances, souvent des bibliothèques présentant des CVE connues ou des paquets malveillants issus du typosquatting, sont analysées lors de la phase de compilation du pipeline. En signalant et en corrigeant rapidement les dépendances à risque, la banque a pu exclure les bibliothèques non sécurisées de ses environnements de production.

Application de la conformité

  • Open Policy Agent (OPA) offre des fonctionnalités de gestion des politiques sous forme de code, s'intégrant au pipeline CI/CD. Les politiques sont écrites en Rego pour automatiser l'application des normes critiques telles que le RGPD, la norme PCI DSS et les cadres de gouvernance internes. Cette application repose sur la gravité du risque et les mesures d'investigation et de récupération prescrites, ainsi que sur la conformité aux bonnes pratiques et aux exigences réglementaires. Par exemple, les politiques OPA peuvent bloquer le déploiement d'API générées par IA si elles n'imposent pas le protocole HTTPS et ne mettent pas en œuvre des contrôles d'accès robustes pour respecter les exigences de conformité. De plus, OPA valide les configurations d'exécution pour garantir le chiffrement des données sensibles, aussi bien en transit qu'au repos. Les politiques limitent également l'inclusion de bibliothèques à haut risque, définies comme celles dont le score CVE est supérieur à 7.0, garantissant ainsi le respect des bonnes pratiques de développement sécurisé.
  • Le contrôle d'accès basé sur les rôles (RBAC) atténue les risques en définissant des autorisations précises pour les utilisateurs interagissant avec les systèmes d'IA et les pipelines de déploiement. Les développeurs sont limités à la génération et au test de code dans des environnements isolés, tandis que les équipes de sécurité ont accès à la revue, à l'audit et à l'approbation des résultats. Les administrateurs peuvent modifier les politiques, gérer les outils et superviser les déploiements. Cette segmentation minimise les risques d'utilisation abusive, accidentelle ou malveillante, du code généré par l'IA, et des journaux d'accès détaillés garantissent la traçabilité de chaque action effectuée au sein du système.
  • Digital.aiLes tableaux de bord de surveillance offrent une vue centralisée de la sécurité de l'organisation, en agrégeant les données issues des outils SAST, SCA et d'observabilité. Des alertes sont configurées pour notifier les équipes des vulnérabilités critiques, des violations de politiques ou des problèmes d'exécution. Des modèles de conformité fournissent des flux de travail reproductibles pour garantir le respect des normes. De plus, la chaîne de traçabilité logicielle assure le suivi de chaque modification, des résultats générés par l'IA au déploiement, garantissant ainsi la conformité. Par exemple, si un script généré par l'IA a introduit une vulnérabilité, la chaîne de traçabilité a identifié l'invite spécifique et les dépendances impliquées, permettant à la banque de corriger efficacement la cause première.

Résumé du cas d'utilisation

Cette procédure intégrée identifie les vulnérabilités à chaque étape du cycle de vie du développement logiciel, garantissant la conformité et la stabilité opérationnelle. Les politiques assurent l'alignement avec les normes réglementaires, tandis que le contrôle d'accès basé sur les rôles (RBAC), les outils de gouvernance et la chaîne de traçabilité garantissent la responsabilité et l'auditabilité. Les flux de travail automatisés réduisent les interventions manuelles, rationalisent les opérations et accélèrent la correction des vulnérabilités. Grâce à ces outils, le code généré par l'IA est sécurisé, les risques sont minimisés et les exigences de conformité sont respectées.

Vous aimerez aussi