
Une plateforme intentionnellement vulnérable alignée sur l'OWASP pour l'apprentissage et le test de la sécurité de l'IA, des LLM, des RAG, des MCP et de l'IA agentique.
Entraîne. Casse. Défends. Systèmes d'IA.
Une plateforme open-source pour la formation en sécurité IA, l'équipe rouge/bleue, le CTF, le benchmarking et la recherche. Fonctionne 100 % en local. Pas de cloud, pas d'API payantes, aucune donnée ne quitte votre machine.
Le GPU est optionnel. Ollama fonctionne sur CPU mais l'inférence sera lente sans GPU.
git clone https://github.com/sonuoffsec/DVAP
cd DVAP
cp .env.example .env
docker compose up -d
Ouvrez http://localhost:8080 une fois que tous les conteneurs sont sains. Le premier lancement prend 30 à 60 secondes.
DVAP est une plateforme open-source de recherche, formation, benchmarking et équipe rouge en sécurité IA, conçue pour aider les professionnels de la sécurité, les ingénieurs IA, les chercheurs, les étudiants et les organisations à comprendre comment les systèmes d'IA modernes échouent et comment les défendre.
Construite pour l'ère de l'IA, DVAP fournit des applications IA, des agents, des systèmes RAG, des intégrations MCP et des environnements spécifiques au domaine intentionnellement vulnérables qui peuvent être attaqués, analysés, benchmarkés et sécurisés.
Contrairement aux terrains de jeu IA basés sur le cloud, DVAP fonctionne entièrement sur votre machine.
Pas de cloud. Pas d'abonnements. Pas de coûts d'API. Pas de dépendance au fournisseur.
Les applications d'IA modernes introduisent des surfaces d'attaque entièrement nouvelles :
Pourtant, il n'existe aucune plateforme unique qui permette aux chercheurs d'apprendre, de pratiquer, de benchmarker et de valider ces attaques en toute sécurité en un seul endroit.
DVAP vise à devenir la plateforme open-source de référence pour l'éducation, la recherche et l'expérimentation en sécurité IA.
DVAP est l'une des premières plateformes à combiner des laboratoires d'attaque IA pratiques, un benchmarking LLM local, des défis CTF et des rapports professionnels dans un seul environnement auto-hébergé.
Laboratoires de sécurité IA 15 laboratoires intentionnellement vulnérables couvrant des techniques d'attaque IA réelles.
Espace de recherche Inspectez les prompts, la mémoire, les appels d'outils, les documents récupérés, les actions des agents et les chaînes d'attaque.
Benchmarking de sécurité Évaluez les modèles locaux et externes contre des suites d'attaque en sécurité IA.
Capture The Flag (CTF) Apprenez la sécurité IA à travers des défis guidés, des drapeaux, des indices et des solutions détaillées.
Moteur de rapports Générez des rapports professionnels de constatations et de benchmarks cartographiés selon OWASP LLM Top 10, MITRE ATLAS, CWE et CVSS.
100 % local Exécutez tout sur votre propre machine. Vos prompts, données, constatations et expériences ne quittent jamais votre environnement.

▶ Entraîne. Casse. Défends. Systèmes d'IA. · Cliquez pour voir la démonstration complète d'une attaque
15 laboratoires conteneurisés, chacun avec des drapeaux, des indices, une solution détaillée et une cartographie OWASP LLM Top 10 + MITRE ATLAS.
Chaque laboratoire s'exécute dans un conteneur Docker isolé avec son propre endpoint LLM basé sur Ollama.
DVAP est aligné avec le OWASP Top 10 pour les applications de grands modèles de langage. Chaque catégorie est cartographiée sur un ou plusieurs laboratoires dédiés.
8 des 10 catégories couvertes sur 15 laboratoires. LLM04 et LLM10 sont sur la feuille de route v1.2.
graph TB
User([Navigateur utilisateur]) --> Nginx[Nginx :8080]
Nginx --> Web[Frontend Next.js :3000]
Nginx --> API[Backend FastAPI :8000]
API --> PG[(PostgreSQL)]
API --> Redis[(Redis)]
API --> Qdrant[(Qdrant)]
API --> Sock[Socket Docker]
Sock --> L1[Conteneur laboratoire]
Sock --> L2[Conteneur laboratoire]
Sock --> LN[Conteneur laboratoire ...]
L1 --> Ollama[Ollama :11434]
L2 --> Ollama
LN --> Ollama
subgraph réseau dvap-internal
Web
API
PG
Redis
Qdrant
end
subgraph réseau dvap-labs
L1
L2
LN
Ollama
end
Les conteneurs de laboratoire sont isolés sur un réseau Docker séparé. Ils peuvent accéder à Ollama pour l'inférence LLM mais ne peuvent pas accéder à la base de données, Redis ou Qdrant.
Deux réseaux Docker maintiennent le trafic des laboratoires séparé de l'infrastructure de la plateforme :
dvap-internal (172.20.0.0/24) - PostgreSQL, Redis, Qdrant, API, frontend, Nginxdvap-labs (172.21.0.0/24) - conteneurs de laboratoire et OllamaLes conteneurs de laboratoire peuvent atteindre Ollama et rien d'autre sur le réseau interne. Ils ne peuvent pas atteindre PostgreSQL, Redis ou Qdrant.
Compromis connu : Le conteneur API monte /var/run/docker.sock pour créer et arrêter les conteneurs de laboratoire à la demande (Docker-out-of-Docker). Cela donne au processus API un accès équivalent root au démon Docker hôte.
Il s'agit d'un choix de conception intentionnel. DVAP est une installation locale mono-utilisateur pour la recherche et la formation en sécurité, pas un service multi-locataire. Le compromis est accepté car :
Si vous déployez DVAP dans un environnement partagé ou en réseau, remplacez le montage du socket par un socket Docker sans root ou un socket Podman (/run/user/1000/podman/podman.sock) et restreignez l'accès réseau de l'API en conséquence.
Les instances de laboratoire s'arrêtent automatiquement après 1 heure via des clés TTL Redis. Appelez POST /api/v1/instances/cleanup pour déclencher un nettoyage anticipé.
Les soumissions de drapeaux sont limitées à 15 tentatives par fenêtre de 60 secondes par jeton de session.
Voir .env.example pour toutes les variables. Les principales à modifier avant tout déploiement en réseau :
SECRET_KEY= # valeur aléatoire forte pour la signature HMAC
POSTGRES_PASSWORD= # changez la valeur par défaut
REDIS_PASSWORD= # changez la valeur par défaut
Une commande met à jour votre installation :
make upgrade
Cela exécute git pull puis reconstruit et redémarre tous les conteneurs. Les migrations de base de données s'exécutent automatiquement à chaque démarrage du conteneur API.
Sans make :
git pull
docker compose up -d --build
.envdiff .env .env.example
# Développement (par défaut) - charge automatiquement docker-compose.override.yml
# Rechargement à chaud pour l'API et le frontend, source montée en volumes
docker compose up -d
# Production - images préconstruites, pas de montages de volumes, 4 workers uvicorn
docker compose -f docker-compose.yml up -d
Construisez les images avant l'exécution en production :
docker build -t dvap-api:latest --target production ./backend
docker build -t dvap-web:latest --target production ./frontend
Les tests nécessitent une instance PostgreSQL. Démarrez d'abord la stack :
docker compose up -d postgres
export TEST_DATABASE_URL=postgresql+asyncpg://dvap:<votre-mot-de-passe-postgres>@localhost:5432/dvap_test
cd backend
pip install -e ".[dev]"
pytest
Vous souhaitez contribuer à la feuille de route ? Ouvrez un problème ou démarrez une discussion.
DVAP est développé et maintenu par Sonu Chaudhary.
Les contributions de la communauté sont les bienvenues et sont régies par les directives de contribution. La direction à long terme est pilotée via les Issues et Discussions GitHub. Les ajouts de laboratoires, les propositions de fonctionnalités et les commentaires sur la feuille de route sont examinés publiquement.
Il n'y a pas de risque de point de défaillance unique : le dépôt est open source sous Apache 2.0 et peut être forkée par la communauté à tout moment.
Consultez CONTRIBUTING.md pour savoir comment ajouter des laboratoires, exécuter des tests et soumettre des pull requests.
Apache 2.0 - voir LICENSE pour le texte intégral.
| DVAP | DVWA | HackTheBox | Gandalf (Lakera) | Articles / Publications |
|---|
| Vulnérabilités spécifiques à l'IA | Oui | Non | Partiel | Partiel | Oui (théorie uniquement) |
| Local, sans cloud | Oui | Oui | Non | Non | N/A |
| 15 laboratoires IA dédiés | Oui | Non | Non | Non | Non |
| Moteur de benchmark LLM | Oui | Non | Non | Non | Non |
| CTF avec drapeaux | Oui | Oui | Oui | Non | Non |
| Couverture OWASP LLM Top 10 | Complète | Non | Partiel | Partiel | Variable |
| Cartographie MITRE ATLAS | Oui | Non | Non | Non | Variable |
| Génération de rapports | Oui | Non | Non | Non | Non |
| Espace de recherche | Oui | Non | Non | Non | Non |
| Sécurité des agents et MCP | Oui | Non | Non | Non | Non |
| Gratuit et open source | Oui | Oui | Partiel | Non | Oui |
⚗️ Laboratoires de sécurité IA 15 environnements IA vulnérables conteneurisés couvrant toutes les grandes classes d'attaque |
🚩 Défis CTF Drapeaux, indices et solutions détaillées cartographiés selon OWASP LLM Top 10 et MITRE ATLAS |
📊 Centre de benchmark Évaluez les LLM locaux contre des suites d'injection de prompts, de jailbreak et d'exfiltration de données |
🔬 Espace de recherche Enregistrement complet des traces des prompts, de la mémoire, des appels d'outils et du comportement des agents |
| Laboratoire | Difficulté | OWASP LLM | MITRE ATLAS |
|---|
| Injection de prompts | Débutant | LLM01 | AML.T0051, AML.T0054 |
| Empoisonnement de la mémoire | Intermédiaire | LLM02 | AML.T0054 |
| Empoisonnement RAG | Intermédiaire | LLM02, LLM03 | AML.T0020, AML.T0043 |
| Injection de sortie d'outil | Intermédiaire | LLM07 | AML.T0054, AML.T0068 |
| Sécurité MCP | Avancé | LLM07 | AML.T0068 |
| Sécurité des agents navigateur | Avancé | LLM07, LLM09 | AML.T0054 |
| Sécurité multi-agents | Avancé | LLM08 | AML.T0054 |
| Sécurité des agents autonomes | Avancé | LLM08, LLM09 | AML.T0054 |
| Exfiltration de données | Avancé | LLM06 | AML.T0057, AML.T0058 |
| Abus d'identité et de confiance des agents | Avancé | LLM08 | AML.T0058 |
| Plateforme bancaire IA | Intermédiaire | LLM01, LLM06 | AML.T0043 |
| Environnement de santé IA | Avancé | LLM01, LLM06 | AML.T0043 |
| SaaS IA multi-locataire | Avancé | LLM06 | AML.T0043 |
| Sécurité de la chaîne d'approvisionnement IA | Expert | LLM03, LLM05 | AML.T0010, AML.T0048 |
| Plateforme développeur IA | Expert | LLM03, LLM07 | AML.T0010, AML.T0068 |
| Catégorie | Nom | Laboratoires | Statut |
|---|
| LLM01 | Injection de prompts | Injection de prompts, Plateforme bancaire IA, Environnement de santé IA | Couvert |
| LLM02 | Empoisonnement des données et de la mémoire | Empoisonnement de la mémoire, Empoisonnement RAG | Couvert |
| LLM03 | Risques liés à la chaîne d'approvisionnement et aux données d'entraînement | Empoisonnement RAG, Sécurité de la chaîne d'approvisionnement IA, Plateforme développeur IA | Couvert |
| LLM04 | Déni de service du modèle | Planifié (v1.2) | |
| LLM05 | Chaîne d'approvisionnement non sécurisée | Sécurité de la chaîne d'approvisionnement IA | Couvert |
| LLM06 | Divulgation d'informations sensibles | Exfiltration de données, Plateforme bancaire IA, Environnement de santé IA, SaaS IA multi-locataire | Couvert |
| LLM07 | Conception de plugin non sécurisée | Injection de sortie d'outil, Sécurité MCP, Sécurité des agents navigateur, Plateforme développeur IA | Couvert |
| LLM08 | Agence excessive | Sécurité multi-agents, Sécurité des agents autonomes, Abus d'identité et de confiance des agents | Couvert |
| LLM09 | Dépendance excessive | Sécurité des agents navigateur, Sécurité des agents autonomes | Couvert |
| LLM10 | Vol de modèle | Planifié (v1.2) |
| Service | Port (interne) | Objectif |
|---|
| PostgreSQL | 5432 | Stockage de données principal |
| Redis | 6379 | Limitation de débit, TTL des instances |
| Qdrant | 6333 | Recherche sémantique sur les constatations |
| Ollama | 11434 | Inférence LLM locale |
| API | 8000 | Backend FastAPI |
| Web | 3000 | Frontend Next.js |
| Nginx | 8080 (hôte) | Proxy inverse |