Évitez les skills IA malveillants, auditez-les automatiquement !
On ne dirait pas comme ça car c’est simplement du texte, mais les skills sont une belle porte d’entrée pour des actions malveillantes. Ça me fait penser à OpenClaw. L’outil a eu quelques débuts mouvementés côté sécurité, avec de nombreuses vulnérabilités dans son cœur, des CVE en veux-tu en voilà, mais ce n’est pas tout. Son marketplace de skills est aussi une source importante de vulnérabilités. Sur 3984 skills scannés, les chercheurs de Snyk ont relevés 1467 skills problématiques. On parle de plus d’un skill sur 3 !
Je prenais l’exemple d’OpenClaw, mais le sujet dépasse largement cet outil. Claude Cowork/Code, Chat GPT Codex et les autres agents deviennent vraiment intéressants dès qu’on leur donne des outils, des skills, des données. Et c’est aussi là qu’ils peuvent potentiellement faire de très mauvaises choses si on leur donne de mauvaises instructions. Ils vont faire ce qu’on leur dit, mais pas forcément ce que l’on veut.
Un skill est plus que du texte
Un skill se présente en général sous la forme d’un fichier Markdown SKILL.md. Il explique à l’agent quoi faire pour réaliser une tâche, un processus. Ça a l’air innocent. Après tout, c’est juste du texte. Et effectivement, le skill seul n’est pas un problème. Sauf que l'agent IA, lui, est là précisément pour appliquer ces instructions, avec les outils, les données et les autorisations que vous lui avez accordés.
Un skill peut aussi embarquer des scripts, demander l’installation de dépendances, télécharger d’autres fichiers ou appeler des services externes. Il faut donc le considérer comme un élément de notre chaîne d’approvisionnement logicielle. Un peu comme une dépendance npm ou un script trouvé sur GitHub. Ce n’est pas une recette de cuisine inoffensive.
Pour vous donner quelques exemples de risques les plus évidents :
- Le vol de secrets : lire des variables d’environnement, des fichiers de configuration, des clés SSH ou des tokens, puis les transmettre ailleurs. Typiquement, on va essayer de vous voler vos clés d’api Claude/OpenIA, et vous vous retrouverez à payer l’usage d’un autre.
- L’exfiltration de données : envoyer le contexte de vos conversations, le contenu de fichiers ou des informations de votre projet vers un serveur externe.
- L’exécution de code : vous faire lancer une commande shell, télécharger puis exécuter un script distant, ou installer une dépendance douteuse. Votre machine pourrait devenir vérolée, servir à faire des attaques DDoS, etc.
- L’injection de prompt : cacher ou formuler des instructions pour que l’agent contourne ses règles, élargisse son périmètre ou fasse quelque chose qui n’a rien à voir avec la promesse du skill.
Le plus vicieux, c’est que ces éléments n’ont pas besoin d’être particulièrement cachés. Un curl | bash au milieu d’une procédure d’installation par exemple, une demande d’accès trop large, ou une URL qui récupère un script peuvent déjà mériter d’y prêter attention.
La plupart du temps, je crée mes propres skills (enfin, je fais créer) pour coller à mes usages. Mais il m’arrive d’en tester de sources externes. Dans ce cas, je préfère vérifier. C’est rapide, et je m’enlève un risque inutile.
Scanner un skill avant de l’utiliser
Mon outil de référence aujourd’hui est SkillSpector, un projet open source de NVIDIA. Il peut analyser un dépôt Git, un dossier, une archive ou un simple fichier SKILL.md, et remonte ensuite un score de risque et quelques explications pour attirer notre attention.
Il détecte par exemple les accès aux variables d’environnement, les lectures de fichiers sensibles, les téléchargements et exécutions de scripts, le code obfusqué, les dépendances vulnérables, ou encore les tentatives de manipulation de l’agent. Il va même chercher les caractères invisibles (oui, certains sont vicieux !). Pour les plus curieux, je vous invite à fouiller les documentations des outils (README de SkillSpector par exemple) pour découvrir les différentes catégories et attaques possibles, il y en a un paquet.
Je reviens à notre outil, SkillSpector. La version la plus simple fonctionne en analyse statique : elle lit les fichiers et cherche des comportements suspects. Ça tourne en local. Pas besoin de tokens, de clé d’API, de compte ou d’abonnement. Après installation de l’outil, on peut par exemple scanner un dépôt avant même de l’installer :
skillspector scan https://github.com/user/awesome-super-skill --no-llm
Le --no-llm est important ici : il force ce mode local et statique. C’est rapide, gratuit, et ça donne un premier filtre très utile. On peut également scanner un dossier sur notre machine, ou un fichier de skill directement. On a du choix.
Évidemment, un score faible ne transforme pas magiquement un skill en un truc sûr à 100 %. Le risque zéro n’existe pas vraiment en terme de sécurité informatique. Mais c’est un bon indicateur pour se questionner et nous aider à juger. À côté de ça, je vérifie aussi qui le maintient.
Quelques alternatives en ligne
Si vous ne voulez rien installer, ESET AI Skills Checker permet d’analyser l’URL d’un skill depuis le navigateur. Pas déconnant de la part de ESET, que je connaissais historiquement pour les anti-virus. Leur approche inclut une analyse des liens externes et de la chaîne de téléchargement. Pratique pour une première vérification.
J’ai aussi vu skill-spector.com, un service web qui dit s’inspirer de l’approche de NVIDIA et génère des rapports d’audit lisibles, avec score et points d’attention. En revanche, faites attention à ce que vous envoyez à un service en ligne : pour un skill interne ou contenant des informations sensibles, je privilégierais un outil local.
Et une alternative “boite à outils”
Petite dernière proposition. Je suis aussi tombé sur skillshare pendant mes recherches sur l’audit de skill. Celui-ci peut être intéressant si vous avez certains usages autour des skills : il propose, en plus de l’audit, de synchroniser vos skills entre Codex, Claude Code et beaucoup d’autres outils.
Bref
Les skills c’est cool, mais c’est aussi une potentielle porte d’entrée pour des problèmes. Que ce soit volontairement malveillant ou non d’ailleurs - un skill peut très bien avoir des vulnérabilités sans que l’auteur en soit conscient.
Donc un peu comme on évite d’installer des logiciels suspects sur notre machine sans creuser un minimum, on évite de télécharger des skills qui viennent de n’importe où et n’importe qui.