SWARMRecherche en IA agentique et cybersécurité
Swarm

Niveau 4 : un contrôle utile doit intervenir avant l’effet qu’il protège

Fabrice Pizzi · Projet Swarm

Un secret est détecté après publication ; le parcours préventif examine les octets et la destination avant l’envoi, avec refus bloquant.
Un contrôle après l’envoi ne retire pas le secret transmis : la prévention exige un refus avant l’effet.
Image fixeOuvrir le GIF

Un agent prépare une modification de configuration. Le fichier contient un secret et doit être transmis à un dépôt partagé. Un contrôle détecte ce secret, mais il s’exécute après l’envoi. L’alerte est correcte ; l’information a déjà quitté son périmètre. Effacer ensuite le fichier ne retire pas les copies reçues ni ne rend le secret de nouveau inconnu.

Le problème n’est pas seulement la qualité du détecteur. Il tient à sa position dans le parcours, à son pouvoir de bloquer et aux voies qui peuvent l’éviter. Déclencher une vérification et empêcher un effet sont deux propriétés différentes.

Ce que j’appelle le niveau 4

Dans ma grille de maturité, le niveau 3 rend une méthode disponible. Le niveau 4 relie des événements du travail à des contrôles : avant un appel d’outil, après une modification ou à une transition définie. Cette grille personnelle ne certifie ni un produit ni une architecture.

Un hook peut exécuter une commande déterministe, interroger un service ou solliciter une analyse IA selon son environnement. Il ne se réduit pas à une phrase que le modèle doit se rappeler. Un programme déclenché par l’environnement conserve son mécanisme de déclenchement même si le modèle traite mal une instruction textuelle.

La documentation des hooks Claude Code distingue notamment PreToolUse, avant un appel d’outil, et PostToolUse, après son exécution. Un contrôle après exécution ne peut pas empêcher rétroactivement cet appel. La possibilité de bloquer et le comportement en cas d’échec dépendent de l’événement et du contrat configuré.

Replacer le contrôle devant la sortie

Pour notre fichier, le contrôle préventif doit examiner le contenu qui va être transmis et la destination réelle avant l’émission. Son refus doit empêcher l’opération sur ce chemin. Un contrôle visant une autre version du fichier ou un autre outil ne démontre pas cette propriété.

Une alerte après la fuite peut aider à la traiter. Elle ne prouve pas que la fuite a été empêchée.

L’échec du contrôle lui-même exige une décision explicite. Une erreur de lecture, un service indisponible ou un résultat incomplet ne doit pas être présenté comme « aucun secret détecté ». Il faut savoir si l’opération reste bloquée, ce qui est conservé et quelle reprise est autorisée.

Si le secret a déjà été transmis, la suite concerne l’exposition réelle : destinataires, copies accessibles et traitement du secret selon la procédure applicable. Relancer une analyse ne suffit pas à annuler cet effet.

Le périmètre des événements compte

Un contrôle appliqué à un outil d’écriture ne couvre pas nécessairement une commande shell, un autre connecteur ou un processus qui écrit le même fichier. Les permissions du système, la protection de la configuration et la médiation des sorties restent déterminantes.

Un hook ne doit pas non plus pouvoir être supprimé par l’acteur dont il est censé contrôler l’action sans une autorisation distincte. La configuration du contrôle et son résultat sont des ressources à protéger. Un test positif du détecteur n’établit pas cette séparation des droits.

L’IA peut aider à interpréter une modification ou à expliquer une anomalie. Une réponse probabiliste exige toutefois un traitement défini de l’incertitude et des erreurs. Elle ne devient pas déterministe parce qu’elle est appelée automatiquement.

La place de Swarm

Swarm sépare les observations de contrôle, les décisions de revue et les conditions de transition. Dans son parcours Rust de validation, les reçus lient des contrôles aux opérations concernées ; une observation absente, incomplète ou incompatible ne doit pas devenir un succès public.

Ce mécanisme ne constitue pas un détecteur universel de secrets. Le contrôle du cas doit être défini, exécuté sur les bons éléments et raccordé à la frontière qui autorise l’envoi. Il ne démontre pas davantage le confinement de tous les processus ni la couverture de toutes les sorties réseau.

Le niveau 5 ajoute la coordination des tâches et des reprises. Le niveau 6 demande qui gouverne les contrôles et quelles preuves établissent leur effet. Le code de Swarm permet d’examiner ces contrats au-delà de la seule présence d’une alerte.