Règles de détection
Chaque règle, avec une démo à exécuter.
Les 54 règles. Choisissez-en une pour voir un fichier qui la déclenche, la partie qui compte, et le résultat produit par le scanner. Les résultats sont générés en exécutant le vrai scanner, pas rédigés à la main.
Les démos interactives nécessitent JavaScript. Voici en attendant chaque règle.
Sécurité de l'agent
- Charge utile de prompt injection — Des instructions destinées à l'agent, cachées dans un texte que l'agent va lire de toute façon.
- La description ne correspond pas aux capacités — Un outil qui se décrit comme lecture seule alors que ses paramètres disent le contraire.
- Unicode invisible — Des caractères qui ne s'affichent pas du tout mais atteignent quand même le modèle.
- Schéma de paramètre trop permissif — Une entrée à haut risque, comme une URL ou un chemin de fichier, qui accepte absolument n'importe quoi.
- Instruction dissimulée — Une commande cachée dans une partie du fichier que le rendu n'affiche jamais.
- Injection de schéma — Une instruction cachée dans la description d'un paramètre, un niveau en dessous de celle de l'outil.
- Contrebande par caractères Unicode Tag — Un texte écrit en caractères Unicode Tag, qui ne s'affichent pas du tout.
- Détournement d'outil — Un outil qui donne des instructions sur la façon dont un autre outil devrait se comporter.
- Demande d'élévation de permissions — Demande à la personne, et non à la machine, d'abaisser une défense.
- Balise image markdown — Une image markdown dont l'adresse fait sortir des données au moment où la réponse s'affiche.
- Résultat d'outil falsifié — Un texte façonné comme le résultat d'un outil qui n'a jamais tourné.
- Empoisonnement de mémoire — Écrit des instructions dans un fichier que l'agent lit au début de chaque session.
- Déclencheur différé — Se comporte normalement au début, puis fait autre chose plus tard.
- Injection dans une chaîne d'agents — Une instruction adressée à l'agent suivant dans une chaîne, pas à l'utilisateur.
- Délégué confus — Un outil sans permission particulière qui dirige l'agent vers un outil qui, lui, en a.
- Extraction du prompt système — Demande à l'agent de révéler ses propres instructions et outils.
- Accès à l'historique de conversation — Demande l'historique de la conversation sans que sa description n'en donne la raison.
- Instruction dans un message d'erreur — Une instruction cachée dans une erreur, lue au moment précis où personne ne regarde de près.
Exfiltration
- Schéma d'exfiltration — Un outil qui manipule des secrets et peut aussi envoyer des données vers l'extérieur.
- Puits de webhook — Une adresse codée en dur dont le seul but est de collecter tout ce qui lui est envoyé.
- Exfiltration par DNS — Des données encodées dans les noms de requêtes de résolution de domaine.
- Flux de capacités toxique — Un seul outil qui lit des données privées et peut aussi publier vers l'extérieur.
- Appel réseau dans un outil « hors ligne » — Affirme ne jamais utiliser le réseau. Utilise le réseau.
Identifiants
- Secret codé en dur — Un identifiant écrit directement dans un fichier.
- Accès au coffre d'identifiants — Lit un fichier dont l'unique but est de stocker des identifiants.
- Accès aux métadonnées cloud — Demande à l'hébergeur cloud les identifiants qu'il fournit à tout ce qui les demande.
- Accès à l'historique du shell — Lit l'historique des commandes tapées dans un terminal.
- Identifiant dans une configuration MCP — Un jeton actif collé dans un fichier de configuration MCP.
- Secret écrit dans les journaux — Un identifiant imprimé quelque part où il sera conservé bien trop longtemps.
- Mauvaise configuration OAuth — OAuth configuré d'une façon qui supprime la protection pour laquelle il a été ajouté.
Chaîne d'approvisionnement
- Installation externe non fiable — Des instructions d'installation vous disant de télécharger quelque chose et de l'exécuter.
- Serveur MCP non épinglé — Un serveur qui peut devenir un logiciel différent sans que vous fassiez quoi que ce soit.
- Serveur MCP connu comme vulnérable — Une version épinglée faisant l'objet d'un avis de sécurité publié.
- Usurpation de paquet MCP — Un nom de paquet à un caractère près de celui que vous vouliez.
- Hook de script d'installation — Une commande venue d'internet qui s'exécute dès l'installation du paquet.
- Confusion de dépendances — Un paquet public portant le nom de l'un de vos paquets privés.
- Dépendance vulnérable — Une dépendance déclarée qui se trouve dans la plage affectée d'un avis publié.
- Provenance non vérifiée — Un téléchargement installé sans vérifier qu'il s'agit bien du fichier authentique.
- Nom d'outil en homoglyphe — Deux noms d'outils qui semblent identiques à l'écran mais qui ne sont pas le même texte.
- Nom d'outil en double — Le même nom d'outil déclaré dans deux fichiers différents.
- Serveur MCP fantôme — Des serveurs MCP que votre agent peut utiliser mais que la configuration de votre projet ne déclare pas.
- Mutation de l'ensemble d'outils — Un outil déjà vu auparavant, désormais livré depuis un fichier différent et modifié.
- Modification du manifeste — Un outil que vous avez déjà relu, discrètement modifié depuis.
Exécution
- Permissions excessives — Un outil qui demande bien plus d'accès que sa tâche ne pourrait en nécessiter.
- Exécution dynamique — Du code assemblé à l'exécution à partir de quelque chose remis à l'agent.
- Charge utile opaque — Quelque chose regroupé avec un skill que personne ne peut lire — ici, un programme déguisé en fichier ordinaire.
- Approbation automatique MCP — Un serveur MCP configuré pour exécuter tous les outils sans demander.
- Commande de lancement MCP trop permissive — Une commande de lancement qui donne au serveur plus que nécessaire.
- Surface d'injection STDIO de MCP — Un serveur utilisant le transport STDIO de MCP, où les valeurs de configuration deviennent une commande exécutée par l'hôte.
- Mécanisme de persistance — S'inscrit quelque part qui survit à un redémarrage.
- Évasion de bac à sable — Fait référence à un moyen de sortir du conteneur dans lequel il s'exécute.
- Réassemblage de chaîne — Construit un mot dangereux à partir de fragments pour qu'une recherche ne le trouve pas.
- Surface d'injection de commandes — Une commande shell construite en y collant une valeur fournie à l'exécution.
- CORS trop permissif — Un serveur HTTP que n'importe quel site web peut appeler.
OWASP MCP Top 10
Couverture des dix catégories.
Chaque règle correspond à au moins une catégorie de l'OWASP MCP Top 10, encore en bêta. Certaines règles couvrent plusieurs catégories, donc les totaux dépassent le nombre de règles. L'absence d'audit et de télémétrie ne compte qu'une seule règle, et c'est normal : la journalisation est un problème qu'un scanner peut signaler, pas résoudre.
| Catégorie | Nom | Règles | Couverture relative |
|---|---|---|---|
| MCP01 | Mauvaise gestion des jetons et exposition de secrets | 7 | |
| MCP02 | Élévation de privilèges par dérive de portée | 7 | |
| MCP03 | Empoisonnement d'outils | 13 | |
| MCP04 | Attaques de la chaîne d'approvisionnement logicielle et altération de dépendances | 13 | |
| MCP05 | Injection et exécution de commandes | 8 | |
| MCP06 | Subversion du flux d'intention | 10 | |
| MCP07 | Authentification et autorisation insuffisantes | 3 | |
| MCP08 | Absence d'audit et de télémétrie | 1 | |
| MCP09 | Serveurs MCP fantômes | 1 | |
| MCP10 | Injection de contexte et partage excessif | 9 |
Exécutez chaque règle sur vos propres fichiers.
Le forfait Free inclut les 54 règles et 20 analyses par mois.