Pourquoi la sécurité des agents IA exige des couches

Aucun outil unique n'attrape tout. Un scanner SAST manque les secrets. Un scanner de secrets manque les dépendances vulnérables. Un scanner de dépendances manque la prompt injection dans ta config MCP. C'est pour ça qu'on a construit un workflow de défense en 7 couches — chaque couche rattrape ce que les autres laissent passer.

Voici le workflow qu'on utilise tous les jours. Temps total de mise en place : 5 minutes.

Couche 1 : audit de la config MCP

Avant d'écrire la moindre ligne de code, audite tes configurations de serveurs MCP :

"Scan my MCP configuration for security issues"

Cette commande passe en revue chaque serveur MCP de ton ~/.claude/settings.json pour repérer les motifs de prompt injection, les paramètres exploitables en SSRF et les expositions d'identifiants. À relancer à chaque nouvelle installation de serveur MCP.

Couche 2 : scan des dépendances

Avant de démarrer une session de code, scanne les dépendances du projet :

"Scan this project's dependencies for vulnerabilities"

Zfuzz analyse 10 formats de lockfile contre la base de vulnérabilités OSV.dev. Il détecte les CVE connues dans tout l'arbre de dépendances — y compris les dépendances transitives que npm audit laisse parfois passer.

Couche 3 : détection de secrets

Avant chaque commit, scanne les secrets en dur :

"Scan this project for hardcoded secrets and API keys"

430+ motifs couvrant AWS, GCP, Azure, Stripe, OpenAI, Anthropic, GitHub et des dizaines d'autres. L'analyse d'entropie Shannon attrape les formats de jeton custom que les regex classiques ratent.

Couche 4 : analyse SAST

Au moment de la revue de code, lance l'analyse statique :

"Scan this code for security vulnerabilities"

441 règles SAST avec analyse de taint pour suivre le flux de données depuis les sources non fiables (entrées utilisateur, paramètres HTTP) jusqu'aux sinks dangereux (requêtes SQL, commandes shell, opérations fichier). L'analyse de taint est disponible pour JavaScript/TypeScript et Python.

Couche 5 : threat modeling

Pour chaque grosse fonctionnalité, lance un threat model :

"Threat model this feature using STRIDE"

L'analyse STRIDE identifie les risques Spoofing, Tampering, Repudiation, Information Disclosure, DoS et Elevation of Privilege. Les techniques MITRE ATT&CK rattachent chaque menace à un corpus de connaissance d'attaques réelles.

Couche 6 : garde-fou runtime

Agent Guard apporte une protection runtime pendant que l'agent IA travaille. Il s'accroche à l'exécution des outils et bloque les opérations dangereuses :

# Dans ~/.claude/settings.json
{
  "hooks": {
    "PreToolUse": [{
      "command": "zfuzz guard check --event PreToolUse"
    }]
  }
}

Sept règles intégrées protègent contre l'injection shell, le SSRF, le path traversal, la fuite de secrets, les commandes dangereuses (rm -rf, DROP TABLE), les abus de rate limiting et les accès fichier hors périmètre projet.

Couche 7 : security gate CI/CD

La dernière couche empêche le code non sûr d'atteindre la production :

# .github/workflows/security.yml
- name: Zfuzz Security Scan
  uses: zfuzz-dev/scan-action@v1
  with:
    fail_on: critical
    upload_sarif: true

La GitHub Action lance SAST + SCA + scan de secrets, pousse les findings au format SARIF vers GitHub Code Scanning et poste un commentaire de PR avec le résumé sécurité. Les PR avec findings critiques sont bloquées.

La stack complète

CoucheQuandQuoiCe qu'on attrape
1. Audit MCPÀ l'installation MCPscan_mcp_configTool poisoning, prompt injection
2. DépendancesDébut de sessionscan_dependenciesCVE connues dans les paquets
3. SecretsPré-commitscan_secretsIdentifiants en dur
4. SASTRevue de codescan_codeInjections, XSS, bugs d'auth
5. Threat modelDesign de featurethreat_modelRisques architecturaux
6. Runtime GuardEn continuHooks Agent GuardTentatives d'exploitation live
7. CI GateMerge de PRGitHub ActionTout, comme verrou final

Démarrez en 30 secondes

Les couches 1 à 5 s'installent en une seule commande. Les couches 6 et 7 demandent 3 minutes de plus :

claude mcp add zfuzz -- npx @zfuzz/mcp

GitHub · npm