EnforceCore
Framework d'enforcement runtime léger et open source pour tout agent IA basé sur Python.
Version actuelle : v1.0.1 (stable) — Première version stable, API de production, 1 510 tests, 22 invariants formels. Disponible sur PyPI.
EnforceCore est un framework d'enforcement modulaire qui intercepte chaque appel externe de votre agent — appels d'outils, requêtes API, accès fichiers — et applique des vérifications de politique obligatoires, la rédaction de données personnelles, la détection de secrets, les règles de contenu, le rate limiting, les limites de ressources et un journal d'audit inviolable.
Il opère à la frontière d'exécution — la seule couche qui ne peut être ni contournée, ni piratée, ni manipulée par injection de prompt. Le décorateur @enforce() agit comme un moniteur runtime dans la tradition de la vérification runtime : un observateur qui intercepte les événements système, les évalue selon une spécification, et émet un verdict avant que l'action ne soit autorisée.
Pourquoi EnforceCore
L'écosystème des agents IA augmente la capacité des systèmes autonomes. Mais presque personne ne construit la couche de contrôle.
La plupart des solutions de « sécurité » sont des garde-fous au niveau du prompt — des suggestions au LLM qui peuvent être contournées ou cassées. Elles opèrent à la mauvaise couche.
EnforceCore applique les règles à la frontière du code. Les politiques sont obligatoires, pas consultatives. Si un appel viole la politique, il est bloqué — avant même son exécution.
| Garde-fous Prompt | EnforceCore | |
|---|---|---|
| Couche | À l'intérieur du LLM | Frontière d'appel runtime |
| Contournable ? | Oui (jailbreaks, injection de prompt) | Non (enforcement au niveau du code) |
| Auditable ? | Non | Oui (pistes chaînées Merkle) |
| Testé formellement ? | Non | Oui (22 propriétés Hypothesis) |
| Aligné EU AI Act ? | Non | Oui (voir avertissement) |
Enforce, pas suggérer
Les politiques sont obligatoires. Un appel d'outil refusé ne s'exécute jamais. Il n'y a pas de prompt de « contournement ».
Agnostique du framework
Fonctionne avec LangGraph, CrewAI, AutoGen ou du Python pur. Aucun verrouillage.
Vérifiable
Chaque appel produit une entrée d'audit chaînée par Merkle en SHA-256. La piste complète est inviolable et vérifiable cryptographiquement. 22 propriétés formelles sont vérifiées via Hypothesis à chaque exécution CI.
Léger
~0,056 ms de surcharge E2E (P50). Négligeable par rapport à la latence des appels d'outils (100 ms–10 s).
EnforceCore vs. sécurité OS : EnforceCore opère à la couche sémantique applicative — il comprend les appels d'outils, les données personnelles et les budgets de coût. Il ne remplace pas SELinux, AppArmor, seccomp ou le sandboxing conteneur. Ces outils sont complémentaires — utilisez les deux pour une défense en profondeur.
Composants Principaux
| Composant | Fonction |
|---|---|
| Policy Engine | Politiques déclaratives YAML + Pydantic v2. Outils autorisés/refusés, conditions, gestion des violations. Composition avec extends: et Policy.merge(). |
| Rédacteur PII | Détection regex de 6 catégories. Rédaction auto entrées/sorties. Protection unicode (NFC, homoglyphes, URL/HTML). ~0,1–0,5 ms. |
| Scanner de Secrets | 11 catégories intégrées (AWS, GitHub, GCP, Azure, DB URIs, SSH, etc.). Patterns personnalisés via PatternRegistry. Filtrage entropie Shannon. |
| Moteur Règles de Contenu | 4 catégories : injection shell, traversée de chemin, injection SQL, exécution de code. Extensible via RuleEngine. |
| Rate Limiter | Limitation par outil et globale avec fenêtre glissante. |
| Enforcement Réseau | DomainChecker avec listes allow/deny à wildcards. |
| Auditeur Merkle | Piste SHA-256 chaînée. 4 backends (JSONL, Null, Callback, Multi). Fichiers append-only OS. 3 backends witness (Callback, File, Log). Rotation + gzip. |
| Resource Guard | Temps, mémoire, coûts. Multi-plateforme. Pool de threads partagé, détection de fuites. |
| Système de Hooks | 4 hooks de cycle de vie avec décorateurs et HookRegistry. |
| CLI | 6 commandes : info, validate, verify, eval, dry-run, inspect. |
| Observabilité | OpenTelemetry + webhooks pour événements violation/coût/audit. |
| Adaptateurs | LangGraph, CrewAI, AutoGen. ~20–50 lignes chacun. |
| Suite d'Évaluation | 20 scénarios adversariaux, 10 catégories de menaces, 15 benchmarks. |
Installation
pip install enforcecore
Python 3.11+ requis. Dépendances : Pydantic v2, PyYAML, structlog, cryptography.
Note : EnforceCore est en bêta (v1.0.0b5). L'API de 30 symboles Tier 1 est gelée — aucun changement jusqu'à v2.0.0.
Démarrage Rapide
from enforcecore import enforce
@enforce(policy="policy.yaml")
async def search_web(query: str) -> str:
return await api.search(query)
# Si "search_web" n'est pas dans allowed_tools → bloqué. Point final.
# Données personnelles → rédaction automatique avant l'appel.
# Chaque appel → entrée d'audit cryptographique.
Consultez le guide de démarrage rapide pour le tutoriel complet — politique, hooks, vérification d'audit et renforcement anti-falsification en moins de 5 minutes.
À qui s'adresse EnforceCore ?
- Développeurs d'agents qui ont besoin de sécurité production sans réécrire leur stack
- Entreprises déployant des agents IA dans des environnements réglementés (finance, santé, juridique)
- Chercheurs étudiant la vérification runtime et les garanties formelles pour les agents
- Équipes préparant la conformité au règlement européen sur l'IA
Vérifié par Conception
EnforceCore appuie ses garanties par des preuves mesurables :
- 1 510 tests, 95% de couverture, 22 invariants formels (Hypothesis)
- Modèle de menaces formel — 4 types d'adversaires, 4 propriétés de sécurité, pistes d'audit avec append-only OS + backends witness
- 20 scénarios adversariaux sur 10 catégories de menaces, 15 benchmarks de performance
- 0,056 ms de surcharge E2E (P50) — négligeable
Voir la page Architecture pour les invariants formels, le modèle de menaces et la défense en profondeur. Voir la Suite d'Évaluation pour les benchmarks reproductibles.
Pour les Chercheurs
EnforceCore applique des principes établis d'informatique — vérification runtime, moniteurs de référence, contrôle de flux d'information — au problème de la sécurité des agents IA.
Travaux antérieurs :
- Vérification Runtime — Leucker & Schallhart (2009), Havelund & Goldberg (2005)
- Moniteurs de Référence — Anderson (1972)
- Contrôle de Flux d'Information — Sabelfeld & Myers (2003)
- Intégrité d'Audit — Merkle (1987), Crosby & Wallach (2009)
- Anti-Falsification — Wallach (2026, retours de conception sur les mitigations append-only + witness)
Citation
@software{enforcecore2026,
title = {EnforceCore: Runtime Enforcement Layer for Agentic AI Systems},
author = {{AKIOUD AI}},
year = {2026},
url = {https://github.com/akios-ai/EnforceCore},
license = {Apache-2.0}
}
Open Source
EnforceCore est sous licence Apache 2.0.
Mentions Légales
EnforceCore est fourni « tel quel », sans garantie d'aucune sorte. C'est un outil d'enforcement technique — pas une certification de conformité. Voir DISCLAIMER et LICENSE.