Connect with us

L’impérative sans secret : Pourquoi les modèles de sécurité traditionnels échouent lorsque les agents IA touchent le code

Leaders d’opinion

L’impérative sans secret : Pourquoi les modèles de sécurité traditionnels échouent lorsque les agents IA touchent le code

mm

En avril 2023,  Samsung a découvert que ses ingénieurs avaient divulgué des informations sensibles à ChatGPT. Mais cela était accidentel. Imaginez maintenant que ces référentiels de code contenaient des instructions intentionnellement intégrées, invisibles pour les humains mais traitées par l’IA, conçues pour extraire non seulement le code mais toutes les clés API, les informations d’identification de base de données et les jetons de service que l’IA pouvait accéder. Ce n’est pas hypothétique. Les chercheurs en sécurité ont déjà démontré que ces attaques d'”instructions invisibles” fonctionnent. La question n’est pas de savoir si cela se produira, mais quand.

La frontière qui n’existe plus

Pendant des décennies, nous avons construit la sécurité sur un postulat fondamental : le code est du code, et les données sont des données. L’injection SQL nous a appris à paramétrer les requêtes. Le cross-site scripting nous a appris à échapper les sorties. Nous avons appris à construire des murs entre ce que les programmes font et ce que les utilisateurs saisissent.

Avec les agents IA, cette frontière a disparu.

Contrairement aux logiciels déterministes qui suivent des chemins prévisibles, les grands modèles de langage sont des boîtes noires probabilistes qui ne peuvent pas distinguer entre les instructions légitimes des développeurs et les entrées malveillantes. Lorsqu’un attaquant fournit une invite à un assistant de codage IA, il ne fournit pas seulement des données. Il reprogramme essentiellement l’application sur le fly. L’entrée est devenue le programme lui-même.

Ceci représente une rupture fondamentale avec tout ce que nous savons sur la sécurité des applications. Les pare-feu traditionnels basés sur la syntaxe, qui recherchent des modèles malveillants comme DROP TABLE ou <script> tags, échouent complètement contre les attaques de langage naturel. Les chercheurs ont démontré des techniques de “substitution sémantique” où remplacer “clés API” par “pommes” dans les invites permet aux attaquants de contourner les filtres entièrement. Comment pouvez-vous pare-feu l’intention lorsqu’elle est déguisée en conversation inoffensive ?

La réalité zéro-clic que personne ne discute

Voici ce que la plupart des équipes de sécurité ne comprennent pas : l’injection d’invite ne nécessite pas qu’un utilisateur tape quelque chose. Ce sont souvent des exploits zéro-clic. Un agent IA qui analyse simplement un référentiel de code pour une tâche de routine, qui examine une demande de tirage, ou qui lit la documentation d’API peut déclencher une attaque sans aucune interaction humaine.

Considérez ce scénario, basé sur techniques que les chercheurs ont déjà prouvées : Un acteur malveillant intègre des instructions invisibles dans les commentaires HTML dans la documentation d’une bibliothèque open-source populaire. Chaque assistant IA qui analyse ce code, que ce soit GitHub Copilot, Amazon CodeWhisperer ou tout assistant de codage d’entreprise, devient un potential harceleur de références. Une bibliothèque compromise pourrait signifier des milliers d’environnements de développement exposés.

Le danger n’est pas le modèle LLM lui-même ; c’est l’agent que nous lui donnons. Le moment où nous avons intégré ces modèles avec des outils et des API, en les laissant récupérer des données, exécuter du code et accéder à des secrets, nous avons transformé des assistants utiles en vecteurs d’attaque parfaits. Le risque ne s’accroît pas avec l’intelligence du modèle ; il s’accroît avec sa connectivité.

Pourquoi l’approche actuelle est condamnée

L’industrie est actuellement obsédée par “l’alignement” des modèles et la construction de meilleurs pare-feu d’invites. OpenAI ajoute plus de garde-fous. Anthropic se concentre sur l’IA constitutionnelle. Tout le monde essaie de créer des modèles qui ne peuvent pas être trompés.

C’est une bataille perdue.

Si un IA est suffisamment intelligent pour être utile, il est suffisamment intelligent pour être trompé. Nous tombons dans ce que j’appelle le “piège de sanitisation” : en supposant que de meilleurs filtres d’entrée nous sauveront. Mais les attaques peuvent être dissimulées sous forme de texte invisible dans les commentaires HTML, enfouis profondément dans la documentation, ou codés de manière que nous n’avons pas encore imaginée. Vous ne pouvez pas sanitizer ce que vous ne pouvez pas comprendre contextuellement, et le contexte est exactement ce qui rend les LLM puissants.

L’industrie doit accepter une vérité difficile : l’injection d’invite réussira. La question est de savoir ce qui se passera lorsqu’elle réussira.

Le changement architectural dont nous avons besoin

Nous sommes actuellement dans une “phase de correction”, en ajoutant désespérément des filtres d’entrée et des règles de validation. Mais tout comme nous avons finalement appris que la prévention de l’injection SQL nécessitait des requêtes paramétrées, et non une meilleure échappement de chaînes, nous avons besoin d’une solution architecturale pour la sécurité IA.

La réponse se trouve dans un principe qui semble simple mais nécessite de repenser la façon dont nous construisons les systèmes : les agents IA ne devraient jamais posséder les secrets qu’ils utilisent.

Ceci n’est pas à propos d’une meilleure gestion des informations d’identification ou d’une meilleure solution de coffre. C’est à propos de reconnaître les agents IA comme des identités uniques et vérifiables plutôt que des utilisateurs ayant besoin de mots de passe. Lorsqu’un agent IA a besoin d’accéder à une ressource protégée, il devrait :

  1. S’authentifier en utilisant son identité vérifiable (et non un secret stocké)

  2. Recevoir des informations d’identification juste-à-temps valables uniquement pour cette tâche spécifique

  3. Avoir ces informations d’identification expirer automatiquement dans les secondes ou les minutes

  4. Ne jamais stocker ou même “voir” des secrets à long terme

Plusieurs approches émergent. Les rôles IAM d’AWS pour les comptes de service, l’identité de charge de travail de Google, les secrets dynamiques de HashiCorp Vault, et des solutions spécialement conçues comme Akeyless’s Zero Trust Provisioning pointent tous vers cet avenir sans secret. Les détails d’implémentation varient, mais le principe reste : si l’IA n’a pas de secrets à voler, l’injection d’invite devient une menace significativement plus petite.

L’environnement de développement de 2027

Dans trois ans, le fichier .env sera mort dans le développement augmenté par l’IA. Les clés API à long terme situées dans les variables d’environnement seront considérées comme nous considérons actuellement les mots de passe en texte clair : un vestige embarrassant d’une époque plus naïve.

Au lieu de cela, chaque agent IA fonctionnera sous une séparation de privilèges stricte. Accès en lecture seule par défaut. Listes blanches d’actions en tant que norme. Environnements d’exécution sandboxés en tant qu’exigence de conformité. Nous cesserons d’essayer de contrôler ce que l’IA pense et nous concentrerons entièrement sur le contrôle de ce qu’elle peut faire.

Ceci n’est pas seulement une évolution technique ; c’est un changement fondamental dans les modèles de confiance. Nous passons de “faire confiance mais vérifier” à “ne jamais faire confiance, toujours vérifier et supposer une compromission”. Le principe du moindre privilège, longtemps prêché mais rarement pratiqué, devient non négociable lorsque votre développeur junior est un IA qui traite des milliers d’entrées potentiellement malveillantes chaque jour.

Le choix que nous devons faire

L’intégration de l’IA dans le développement de logiciels est inévitable et largement bénéfique. GitHub rapporte que les développeurs utilisant Copilot terminent les tâches 55 % plus rapidement. Les gains de productivité sont réels, et aucune organisation souhaitant rester compétitive ne peut les ignorer.

Mais nous sommes à la croisée des chemins. Nous pouvons continuer sur le chemin actuel en ajoutant plus de garde-fous, en construisant de meilleurs filtres, en espérant que nous pouvons créer des agents IA qui ne peuvent pas être trompés. Ou nous pouvons reconnaître la nature fondamentale de la menace et reconstruire notre architecture de sécurité en conséquence.

L’incident Samsung a été un avertissement. La prochaine faille de sécurité ne sera pas accidentelle, et elle ne sera pas contenue à une seule entreprise. À mesure que les agents IA gagnent plus de capacités et accèdent à plus de systèmes, l’impact potentiel augmente de manière exponentielle.

La question pour chaque DSI, chaque dirigeant d’ingénierie et chaque développeur est simple : Lorsque l’injection d’invite réussira dans votre environnement (et elle le fera), que trouvera l’attaquant ? Découvrira-t-il un trésor de clés à long terme, ou trouvera-t-il un agent IA qui, malgré avoir été compromis, n’a pas de secrets à voler ?

Le choix que nous faisons maintenant déterminera si l’IA deviendra le plus grand accélérateur de développement de logiciels ou la plus grande vulnérabilité que nous ayons jamais créée. La technologie pour construire des systèmes IA sécurisés et sans secret existe aujourd’hui. La question est de savoir si nous allons l’implémenter avant que les attaquants nous y obligent.

OWASP a déjà identifié l’injection d’invite comme le #1 risque dans leur Top 10 pour les applications LLM. NIST est en train d’élaborer des directives sur les architectures de confiance zéro. Les cadres existent. La seule question est la vitesse d’implémentation par rapport à l’évolution de l’attaque.

Refael Angel est le co-fondateur et le CTO d'Akeyless, où il a développé la technologie de chiffrement Zero-Trust brevetée de l'entreprise. Un ingénieur logiciel expérimenté avec une expertise approfondie en cryptographie et en sécurité cloud, Refael a précédemment occupé le poste d'ingénieur logiciel senior au centre de R&D d'Intuit en Israël, où il a conçu des systèmes pour gérer les clés de chiffrement dans des environnements cloud publics et a conçu des services d'authentification de machine. Il détient un B.Sc. en informatique de la Jerusalem College of Technology, qu'il a obtenu à l'âge de 19 ans.