Attendez que les agents IA soient compromis...
MMaximilian Schwarzmüller
Computing/SoftwareBusiness NewsInternet Technology
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.