
Défense IA de production avec protection en 7 couches : contraintes mathématiques, accès par object-capability, consensus O2 distribué, éthique SVETILO. Première défense open-source contre ThoughtVirus. BSL 1.1.
Prototype de recherche pour la défense IA multicouche : explicabilité C4, classifieurs d'ensemble, désobfuscation, moteur de sécurité O₂, défense ThoughtVirus et alignement des valeurs SVETILO. Niveau alpha — validé en interne, audit externe en attente.
Version : 1.0.0-alpha | Statut : Prototype de recherche | Licence : BSL 1.1 (gratuit hors production ; production → commercial)
Auteur : I.G. Selyutin. Co-auteur du modèle C4-META : N.I. Kovalev.
Identité du produit (2026-08) : prototype de recherche BSL / de profondeur commerciale d'une pile de défense C4 multicouche plus lourde (ensemble, échafaudage O₂, laboratoire red-team) construite surc4protocolsous licence Apache-2.0.
Pas un second protocole ouvert. Pas une défense AGI de production certifiée. Pas « v8 FINAL ».
Audit d'honnêteté :docs/AUDIT-c4-meta-system-2026-08.md.
Parcours de promotion :docs/PROMOTE-FROM-PROTOCOL.md(consommer/épinglerc4protocol; pas de vidage de l'ensemble dans le SDK léger).
GitLab Pages =public/(EN +public/ru/). Preuve d'exécution ouverte :make conformancedans c4protocol.
Le système C4-META est un prototype de recherche pour la défense IA multicouche mettant en œuvre :
Input Sanitization → Semantic Analysis → Behavioral Analysis → Meta-Observer (O₂)
value_verification.py (pas un modèle d'éthique entraîné)┌──────────────────────────────────────────────┐
│ LAYER 1: Input Sanitization │
│ Deobfuscation (homoglyphs, leetspeak, etc.) │
├──────────────────────────────────────────────┤
│ LAYER 2: Semantic Analysis │
│ 4-Classifier Ensemble: ONNX_BERT (~50ms) │
│ + RuleBased + Heuristic + LLM_SEMANTIC │
│ Dual classifier OR-logic (BERT+RuleBased) │
├──────────────────────────────────────────────┤
│ LAYER 3: Behavioral Analysis │
│ 16 AoC Defense Modules (11 original + 5 │
│ extended), Pattern matching, Trajectory │
│ anomaly detection, ThoughtVirus defense │
├──────────────────────────────────────────────┤
│ LAYER 4: Meta-Observer (O₂) │
│ Transfer entropy, BFT consensus, │
│ semantic entanglement, causal graphs, │
│ Kill-Switch, SVETILO value verification │
├──────────────────────────────────────────────┤
│ C4 Core Engine (Z₃³) │
│ pipeline_orchestrator.py, event_bus.py │
│ c4_meta_monitor.py — self-awareness deque │
├──────────────────────────────────────────────┤
│ Defenses: Anti-Deadlock, Anti-Emergence, │
│ Anti-Hijack, Circuit Breaker, O₂ Kill-Switch│
├──────────────────────────────────────────────┤
│ Red Team Lab: AOC scenarios, experiment │
│ runner, LLM client, adapters │
├──────────────────────────────────────────────┤
│ Routing: Smart Router, Quarantine, │
│ Antifragile Scoring (capped growth) │
└──────────────────────────────────────────────┘
Vote des 4 classifieurs :
Logique OU à double classifieur : BERT + RuleBased opèrent comme porte principale avec repli OU — si l'un ou l'autre signale l'entrée, elle passe aux couches de défense. Aucun classifieur n'est un goulot d'étranglement.
c4-meta-system/
├── v4_1/
│ ├── core/
│ │ ├── pipeline.py # Main entry points (re-exports)
│ │ ├── __main__.py # HTTP server entrypoint for Docker
│ │ ├── pipeline_stages.py # Individual processing stages
│ │ ├── pipeline_orchestrator.py # Main orchestration (thread-safe)
│ │ ├── result_factory.py # Standardized C4v4Result factory
│ │ ├── event_bus.py # Organic event bus (atexit cleanup)
│ │ └── c4_meta_monitor.py # Z³ self-awareness (deque bounded)
│ ├── security/
│ │ ├── o2_engine.py # O₂ defense (kill-switch self-DoS fixed)
│ │ ├── explainable_o2.py # O₂ explainability (sampling inverted)
│ │ ├── o2_shared.py # Window structures (@mention comms)
│ │ ├── semantic_detector.py # Concept graphs (normalized entanglement)
│ │ ├── secure_debug_endpoints.py # Debug endpoints (UTC + rate limits)
│ │ ├── hardening.py # Model signing / admin token verification
│ │ ├── behavioral_profiler.py # Drift detection (thread-safe singleton)
│ │ ├── distributed_o2.py # SQLite/Redis backend (BEGIN IMMEDIATE)
│ │ ├── swarm_orchestrator.py # Anti-virus swarm
│ │ └── ...
│ ├── defenses/
│ │ ├── anti_deadlock.py # Resource deadlock prevention
│ │ ├── anti_emergence.py # State convergence (async release fixed)
│ │ └── ...
│ ├── redteam/
│ │ ├── orchestrator.py # Main orchestrator (target_callback parsing)
│ │ ├── scenario_manager.py # AOC scenarios management
│ │ ├── adapters/ # LLM backend adapters
│ │ ├── experiment_executor.py # Async execution (FPR logic fixed)
│ │ ├── experiment_services.py # Service locator
│ │ ├── experiment_runner.py # Web UI + REST API
│ │ ├── llm_client.py # Async-safe LLM client (empty choices guarded)
│ │ └── ...
│ ├── classifiers/ # 4-classifier ensemble
│ ├── config/ # Configuration management
│ ├── access/ # Access control
│ ├── explainability/ # C4 explainability
│ ├── learning/ # Learning loop
│ ├── plugins/ # Plugin system
│ ├── quarantine/ # Quarantine management
│ ├── router/ # Smart routing
│ ├── scoring/ # Antifragile scoring
│ └── tests/ # 240 tests (19 test files)
├── formal/ # TLA+ specifications
├── models/ # ONNX model + tokenizer
├── archive/Dockerfile.prepared # Multi-stage production build (archived)
├── Dockerfile.distroless # Distroless-ready builder pattern
├── archive/docker-compose.yml.prepared # Full stack (Ollama + UI + Monitoring) (archived)
├── .dockerignore # Security-hardened exclusion list
├── infra/k8s/ # Kubernetes manifests (hardened)
└── README.md # This file
Le système est entièrement préparé pour la conteneurisation avec une configuration sensible à l'environnement.
# Full stack (C4-META + Ollama + UI)
docker compose --profile experiment up -d
# Build image
docker build -t c4-meta-system -f archive/Dockerfile.prepared .
# Run with local Ollama
OLLAMA_BASE_URL=http://host.docker.internal:11434 docker run -p 8080:8080 c4-meta-system
# Red Team runner
docker build -t c4-redteam -f redteam/Dockerfile.redteam.prepared .
docker run -p 8081:8081 c4-redteam
GET /health sur le port 8080GET /health sur le port 8081pip install -r requirements.txt
# Optional Docker deps
pip install -r requirements-docker.txt
python -m v4_1.core
# or explicitly
python -m v4_1.core.__main__
python -m v4_1.redteam.experiment_runner --web --port 8080
o2_engine.py ne bloque plus tout le trafic lorsque O2 est désactivé.ThreadPoolExecutor se nettoie désormais via atexit ; les callbacks asynchrones utilisent run_coroutine_threadsafe().explainable_o2.py échantillonne désormais correctement la fraction sample_rate au lieu de 1 - sample_rate.o2_shared.py n'enregistre que les mentions explicites @agent au lieu d'une clique entièrement connectée.semantic_detector.py normalise les compteurs de concepts avant la comparaison de seuil.Résultats complets des benchmarks sur 4 jeux de données et 2000 variantes adversariales du pipeline de défense C4.
Voir c4protocol/BENCHMARK_RESULTS.md pour le rapport complet.
Remarque : L'O₂ distribué nécessite un cluster Redis pour la production. Le mode mono-nœud est disponible pour le développement (voir guide de déploiement).
Les défenses de C4-META sont robustes — mais aucun système n'est parfait. Si vous trouvez un prompt qui contourne le classifieur d'ensemble, les modules de défense AoC ou le moteur O₂, nous voulons le savoir.
Signaler les contournements :
Ce dont nous avons besoin : le prompt de contournement, la réponse attendue et la couche de défense qui a échoué. Nous reconnaissons tous les rapporteurs dans notre temple de la renommée de la sécurité.
C4-META v1.0.0-alpha — prototype de recherche de défense IA multicouche. Validation interne terminée. Audit externe en attente.
blockedquarantinedaccess/capabilities.py et security/hardening.py prennent tous deux en charge bcrypt et SHA256.ModelIntegrityVerifier lève une RuntimeError si C4_MODEL_SIGNING_KEY n'est pas définie.explainable_o2.py éliminé (ne bloque plus le thread de la boucle d'événements).distributed_o2.py corrigée pour réellement imposer des URL Redis limitées à localhost._active_threat dans process_message() est désormais protégée par un verrou.save_to_file / load_from_file résolvent désormais par rapport à un répertoire de base sûr au lieu d'un contrôle de préfixe défaillant.phase3.py hache toujours les deux opérandes, supprimant le canal auxiliaire temporel de la branche de longueur.experiment_reporter, decision_logger, orchestrator, experiment_runner et hardening.py utilisent un fichier temporaire + un renommage atomique.archive/Dockerfile.prepared crée désormais explicitement l'utilisateur/groupe avec UID/GID 1000, en correspondance avec K8s runAsUser.deployment.yaml référence le Secret c4-meta-api-keys pour l'injection de clés API ; un manifeste d'exemple a été ajouté dans secrets.yaml.disable() et reenable() exigent le hachage de CIRCUIT_BREAKER_AUTH_TOKEN.vote_debug() vérifie C4_ADMIN_TOKEN_HASH avec une comparaison à temps constant.SentimentExtractor ne déduplique plus les mots ; ComplexityExtractor plafonne à [0, 1]._goal_history inutilisé ; OmegaPrioritizer utilise deque(maxlen=1000) pour une éviction en O(1).ConvergenceMonitor et PhiAttractorCalculator.o2_shared.py utilise datetime.now(timezone.utc) au lieu de datetimes naïfs._regenerate_session.{"status": "simulated"}._active_threat est désormais effacé lorsque l'analyse de fenêtre est sûre ; il ne reste plus collé en permanence après la première détection.vote_result.is_dangerous=True renvoie désormais un résultat de blocage au lieu de retomber sur ALLOW.anon_anonymous partagé.get_access_controller() utilise désormais un verrouillage à double vérification pour empêcher une course à l'initialisation.get_learning_loop() utilise désormais un verrouillage à double vérification pour empêcher une course à l'initialisation.pending_operations et approved_operations protégés par threading.Lock.pending protégé par threading.Lock./v1/chat/completions au lieu de /chat/completions nu.time.monotonic() au lieu de time.time() pour empêcher une latence négative lors des ajustements NTP.asyncio.get_event_loop()._last_result dans _analyze_window() est désormais protégée par un verrou._compile_*_regex() utilise désormais le paramètre patterns transmis au lieu de l'ignorer.filter_attack_prompt() effectue désormais un seul appel de filtre au lieu de compter deux fois les statistiques._get_lock() utilise un verrou de threading pour empêcher une course lors de la création d'asyncio.Lock.snapshot_cognition() stocke une copie de C4Coordinate au lieu d'une référence mutable.transition_to() copie le C4Coordinate entrant au lieu de conserver une référence._save_results() vérifie la traversée AVANT de résoudre et garantit que le chemin reste dans le répertoire de base.create_session() vérifie la propriété de l'utilisateur avant de renvoyer un ID de session existant.retryable_exceptions par défaut modifiées de (Exception,) à (ConnectionError, TimeoutError, OSError)._audit_log utilise désormais deque(maxlen=10000) pour empêcher une croissance illimitée.revoke_all_for_subject() utilise un ordre de verrouillage cohérent (révoqué → utilisé).verify_admin_token() transmet consume_single_use=False pour éviter de consommer les jetons lors de la vérification.reach_consensus() désormais protégé par threading.Lock.generate_random_string() utilise secrets.SystemRandom() au lieu de random._describe_z_state() gère correctement T=-1.reset_threat_state() efface désormais réellement manual_quarantine et l'état d'urgence.unquarantine_agent() n'audite que lorsque l'agent était réellement en quarantaine.build_report() protège les treatment_metrics vides avec le même modèle que control_metrics.antifragile_growth plafonné à 1,000,000.0 pour empêcher une croissance flottante illimitée.| Métrique | Valeur |
|---|
| Taux de détection adversarial | 80.3% |
| Score de robustesse | 1.25 |
| Détection propre (AoC) | 70.9% |
| Taux de faux positifs | 14.6% |
| Taux de blocage LLM C4 | 96.7% |
| Réduction ASR GPT-4o-mini | 10.7% → 0.7% (93.2%) |
| Réduction ASR Mistral 7B | 22.5% → 0.5% (97.6%) |
| Métrique | Valeur |
|---|
| Version | 1.0.0 FINAL |
| Statut | Prototype de recherche (validation interne terminée) |
| Tests | 240 tests (19 fichiers de test) |
| Classifieurs | 4 (ONNX_BERT, RuleBased, Heuristic, LLM_SEMANTIC) |
| Couches de défense | 4 (Assainissement des entrées → Sémantique → Comportemental → Méta-observateur) |
| Défenses AoC | 16 (11 originales + 5 étendues) |
| ThoughtVirus | Défense à 2 couches (regex + trajectoire C4) |
| SVETILO | 7 sceaux intégrés |
| Corrections de bugs | 60+ résolues au fil des cycles d'audit |
| Build Docker | Réussi (multi-étapes, prêt distroless) |
| Manifestes K8s | Prêts (durcis avec secretKeyRef) |
| Licence | BSL 1.1 |