
Una piattaforma allineata a OWASP e intenzionalmente vulnerabile per apprendere e testare la sicurezza di AI, LLM, RAG, MCP e AI agentica.
Addestra. Attacca. Difendi. Sistemi AI.
Una piattaforma open-source per la formazione sulla sicurezza AI, red/blue teaming, CTF, benchmark e ricerca. Funziona al 100% in locale. Nessun cloud, nessuna API a pagamento, nessun dato lascia il tuo computer.
La GPU è opzionale. Ollama funziona su CPU, ma l'inferenza sarà lenta senza una.
git clone https://github.com/sonuoffsec/DVAP
cd DVAP
cp .env.example .env
docker compose up -d
Apri http://localhost:8080 quando tutti i container sono in salute. Il primo avvio richiede 30-60 secondi.
DVAP è una piattaforma open-source per ricerca, formazione, benchmark e red teaming sulla sicurezza dell'IA, progettata per aiutare professionisti della sicurezza, ingegneri AI, ricercatori, studenti e organizzazioni a capire come i moderni sistemi AI falliscono e come difenderli.
Costruita per l'era dell'AI, DVAP fornisce applicazioni AI intenzionalmente vulnerabili, agenti, sistemi RAG, integrazioni MCP e ambienti dominio-specifici che possono essere attaccati, analizzati, sottoposti a benchmark e protetti.
A differenza dei playground AI basati su cloud, DVAP funziona interamente sulla tua macchina.
Niente cloud. Niente abbonamenti. Niente costi API. Nessun vendor lock-in.
Le applicazioni AI moderne introducono superfici d'attacco completamente nuove:
Eppure non esiste un'unica piattaforma che consenta ai ricercatori di imparare, esercitarsi, fare benchmark e validare questi attacchi in sicurezza in un unico posto.
DVAP punta a diventare la piattaforma open-source di riferimento per l'educazione, la ricerca e la sperimentazione sulla sicurezza dell'AI.
DVAP è una delle prime piattaforme a combinare lab pratici di attacco all'AI, benchmark LLM locali, sfide CTF e reportistica professionale in un unico ambiente self-hosted.
Lab di sicurezza per l'AI 15 lab intenzionalmente vulnerabili che coprono tecniche di attacco AI del mondo reale.
Workspace di ricerca Ispeziona prompt, memoria, chiamate agli strumenti, documenti recuperati, azioni degli agenti e catene di attacco.
Benchmark di sicurezza Valuta modelli locali ed esterni contro suite di attacchi alla sicurezza dell'AI.
Capture The Flag (CTF) Impara la sicurezza dell'AI attraverso sfide guidate, flag, suggerimenti e walkthrough.
Motore di reportistica Genera report professionali di findings e benchmark mappati su OWASP LLM Top 10, MITRE ATLAS, CWE e CVSS.
100% Locale Esegui tutto sulla tua macchina. I tuoi prompt, dati, findings e esperimenti non lasciano mai il tuo ambiente.

▶ Addestra. Attacca. Difendi. Sistemi AI. · Clicca per guardare il walkthrough completo degli attacchi
15 container containerizzati, ciascuno con flag, suggerimenti, walkthrough e mappatura OWASP LLM Top 10 + MITRE ATLAS.
Ogni lab gira in un container Docker isolato con il proprio endpoint LLM basato su Ollama.
DVAP è allineato con OWASP Top 10 per applicazioni LLM. Ogni categoria è mappata su uno o più lab dedicati.
8 delle 10 categorie coperte in 15 lab. LLM04 e LLM10 sono nella roadmap della v1.2.
graph TB
User([User Browser]) --> Nginx[Nginx :8080]
Nginx --> Web[Next.js Frontend :3000]
Nginx --> API[FastAPI Backend :8000]
API --> PG[(PostgreSQL)]
API --> Redis[(Redis)]
API --> Qdrant[(Qdrant)]
API --> Sock[Docker Socket]
Sock --> L1[Lab Container]
Sock --> L2[Lab Container]
Sock --> LN[Lab Container ...]
L1 --> Ollama[Ollama :11434]
L2 --> Ollama
LN --> Ollama
subgraph dvap-internal network
Web
API
PG
Redis
Qdrant
end
subgraph dvap-labs network
L1
L2
LN
Ollama
end
I container dei lab sono isolati su una rete Docker separata. Possono raggiungere Ollama per l'inferenza LLM ma non possono raggiungere il database, Redis o Qdrant.
Due reti Docker mantengono separato il traffico dei lab dall'infrastruttura della piattaforma:
dvap-internal (172.20.0.0/24) - PostgreSQL, Redis, Qdrant, API, frontend, Nginxdvap-labs (172.21.0.0/24) - container dei lab e OllamaI container dei lab possono raggiungere Ollama e nient'altro sulla rete interna. Non possono raggiungere PostgreSQL, Redis o Qdrant.
Compromesso noto: Il container API monta /var/run/docker.sock per avviare e fermare i container dei lab su richiesta (Docker-out-of-Docker). Questo concede al processo API accesso equivalente a root al daemon Docker host.
Questa è una decisione di design intenzionale. DVAP è un'installazione locale per singolo utente per ricerca e formazione sulla sicurezza, non un servizio multi-tenant. Il compromesso è accettato perché:
Se distribuisci DVAP in un ambiente condiviso o in rete, sostituisci il mount del socket con un socket Docker rootless o un socket Podman (/run/user/1000/podman/podman.sock) e limita di conseguenza l'accesso di rete dell'API.
Le istanze dei lab si fermano automaticamente dopo 1 ora tramite chiavi TTL Redis. Chiama POST /api/v1/instances/cleanup per attivare una pulizia anticipata.
L'invio dei flag è limitato a 15 tentativi per finestra di 60 secondi per token di sessione.
Consulta .env.example per tutte le variabili. Le principali da modificare prima di qualsiasi distribuzione in rete:
SECRET_KEY= # strong random value for HMAC signing
POSTGRES_PASSWORD= # change from the default
REDIS_PASSWORD= # change from the default
Un solo comando aggiorna la tua installazione:
make upgrade
Questo esegue git pull e poi ricostruisce e riavvia tutti i container. Le migrazioni del database vengono eseguite automaticamente a ogni avvio del container API.
Senza make:
git pull
docker compose up -d --build
.envdiff .env .env.example
# Development (default) - auto-loads docker-compose.override.yml
# Hot reload for API and frontend, source mounted as volumes
docker compose up -d
# Production - baked images, no volume mounts, 4 uvicorn workers
docker compose -f docker-compose.yml up -d
Costruisci le immagini prima dell'esecuzione in produzione:
docker build -t dvap-api:latest --target production ./backend
docker build -t dvap-web:latest --target production ./frontend
I test richiedono un'istanza PostgreSQL. Avvia prima lo stack:
docker compose up -d postgres
export TEST_DATABASE_URL=postgresql+asyncpg://dvap:<your-postgres-password>@localhost:5432/dvap_test
cd backend
pip install -e ".[dev]"
pytest
Vuoi contribuire alla roadmap? Apri una issue o avvia una discussione.
DVAP è sviluppato e mantenuto da Sonu Chaudhary.
I contributi della community sono benvenuti e regolati dalle linee guida per i contributi. La direzione a lungo termine è guidata tramite GitHub Issues e Discussions. Aggiunte di lab, proposte di funzionalità e input sulla roadmap vengono esaminati pubblicamente.
Non esiste un rischio da singolo punto di errore: il repository è open source sotto Apache 2.0 e forkabile dalla community in qualsiasi momento.
Consulta CONTRIBUTING.md per sapere come aggiungere lab, eseguire test e inviare pull request.
Apache 2.0 - consulta LICENSE per il testo completo.
| DVAP | DVWA | HackTheBox | Gandalf (Lakera) | Blog / Paper |
|---|
| Vulnerabilità specifiche per l'AI | Sì | No | Parziale | Parziale | Sì (solo teoria) |
| Locale, senza cloud | Sì | Sì | No | No | N/D |
| 15 lab AI dedicati | Sì | No | No | No | No |
| Motore di benchmark LLM | Sì | No | No | No | No |
| CTF con flag | Sì | Sì | Sì | No | No |
| Copertura OWASP LLM Top 10 | Completa | No | Parziale | Parziale | Variabile |
| Mappatura MITRE ATLAS | Sì | No | No | No | Variabile |
| Generazione di report | Sì | No | No | No | No |
| Workspace di ricerca | Sì | No | No | No | No |
| Sicurezza di agenti e MCP | Sì | No | No | No | No |
| Gratuito e open source | Sì | Sì | Parziale | No | Sì |
⚗️ Lab di sicurezza AI 15 ambienti AI vulnerabili containerizzati per ogni principale classe di attacco |
🚩 Sfide CTF Flag, suggerimenti e walkthrough mappati su OWASP LLM Top 10 e MITRE ATLAS |
📊 Centro benchmark Valuta gli LLM locali con suite di prompt injection, jailbreak ed esfiltrazione di dati |
🔬 Workspace di ricerca Registrazione completa delle tracce di prompt, memoria, chiamate agli strumenti e comportamento degli agenti |
| Lab | Difficoltà | OWASP LLM | MITRE ATLAS |
|---|
| Prompt Injection | Principiante | LLM01 | AML.T0051, AML.T0054 |
| Memory Poisoning | Intermedio | LLM02 | AML.T0054 |
| RAG Poisoning | Intermedio | LLM02, LLM03 | AML.T0020, AML.T0043 |
| Tool Output Injection | Intermedio | LLM07 | AML.T0054, AML.T0068 |
| MCP Security | Avanzato | LLM07 | AML.T0068 |
| Browser Agent Security | Avanzato | LLM07, LLM09 | AML.T0054 |
| Multi-Agent Security | Avanzato | LLM08 | AML.T0054 |
| Autonomous Agent Security | Avanzato | LLM08, LLM09 | AML.T0054 |
| Data Exfiltration | Avanzato | LLM06 | AML.T0057, AML.T0058 |
| Agent Identity and Trust Abuse | Avanzato | LLM08 | AML.T0058 |
| AI Banking Platform | Intermedio | LLM01, LLM06 | AML.T0043 |
| AI Healthcare Environment | Avanzato | LLM01, LLM06 | AML.T0043 |
| Multi-Tenant AI SaaS | Avanzato | LLM06 | AML.T0043 |
| AI Supply Chain Security | Esperto | LLM03, LLM05 | AML.T0010, AML.T0048 |
| AI Developer Platform | Esperto | LLM03, LLM07 | AML.T0010, AML.T0068 |
| Categoria | Nome | Lab | Stato |
|---|
| LLM01 | Prompt Injection | Prompt Injection, AI Banking Platform, AI Healthcare Environment | Coperto |
| LLM02 | Data and Memory Poisoning | Memory Poisoning, RAG Poisoning | Coperto |
| LLM03 | Supply Chain and Training Data Risks | RAG Poisoning, AI Supply Chain Security, AI Developer Platform | Coperto |
| LLM04 | Model Denial of Service | Pianificato (v1.2) | |
| LLM05 | Insecure Supply Chain | AI Supply Chain Security | Coperto |
| LLM06 | Sensitive Information Disclosure | Data Exfiltration, AI Banking Platform, AI Healthcare Environment, Multi-Tenant AI SaaS | Coperto |
| LLM07 | Insecure Plugin Design | Tool Output Injection, MCP Security, Browser Agent Security, AI Developer Platform | Coperto |
| LLM08 | Excessive Agency | Multi-Agent Security, Autonomous Agent Security, Agent Identity and Trust Abuse | Coperto |
| LLM09 | Overreliance | Browser Agent Security, Autonomous Agent Security | Coperto |
| LLM10 | Model Theft | Pianificato (v1.2) |
| Servizio | Porta (interna) | Scopo |
|---|
| PostgreSQL | 5432 | Archivio dati principale |
| Redis | 6379 | Rate limiting, TTL istanze |
| Qdrant | 6333 | Ricerca semantica sui findings |
| Ollama | 11434 | Inferenza LLM locale |
| API | 8000 | Backend FastAPI |
| Web | 3000 | Frontend Next.js |
| Nginx | 8080 (host) | Reverse proxy |