Attendez que les agents IA soient compromis...

MMaximilian Schwarzmüller
컴퓨터/소프트웨어경제 뉴스AI/미래기술

Transcript

00:00:00J'enregistre ceci quelques heures après une attaque dévastatrice de la chaîne d'approvisionnement
00:00:06qui vient de commencer. Une attaque qui s'est propagée à de nombreux packages NPM et Python.
00:00:13Au moment où j'enregistre, on ne sait pas encore quand ni où cela s'arrêtera.
00:00:19J'ai créé une vidéo séparée sur ma chaîne YouTube où j'analyse en profondeur cette attaque spécifique
00:00:25car elle était assez élaborée. J'y explique tous les détails techniques car
00:00:30c'est passionnant. Mais ici, je veux parler des attaques de la chaîne d'approvisionnement, de la sécurité et de l'IA
00:00:38dans cette ère où nous vivons. Car je suis certain que les choses vont
00:00:45empirer. Et je crains que beaucoup ne voient pas encore tous les dangers. Il y a plus que nous,
00:00:54en tant que développeurs et utilisateurs de technologie et d'IA, pour être honnête, devons faire. Et cela nous affecte même si
00:01:01nous ne sommes pas développeurs. Je sais que la plupart d'entre vous le sont, mais
00:01:07comme je vais le préciser, il ne s'agit pas seulement d'écrire du code ni seulement des attaques
00:01:13de la chaîne d'approvisionnement telles que vous les connaissez. Commençons par les bases. Qu'est-ce que c'est ?
00:01:20Dans le contexte du logiciel, cela signifie simplement qu'une dépendance que
00:01:26vous utilisez est compromise. C'est, en résumé, l'essence de l'attaque. Et compromise,
00:01:35bien sûr, peut signifier beaucoup de choses. Généralement, on voit du code malveillant dans
00:01:41le package compromis qui récolte des identifiants et des jetons. Il scanne votre disque dur pour trouver
00:01:49des secrets dans vos fichiers .env ou vos identifiants AWS, etc. Il utilise ensuite ces
00:01:56identifiants pour accéder à vos comptes mais aussi pour se propager. Pour affecter d'autres packages. Si
00:02:04vous maintenez un package open source ou même propriétaire, si vous travaillez sur
00:02:11un outil dont d'autres dépendent, il est intéressant de compromettre votre
00:02:19machine afin de compromettre le package que vous distribuez car, devinez quoi,
00:02:26cela affectera encore plus de monde. Toutes ces attaques, y compris celle
00:02:32qui a débuté avec les packages Tanstack, sont des vers qui se propagent
00:02:38pour toucher de plus en plus de packages et, au final, les machines sur lesquelles
00:02:44ils sont installés. Il y a des choses que vous pouvez faire pour vous protéger, et
00:02:51j'ai fait une vidéo à ce sujet sur ma chaîne Akatamine. Par exemple, s'assurer de
00:02:56n'installer que des versions de packages vieilles d'au moins trois jours,
00:03:02ou exécuter votre code dans un conteneur de développement ou une machine virtuelle.
00:03:08Ce sont des réflexes à avoir. Il ne faut pas non plus stocker de secrets en clair sur votre système.
00:03:15Utilisez plutôt un service comme Infisical ou Doppler pour stocker vos secrets
00:03:22dans le cloud ou de manière chiffrée afin que si un attaquant scanne votre système,
00:03:28il ne voie pas ces secrets en clair. C'est crucial dès maintenant. C'est important
00:03:37car ces attaques se multiplient. On en voit de plus en plus, et pourquoi donc ?
00:03:42Ce n'est pas parce qu'il était impossible de mener de telles attaques il y a des années.
00:03:49C'était possible et c'est arrivé, mais la fréquence a augmenté de façon spectaculaire,
00:03:56et l'IA en est une raison majeure. Examinons donc le rôle de l'IA. C'est un facteur clé
00:04:06car elle facilite grandement l'exécution de ces attaques. Un attaquant peut désormais
00:04:14utiliser l'IA pour analyser tous les dépôts de packages qu'il souhaite compromettre
00:04:22afin de voir comment ils sont construits et distribués. Par exemple,
00:04:30l'attaque Tanstack mentionnée utilisait théoriquement un processus de publication
00:04:38sécurisé via NPM. Mais ce qu'ils ont aussi fait, c'est utiliser
00:04:45un certain déclencheur d'événement GitHub Actions d'une manière qui n'était pas
00:04:51parfaitement sécurisée. Cela a permis à l'attaquant d'utiliser l'empoisonnement de cache
00:05:00pour injecter du code malveillant d'un environnement non fiable vers un environnement de confiance.
00:05:07C'est ainsi que tout a commencé. Détails dans l'autre vidéo.
00:05:15Mais l'IA facilite l'analyse des dépôts et de leurs flux de travail GitHub Actions
00:05:22ou tout autre fournisseur CI/CD. L'IA peut analyser en masse ces scripts et le code
00:05:30pour y chercher des vulnérabilités. Certes, les mainteneurs peuvent aussi l'utiliser pour scanner
00:05:38leurs dépôts et chercher des vecteurs d'attaque potentiels, mais un attaquant a
00:05:45naturellement l'avantage car il peut tout explorer et tester, alors qu'en tant que
00:05:52mainteneur, il faut tout anticiper. L'IA aide, mais ce n'est pas parfait.
00:05:58L'avantage reste à l'attaquant, et l'IA a simplifié cela. Elle facilite aussi
00:06:04l'écriture de code malveillant, comme elle facilite l'écriture de n'importe quel code.
00:06:12Vous savez, si vous me suivez, que je prône toujours l'analyse du code et
00:06:20les revues de code au lieu de tout déléguer à l'IA. Mais il est
00:06:27évident qu'il faut utiliser l'IA comme un boost de productivité. On cherche encore
00:06:33le bon dosage. Certains vous diront 100%, ils ne regardent même plus le code.
00:06:40Ce n'est pas mon cas, mais il y a tout un spectre. Quoi qu'il en soit, l'IA permet de
00:06:46générer énormément de code. Et s'il s'agit de code malveillant,
00:06:53vos priorités changent. Un attaquant veut un code qui fonctionne et qui
00:06:59n'est pas trop facile à détecter. Peu importe qu'il soit beau ou qu'il suive
00:07:06les bonnes pratiques ; la seule règle est que l'attaque réussisse. L'IA aide
00:07:13à écrire ce code malveillant et à trouver des idées pour attaquer
00:07:19des packages. C'est un aspect, mais la facilité n'est qu'une partie
00:07:26du problème. L'autre versant très important est qu'il y a plus de code que jamais,
00:07:35donc plus de cibles. Vous avez peut-être suivi l'histoire des problèmes
00:07:43de fiabilité et d'interruptions de GitHub. La raison est qu'il y a plus de code
00:07:49poussé sur GitHub que jamais grâce à l'IA, car c'est devenu très simple.
00:07:55De plus en plus de gens génèrent du code, y compris ceux qui n'ont aucune idée
00:08:02de ce que fait ce code. Le codage aveugle se développe et a ses utilités.
00:08:11Si je veux fusionner cinq PDF, je suis ravi de dire à un agent IA de le faire.
00:08:18Il écrira probablement du code pour cela et je m'en fiche, c'est une tâche unique.
00:08:24Mais si je l'exécute sur mon système, l'agent peut installer un package pour
00:08:32fusionner ces documents qui a été compromis. Je ne saurai même pas
00:08:37qu'un certain package a été utilisé si je ne vérifie pas, car seul le résultat m'importait.
00:08:43Il y a donc plus de situations que jamais où des packages sont installés car
00:08:49on écrit plus de code, tant pour des logiciels que pour des tâches ponctuelles.
00:08:56Cela rend ces attaques de la chaîne d'approvisionnement plus attrayantes que jamais,
00:09:01avec une multitude de cibles qui n'y connaissent rien en cybersécurité.
00:09:06Soyons honnêtes, beaucoup de développeurs connaissent les risques théoriques
00:09:14mais ne s'en soucient pas car c'est tellement pratique de finir le travail rapidement.
00:09:22Il faut repenser notre approche. Sécuriser nos machines, s'assurer
00:09:31de développer dans des environnements isolés, comme des VM ou des conteneurs,
00:09:37sans identifiants qui traînent. Et si nous utilisons des agents IA,
00:09:44il faut être vigilant car là aussi, le danger est double. Voyons pourquoi
00:09:53les agents IA posent problème. Le premier souci est celui que j'ai mentionné :
00:10:00lorsque nous les utilisons pour des tâches qui ne sont pas forcément liées au code,
00:10:08ou même pour nous aider sur un programme, nous ne voyons pas
00:10:17tout ce qu'ils font. Si vous utilisez Claude Code ou autre (et je n'ai rien contre,
00:10:23j'ai même des cours dessus car ces outils sont très utiles), mais si
00:10:30vous les laissez agir sans trop de surveillance pour obtenir une fonctionnalité,
00:10:35vous pourriez ne pas réaliser ce qu'ils installent.
00:10:41Encore une fois, des packages sont installés, et vous pourriez être compromis. Une
00:10:49défense est de limiter le nombre de packages, mais avec un agent IA,
00:10:54vous perdez le contrôle ; il peut installer des choses que vous n'auriez jamais choisies.
00:11:00C'est un danger évident. En voici un moins évident : les agents IA
00:11:07sont des cibles d'attaque ultra-attractives. Pourquoi ? Ces attaques
00:11:15se propagent comme des vers et affectent toutes sortes de packages.
00:11:23Il serait très intéressant pour un attaquant d'infester Claude Code, ou n'importe
00:11:32quel agent de codage IA. Pourquoi ? Si vous aviez un code malveillant
00:11:42optimisé pour infiltrer spécifiquement les dépôts et bases de code d'agents IA,
00:11:52ce code pourrait contenir des éléments d'injection de prompt.
00:12:00Il pourrait cibler ces agents pour modifier leur code afin que le but ne soit pas
00:12:08seulement d'exfiltrer des données. Le code malveillant injecté dans le package
00:12:15viserait à modifier le comportement de l'agent pour qu'il reçoive
00:12:22des instructions spéciales sur votre machine, à votre insu.
00:12:28Imaginez Claude Code avec un prompt système secret, normalement défini
00:12:34par les employés d'Anthropic, mais qui serait maintenant contrôlé par
00:12:39ce code malveillant lui ordonnant de feindre l'exécution de vos requêtes.
00:12:46Ou alors, de faire ce que vous demandez, mais de scanner en plus
00:12:52le système pour trouver des secrets, voire d'écrire un petit programme de scan
00:13:00qui enverrait les données vers un serveur distant. Les possibilités sont infinies
00:13:06car vous avez soudain un cheval de Troie sur votre système. Vous avez
00:13:12un agent IA qui devient incontrôlable, non pas parce que l'IA est intrinsèquement
00:13:20mauvaise, mais parce que le code de l'agent ou son prompt système a été compromis.
00:13:28Ce scénario n'est pas irréaliste, et je vous garantis que cela arrivera.
00:13:34C'est une cible trop évidente. Les agents IA sont des proies idéales.
00:13:41Cela arrivera. Nous verrons un nouveau niveau d'attaques qui ne se contenteront plus
00:13:49de voler des identifiants, ce qui est déjà grave et de plus en plus fréquent.
00:13:54Nous verrons des agents IA détournés par du code malveillant. Ce n'est qu'une question de temps.
00:14:01Il y a plusieurs couches de risques, comme vous le voyez. C'est notre nouvelle réalité.
00:14:08C'est un peu comme les débuts d'Internet ; c'est chaotique pendant qu'on apprend.
00:14:14Il faudra trouver comment renforcer la sécurité. Une étape évidente,
00:14:21valable pour le développement comme pour les agents IA, est de ne pas
00:14:26travailler dans un environnement vulnérable. Il ne faut pas exécuter
00:14:32ces outils là où vous stockez vos identifiants, secrets ou données sensibles.
00:14:37Évitez de le faire sur votre machine principale. Utilisez des machines virtuelles
00:14:42isolées ou des serveurs distants pour limiter le rayon d'impact si un incident
00:14:49survient. Car, encore une fois, ce n'est qu'une question de temps.
00:14:56C'est la première étape : réaliser que tout change vite. La sécurité est
00:15:03un enjeu majeur qui va s'intensifier avec l'accélération de l'IA. À mesure que
00:15:11les modèles deviennent plus intelligents et s'intègrent à nos outils,
00:15:17de nouvelles capacités apparaissent, mais aussi une grande facilité d'usage.
00:15:23La commodité est dangereuse car elle rend négligent. L'IA est partout,
00:15:30utilisée par des gens sans aucune notion de cybersécurité, et même
00:15:34ceux qui s'y connaissent sont en danger. La route sera mouvementée.
00:15:40Il faut repenser nos habitudes et être extrêmement prudents sur la façon dont nous utilisons
00:15:49et travailler sur notre code.

Key Takeaway

L'automatisation par les agents IA et la génération massive de code créent de nouvelles vulnérabilités critiques qui imposent l'usage systématique d'environnements isolés et de gestionnaires de secrets chiffrés.

Highlights

  • Une attaque de la chaîne d'approvisionnement massive a récemment compromis de nombreux packages NPM et Python, dont l'écosystème Tanstack.

  • L'utilisation d'environnements de développement isolés comme des conteneurs ou des machines virtuelles limite le rayon d'impact d'un code malveillant.

  • L'injection de prompt permet à des attaquants de détourner secrètement des agents IA comme Claude Code pour exfiltrer des données ou modifier leur comportement.

  • Attendre au moins trois jours avant d'installer la nouvelle version d'un package réduit les risques d'intégrer une version compromise non encore détectée.

  • Le stockage de secrets en clair dans des fichiers .env facilite le vol d'identifiants AWS ou de jetons par des scripts de scan automatisés.

  • L'IA accélère la fréquence des cyberattaques en analysant massivement les flux GitHub Actions pour identifier des failles d'empoisonnement de cache.

Timeline

Anatomie d'une attaque de la chaîne d'approvisionnement

  • Une dépendance logicielle compromise permet l'exécution automatique de code malveillant lors de l'installation.
  • Le code malveillant scanne le disque dur à la recherche de fichiers .env, de jetons et d'identifiants Cloud.
  • Les attaques se propagent comme des vers en utilisant les identifiants volés pour infecter d'autres packages open source.

Les attaques récentes sur les packages NPM et Python illustrent la vulnérabilité des dépendances modernes. Le but principal est la récolte d'identifiants AWS ou de secrets de configuration pour infiltrer des comptes et étendre l'infection à d'autres projets. Ces malwares agissent de manière autonome dès que le développeur installe ou met à jour un package infecté.

Mesures de protection immédiates pour les développeurs

  • L'installation de versions de packages datant de moins de 72 heures est une pratique à haut risque.
  • Les services comme Infisical ou Doppler protègent les secrets contre les scans de système en les stockant de manière chiffrée.
  • L'exécution de code au sein de conteneurs de développement ou de machines virtuelles isole le système principal.

La sécurisation des machines de travail passe par l'abandon du stockage des secrets en clair sur le disque dur. L'utilisation de coffres-forts numériques dans le cloud empêche un attaquant de lire les clés API même s'il accède aux fichiers locaux. Une hygiène stricte sur le délai d'adoption des nouvelles versions de packages offre une fenêtre de détection par la communauté.

L'IA comme catalyseur de vulnérabilités

  • L'IA permet aux attaquants d'analyser en masse les scripts CI/CD pour y trouver des failles logiques.
  • L'augmentation massive du volume de code poussé sur GitHub crée une surface d'attaque sans précédent.
  • Le codage aveugle via des agents IA installe des dépendances tierces sans aucune vérification humaine.

L'avantage penche du côté des attaquants car l'IA simplifie l'identification des vulnérabilités dans les flux de travail complexes comme GitHub Actions. L'empoisonnement de cache permet d'injecter du code d'un environnement non fiable vers un environnement de confiance. La facilité de génération de code pousse également des utilisateurs non avertis à exécuter des scripts qui installent des packages compromis sans surveillance.

Le détournement des agents IA et le futur de la menace

  • Les agents de codage comme Claude Code constituent des cibles prioritaires pour l'injection de prompts malveillants.
  • Un agent compromis peut simuler une exécution normale tout en exfiltrant des données sensibles en arrière-plan.
  • Le cloisonnement des outils IA sur des serveurs distants ou des VM isolées est désormais une nécessité sécuritaire.

Le risque ne concerne plus seulement le vol de données mais le contrôle total du comportement de l'IA. Un code malveillant injecté dans un package peut modifier le prompt système d'un agent pour lui donner des instructions cachées. Cette nouvelle ère de menaces transforme les outils de productivité en chevaux de Troie potentiels si les environnements d'exécution ne sont pas rigoureusement isolés des données sensibles.

Community Posts

View all posts