Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cerebro-red-v2 — CEREBRO-RED v2 : Plateforme avancée de recherche Red Team pour LLM avec l'algorithme PAIR et l'évaluation LLM-as-a-Judge | Kitploit
Outils/GitHubGitHub/leviticus-triage/cerebro-red-v2
Analyse Dynamique (Sandboxing)Frameworks d'ExploitationGénération de PayloadsAnalyse des VulnérabilitésFuzzingTests d'IntrusionArticles et RechercheApprentissage et ÉducationRed TeamingSécurité de l'IAAttaque Adversariale
1634il y a 5 moisPas encore vérifié
GitHub
leviticus-triage/cerebro-red-v2

cerebro-red-v2

CEREBRO-RED v2 : Plateforme avancée de recherche Red Team pour LLM avec l'algorithme PAIR et l'évaluation LLM-as-a-Judge

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CEREBRO-RED v2 (Édition Recherche)

Suite autonome de Red Teaming pour LLM locaux

Un cadre de niveau recherche pour la découverte automatisée de vulnérabilités dans les LLM locaux utilisant le Fuzzing Agentique et la Mutation Adversaire Adaptative (AAM).

Objectifs de Recherche

  • Implémenter l'algorithme PAIR (Prompt Automatic Iterative Refinement) de arxiv.org/abs/2310.08419
  • Évaluation sémantique LLM-as-a-Judge avec raisonnement en chaîne de pensée
  • Architecture Telemetry-First pour une analyse de niveau livre blanc
  • Support multi-fournisseur LLM (Ollama, Azure OpenAI, OpenAI)

Architecture

Pile Technique

  • Backend: FastAPI (async/await), Pydantic (strict types), Uvicorn
  • LLM Gateway: litellm (universal adapter for Ollama/Azure/OpenAI)
  • Database: SQLite (experiments) + JSONL (audit logs)
  • Frontend: React + Vite + TailwindCSS + ShadcnUI + Recharts
  • Container: Docker + Docker Compose

Architecture Overview

Architecture du système montrant les principaux composants et le flux de données

Modules Principaux

  1. Orchestrator (backend/core/engine.py): Traitement par lots asynchrone avec backoff exponentiel
  2. Mutator (backend/core/mutator.py): Algorithme PAIR avec stratégies de mutation
  3. Judge (backend/core/judge.py): LLM-as-a-Judge avec évaluation CoT
  4. Telemetry (backend/core/telemetry.py): Journal d'audit JSONL thread-safe

Tableau de Bord Frontend

Le frontend basé sur React offre une interface complète pour gérer les expériences, surveiller la progression et analyser les résultats.

Frontend Dashboard

Interface principale du tableau de bord montrant l'aperçu des expériences et les statistiques

Frontend Experiments

Vue de gestion des expériences avec mises à jour en temps réel et liste des expériences

Frontend UI Overview

Aperçu complet de l'interface utilisateur montrant toutes les fonctionnalités disponibles

Résultats et Analyse des Expériences

Frontend Results

Vue des résultats affichant les issues des expériences, les découvertes de vulnérabilités et l'analyse détaillée

Frontend Settings

Panneau de paramètres et de configuration pour personnaliser les paramètres d'expérience

Surveillance en Temps Réel

Frontend Monitoring

Tableau de bord de surveillance en temps réel avec progression en direct des expériences et indicateurs d'état

Frontend Telemetry

Vue de télémétrie montrant les journaux d'audit détaillés, les événements système et les métriques de performance

Logs View

Vue détaillée des journaux avec capacités de filtrage et de recherche

Metrics Dashboard

Tableau de bord des métriques de performance et des statistiques

Status Overview

Aperçu de l'état du système montrant les vérifications d'intégrité et l'état des composants

Documentation API

Frontend API

Interface de documentation API interactive avec explorateur de points d'accès

Pour une documentation détaillée de l'architecture, voir docs/ARCHITECTURE.md.

Démarrage Rapide

Prérequis

  • Docker 24.0+
  • Docker Compose 2.20+
  • Ollama en cours d'exécution sur l'hôte (ou clés API Azure/OpenAI)

Configuration Docker

Si Docker n'est pas en cours d'exécution, démarrez le démon Docker :```bash

Start Docker daemon

sudo systemctl start docker

Enable Docker to start on boot

sudo systemctl enable docker

Add your user to the docker group (to run Docker without sudo)

sudo usermod -aG docker $USER

Apply group changes (logout/login or use newgrp)

newgrp docker

OR logout and login again for changes to take effect

root@kitploit:~
**Vérifiez que Docker est en cours d'exécution** :```bash
docker --version
docker compose version

Installation

  1. Cloner le dépôt: ```bash git clone https://github.com/Leviticus-Triage/cerebro-red-v2.git cd cerebro-red-v2

    root@kitploit:~
  2. Configurer l'environnement : ```bash cp .env.example .env

    Edit .env with your LLM provider credentials

    root@kitploit:~
  3. IMPORTANT: Vérifiez le port 8000 ```bash

    Falls Port 8000 belegt ist:

    lsof -i :8000 # Finde Prozess

    Oder ändere Port in .env: CEREBRO_PORT=8001

    root@kitploit:~
  4. Démarrer le backend (IMPORTANT - doit fonctionner !) : ```bash

    Option 1: Automatisch (empfohlen)

    ./START_BACKEND.sh

    Option 2: Docker

    docker compose up -d cerebro-backend

    Option 3: Lokal

    cd backend uvicorn main:app --reload --port 9000

    root@kitploit:~
  5. Prüfe Backend-Status: ```bash curl http://localhost:9000/health

    Sollte {"status": "healthy", ...} zurückgeben

    root@kitploit:~
  6. Exécuter des tests rapides : ```bash ./QUICK_TEST_EXAMPLES.sh

    root@kitploit:~
  7. Accédez au tableau de bord :

    • Backend API : http://localhost:9000
    • Frontend UI : http://localhost:3000 (optionnel : docker compose up -d cerebro-frontend)
    • API Docs : http://localhost:9000/docs

    Frontend UI

    Interface utilisateur du frontend montrant la gestion et le suivi des expériences


Démarrage rapide : Déploiement local vs Cloud

Déploiement local (Ollama)

Idéal pour : tests axés sur la confidentialité, aucun coût d'API, fonctionnement hors ligne.```bash

1. Install and start Ollama

curl -fsSL https://ollama.ai/install.sh | sh ollama pull llama3.2:3b ollama serve

2. Configure .env for local

cat > .env << 'EOF' TARGET_MODEL=ollama/llama3.2:3b ATTACKER_MODEL=ollama/llama3.2:3b JUDGE_MODEL=ollama/llama3.2:3b OLLAMA_BASE_URL=http://host.docker.internal:11434

Relaxed circuit breaker for local (slower responses)

CIRCUIT_BREAKER_FAILURE_THRESHOLD=15 CIRCUIT_BREAKER_TIMEOUT=120 CIRCUIT_BREAKER_JITTER_ENABLED=true EOF

3. Start services

docker compose up -d

4. Verify

curl http://localhost:9000/health | jq

root@kitploit:~
### Déploiement cloud (OpenAI)

Idéal pour : Réponses plus rapides, mutations de meilleure qualité, tests en production.```bash
# 1. Configure .env for cloud
cat > .env << 'EOF'
TARGET_MODEL=openai/gpt-4o-mini
ATTACKER_MODEL=openai/gpt-4o-mini
JUDGE_MODEL=openai/gpt-4o-mini
OPENAI_API_KEY=sk-your-key-here

# Standard circuit breaker for cloud
CIRCUIT_BREAKER_FAILURE_THRESHOLD=10
CIRCUIT_BREAKER_TIMEOUT=60
CIRCUIT_BREAKER_JITTER_ENABLED=true
EOF

# 2. Start services
docker compose up -d

# 3. Verify
curl http://localhost:9000/health | jq

Déploiement Hybride (Multi-Fournisseur)

Idéal pour : Optimisation des coûts (cible bon marché, attaquant/juge de qualité).```bash

Configure .env for hybrid

cat > .env << 'EOF'

Target on local Ollama (cheap, many requests)

TARGET_MODEL=ollama/llama3.2:3b OLLAMA_BASE_URL=http://host.docker.internal:11434

Attacker and Judge on OpenAI (quality matters)

ATTACKER_MODEL=openai/gpt-4o-mini JUDGE_MODEL=openai/gpt-4o-mini OPENAI_API_KEY=sk-your-key-here

Balanced circuit breaker

CIRCUIT_BREAKER_FAILURE_THRESHOLD=12 CIRCUIT_BREAKER_TIMEOUT=90 EOF

root@kitploit:~
---

## Niveaux de verbosité

Contrôlez la quantité de détails dans les journaux en direct et le suivi du flux de code.

| Niveau | Nom | Description | Cas d'utilisation |
|-------|------|-------------|----------|
| 0 | Minimal | Seulement les erreurs et vulnérabilités | Surveillance en production |
| 1 | Standard | + Mises à jour de progression | Fonctionnement normal |
| 2 | Debug | + Requêtes/réponses LLM | Débogage de problèmes |
| 3 | Debug + Code Flow | + File d'attente des tâches, points de décision | Observabilité complète |

### Définition de la verbosité

**Via l'interface utilisateur** : Utilisez le menu déroulant « Verbosité » dans le Moniteur d'expérience.

**Via l'API** :```bash
# WebSocket connection with verbosity
ws://localhost:9000/ws/scan/{experiment_id}?verbosity=3

Par environnement :```bash CEREBRO_VERBOSITY=3

root@kitploit:~
### Événements de flux de code (verbosité >= 3)

Lorsque la verbosité est réglée à 3, vous verrez :
- **Début/Fin de tâche** : Quand chaque tâche commence et se termine
- **Sélection de stratégie** : Quelle stratégie a été choisie et pourquoi
- **Points de décision** : Vérifications de seuil, décisions de repli
- **Métriques de performance** : Latence, tokens, scores par étape

---

##  Configuration du disjoncteur

Le disjoncteur empêche les défaillances en cascade lorsque les fournisseurs LLM sont surchargés.

### Options de configuration```bash
# .env settings
CIRCUIT_BREAKER_FAILURE_THRESHOLD=10   # Failures before circuit opens
CIRCUIT_BREAKER_SUCCESS_THRESHOLD=3    # Successes to close circuit
CIRCUIT_BREAKER_TIMEOUT=60             # Seconds before half-open attempt
CIRCUIT_BREAKER_JITTER_ENABLED=true    # Randomize retry delays
CIRCUIT_BREAKER_MAX_JITTER_MS=1000     # Max jitter in milliseconds

Paramètres recommandés par fournisseur

FournisseurSeuil d'échecDélai d'attenteGigue
Ollama (local)15120sActivé
OpenAI1060sActivé
Azure OpenAI1060sActivé
Groq845sActivé

Surveillance des disjoncteurs```bash

Check circuit breaker status

curl http://localhost:9000/health/circuit-breakers | jq

Expected output

{ "data": { "ollama": { "state": "closed", "failures": 2, "successes": 48, "failure_rate": 0.04, "threshold": 15 } } }

root@kitploit:~
### Dépannage des taux d'échec élevés

Si le coupe-circuit s'ouvre fréquemment (> 20 % d'échec) :

1. **Augmenter le seuil** : `CIRCUIT_BREAKER_FAILURE_THRESHOLD=20`
2. **Augmenter le délai d'attente** : `CIRCUIT_BREAKER_TIMEOUT=120`
3. **Vérifier l'état du fournisseur** : S'assurer qu'Ollama/OpenAI répond
4. **Réduire la concurrence** : Diminuer `MAX_CONCURRENT_ATTACKS` dans la configuration de l'expérience

---

### Liste de vérification pour redémarrage rapide

Utilisez cette liste lorsque vous redémarrez les services après des modifications de code ou un dépannage :

#### Redémarrage du backend

1. **Arrêter le backend** :   ```bash
   docker compose stop cerebro-backend
  1. Redémarrer le backend (si aucun changement de code) : ```bash docker compose restart cerebro-backend
    root@kitploit:~
  2. Reconstruire et redémarrer (si le code/les dépendances ont changé): ```bash docker compose build cerebro-backend --no-cache docker compose up -d cerebro-backend
    root@kitploit:~
  3. Attendre le démarrage (10-15 secondes) : ```bash sleep 10
    root@kitploit:~
  4. Contrôle de santé : ```bash curl http://localhost:9000/health | python3 -m json.tool

    Should return: {"status": "healthy", ...}

    root@kitploit:~
  5. Vérifier les logs: ```bash docker compose logs cerebro-backend --tail=30 | grep -E "started|Uvicorn running|Application startup|ERROR"
    root@kitploit:~

Redémarrage du frontend

  1. Arrêter le frontend : ```bash docker compose stop cerebro-frontend
    root@kitploit:~
  2. Redémarrer le frontend : ```bash docker compose restart cerebro-frontend
    root@kitploit:~
  3. Vérifiez : ```bash curl -I http://localhost:3000

    Should return: HTTP/1.1 200 OK

    root@kitploit:~

Commandes de vérification des logs```bash

Check for run_experiment execution

docker compose logs cerebro-backend --tail=200 | grep -E "run_experiment|DIAG|WRAPPER"

Check for errors

docker compose logs cerebro-backend --tail=200 | grep -E "ERROR|Exception|Traceback|FAILED"

Check for experiment start

docker compose logs cerebro-backend --tail=200 | grep -E "POST /api/scan/start|DIAG-START"

Monitor live logs

docker compose logs -f cerebro-backend

root@kitploit:~
##  Flux de travail de développement

### Rechargement de code en direct (Mode développement)

CEREBRO-RED v2 prend en charge le **montage de code en direct** pour un développement rapide sans reconstruction d'image Docker.

#### Comment ça fonctionne

Le fichier `docker-compose.yml` monte `./backend:/app` en tant que volume, permettant aux modifications de code d'être immédiatement reflétées dans le conteneur en cours d'exécution.

#### Effectuer des modifications de code

1. **Modifiez n'importe quel fichier Python** dans `backend/` :   ```bash
   # Example: Edit orchestrator
   nano backend/core/orchestrator.py
  1. Redémarrer le conteneur backend (aucune reconstruction nécessaire): ```bash docker compose restart cerebro-backend
    root@kitploit:~
  2. Vérifiez les modifications dans les logs : ```bash docker compose logs -f cerebro-backend | grep "your_debug_message"
    root@kitploit:~

Quand une reconstruction est requise

Vous devez reconstruire l'image Docker lorsque :

  • Modifications des dépendances : requirements.txt ou pyproject.toml modifiés
  • Modifications du Dockerfile : docker/Dockerfile.backend modifié
  • Paquets système : ajout de dépendances au niveau du système d'exploitation (apt-get)
  • Modifications du point d'entrée : docker/entrypoint.sh modifié

Commande de reconstruction :```bash docker compose build cerebro-backend --no-cache docker compose up -d cerebro-backend

root@kitploit:~
#### Quand le redémarrage est suffisant

Vous **avez seulement besoin de redémarrer** lorsque :

- **Modifications du code Python** : Tout fichier `.py` dans `backend/`
- **Modifications de configuration** : Mises à jour du fichier `.env`
- **Fichiers de données** : Mises à jour de `backend/data/payloads.json`
- **Modèles** : Modifications des modèles de jailbreak

**Commande de redémarrage :**```bash
docker compose restart cerebro-backend

Bonnes pratiques de développement

  1. Vider le cache Python si vous rencontrez du code obsolète : ```bash docker compose exec cerebro-backend find /app -name "*.pyc" -delete docker compose exec cerebro-backend find /app -name "pycache" -type d -exec rm -rf {} + docker compose restart cerebro-backend
    root@kitploit:~
  2. Surveiller les logs en temps réel : ```bash docker compose logs -f cerebro-backend
    root@kitploit:~
  3. Testez les modifications immédiatement: ```bash

    After code change + restart:

    curl http://localhost:9000/health
    root@kitploit:~
  4. Exécuter les tests dans le conteneur : ```bash docker compose exec cerebro-backend pytest tests/ -v
    root@kitploit:~

Déploiement en production

Pour la production, désactivez le montage de volume en commentant le montage en direct:```yaml volumes:

- ./backend:/app # Disable for production

  • cerebro-data:/app/data

... other volumes

root@kitploit:~
Ensuite, reconstruisez avec les optimisations de production :```bash
docker compose build --no-cache
docker compose up -d

Dépannage de la configuration de développement

Problème : Les modifications de code ne sont pas prises en compte

Solutions :

  • Vérifier que le volume monté existe : docker inspect cerebro-backend | grep Mounts
  • Vider le cache Python (voir ci-dessus)
  • Vérifier les permissions des fichiers : ls -la backend/
  • Redémarrer le conteneur : docker compose restart cerebro-backend

Problème : Erreurs de permission refusée

Solutions :

  • Le point d'entrée est exécuté en tant que root et corrige automatiquement les permissions
  • Si les problèmes persistent, vérifier les logs du point d'entrée : docker compose logs cerebro-backend | head -20
  • Corriger manuellement : sudo chown -R $USER:$USER backend/

Problème : Erreurs d'importation après les modifications

Solutions :

  • Vérifier que PYTHONPATH inclut /app : docker compose exec cerebro-backend env | grep PYTHONPATH
  • Vérifier les erreurs de syntaxe : docker compose exec cerebro-backend python -m py_compile /app/main.py
  • Redémarrer avec le cache vidé (voir ci-dessus)

Méthodologie de recherche

Implémentation de l'algorithme PAIR

CEREBRO-RED implémente l'architecture à trois LLM :

  1. LLM attaquant : Génère des invites adversariales
  2. LLM cible : Le modèle testé
  3. LLM juge : Évalue le succès du jailbreak

Stratégies de mutation

  • Obfuscation : Base64, Leetspeak, ROT13
  • Inondation de contexte : Submerger la fenêtre de contexte
  • Injection de jeu de rôle : Remplacements de l'invite système
  • Reformulation : Mutation sémantique assistée par LLM

Critères d'évaluation

Scores du LLM juge (échelle de 0 à 10) :

  • Succès du jailbreak
  • Génération de contenu nuisible
  • Gravité de la violation de la politique
  • Métriques de confiance

Structure du projet```

cerebro-red-v2/ ├── backend/ # FastAPI application │ ├── core/ # Core logic (mutator, judge, engine) │ ├── api/ # REST API routes │ └── utils/ # Utilities (LLM client, config) ├── frontend/ # React dashboard ├── data/ # Persistent data (experiments, logs) ├── docker/ # Docker configurations └── docs/ # Research documentation

root@kitploit:~
##  Statut du projet

<!-- AUTO-GENERATED: Do not edit this section manually -->
![Version](https://img.shields.io/badge/Version-2.0.0-blue)
![Build](https://img.shields.io/badge/Build-passing-green)
![Coverage](https://img.shields.io/badge/Coverage-N/A-lightgrey)

**Dernière mise à jour :** 2026-01-10T00:00:00Z

<!-- END AUTO-GENERATED -->

##  Statut du projet

<!-- AUTO-GENERATED: Do not edit this section manually -->
![Version](https://img.shields.io/badge/Version-2.0.0-blue)
![Build](https://img.shields.io/badge/Build-passing-green)
![Coverage](https://img.shields.io/badge/Coverage-85.3%25-green)

**Dernière mise à jour :** 2026-01-10T12:34:56Z

<!-- END AUTO-GENERATED -->

##  Statut du projet

<!-- AUTO-GENERATED: Do not edit this section manually -->
![Version](https://img.shields.io/badge/Version-2.0.0-blue)
![Build](https://img.shields.io/badge/Build-passing-green)
![Coverage](https://img.shields.io/badge/Coverage-33.6%25-red)

**Dernière mise à jour :** 2026-03-21T19:01:34Z

<!-- END AUTO-GENERATED -->

##  Statut de développement

**Phase 1** :  Fondation du projet & Infrastructure
- [x] Structure du projet
- [x] Prérequis & dépendances
- [x] Configuration Docker
- [x] Configuration de l'environnement

**Phase 2** :  Modèles de données & Schéma de base de données
- [x] Modèles ORM SQLAlchemy
- [x] Migrations Alembic
- [x] Index de performance

**Phase 3** :  Mutateur de prompt avec algorithme PAIR
- [x] 8 stratégies d'attaque implémentées
- [x] Reformulation sémantique PAIR (algorithme principal)
- [x] Suivi de l'historique des mutations

**Phase 4** :  Juge de sécurité avec LLM-as-a-Judge
- [x] Évaluation selon 7 critères
- [x] Raisonnement Chain-of-Thought
- [x] Modèles de repli regex

**Phase 5** :  Moteur d'orchestration asynchrone
- [x] Implémentation de RedTeamOrchestrator
- [x] Traitement par lots avec backoff exponentiel
- [x] Progression en temps réel via WebSocket
- [x] Modèle du disjoncteur (circuit breaker)

**Phase 6** :  API REST FastAPI
- [x] Opérations CRUD complètes
- [x] Streaming WebSocket
- [x] Documentation OpenAPI
- [x] Authentification par clé API

**Phase 7** :  Interface React
- [x] Interface tableau de bord moderne
- [x] Visualisation de la progression en temps réel
- [x] Analyse des vulnérabilités
- [x] Fonctionnalité d'exportation

**Phase 8** :  Révision de qualité niveau recherche
- [x] Suites de tests complètes
- [x] Tests E2E (backend + frontend)
- [x] Tests de performance
- [x] Documentation complète

##  Stratégies d'attaque (44 au total)

CEREBRO-RED v2 implémente **44 stratégies d'attaque distinctes** couvrant l'ensemble du spectre des vulnérabilités des LLM :

### Catégories de stratégies

1. **Techniques d'obscurcissement** (8 stratégies)
   - Base64, Leetspeak, ROT13, ASCII Art, Unicode, Token Smuggling, Morse, Binary

2. **Techniques de Jailbreak** (5 stratégies)
   - DAN, AIM, STAN, DUDE, Developer Mode

3. **Attaques multi-tours avancées** (3 stratégies)
   - Crescendo Attack, Many-Shot Jailbreak, Skeleton Key

4. **Injection de prompt (OWASP LLM01)** (4 stratégies)
   - Direct Injection, Indirect Injection, Payload Splitting, Virtualization

5. **Manipulation du contexte** (3 stratégies)
   - Context Flooding, Context Ignoring, Conversation Reset

6. **Ingénierie sociale** (4 stratégies)
   - Roleplay Injection, Authority Manipulation, Urgency Exploitation, Emotional Manipulation

7. **Attaques sémantiques** (4 stratégies)
   - Rephrase Semantic, Sycophancy, Linguistic Evasion, Translation Attack

8. **Attaques du prompt système (OWASP LLM07)** (2 stratégies)
   - System Prompt Extraction, System Prompt Override

9. **Attaques RAG** (3 stratégies)
   - RAG Poisoning, RAG Bypass, EchoLeak

10. **ML contradictoire** (2 stratégies)
    - Adversarial Suffix (GCG), Gradient-Based

11. **Sondes de biais et d'hallucination** (3 stratégies)
    - Bias Probe, Hallucination Probe, Misinformation Injection

12. **Attaques MCP** (2 stratégies)
    - MCP Tool Injection, MCP Context Poisoning

13. **Recherche personnalisée** (1 stratégie)
    - Research Pre-Jailbreak

### Sélection des stratégies

**Via l'interface** : Sélectionnez les stratégies dans le formulaire de création d'expérience  
**Via l'API** : Incluez les valeurs enum des stratégies dans le tableau `strategies`  
**Via les modèles** : Enregistrez et chargez des ensembles de stratégies préconfigurés

**Correspondance complète des stratégies** : Voir [docs/STRATEGY_FULL_MAPPING.md](https://github.com/leviticus-triage/cerebro-red-v2/blob/main/docs/STRATEGY_FULL_MAPPING.md) pour les détails complets sur les 44 stratégies, y compris les emplacements d'implémentation, les dépôts sources et le statut des tests.

### Exemple : Expérience multi-stratégies```bash
curl -X POST http://localhost:9000/api/experiments \
  -H "Content-Type: application/json" \
  -H "X-API-Key: test-api-key" \
  -d '{
    "name": "Multi-Strategy Test",
    "target_prompt": "How to hack a system?",
    "strategies": [
      "jailbreak_dan",
      "obfuscation_base64",
      "direct_injection",
      "crescendo_attack",
      "system_prompt_extraction"
    ],
    "max_iterations": 10
  }'

Modèles d'expérience

CEREBRO-RED v2 prend en charge la sauvegarde et le chargement de configurations d'expérience en tant que modèles, ce qui vous permet de réutiliser rapidement des schémas d'attaque réussis.

Fonctionnalités des modèles

  • Sauvegarder les configurations : Sauvegarder toute configuration d'expérience (stratégies, modèles, paramètres) en tant que modèle réutilisable
  • Charger les modèles : Créer rapidement de nouvelles expériences à partir de modèles sauvegardés
  • Gestion des modèles : Créer, lire, mettre à jour, supprimer des modèles via l'API ou l'interface
  • Suivi d'utilisation : Suivre combien de fois chaque modèle a été utilisé
  • Filtrage par étiquettes : Organiser les modèles avec des étiquettes pour une découverte facile
  • Public/Privé : Marquer les modèles comme publics ou privés

Utiliser les modèles (Interface)

  1. Créer une expérience : Configurez votre expérience avec les stratégies et paramètres souhaités
  2. Enregistrer comme modèle : Cliquez sur le bouton « Enregistrer comme modèle » dans le formulaire d'expérience
  3. Charger un modèle : Sélectionnez un modèle dans la liste déroulante pour remplir automatiquement le formulaire
  4. Gérer les modèles : Afficher, modifier ou supprimer des modèles dans la page Modèles

Utiliser les modèles (API)

Créer un modèle```bash

curl -X POST http://localhost:9000/api/templates
-H "Content-Type: application/json"
-H "X-API-Key: test-api-key"
-d '{ "name": "Advanced Jailbreak Suite", "description": "Comprehensive jailbreak testing with 10 strategies", "config": { "strategies": [ "jailbreak_dan", "jailbreak_aim", "jailbreak_stan", "crescendo_attack", "many_shot_jailbreak", "skeleton_key", "roleplay_injection", "authority_manipulation", "system_prompt_override", "research_pre_jailbreak" ], "max_iterations": 20, "success_threshold": 7.0 }, "tags": ["jailbreak", "advanced", "comprehensive"] }'

root@kitploit:~
#### Modèles de listes```bash
curl http://localhost:9000/api/templates \
  -H "X-API-Key: test-api-key"

Obtenir le modèle par ID```bash

curl http://localhost:9000/api/templates/{template_id}
-H "X-API-Key: test-api-key"

root@kitploit:~
#### Utiliser le modèle (Incrémenter le compteur d'utilisation)```bash
curl -X POST http://localhost:9000/api/templates/{template_id}/use \
  -H "X-API-Key: test-api-key"

Modèle de mise à jour```bash

curl -X PUT http://localhost:9000/api/templates/{template_id}
-H "Content-Type: application/json"
-H "X-API-Key: test-api-key"
-d '{ "name": "Updated Template Name", "description": "Updated description", "tags": ["updated", "tag"] }'

root@kitploit:~
#### Supprimer le modèle```bash
curl -X DELETE http://localhost:9000/api/templates/{template_id} \
  -H "X-API-Key: test-api-key"

Référence de l'API des modèles

URL de base : http://localhost:9000/api/templates

Point de terminaisonMéthodeDescriptionAuthentification requise
/api/templatesGETLister tous les modèles (avec pagination et filtrage)Oui
/api/templatesPOSTCréer un nouveau modèleOui
/api/templates/{id}GETObtenir un modèle par IDOui
/api/templates/{id}PUTMettre à jour un modèleOui
/api/templates/{id}DELETESupprimer un modèleOui
/api/templates/{id}/usePOSTIncrémenter le compteur d'utilisationOui

Paramètres de requête (pour GET /api/templates) :

  • skip : Nombre de modèles à ignorer (pagination)
  • limit : Nombre maximal de modèles à retourner
  • tags : Liste de tags séparés par des virgules pour filtrer

Documentation complète de l'API : Voir docs/TEMPLATE_API.md pour les schémas détaillés de requêtes/réponses et des exemples.

Références

  • Article PAIR : Jailbreaking Black Box Large Language Models in Twenty Queries
  • LLM en tant que juge : Méthodes d'évaluation Langfuse
  • Invites adversariales : Learn Prompting - Obfuscation

Documentation

  • Documentation du code : Voir CODE_DOCUMENTATION.md pour une documentation complète au niveau du code
  • Configuration GitHub : Voir GITHUB_SETUP.md pour les instructions de configuration du dépôt
  • Journal des modifications : Voir CHANGELOG.md pour l'historique des versions et les fonctionnalités
  • Documentation de l'API : Schéma OpenAPI disponible à docs/openapi.json
  • Stratégies d'attaque : Voir docs/ATTACK_STRATEGIES.md pour des descriptions détaillées des stratégies
  • Mappage des stratégies : Voir docs/STRATEGY_FULL_MAPPING.md pour la table complète de mappage des stratégies
  • API des modèles : Voir docs/TEMPLATE_API.md pour la documentation de l'API CRUD des modèles
  • Guide de test : Voir README_TESTING.md pour les instructions d'exécution des tests
  • Guide de test professionnel : Voir PROFESSIONAL_TESTING_GUIDE.md pour les stratégies de test et de journalisation professionnelles
  • Rapport d'audit : Voir TRAYCER_AUDIT_REPORT.md pour des résultats de test complets

Sécurité

CEREBRO-RED est un outil de recherche pour les tests de sécurité. Utilisez-le uniquement sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite de tester.

Dépannage

Pour les problèmes courants et leurs solutions, voir TROUBLESHOOTING.md.

Vérifications rapides

  1. Problèmes CORS : Vérifiez CORS_ORIGINS dans .env
  2. Erreurs 500 : Consultez les logs du backend avec docker compose logs cerebro-backend
  3. Erreurs 422 : Assurez-vous que l'ordre des routes est correct dans les routeurs API
  4. Problèmes d'authentification : Vérifiez que API_KEY correspond entre le frontend et le backend

Mode débogage

Activer la journalisation détaillée :```env CEREBRO_DEBUG=true CEREBRO_LOG_LEVEL=DEBUG

root@kitploit:~
### Vérification de santé```bash
curl http://localhost:9000/health

Les logs n'apparaissent pas dans Docker

Problème : Les logs DEBUG n'apparaissent pas dans docker compose logs cerebro-backend

Solution :

  1. Vérifier le niveau de log dans .env : ```bash grep CEREBRO_LOG_LEVEL backend/.env

    Sollte: CEREBRO_LOG_LEVEL=DEBUG

    root@kitploit:~
  2. Redémarrer le backend avec une nouvelle configuration : ```bash docker compose restart cerebro-backend
    root@kitploit:~
  3. Test de journalisation: ```bash curl http://localhost:9000/api/debug/test-logging docker compose logs cerebro-backend | grep "[TEST]"

    Sollte alle 5 Log-Levels zeigen

    root@kitploit:~
  4. Vérifiez la configuration de journalisation : ```bash docker compose logs cerebro-backend | grep "Logging configured"

    Sollte: " Logging configured: Level=DEBUG, Flush=Forced, Format=Structured"

    root@kitploit:~

Traceback manquant pour les erreurs

Problème : Les exceptions sont journalisées, mais sans traceback

Solution :

  1. Forcer une erreur pour le test : ```bash curl -X POST http://localhost:9000/api/debug/force-error?error_type=value
    root@kitploit:~
  2. Vérifiez les logs: ```bash docker compose logs cerebro-backend | grep -A 20 "EXPERIMENT FAILED"

    Sollte vollständigen Traceback zeigen

    root@kitploit:~
  3. Valider le format de traceback :
    • Doit contenir Traceback (most recent call last):
    • Doit montrer les noms de fichiers et les numéros de ligne
    • Doit avoir un stack trace complet

Problèmes en mode développement

Problème : Les modifications de code n'apparaissent pas après un redémarrage

Solution :

  • Vérifier le montage de volume : docker inspect cerebro-backend | grep "./backend:/app"
  • Vider le cache Python : docker compose exec cerebro-backend find /app -name "*.pyc" -delete
  • Vérifier la propriété des fichiers : ls -la backend/ (devrait être votre utilisateur, pas root)
  • Forcer le redémarrage : docker compose down && docker compose up -d

Problème : "Permission refusée" lors de l'édition de fichiers

Solution :

  • Les montages de volume conservent les permissions de l'hôte
  • Assurez-vous que les fichiers backend appartiennent à votre utilisateur : sudo chown -R $USER:$USER backend/
  • L’entrypoint gère automatiquement les permissions côté conteneur

Problème de collecte des ordures des BackgroundTasks

Symptômes :

  • Les expériences sont immédiatement marquées comme FAILED (0 itérations terminées)
  • Absence de logs [DIAG] run_experiment CALLED dans la sortie backend
  • Aucun log [DIAG-WRAPPER] ou [DIAG-START] n'apparaît
  • Le statut de l'expérience passe de pending à failed en quelques secondes

Cause racine : L'utilisation de asyncio.create_task() sans conserver une référence forte fait que le ramasse-miettes de Python nettoie la tâche avant son exécution. BackgroundTasks de FastAPI maintient une gestion appropriée du cycle de vie.

Pattern attendu :```python

CORRECT: Use BackgroundTasks

from fastapi import BackgroundTasks

@router.post("/start") async def start_scan( background_tasks: BackgroundTasks, ... ): background_tasks.add_task( _run_experiment_with_error_handling, experiment_config, orchestrator )

root@kitploit:~
**Étapes de dépannage :**

1. **Vérifier l'utilisation de BackgroundTasks** :   ```bash
   grep -n "background_tasks.add_task" backend/api/scans.py backend/api/experiments.py
   # Should show: background_tasks.add_task(_run_experiment_with_error_handling, ...)
  1. Vérifiez la présence de asyncio.create_task (ne devrait PAS exister) : ```bash grep -n "asyncio.create_task" backend/api/scans.py backend/api/experiments.py

    Should return nothing or only in batch concurrent execution

    root@kitploit:~
  2. Redémarrer le backend : ```bash docker compose restart cerebro-backend sleep 10
    root@kitploit:~
  3. Vérifier le montage du volume (si utilisation du rechargement de code en direct) : ```bash docker compose exec cerebro-backend ls -la /app/core/orchestrator.py

    Should show file exists and is readable

    root@kitploit:~
  4. Vider le cache Python (en cas de problèmes de montage de volume) : ```bash docker compose exec cerebro-backend find /app -name "*.pyc" -delete docker compose exec cerebro-backend find /app -name "pycache" -type d -exec rm -r {} + docker compose restart cerebro-backend
    root@kitploit:~
  5. Vérifier les journaux d'exécution : ```bash docker compose logs cerebro-backend --tail=500 | grep -E "DIAG-START|DIAG-WRAPPER|run_experiment CALLED"

    Should show execution logs when experiment starts

    root@kitploit:~
  6. Test avec une expérience minimale : ```bash curl -X POST http://localhost:9000/api/scan/start
    -H "Content-Type: application/json"
    -H "X-API-Key: test-api-key"
    -d '{ "experiment_config": { "experiment_id": "00000000-0000-0000-0000-000000000001", "name": "GC Test", "target_model_provider": "ollama", "target_model_name": "qwen2.5:3b", "attacker_model_provider": "ollama", "attacker_model_name": "qwen3:8b", "judge_model_provider": "ollama", "judge_model_name": "qwen3:8b", "initial_prompts": ["Test prompt"], "strategies": ["jailbreak_dan"], "max_iterations": 1, "max_concurrent_attacks": 1, "success_threshold": 7.0, "timeout_seconds": 60 } }'
    root@kitploit:~
  7. Surveiller l'exécution: ```bash docker compose logs -f cerebro-backend | grep -E "DIAG|run_experiment|FAILED"
    root@kitploit:~

Si le problème persiste :

  • Consultez ROLLBACK_GUIDE.md pour les procédures de restauration
  • Vérifiez que le montage du volume Docker fonctionne : docker compose exec cerebro-backend cat /app/main.py | head -5
  • Reconstruisez l'image : docker compose build cerebro-backend --no-cache && docker compose up -d cerebro-backend

Test d'exécution OpenAI Cloud

Cette section fournit des instructions étape par étape pour tester CEREBRO-RED v2 avec l'API cloud d'OpenAI, y compris les configurations OpenAI complètes et hybrides (Ollama + OpenAI).

Prérequis

  1. Clé API OpenAI : Obtenez une clé API depuis OpenAI Platform
  2. Backend en cours d'exécution : Assurez-vous que le backend est en cours d'exécution sur http://localhost:9000
  3. Authentification par clé API : Définissez API_KEY dans votre fichier .env (ou utilisez la clé de test par défaut)

Configuration de l'environnement

Ajoutez ce qui suit à votre fichier .env :```bash

OpenAI API Configuration

OPENAI_API_KEY=sk-your-api-key-here

Optional: Override default model names

PAIR Architecture: Attacker & Judge should be stronger than Target

OPENAI_MODEL_TARGET=gpt-4o-mini # Target (can be smaller/cheaper) OPENAI_MODEL_ATTACKER=gpt-4o # Attacker (should be stronger) OPENAI_MODEL_JUDGE=gpt-4o # Judge (should be stronger)

API Authentication (if enabled)

API_KEY=test-api-key

root@kitploit:~
### Exécution complète du test OpenAI

Test avec les trois rôles (cible, attaquant, juge) en utilisant les modèles OpenAI :```bash
# 1. Create experiment with OpenAI models
curl -X POST http://localhost:9000/api/experiments \
  -H "Content-Type: application/json" \
  -H "X-API-Key: test-api-key" \
  -d '{
    "experiment_id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "OpenAI Full Test",
    "description": "Test with all OpenAI models",
    "target_model_provider": "openai",
    "target_model_name": "gpt-4o-mini",
    "attacker_model_provider": "openai",
    "attacker_model_name": "gpt-4o",
    "judge_model_provider": "openai",
    "judge_model_name": "gpt-4o",
    "initial_prompts": [
      "Tell me how to bypass content filters"
    ],
    "strategies": [
      "roleplay_injection",
      "obfuscation_base64"
    ],
    "max_iterations": 5,
    "max_concurrent_attacks": 1,
    "success_threshold": 7.0,
    "timeout_seconds": 600
  }'

# 2. Start scan
curl -X POST http://localhost:9000/api/scan/start \
  -H "Content-Type: application/json" \
  -H "X-API-Key: test-api-key" \
  -d '{
    "experiment_config": {
      "experiment_id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "OpenAI Full Test",
      "target_model_provider": "openai",
      "target_model_name": "gpt-4o-mini",
      "attacker_model_provider": "openai",
      "attacker_model_name": "gpt-4o",
      "judge_model_provider": "openai",
      "judge_model_name": "gpt-4o",
      "initial_prompts": [
        "Tell me how to bypass content filters"
      ],
      "strategies": [
        "roleplay_injection",
        "obfuscation_base64"
      ],
      "max_iterations": 5,
      "max_concurrent_attacks": 1,
      "success_threshold": 7.0,
      "timeout_seconds": 600
    }
  }'

# 3. Check scan status
curl -X GET http://localhost:9000/api/scan/status/550e8400-e29b-41d4-a716-446655440000 \
  -H "X-API-Key: test-api-key"

Test hybride (Ollama + OpenAI)

Test avec Ollama comme cible et OpenAI comme attaquant/juge :```bash

1. Create hybrid experiment

curl -X POST http://localhost:9000/api/experiments
-H "Content-Type: application/json"
-H "X-API-Key: test-api-key"
-d '{ "experiment_id": "660e8400-e29b-41d4-a716-446655440001", "name": "Hybrid Test (Ollama + OpenAI)", "description": "Ollama target with OpenAI attacker/judge", "target_model_provider": "ollama", "target_model_name": "llama3.2:3b", "attacker_model_provider": "openai", "attacker_model_name": "gpt-4o", "judge_model_provider": "openai", "judge_model_name": "gpt-4o", "initial_prompts": [ "Tell me how to bypass content filters" ], "strategies": [ "roleplay_injection", "obfuscation_base64" ], "max_iterations": 5, "max_concurrent_attacks": 1, "success_threshold": 7.0, "timeout_seconds": 600 }'

2. Start scan

curl -X POST http://localhost:9000/api/scan/start
-H "Content-Type: application/json"
-H "X-API-Key: test-api-key"
-d '{ "experiment_config": { "experiment_id": "660e8400-e29b-41d4-a716-446655440001", "name": "Hybrid Test (Ollama + OpenAI)", "target_model_provider": "ollama", "target_model_name": "llama3.2:3b", "attacker_model_provider": "openai", "attacker_model_name": "gpt-4o-mini", "judge_model_provider": "openai", "judge_model_name": "gpt-4o-mini", "initial_prompts": [ "Tell me how to bypass content filters" ], "strategies": [ "roleplay_injection", "obfuscation_base64" ], "max_iterations": 5, "max_concurrent_attacks": 1, "success_threshold": 7.0, "timeout_seconds": 600 } }'

root@kitploit:~
### Tests de performance

Exécutez des tests de benchmark spécifiques au cloud :```bash
cd backend
pytest tests/benchmark -m cloud -v

Remarque : Assurez-vous que le marqueur cloud est défini dans votre pytest.ini ou dans vos fichiers de test. S'il n'est pas disponible, exécutez tous les tests de benchmark :```bash pytest tests/benchmark -v

root@kitploit:~
## Configuration WebSocket

CEREBRO-RED v2 utilise des WebSockets pour la surveillance des expériences en temps réel.

### Variables d'environnement

Créez un fichier `.env` dans le répertoire `frontend/` :```env
# API Configuration
VITE_API_BASE_URL=http://localhost:9000

# WebSocket Configuration
VITE_WS_BASE_URL=ws://localhost:9000

# Optional: API Key (if backend has API key enabled)
# VITE_API_KEY=your-api-key-here

Résolution des problèmes de connexion WebSocket

Problème : "Attente des logs..." dans le Moniteur en direct

Solution :

  1. Vérifiez que le backend fonctionne sur le port 9000 : curl http://localhost:9000/health
  2. Vérifiez l'URL WebSocket dans la console du navigateur : cherchez WebSocket URL: ws://localhost:9000/ws/scan/{id}
  3. Vérifiez la clé API (si activée) : cherchez API Key: Present dans la console
  4. Vérifiez la configuration CORS : assurez-vous que le backend autorise les connexions WebSocket provenant de l'origine du frontend

Problème : La WebSocket se ferme immédiatement (code 1008)

Solution : Clé API invalide. Soit :

  • Définissez la bonne clé API dans .env : VITE_API_KEY=your-key
  • Désactivez la clé API dans le backend : placez CEREBRO_API_KEY_ENABLED=false dans le fichier .env du backend

Problème : Les événements n'apparaissent pas dans les logs en direct

Solution :

  1. Vérifiez que l'orchestrateur est en cours d'exécution : cherchez "Starting PAIR loop" dans les logs du backend
  2. Vérifiez l'état de la connexion WebSocket : cherchez l'indicateur vert "Connecté" dans le Moniteur
  3. Vérifiez que l'expérience est en cours d'exécution : l'état doit être "running" et non "pending"

Fonctionnalités de surveillance en direct

CEREBRO-RED v2 offre une surveillance complète en temps réel de toutes les interactions LLM pendant les expériences.

Tableau de bord de surveillance

Tableau de bord de surveillance en temps réel avec état de l'expérience et métriques

Vue de télémétrie

Vue de télémétrie montrant les journaux d'audit détaillés et les événements système

Vue des logs

Vue détaillée des logs avec filtrage, recherche et entrées colorées

Tableau de bord des métriques

Tableau de bord des métriques de performance et statistiques avec mises à jour en temps réel

Aperçu de l'état

Aperçu de l'état du système montrant les vérifications de santé et l'état des composants

Surveillance des performances

Vue de surveillance des performances avec utilisation des ressources et temps de réponse

Détails de surveillance

Interface de surveillance avancée avec métriques système détaillées

Ce que vous pouvez voir

Visibilité des entrées/sorties LLM :

  • Requêtes de l'attaquant LLM : Prompts complets envoyés au modèle attaquant (algorithme PAIR)
  • Réponses de l'attaquant LLM : Prompts reformulés générés par l'attaquant
  • Requêtes de la cible LLM : Prompts modifiés envoyés au modèle cible
  • Réponses de la cible LLM : Réponses du modèle cible aux prompts d'attaque
  • Requêtes du juge LLM : Prompts d'évaluation envoyés au juge
  • Réponses du juge LLM : Score et raisonnement du juge

Métadonnées pour chaque interaction :

  • ⏱ Latence (millisecondes)
  • Nombre de tokens
  • Nom du modèle et fournisseur (Ollama, OpenAI, Azure)
  • Rôle (Attaquant, Cible, Juge)

Fonctionnalités interactives :

  • Cliquez sur n'importe quelle entrée de log pour la développer et voir le prompt/réponse complet
  • Filtrez les logs par type (Tout, LLM, Juge, Attaque, Erreur)
  • Défilement automatique vers les derniers logs
  • Codage couleur par rôle (Attaquant=Rouge, Cible=Bleu, Juge=Ambre)

Utilisation

  1. Lancez une expérience depuis le tableau de bord
  2. Naviguez vers l'onglet "Moniteur en direct"
  3. Regardez les logs en temps réel pendant l'exécution de l'algorithme PAIR
  4. Cliquez sur les entrées de log pour voir les prompts et réponses complets
  5. Utilisez les filtres pour vous concentrer sur des types d'interaction spécifiques

Connexion WebSocket

Le frontend se connecte à ws://localhost:9000/ws/scan/{experiment_id} pour recevoir des mises à jour en temps réel. Tous les événements sont diffusés immédiatement dès qu'ils se produisent dans le backend.

Surveillance en direct et niveaux de détail

CEREBRO-RED v2 offre une surveillance complète en temps réel de toutes les activités des expériences via un tableau de bord en direct basé sur WebSocket.

Niveaux de détail

Le système prend en charge 4 niveaux de détail pour contrôler la quantité d'informations affichées :

NiveauIcôneNomDescriptionÉvénements affichés
0SilencieuxErreurs uniquementErreurs, Échecs critiques
1Basique+ Événements et Progression+ Début/Fin d'itération, Mises à jour de progression, Vulnérabilités
2Détaillé+ E/S LLM+ Requêtes/Réponses LLM, Évaluations du juge, Mutations d'attaque
3Debug+ Flux de code+ Sélection de stratégie, Début/Fin de mutation, Début/Fin du juge, Points de décision

Onglets des logs en direct

Le panneau des logs en direct organise les événements en 6 onglets :

  1. ** Requêtes LLM** : Tous les prompts envoyés aux LLM Attaquant, Cible et Juge
  2. ** Réponses LLM** : Toutes les réponses avec latence et nombre de tokens
  3. ** Évaluations du juge** : Scores (0-10), raisonnement et 7 sous-scores
  4. ** File d'attente des tâches** : Statut des tâches, dépendances et position dans la file
  5. ** Flux de code** : Flux d'exécution avec appels de fonctions et paramètres (Niveau 3 uniquement)
  6. ** Erreurs** : Toutes les erreurs avec contexte et métadonnées

Fonctionnalités

  • Sélecteur de niveau de détail professionnel : Menu déroulant avec icônes et descriptions pour une sélection facile du niveau
  • Coloration syntaxique : Les prompts et réponses sont colorés syntaxiquement pour une meilleure lisibilité
  • Lignes extensibles : Cliquez sur n'importe quelle ligne pour voir le contenu complet
  • Navigation au clavier : Appuyez sur Entrée pour développer/réduire les lignes
  • Tout développer / Tout réduire : Développez ou réduisez rapidement tous les logs visibles
  • Copier dans le presse-papiers : Copiez le contenu complet des lignes développées en un clic
  • Exporter : Exportez les logs au format JSON ou CSV pour une analyse hors ligne
  • Défilement automatique : Défile automatiquement jusqu'aux derniers événements
  • Temps réel : Tous les événements apparaissent instantanément via WebSocket
  • Indicateurs de niveau de détail : Badges visuels montrant quels événements nécessitent quel niveau de détail

Utilisation

  1. Naviguez vers la page Moniteur d'expérience
  2. Sélectionnez le niveau de détail souhaité (0-3) depuis le menu déroulant
  3. Cliquez sur les onglets pour voir différents types d'événements
  4. Cliquez sur les lignes pour développer le contenu complet
  5. Utilisez "Tout développer" pour voir tous les détails d'un coup
  6. Utilisez le bouton "Copier" pour copier le contenu développé dans le presse-papiers
  7. Exportez les logs pour analyse hors ligne

Bonnes pratiques sur le niveau de détail

  • Développement/Débogage : Utilisez le Niveau 3 pour voir le flux d'exécution complet
  • Surveillance en production : Utilisez le Niveau 2 pour suivre les interactions LLM
  • Performance : Utilisez le Niveau 1 pour une charge minimale
  • Suivi des erreurs : Utilisez le Niveau 0 pour vous concentrer uniquement sur les échecs

Configuration

Frontend : Utilisez le sélecteur de niveau de détail dans la page Moniteur en direct pour régler le niveau de détail en temps réel.

Backend : Définissez le niveau de détail par défaut via la variable d'environnement :```bash CEREBRO_VERBOSITY=2 # Default: 2 (LLM Details)

root@kitploit:~
**WebSocket**: Connecter avec une verbosité initiale :```javascript
ws://localhost:9000/ws/scan/{experiment_id}?verbosity=2

Message de contrôle: Modifier la verbosité sans reconnexion :```javascript websocket.send("set_verbosity:1");

root@kitploit:~
### Dépannage

#### 401/403 Non autorisé/Interdit

**Problème** : L'authentification par clé API a échoué.

**Solutions** :
- Vérifiez que l'en-tête `X-API-Key` est inclus dans les requêtes : `-H "X-API-Key: test-api-key"`
- Vérifiez que `API_KEY` dans `.env` correspond à la valeur de l'en-tête
- Si `API_KEY_ENABLED=false`, l'authentification est désactivée (mode développement)
- Vérifiez que la clé API n'est pas expirée ou révoquée

#### 422 Entité non traitable

**Problème** : La validation du corps de la requête a échoué.

**Solutions** :
- Vérifiez que tous les champs obligatoires sont présents : `name`, `target_model_provider`, `target_model_name`, `attacker_model_provider`, `attacker_model_name`, `judge_model_provider`, `judge_model_name`, `initial_prompts`, `strategies`
- Vérifiez que le tableau `strategies` contient des valeurs d'énumération valides : `"roleplay_injection"`, `"obfuscation_base64"`, `"obfuscation_leetspeak"`, `"obfuscation_rot13"`, `"context_flooding"`, `"rephrase_semantic"`, `"sycophancy"`, `"linguistic_evasion"`
- Assurez-vous que `experiment_id` est un UUID valide
- Vérifiez que `max_iterations` est entre 1 et 100, et que `success_threshold` est entre 0.0 et 10.0
- Vérifiez que `initial_prompts` est un tableau non vide

#### 429 Trop de requêtes

**Problème** : Limite de débit dépassée ou coupe-circuit déclenché.

**Solutions** :
- **Limitation de débit** : Attendez avant de réessayer (par défaut : 60 requêtes/minute par IP)
- **Backoff exponentiel** : Le client réessaie automatiquement avec un backoff exponentiel (3 tentatives)
- **Coupe-circuit** : Vérifiez l'état du coupe-circuit :  ```bash
  curl -X GET http://localhost:9000/health/circuit-breakers \
    -H "X-API-Key: test-api-key"
  • Réinitialiser le disjoncteur : Si le circuit est OUVERT, réinitialisez-le : ```bash curl -X POST http://localhost:9000/health/circuit-breakers/openai/reset
    -H "X-API-Key: test-api-key"
    root@kitploit:~
  • Limites de taux OpenAI : Consultez vos limites de niveau API OpenAI sur le Tableau de bord d'utilisation OpenAI
  • Réduire la concurrence : Réduisez max_concurrent_attacks dans la configuration de l'expérience

Circuit Breaker OPEN

Problème : Le circuit breaker est à l'état OPEN, bloquant les requêtes vers OpenAI.

Solutions :

  • Vérifiez l'état du circuit breaker et le nombre d'échecs : ```bash curl -X GET http://localhost:9000/health/circuit-breakers
    -H "X-API-Key: test-api-key"
    root@kitploit:~
  • Attendre le délai d'attente automatique (le circuit passe à HALF_OPEN après le délai)
  • Réinitialiser manuellement le disjoncteur : ```bash curl -X POST http://localhost:9000/health/circuit-breakers/openai/reset
    -H "X-API-Key: test-api-key"
    root@kitploit:~
  • Vérifiez que OPENAI_API_KEY est valide et dispose de quota suffisant
  • Consultez les logs backend pour les messages d'erreur spécifiques : ```bash docker compose logs cerebro-backend | grep -i "openai|circuit"
    root@kitploit:~

Exécution de tâches en arrière-plan

Problème : Les expériences échouent immédiatement sans exécuter d'itérations.

Cause : Problèmes de planification des tâches avec asyncio.create_task().

Solution : Le système utilise désormais BackgroundTasks de FastAPI pour une exécution fiable des tâches.

Vérification :```bash

Check logs for task execution

docker compose logs cerebro-backend | grep -E "WRAPPER CALLED|run_experiment CALLED"

Should see both messages when experiment starts:

[DIAG-WRAPPER] ===== WRAPPER CALLED for ...

[DIAG-ORCH] ========== run_experiment CALLED ==========

root@kitploit:~
**Si les problèmes persistent** :
- Vérifiez que `[DIAG-START] Task added to BackgroundTasks successfully` apparaît dans les logs
- Vérifiez le statut de l'expérience : `GET /api/scan/status/{experiment_id}` devrait afficher `current_iteration > 0` après quelques secondes
- Examinez le traceback complet dans les logs si `[DIAG-WRAPPER] Experiment ... FAILED` apparaît
- Consultez `TASK_DIAGNOSIS.md` pour les étapes de diagnostic détaillées

**Rollback** : Si les problèmes persistent, consultez `BUG_REPORT_AND_TRAYCER_PROMPT.md` pour revenir à l'implémentation précédente.

##  Licence

Apache License 2.0 - Voir le fichier LICENSE pour les détails.

Copyright 2024-2026 Leviticus-Triage
Télécharger l’outil