Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cerebro-red-v2 — CEREBRO-RED v2: Piattaforma Avanzata di Ricerca Red Team per LLM con Algoritmo PAIR e Valutazione LLM-as-a-Judge | Kitploit
Strumenti/GitHubGitHub/leviticus-triage/cerebro-red-v2
Analisi Dinamica (Sandboxing)Framework di ExploitGenerazione di PayloadAnalisi delle VulnerabilitàFuzzingPenetration TestingPaper e RicercaApprendimento e FormazioneRed TeamingSicurezza dell'IAAttacco Avversario
1635 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
leviticus-triage/cerebro-red-v2

cerebro-red-v2

CEREBRO-RED v2: Piattaforma Avanzata di Ricerca Red Team per LLM con Algoritmo PAIR e Valutazione LLM-as-a-Judge

Vedi Repository

CEREBRO-RED v2 (Edizione di Ricerca)

Suite Autonoma di Red Teaming per LLM Locali

Un framework di livello di ricerca per la scoperta automatizzata di vulnerabilità in LLM locali utilizzando Agentic Fuzzing e Adaptive Adversarial Mutation (AAM).

Obiettivi di Ricerca

  • Implementare l'Algoritmo PAIR (Prompt Automatic Iterative Refinement) da arxiv.org/abs/2310.08419
  • Valutazione semantica LLM-as-a-Judge con ragionamento Chain-of-Thought
  • Architettura Telemetry-First per analisi di livello whitepaper
  • Supporto multi-provider per LLM (Ollama, Azure OpenAI, OpenAI)

Architettura

Stack Tecnologico

  • Backend: FastAPI (async/await), Pydantic (tipi rigorosi), Uvicorn
  • Gateway LLM: litellm (adattatore universale per Ollama/Azure/OpenAI)
  • Database: SQLite (esperimenti) + JSONL (log di audit)
  • Frontend: React + Vite + TailwindCSS + ShadcnUI + Recharts
  • Container: Docker + Docker Compose

Architecture Overview

Architettura del sistema che mostra i componenti principali e il flusso di dati

Moduli Principali

  1. Orchestrator (backend/core/engine.py): Elaborazione batch asincrona con backoff esponenziale
  2. Mutator (backend/core/mutator.py): Algoritmo PAIR con strategie di mutazione
  3. Judge (backend/core/judge.py): LLM-as-a-Judge con valutazione CoT
  4. Telemetry (backend/core/telemetry.py): Logger di audit JSONL thread-safe

Dashboard Frontend

Il frontend basato su React fornisce un'interfaccia completa per gestire esperimenti, monitorare il progresso e analizzare i risultati.

Frontend Dashboard

Interfaccia principale della dashboard che mostra panoramica degli esperimenti e statistiche

Frontend Experiments

Vista di gestione degli esperimenti con aggiornamenti di stato in tempo reale e elenco esperimenti

Frontend UI Overview

Panoramica completa dell'interfaccia utente che mostra tutte le funzionalità disponibili

Risultati e Analisi degli Esperimenti

Frontend Results

Vista dei risultati che mostra gli esiti degli esperimenti, i risultati delle vulnerabilità e l'analisi dettagliata

Frontend Settings

Pannello delle impostazioni e configurazione per personalizzare i parametri dell'esperimento

Monitoraggio in Tempo Reale

Frontend Monitoring

Dashboard di monitoraggio in tempo reale con progresso live degli esperimenti e indicatori di stato

Frontend Telemetry

Vista di telemetria che mostra log di audit dettagliati, eventi di sistema e metriche di performance

Logs View

Vista dettagliata dei log con capacità di filtro e ricerca

Metrics Dashboard

Dashboard di metriche di performance e statistiche

Status Overview

Panoramica dello stato del sistema che mostra controlli di integrità e stato dei componenti

Documentazione API

Frontend API

Interfaccia di documentazione API interattiva con esploratore di endpoint

Per documentazione dettagliata dell'architettura, vedere docs/ARCHITECTURE.md.

Avvio Rapido

Prerequisiti

  • Docker 24.0+
  • Docker Compose 2.20+
  • Ollama in esecuzione sull'host (o chiavi API Azure/OpenAI)

Configurazione Docker

Se Docker non è in esecuzione, avvia il demone 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:~
**Verifica che Docker sia in esecuzione**:```bash
docker --version
docker compose version

Installazione

  1. Clona il repository: ```bash git clone https://github.com/Leviticus-Triage/cerebro-red-v2.git cd cerebro-red-v2

    root@kitploit:~
  2. Configura l'ambiente: ```bash cp .env.example .env

    Edit .env with your LLM provider credentials

    root@kitploit:~
  3. IMPORTANTE: Controlla la porta 8000 ```bash

    Falls Port 8000 belegt ist:

    lsof -i :8000 # Finde Prozess

    Oder ändere Port in .env: CEREBRO_PORT=8001

    root@kitploit:~
  4. Avvia il Backend (IMPORTANTE - deve essere in esecuzione!): ```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


Avvio rapido: Distribuzione locale vs Cloud

Distribuzione locale (Ollama)

Ideale per: test incentrati sulla privacy, nessun costo API, funzionamento offline.```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:~
### Distribuzione nel Cloud (OpenAI)

Ideale per: risposte più rapide, mutazioni di qualità superiore, test di produzione.```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

Distribuzione Ibrida (Multi-Provider)

Ideale per: Ottimizzazione dei costi (target economico, attaccante/giudice di 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:~
##  Livelli di Verbosità

Controlla la quantità di dettagli nei Log in Vivo e nel tracciamento del Flusso di Codice.

| Livello | Nome | Descrizione | Caso d'uso |
|-------|------|-------------|----------|
| 0 | Minimo | Solo errori e vulnerabilità | Monitoraggio di produzione |
| 1 | Standard | + Aggiornamenti di progresso | Operazione normale |
| 2 | Debug | + Richieste/risposte LLM | Debug di problemi |
| 3 | Debug + Flusso di Codice | + Coda di attività, punti decisionali | Osservabilità completa |

### Impostazione della Verbosità

**Tramite UI**: Usa il menu a discesa "Verbosity" in Experiment Monitor.

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

Tramite ambiente```bash CEREBRO_VERBOSITY=3

root@kitploit:~
### Eventi del Flusso di Codice (verbosity >= 3)

Quando verbosity è impostato a 3, vedrai:
- **Avvio/Fine Task**: Quando ogni task inizia e completa
- **Selezione Strategia**: Quale strategia è stata scelta e perché
- **Punti Decisionali**: Controlli di soglia, decisioni di fallback
- **Metriche di Prestazione**: Latenza, token, punteggi per passo

---

##  Configurazione del Circuit Breaker

Il circuit breaker previene guasti a cascata quando i fornitori LLM sono sovraccarichi.

### Opzioni di Configurazione```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

Impostazioni consigliate per fornitore

Monitoraggio dei circuit breaker```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:~
### Risoluzione degli Alti Tassi di Errore

Se il circuit breaker si apre frequentemente (> 20% di tasso di errore):

1. **Aumenta la soglia**: `CIRCUIT_BREAKER_FAILURE_THRESHOLD=20`
2. **Aumenta il timeout**: `CIRCUIT_BREAKER_TIMEOUT=120`
3. **Controlla lo stato del provider**: Verifica che Ollama/OpenAI sia reattivo
4. **Riduci la concorrenza**: Abbassa `MAX_CONCURRENT_ATTACKS` nella configurazione dell'esperimento

---

### Checklist per Riavvio Rapido

Usa questa checklist quando riavvii i servizi dopo modifiche al codice o risoluzione dei problemi:

#### Riavvio del Backend

1. **Ferma il backend**:   ```bash
   docker compose stop cerebro-backend
  1. Riavvia il backend (se non ci sono modifiche al codice): ```bash docker compose restart cerebro-backend
    root@kitploit:~
  2. Ricostruisci e riavvia (se il codice/dipendenze sono cambiati): ```bash docker compose build cerebro-backend --no-cache docker compose up -d cerebro-backend
    root@kitploit:~
  3. Attendi l'avvio (10-15 secondi): ```bash sleep 10
    root@kitploit:~
  4. Controllo di salute: ```bash curl http://localhost:9000/health | python3 -m json.tool

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

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

Riavvio del frontend

  1. Ferma il frontend: ```bash docker compose stop cerebro-frontend
    root@kitploit:~
  2. Riavvia frontend: ```bash docker compose restart cerebro-frontend
    root@kitploit:~
  3. Verifica: ```bash curl -I http://localhost:3000

    Should return: HTTP/1.1 200 OK

    root@kitploit:~

Comandi di verifica dei log```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:~
##  Flusso di Lavoro di Sviluppo

### Ricarica del Codice Live (Modalità di Sviluppo)

CEREBRO-RED v2 supporta **mounting del codice live** per uno sviluppo rapido senza ricostruire le immagini Docker.

#### Come Funziona

Il file `docker-compose.yml` monta `./backend:/app` come volume, consentendo che le modifiche al codice vengano immediatamente riflesse nel contenitore in esecuzione.

#### Apportare Modifiche al Codice

1. **Modifica qualsiasi file Python** in `backend/`:   ```bash
   # Example: Edit orchestrator
   nano backend/core/orchestrator.py
  1. Riavvia il container backend (nessuna ricostruzione necessaria): ```bash docker compose restart cerebro-backend
    root@kitploit:~
  2. Verificare le modifiche nei log: ```bash docker compose logs -f cerebro-backend | grep "your_debug_message"
    root@kitploit:~

Quando è Necessaria la Ricostruzione

È necessario ricostruire l'immagine Docker quando:

  • Le dipendenze cambiano: Modificato requirements.txt o pyproject.toml
  • Il Dockerfile cambia: Modificato docker/Dockerfile.backend
  • Pacchetti di sistema: Aggiunte dipendenze a livello di sistema (apt-get)
  • L'entrypoint cambia: Modificato docker/entrypoint.sh

Comando di ricostruzione:

root@kitploit:~
docker compose build backend
``````bash
docker compose build cerebro-backend --no-cache
docker compose up -d cerebro-backend

Quando il Riavvio è Sufficiente

È necessario solo il riavvio quando:

  • Modifiche al codice Python: qualsiasi file .py in backend/
  • Modifiche alla configurazione: aggiornamenti del file .env
  • File di dati: aggiornamenti di backend/data/payloads.json
  • Template: modifiche ai template di Jailbreak

Comando di riavvio:```bash docker compose restart cerebro-backend

root@kitploit:~
#### Migliori pratiche di sviluppo

1. **Cancella la cache di Python** se vedi codice obsoleto:   ```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
  1. Monitora i log in tempo reale: ```bash docker compose logs -f cerebro-backend
    root@kitploit:~
  2. Testa le modifiche immediatamente: ```bash

    After code change + restart:

    curl http://localhost:9000/health
    root@kitploit:~
  3. Esegui i test all'interno del contenitore: ```bash docker compose exec cerebro-backend pytest tests/ -v
    root@kitploit:~

Deploy di produzione

Per la produzione, disabilita il montaggio dei volumi commentando il mount live:```yaml volumes:

- ./backend:/app # Disable for production

  • cerebro-data:/app/data

... other volumes

root@kitploit:~
Poi ricostruisci con le ottimizzazioni di produzione:```bash
docker compose build --no-cache
docker compose up -d

Risoluzione dei problemi di configurazione dello sviluppo

Problema: Le modifiche al codice non vengono riflesse

Soluzioni:

  • Verificare che il mount del volume esista: docker inspect cerebro-backend | grep Mounts
  • Cancellare la cache di Python (vedere sopra)
  • Controllare i permessi dei file: ls -la backend/
  • Riavviare il container: docker compose restart cerebro-backend

Problema: Errori di permesso negato

Soluzioni:

  • L'entrypoint viene eseguito come root e corregge automaticamente i permessi
  • Se i problemi persistono, controllare i log dell'entrypoint: docker compose logs cerebro-backend | head -20
  • Riparare manualmente: sudo chown -R $USER:$USER backend/

Problema: Errori di importazione dopo le modifiche

Soluzioni:

  • Verificare che PYTHONPATH includa /app: docker compose exec cerebro-backend env | grep PYTHONPATH
  • Controllare errori di sintassi: docker compose exec cerebro-backend python -m py_compile /app/main.py
  • Riavviare con cache pulita (vedere sopra)

Metodologia di Ricerca

Implementazione dell'algoritmo PAIR

CEREBRO-RED implementa l'architettura a tre LLM:

  1. Attacker LLM: Genera prompt avversari
  2. Target LLM: Il modello in fase di test
  3. Judge LLM: Valuta il successo del jailbreak

Strategie di Mutazione

  • Obfuscation: Base64, Leetspeak, ROT13
  • Context Flooding: Sovraccarico della finestra di contesto
  • Roleplay Injection: Sovrascrittura del prompt di sistema
  • Rephrase: Mutazione semantica basata su LLM

Criteri di Valutazione

Punteggio del Judge LLM (scala 0-10):

  • Successo del jailbreak
  • Generazione di contenuti dannosi
  • Gravità della violazione delle policy
  • Metriche di confidenza

Struttura del Progetto```

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:~
##  Stato del progetto

<!-- 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)

**Ultimo aggiornamento:** 2026-01-10T00:00:00Z

<!-- END AUTO-GENERATED -->

##  Stato del progetto

<!-- 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://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg)

**Ultimo aggiornamento:** 2026-01-10T12:34:56Z

<!-- END AUTO-GENERATED -->

##  Stato del progetto

<!-- 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://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg)

**Ultimo aggiornamento:** 2026-03-21T19:01:34Z

<!-- END AUTO-GENERATED -->

##  Stato di sviluppo

**Fase 1**: Fondamenti del progetto e infrastruttura
- [x] Struttura del progetto
- [x] Requisiti e dipendenze
- [x] Configurazione Docker
- [x] Configurazione dell'ambiente

**Fase 2**: Modelli dati e schema del database
- [x] Modelli ORM SQLAlchemy
- [x] Migrazioni Alembic
- [x] Indici di prestazione

**Fase 3**: Mutatore di prompt con algoritmo PAIR
- [x] 8 strategie di attacco implementate
- [x] Riformulazione semantica PAIR (algoritmo principale)
- [x] Tracciamento cronologia mutazioni

**Fase 4**: Giudice di sicurezza con LLM-as-a-Judge
- [x] Valutazione a 7 criteri
- [x] Ragionamento Chain-of-Thought
- [x] Pattern di fallback Regex

**Fase 5**: Motore di orchestrazione asincrono
- [x] Implementazione RedTeamOrchestrator
- [x] Elaborazione batch con backoff esponenziale
- [x] Progresso WebSocket in tempo reale
- [x] Pattern del circuit breaker

**Fase 6**: API REST FastAPI
- [x] Operazioni CRUD complete
- [x] Streaming WebSocket
- [x] Documentazione OpenAPI
- [x] Autenticazione tramite chiave API

**Fase 7**: Frontend React
- [x] Interfaccia dashboard moderna
- [x] Visualizzazione progresso in tempo reale
- [x] Analisi delle vulnerabilità
- [x] Funzionalità di esportazione

**Fase 8**: Revisione qualità di livello ricerca
- [x] Suite di test complete
- [x] Test E2E (backend + frontend)
- [x] Test benchmark
- [x] Documentazione completa

##  Strategie di attacco (44 totali)

CEREBRO-RED v2 implementa **44 strategie di attacco distinte** che coprono l'intero spettro delle vulnerabilità LLM:

### Categorie di strategie

1. **Tecniche di offuscamento** (8 strategie)
   - Base64, Leetspeak, ROT13, ASCII Art, Unicode, Token Smuggling, Morse, Binary

2. **Tecniche di jailbreak** (5 strategie)
   - DAN, AIM, STAN, DUDE, Developer Mode

3. **Attacchi avanzati multi-turno** (3 strategie)
   - Crescendo Attack, Many-Shot Jailbreak, Skeleton Key

4. **Prompt Injection (OWASP LLM01)** (4 strategie)
   - Direct Injection, Indirect Injection, Payload Splitting, Virtualization

5. **Manipolazione del contesto** (3 strategie)
   - Context Flooding, Context Ignoring, Conversation Reset

6. **Ingegneria sociale** (4 strategie)
   - Roleplay Injection, Authority Manipulation, Urgency Exploitation, Emotional Manipulation

7. **Attacchi semantici** (4 strategie)
   - Rephrase Semantic, Sycophancy, Linguistic Evasion, Translation Attack

8. **Attacchi al prompt di sistema (OWASP LLM07)** (2 strategie)
   - System Prompt Extraction, System Prompt Override

9. **Attacchi RAG** (3 strategie)
   - RAG Poisoning, RAG Bypass, EchoLeak

10. **ML avversario** (2 strategie)
    - Adversarial Suffix (GCG), Gradient-Based

11. **Sonde per bias e allucinazioni** (3 strategie)
    - Bias Probe, Hallucination Probe, Misinformation Injection

12. **Attacchi MCP** (2 strategie)
    - MCP Tool Injection, MCP Context Poisoning

13. **Ricerca personalizzata** (1 strategia)
    - Research Pre-Jailbreak

### Selezione delle strategie

**Tramite frontend**: Seleziona le strategie nel modulo di creazione dell'esperimento  
**Tramite API**: Includi i valori enum delle strategie nell'array `strategies`  
**Tramite template**: Salva e carica set di strategie preconfigurati

**Mappatura completa delle strategie**: Vedi [docs/STRATEGY_FULL_MAPPING.md](https://github.com/leviticus-triage/cerebro-red-v2/blob/HEAD/docs/STRATEGY_FULL_MAPPING.md) per i dettagli completi su tutte le 44 strategie, incluse posizioni di implementazione, repository sorgenti e stato dei test.

### Esempio: Esperimento multi-strategia```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
  }'

Template di esperimenti

CEREBRO-RED v2 supporta il salvataggio e il caricamento di configurazioni di esperimenti come template, consentendo di riutilizzare rapidamente modelli di attacco di successo.

Caratteristiche dei template

  • Salva configurazioni: Salva qualsiasi configurazione di esperimento (strategie, modelli, parametri) come template riutilizzabile
  • Carica template: Crea rapidamente nuovi esperimenti da template salvati
  • Gestione template: Crea, leggi, aggiorna, elimina template tramite API o Frontend
  • Tracciamento utilizzo: Tiene traccia di quante volte ogni template è stato utilizzato
  • Filtraggio per tag: Organizza i template con tag per una facile scoperta
  • Pubblico/Privato: Marca i template come pubblici o privati

Utilizzo dei template (Frontend)

  1. Crea esperimento: Configura il tuo esperimento con le strategie e i parametri desiderati
  2. Salva come template: Fai clic sul pulsante "Salva come template" nel modulo dell'esperimento
  3. Carica template: Seleziona un template dal menu a discesa per popolare automaticamente il modulo
  4. Gestisci template: Visualizza, modifica o elimina i template nella pagina Templates

Utilizzo dei template (API)

Crea template```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:~
#### Elenco modelli```bash
curl http://localhost:9000/api/templates \
  -H "X-API-Key: test-api-key"

Ottieni Template per ID```bash

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

root@kitploit:~
#### Usa modello (Incrementa il conteggio di utilizzo)```bash
curl -X POST http://localhost:9000/api/templates/{template_id}/use \
  -H "X-API-Key: test-api-key"

Aggiorna Template```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:~
#### Elimina Template```bash
curl -X DELETE http://localhost:9000/api/templates/{template_id} \
  -H "X-API-Key: test-api-key"

Riferimento API dei Template

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

Parametri di Query (per GET /api/templates):

  • skip: Numero di template da saltare (paginazione)
  • limit: Numero massimo di template da restituire
  • tags: Elenco di tag separati da virgole per filtrare

Documentazione API completa: Vedi docs/TEMPLATE_API.md per schemi e esempi dettagliati di richiesta/risposta.

Riferimenti

  • Articolo PAIR: Jailbreaking Black Box Large Language Models in Twenty Queries
  • LLM come Giudice: Langfuse Evaluation Methods
  • Prompt Avversari: Learn Prompting - Obfuscation

Documentazione

  • Documentazione del Codice: Vedi CODE_DOCUMENTATION.md per documentazione completa a livello di codice
  • Configurazione GitHub: Vedi GITHUB_SETUP.md per istruzioni di configurazione del repository
  • Changelog: Vedi CHANGELOG.md per cronologia versioni e funzionalità
  • Documentazione API: Schema OpenAPI disponibile su docs/openapi.json
  • Strategie di Attacco: Vedi docs/ATTACK_STRATEGIES.md per descrizioni dettagliate delle strategie
  • Mappatura Strategie: Vedi docs/STRATEGY_FULL_MAPPING.md per la tabella completa di mappatura delle strategie
  • API Template: Vedi docs/TEMPLATE_API.md per la documentazione dell'API CRUD dei template
  • Guida al Test: Vedi README_TESTING.md per istruzioni di esecuzione dei test
  • Guida al Test Professionale: Vedi PROFESSIONAL_TESTING_GUIDE.md per strategie di test e logging professionali
  • Rapporto di Audit: Vedi TRAYCER_AUDIT_REPORT.md per risultati completi dei test

Sicurezza

CEREBRO-RED è uno strumento di ricerca per test di sicurezza. Utilizzalo solo su sistemi di tua proprietà o per cui hai esplicita autorizzazione.

Risoluzione dei Problemi

Per problemi comuni e soluzioni, vedi TROUBLESHOOTING.md.

Verifiche Rapide

  1. Problemi CORS: Verifica CORS_ORIGINS in .env
  2. Errori 500: Controlla i log del backend con docker compose logs cerebro-backend
  3. Errori 422: Assicurati che l'ordine delle route sia corretto nei router API
  4. Problemi di Autenticazione: Verifica che API_KEY corrisponda tra frontend e backend

Modalità Debug

Abilita logging dettagliato:```env CEREBRO_DEBUG=true CEREBRO_LOG_LEVEL=DEBUG

root@kitploit:~
### Controllo di salute```bash
curl http://localhost:9000/health

I log non appaiono in Docker

Problema: I log DEBUG non appaiono in docker compose logs cerebro-backend

Soluzione:

  1. Controlla il livello di log in .env: ```bash grep CEREBRO_LOG_LEVEL backend/.env

    Sollte: CEREBRO_LOG_LEVEL=DEBUG

    root@kitploit:~
  2. Riavvia Backend con nuova Config: ```bash docker compose restart cerebro-backend
    root@kitploit:~
  3. Registrazione dei test: ```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. Controlla la configurazione del logging: ```bash docker compose logs cerebro-backend | grep "Logging configured"

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

    root@kitploit:~

Traceback mancante negli errori

Problema: Le eccezioni vengono registrate, ma senza traceback

Soluzione:

  1. Force Error per test: ```bash curl -X POST http://localhost:9000/api/debug/force-error?error_type=value
    root@kitploit:~
  2. Prüfe Logs: ```bash docker compose logs cerebro-backend | grep -A 20 "EXPERIMENT FAILED"

    Sollte vollständigen Traceback zeigen

    root@kitploit:~
  3. Verifica il formato del Traceback:
    • Dovrebbe contenere Traceback (most recent call last):
    • Dovrebbe mostrare nomi di file e numeri di riga
    • Dovrebbe avere uno stack-trace completo

Problemi in Modalità di Sviluppo

Problema: Le modifiche al codice non compaiono dopo il riavvio

Soluzione:

  • Verifica il montaggio del volume: docker inspect cerebro-backend | grep "./backend:/app"
  • Pulisci la cache di Python: docker compose exec cerebro-backend find /app -name "*.pyc" -delete
  • Controlla la proprietà dei file: ls -la backend/ (dovrebbe essere il tuo utente, non root)
  • Riavvia forzatamente: docker compose down && docker compose up -d

Problema: "Permesso negato" durante la modifica dei file

Soluzione:

  • I montaggi di volume preservano i permessi dell'host
  • Assicurati che i file del backend siano di proprietà del tuo utente: sudo chown -R $USER:$USER backend/
  • L'entrypoint gestisce automaticamente i permessi lato container

Problema di Garbage Collection di BackgroundTasks

Sintomi:

  • Esperimenti immediatamente contrassegnati come FAILED (0 iterazioni completate)
  • Log [DIAG] run_experiment CALLED mancanti nell'output del backend
  • Nessun log [DIAG-WRAPPER] o [DIAG-START] visualizzato
  • Lo stato dell'esperimento cambia da pending a failed in pochi secondi

Causa principale: L'uso di asyncio.create_task() senza mantenere un riferimento forte fa sì che il garbage collector di Python pulisca il task prima che venga eseguito. BackgroundTasks di FastAPI mantiene una corretta gestione del ciclo di vita.

Pattern previsto:```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:~
**Passaggi per la risoluzione dei problemi:**

1. **Verifica l'utilizzo di 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. Check for asyncio.create_task (non dovrebbe esistere): ```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. Riavvia il backend: ```bash docker compose restart cerebro-backend sleep 10
    root@kitploit:~
  3. Verificare il montaggio del volume (se si utilizza il live code reload): ```bash docker compose exec cerebro-backend ls -la /app/core/orchestrator.py

    Should show file exists and is readable

    root@kitploit:~
  4. Cancella la cache di Python (se ci sono problemi di montaggio del 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. Controlla i log per l'esecuzione: ```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 con esperimento minimo: ```bash curl -X POST -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 } }'

Se il problema persiste:

  • Controlla ROLLBACK_GUIDE.md per le procedure di rollback
  • Verifica che il mount del volume Docker funzioni: docker compose exec cerebro-backend cat /app/main.py | head -5
  • Ricostruisci l'immagine: docker compose build cerebro-backend --no-cache && docker compose up -d cerebro-backend

Cloud OpenAI Test Run

Questa sezione fornisce istruzioni passo-passo per testare CEREBRO-RED v2 con l'API cloud di OpenAI, incluse le configurazioni full OpenAI e ibrida (Ollama + OpenAI).

Prerequisiti

  1. Chiave API OpenAI: Ottieni una chiave API da OpenAI Platform
  2. Backend in esecuzione: Assicurati che il backend sia in esecuzione su http://localhost:9000
  3. Autenticazione tramite chiave API: Imposta API_KEY nel tuo file .env (o usa la chiave di test predefinita)

Configurazione dell'ambiente

Aggiungi quanto segue al tuo file .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:~
### Esecuzione completa del test OpenAI

Test con tutti e tre i ruoli (target, attacker, judge) utilizzando i modelli 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"

Esecuzione di test ibrido (Ollama + OpenAI)

Test con Ollama come target e OpenAI come attaccante/giudice:```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:~
### Test di Benchmark

Esegui i test di benchmark specifici per il cloud:```bash
cd backend
pytest tests/benchmark -m cloud -v

Nota: Assicurati che il marcatore cloud sia definito nel tuo pytest.ini o nei file di test. Se non disponibile, esegui tutti i test di benchmark:```bash pytest tests/benchmark -v

root@kitploit:~
## Configurazione WebSocket

CEREBRO-RED v2 utilizza WebSocket per il monitoraggio in tempo reale degli esperimenti.

### Variabili d'Ambiente

Crea un file `.env` nella directory `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

Risoluzione dei problemi di connessione WebSocket

Problema: "Waiting for logs..." in Live Monitor

Soluzione:

  1. Verifica che il backend sia in esecuzione sulla porta 9000: curl http://localhost:9000/health
  2. Controlla l'URL WebSocket nella console del browser: Cerca WebSocket URL: ws://localhost:9000/ws/scan/{id}
  3. Verifica la chiave API (se abilitata): Controlla API Key: Present nella console
  4. Controlla la configurazione CORS: Assicurati che il backend permetta connessioni WebSocket dall'origine del frontend

Problema: WebSocket si chiude immediatamente (codice 1008)

Soluzione: Chiave API non valida. O:

  • Imposta la chiave API corretta in .env: VITE_API_KEY=your-key
  • Disabilita la chiave API nel backend: Imposta CEREBRO_API_KEY_ENABLED=false nel file .env del backend

Problema: Gli eventi non appaiono nei Live Logs

Soluzione:

  1. Verifica che l'orchestratore sia in esecuzione: Controlla i log del backend per "Starting PAIR loop"
  2. Controlla lo stato della connessione WebSocket: Cerca l'indicatore verde "Connesso" nel Monitor
  3. Verifica che l'esperimento sia in esecuzione: Lo stato dovrebbe essere "running" non "pending"

Funzionalità di monitoraggio live

CEREBRO-RED v2 fornisce un monitoraggio in tempo reale completo di tutte le interazioni LLM durante gli esperimenti.

Dashboard di monitoraggio

Dashboard di monitoraggio in tempo reale con stato dell'esperimento e metriche

Vista telemetria

Vista telemetria che mostra i log di audit dettagliati e gli eventi di sistema

Vista log

Vista log dettagliata con filtraggio, ricerca e voci colorate

Dashboard metriche

Dashboard di metriche e statistiche delle prestazioni con aggiornamenti in tempo reale

Panoramica stato

Panoramica dello stato del sistema che mostra i controlli di integrità e lo stato dei componenti

Monitoraggio prestazioni

Vista di monitoraggio delle prestazioni con utilizzo delle risorse e tempi di risposta

Dettagli monitoraggio

Interfaccia di monitoraggio avanzata con metriche di sistema dettagliate

Cosa puoi vedere

Visibilità Input/Output LLM:

  • Richieste LLM Attaccante: Prompt completi inviati al modello attaccante (algoritmo PAIR)
  • Risposte LLM Attaccante: Prompt riformulati generati dall'attaccante
  • Richieste LLM Target: Prompt mutati inviati al modello target
  • Risposte LLM Target: Risposte del modello target ai prompt di attacco
  • Richieste LLM Giudice: Prompt di valutazione inviati al giudice
  • Risposte LLM Giudice: Punteggio e motivazione del giudice

Metadati per ogni interazione:

  • ⏱ Latenza (millisecondi)
  • Conteggio token
  • Nome del modello e provider (Ollama, OpenAI, Azure)
  • Ruolo (Attaccante, Target, Giudice)

Funzionalità interattive:

  • Clicca su qualsiasi voce di log per espandere e vedere il prompt/risposta completo
  • Filtra i log per tipo (Tutti, LLM, Giudice, Attacco, Errore)
  • Scorrimento automatico agli ultimi log
  • Codifica a colori per ruolo (Attaccante=Rosso, Target=Blu, Giudice=Arancione)

Utilizzo

  1. Avvia un esperimento tramite la dashboard
  2. Naviga alla scheda "Live Monitor"
  3. Guarda i log in tempo reale mentre l'algoritmo PAIR viene eseguito
  4. Clicca sulle voci di log per vedere i prompt e le risposte completi
  5. Usa i filtri per concentrarti su tipi specifici di interazione

Connessione WebSocket

Il frontend si connette a ws://localhost:9000/ws/scan/{id_esperimento} per ricevere aggiornamenti in tempo reale. Tutti gli eventi vengono trasmessi immediatamente quando si verificano nel backend.

Monitoraggio live e livelli di verbosità

CEREBRO-RED v2 fornisce un monitoraggio in tempo reale completo di tutte le attività dell'esperimento tramite una dashboard live basata su WebSocket.

Livelli di verbosità

Il sistema supporta 4 livelli di verbosità per controllare la quantità di dettagli visualizzati:

Schede dei log live

Il pannello dei log live organizza gli eventi in 6 schede:

  1. ** Richieste LLM**: Tutti i prompt inviati a Attaccante, Target e Giudice LLM
  2. ** Risposte LLM**: Tutte le risposte con latenza e conteggio token
  3. ** Valutazioni Giudice**: Punteggi (0-10), motivazione e 7 sotto-punteggi
  4. ** Coda Attività**: Stato attività, dipendenze e posizione in coda
  5. ** Flusso Codice**: Flusso di esecuzione con chiamate a funzioni e parametri (solo Livello 3)
  6. ** Errori**: Tutti gli errori con contesto e metadati

Funzionalità

  • Selettore di verbosità professionale: Dropdown con icone e descrizioni per una facile selezione del livello
  • Evidenziazione sintassi: I prompt e le risposte sono evidenziati per la leggibilità
  • Righe espandibili: Clicca su qualsiasi riga per vedere il contenuto completo
  • Navigazione da tastiera: Premi Invio per espandere/comprimere le righe
  • Espandi tutto / Comprimi tutto: Espandi o comprimi rapidamente tutti i log visibili
  • Copia negli appunti: Copia il contenuto completo delle righe espanse con un clic
  • Esportazione: Esporta i log come JSON o CSV per analisi offline
  • Scorrimento automatico: Scorre automaticamente agli ultimi eventi
  • Tempo reale: Tutti gli eventi appaiono istantaneamente tramite WebSocket
  • Indicatori di verbosità: Badge visivi che mostrano quali eventi richiedono quale livello di verbosità

Utilizzo

  1. Naviga alla pagina Experiment Monitor
  2. Seleziona il livello di verbosità desiderato (0-3) dal dropdown
  3. Clicca sulle schede per vedere diversi tipi di evento
  4. Clicca sulle righe per espandere il contenuto completo
  5. Usa "Espandi tutto" per vedere tutti i dettagli in una volta
  6. Usa il pulsante "Copia" per copiare il contenuto espanso negli appunti
  7. Esporta i log per analisi offline

Buone pratiche per la verbosità

  • Sviluppo/Debug: Usa il Livello 3 per vedere il flusso di esecuzione completo
  • Monitoraggio in produzione: Usa il Livello 2 per tracciare le interazioni LLM
  • Prestazioni: Usa il Livello 1 per un overhead minimo
  • Tracciamento errori: Usa il Livello 0 per concentrarti solo sui fallimenti

Configurazione

Frontend: Usa il selettore di verbosità nella pagina Live Monitor per regolare il livello di dettaglio in tempo reale.

Backend: Imposta la verbosità predefinita tramite variabile d'ambiente:```bash CEREBRO_VERBOSITY=2 # Default: 2 (LLM Details)

root@kitploit:~
**WebSocket**: Connettiti con verbosità iniziale:```javascript
ws://localhost:9000/ws/scan/{experiment_id}?verbosity=2

Messaggio di controllo: Cambiare la verbosità senza riconnettersi:```javascript websocket.send("set_verbosity:1");

root@kitploit:~
### Risoluzione dei problemi

#### 401/403 Non autorizzato/Vietato

**Problema**: Autenticazione API key fallita.

**Soluzioni**:
- Verifica che l'header `X-API-Key` sia incluso nelle richieste: `-H "X-API-Key: test-api-key"`
- Controlla che `API_KEY` nel file `.env` corrisponda al valore dell'header
- Se `API_KEY_ENABLED=false`, l'autenticazione è disabilitata (modalità sviluppo)
- Verifica che la chiave API non sia scaduta o revocata

#### 422 Entità non elaborabile

**Problema**: Validazione del payload della richiesta fallita.

**Soluzioni**:
- Verifica che tutti i campi obbligatori siano presenti: `name`, `target_model_provider`, `target_model_name`, `attacker_model_provider`, `attacker_model_name`, `judge_model_provider`, `judge_model_name`, `initial_prompts`, `strategies`
- Controlla che l'array `strategies` contenga valori enum validi: `"roleplay_injection"`, `"obfuscation_base64"`, `"obfuscation_leetspeak"`, `"obfuscation_rot13"`, `"context_flooding"`, `"rephrase_semantic"`, `"sycophancy"`, `"linguistic_evasion"`
- Assicurati che `experiment_id` sia un UUID valido
- Verifica che `max_iterations` sia compreso tra 1-100 e `success_threshold` tra 0.0-10.0
- Controlla che `initial_prompts` sia un array non vuoto

#### 429 Troppe richieste

**Problema**: Limite di velocità superato o circuit breaker attivato.

**Soluzioni**:
- **Rate Limiting**: Attendi prima di riprovare (default: 60 richieste/minuto per IP)
- **Backoff esponenziale**: Il client riprova automaticamente con backoff esponenziale (3 tentativi)
- **Circuit Breaker**: Verifica lo stato del circuit breaker:  ```bash
  curl -X GET http://localhost:9000/health/circuit-breakers \
    -H "X-API-Key: test-api-key"
  • Resetta Circuit Breaker: Se il circuito è OPEN, resettalo: ```bash curl -X POST http://localhost:9000/health/circuit-breakers/openai/reset
    -H "X-API-Key: test-api-key"
    root@kitploit:~
  • Limiti di velocità OpenAI: Controlla i limiti del tuo tier API OpenAI su OpenAI Usage Dashboard
  • Riduci la concorrenza: Abbassa max_concurrent_attacks nella configurazione dell'esperimento

Circuit Breaker APERTO

Problema: Il circuit breaker è nello stato APERTO, bloccando le richieste a OpenAI.

Soluzioni:

  • Controlla lo stato del circuit breaker e il conteggio dei fallimenti: ```bash curl -X GET http://localhost:9000/health/circuit-breakers
    -H "X-API-Key: test-api-key"
    root@kitploit:~
  • Attendi il timeout automatico (il circuito passa a HALF_OPEN dopo il timeout)
  • Reimposta manualmente l'interruttore del circuito: ```bash curl -X POST http://localhost:9000/health/circuit-breakers/openai/reset
    -H "X-API-Key: test-api-key"
    root@kitploit:~
  • Verifica che OPENAI_API_KEY sia valida e abbia una quota sufficiente
  • Controlla i log del backend per messaggi di errore specifici: ```bash docker compose logs cerebro-backend | grep -i "openai|circuit"
    root@kitploit:~

Esecuzione di Attività in Background

Problema: Gli esperimenti falliscono immediatamente senza eseguire iterazioni.

Causa: Problemi di pianificazione delle attività con asyncio.create_task().

Soluzione: Il sistema ora utilizza BackgroundTasks di FastAPI per un'esecuzione affidabile delle attività.

Verifica:```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:~
**Se i problemi persistono**:
- Verifica che `[DIAG-START] Task added to BackgroundTasks successfully` appaia nei log
- Verifica lo stato dell'esperimento: `GET /api/scan/status/{experiment_id}` dovrebbe mostrare `current_iteration > 0` dopo alcuni secondi
- Esamina il traceback completo nei log se appare `[DIAG-WRAPPER] Experiment ... FAILED`
- Vedi `TASK_DIAGNOSIS.md` per i passaggi dettagliati di diagnostica

**Rollback**: Se i problemi persistono, vedi `BUG_REPORT_AND_TRAYCER_PROMPT.md` per tornare all'implementazione precedente.

##  Licenza

Apache License 2.0 - Vedi il file LICENSE per i dettagli.

Copyright 2024-2026 Leviticus-Triage
Scarica lo strumento
root@kitploit:~
  • Controlla lo stato del backend: ```bash curl http://localhost:9000/health

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

    root@kitploit:~
  • Esegui test rapidi: ```bash ./QUICK_TEST_EXAMPLES.sh

    root@kitploit:~
  • Accedi alla dashboard:

    • API backend: http://localhost:9000
    • Interfaccia frontend: http://localhost:3000 (opzionale: docker compose up -d cerebro-frontend)
    • Documentazione API: http://localhost:9000/docs

    Interfaccia frontend

    Interfaccia utente frontend che mostra la gestione degli esperimenti e il monitoraggio

  • FornitoreSoglia di fallimentoTimeoutJitter
    Ollama (local)15120sAbilitato
    OpenAI1060sAbilitato
    Azure OpenAI1060sAbilitato
    Groq845sAbilitato
    EndpointMetodoDescrizioneAuth Richiesta
    /api/templatesGETElenca tutti i template (con paginazione e filtri)Sì
    /api/templatesPOSTCrea nuovo templateSì
    /api/templates/{id}GETOttieni template per IDSì
    /api/templates/{id}PUTAggiorna templateSì
    /api/templates/{id}DELETEElimina templateSì
    /api/templates/{id}/usePOSTIncrementa conteggio utilizziSì
    http://localhost:9000/api/scan/start



    root@kitploit:~
  • Monitora l'esecuzione: ```bash docker compose logs -f cerebro-backend | grep -E "DIAG|run_experiment|FAILED"
    root@kitploit:~
  • LivelloIconaNomeDescrizioneEventi Mostrati
    0SilenziosoSolo erroriErrori, Fallimenti critici
    1Base+ Eventi e Progressi+ Inizio/Fine Iterazione, Aggiornamenti Progressi, Vulnerabilità
    2Dettagliato+ I/O LLM+ Richieste/Risposte LLM, Valutazioni Giudice, Mutazioni Attacco
    3Debug+ Flusso Codice+ Selezione Strategia, Inizio/Fine Mutazione, Inizio/Fine Giudice, Punti Decisionali