
Eine an OWASP ausgerichtete, bewusst verwundbare Plattform zum Lernen und Testen der Sicherheit von AI, LLM, RAG, MCP und Agentic AI.
Trainieren. Brechen. Verteidigen. KI-Systeme.
Eine Open-Source-Plattform für KI-Sicherheitstraining, Red/Blue Teaming, CTF, Benchmarking und Forschung. Läuft zu 100 % lokal. Keine Cloud, keine kostenpflichtigen APIs, keine Daten verlassen deinen Rechner.
GPU ist optional. Ollama läuft auf der CPU, aber ohne GPU ist die Inferenz langsam.
git clone https://github.com/sonuoffsec/DVAP
cd DVAP
cp .env.example .env
docker compose up -d
Öffne http://localhost:8080, sobald alle Container gesund sind. Der erste Start dauert 30-60 Sekunden.
DVAP ist eine Open-Source-Plattform für KI-Sicherheitsforschung, -training, Benchmarking und Red Teaming, die Sicherheitsexperten, KI-Ingenieuren, Forschern, Studierenden und Organisationen helfen soll zu verstehen, wie moderne KI-Systeme versagen und wie man sie verteidigt.
Entwickelt für das KI-Zeitalter, stellt DVAP absichtlich verwundbare KI-Anwendungen, Agenten, RAG-Systeme, MCP-Integrationen und domänenspezifische Umgebungen bereit, die angegriffen, analysiert, gebenchmarkt und abgesichert werden können.
Im Gegensatz zu cloudbasierten KI-Spielplätzen läuft DVAP vollständig auf deinem Rechner.
Keine Cloud. Keine Abonnements. Keine API-Kosten. Kein Vendor Lock-in.
Moderne KI-Anwendungen bringen völlig neue Angriffsflächen mit sich:
Dennoch gibt es keine einzige Plattform, die es Forschern ermöglicht, diese Angriffe an einem Ort sicher zu erlernen, zu üben, zu benchmarken und zu validieren.
DVAP möchte die maßgebliche Open-Source-Plattform für KI-Sicherheitsausbildung, Forschung und Experimente werden.
DVAP ist eine der ersten Plattformen, die praktische KI-Angriffslabore, lokales LLM-Benchmarking, CTF-Challenges und professionelle Berichterstattung in einer einzigen selbst gehosteten Umgebung vereint.
KI-Sicherheitslabore 15 absichtlich verwundbare Labore, die reale KI-Angriffstechniken abdecken.
Forschungsumgebung Untersuche Prompts, Speicher (Memory), Tool-Aufrufe, abgerufene Dokumente, Agentenaktionen und Angriffsketten.
Sicherheits-Benchmarking Bewerte lokale und externe Modelle anhand von KI-Sicherheits-Angriffssuiten.
Capture The Flag (CTF) Lerne KI-Sicherheit durch geführte Challenges, Flags, Hinweise und Walkthroughs.
Berichts-Engine Erstelle professionelle Findings- und Benchmark-Berichte, die auf OWASP LLM Top 10, MITRE ATLAS, CWE und CVSS abgebildet sind.
100 % lokal Lasse alles auf deinem eigenen Rechner laufen. Deine Prompts, Daten, Findings und Experimente verlassen niemals deine Umgebung.

▶ Trainieren. Brechen. Verteidigen. KI-Systeme. · Klicke hier, um den vollständigen Angriffs-Walkthrough anzusehen
15 containerisierte Labore, jeweils mit Flags, Hinweisen, Walkthrough und der Zuordnung zu OWASP LLM Top 10 + MITRE ATLAS.
Jedes Labor läuft in einem isolierten Docker-Container mit einem eigenen, auf Ollama basierenden LLM-Endpunkt.
DVAP ist an den OWASP Top 10 for Large Language Model Applications ausgerichtet. Jede Kategorie ist einem oder mehreren dedizierten Laboren zugeordnet.
8 von 10 Kategorien sind über 15 Labore abgedeckt. LLM04 und LLM10 stehen auf der v1.2-Roadmap.
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
Lab-Container sind in einem separaten Docker-Netzwerk isoliert. Sie können Ollama für die LLM-Inferenz erreichen, nicht jedoch die Datenbank, Redis oder Qdrant.
Zwei Docker-Netzwerke halten den Lab-Traffic von der Plattform-Infrastruktur getrennt:
dvap-internal (172.20.0.0/24) - PostgreSQL, Redis, Qdrant, API, Frontend, Nginxdvap-labs (172.21.0.0/24) - Lab-Container und OllamaLab-Container können Ollama erreichen und sonst nichts im internen Netzwerk. Sie können PostgreSQL, Redis oder Qdrant nicht erreichen.
Bekannter Kompromiss: Der API-Container mountet /var/run/docker.sock, um Lab-Container bei Bedarf zu starten und zu stoppen (Docker-out-of-Docker). Dadurch erhält der API-Prozess root-äquivalenten Zugriff auf den Docker-Daemon des Hosts.
Dies ist eine bewusste Designentscheidung. DVAP ist eine lokale Einzelnutzer-Installation für Sicherheitsforschung und -training, kein mandantenfähiger Dienst. Der Kompromiss wird akzeptiert, weil:
Wenn du DVAP in einer gemeinsamen oder vernetzten Umgebung bereitstellst, ersetze den Socket-Mount durch einen rootless Docker-Socket oder Podman-Socket (/run/user/1000/podman/podman.sock) und schränke den Netzwerkzugriff der API entsprechend ein.
Lab-Instanzen stoppen automatisch nach 1 Stunde über Redis-TTL-Keys. Rufe POST /api/v1/instances/cleanup auf, um eine vorzeitige Bereinigung auszulösen.
Flag-Einreichungen sind auf 15 Versuche pro 60-Sekunden-Fenster und Session-Token begrenzt.
Alle Variablen findest du in .env.example. Die wichtigsten, die du vor jeder netzwerkbasierten Bereitstellung ändern solltest:
SECRET_KEY= # strong random value for HMAC signing
POSTGRES_PASSWORD= # change from the default
REDIS_PASSWORD= # change from the default
Ein einziger Befehl aktualisiert deine Installation:
make upgrade
Dies führt git pull aus und erstellt dann alle Container neu und startet sie. Datenbank-Migrationen laufen bei jedem Start des API-Containers automatisch.
Ohne make:
git pull
docker compose up -d --build
.env-Dateidiff .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
Erstelle die Images vor dem Produktionsstart:
docker build -t dvap-api:latest --target production ./backend
docker build -t dvap-web:latest --target production ./frontend
Für die Tests wird eine PostgreSQL-Instanz benötigt. Starte zuerst den 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
Du möchtest zur Roadmap beitragen? Eröffne ein Issue oder starte eine Diskussion.
DVAP wird von Sonu Chaudhary entwickelt und gepflegt.
Community-Beiträge sind willkommen und unterliegen den Contributing-Richtlinien. Die langfristige Ausrichtung wird über GitHub Issues und Discussions gesteuert. Lab-Erweiterungen, Feature-Vorschläge und Roadmap-Beiträge werden öffentlich geprüft.
Es besteht kein Risiko eines Single Point of Failure: Das Repository ist unter Apache 2.0 Open Source und kann von der Community jederzeit geforkt werden.
In CONTRIBUTING.md erfährst du, wie du Labore hinzufügst, Tests ausführst und Pull Requests einreichst.
Apache 2.0 - siehe LICENSE für den vollständigen Text.
| DVAP | DVWA | HackTheBox | Gandalf (Lakera) | Blogbeiträge / Papers |
|---|
| KI-spezifische Schwachstellen | Ja | Nein | Teilweise | Teilweise | Ja (nur Theorie) |
| Lokal, ohne Cloud | Ja | Ja | Nein | Nein | N/A |
| 15 dedizierte KI-Labore | Ja | Nein | Nein | Nein | Nein |
| LLM-Benchmark-Engine | Ja | Nein | Nein | Nein | Nein |
| CTF mit Flags | Ja | Ja | Ja | Nein | Nein |
| OWASP-LLM-Top-10-Abdeckung | Vollständig | Nein | Teilweise | Teilweise | Variiert |
| MITRE-ATLAS-Zuordnung | Ja | Nein | Nein | Nein | Variiert |
| Berichtserstellung | Ja | Nein | Nein | Nein | Nein |
| Forschungsumgebung | Ja | Nein | Nein | Nein | Nein |
| Agenten- und MCP-Sicherheit | Ja | Nein | Nein | Nein | Nein |
| Kostenlos und Open Source | Ja | Ja | Teilweise | Nein | Ja |
⚗️ KI-Sicherheitslabore 15 containerisierte verwundbare KI-Umgebungen aus jeder wichtigen Angriffsklasse |
🚩 CTF-Challenges Flags, Hinweise und Walkthroughs, zugeordnet zu OWASP LLM Top 10 und MITRE ATLAS |
📊 Benchmark-Zentrum Bewerte lokale LLMs anhand von Suiten für Prompt Injection, Jailbreak und Datenexfiltration |
🔬 Forschungsumgebung Vollständige Trace-Aufzeichnung von Prompts, Speicher, Tool-Aufrufen und Agentenverhalten |
| Labor | Schwierigkeit | OWASP LLM | MITRE ATLAS |
|---|
| Prompt Injection | Anfänger | LLM01 | AML.T0051, AML.T0054 |
| Memory Poisoning | Fortgeschritten | LLM02 | AML.T0054 |
| RAG Poisoning | Fortgeschritten | LLM02, LLM03 | AML.T0020, AML.T0043 |
| Tool Output Injection | Fortgeschritten | LLM07 | AML.T0054, AML.T0068 |
| MCP Security | Erweitert | LLM07 | AML.T0068 |
| Browser Agent Security | Erweitert | LLM07, LLM09 | AML.T0054 |
| Multi-Agent Security | Erweitert | LLM08 | AML.T0054 |
| Autonomous Agent Security | Erweitert | LLM08, LLM09 | AML.T0054 |
| Data Exfiltration | Erweitert | LLM06 | AML.T0057, AML.T0058 |
| Agent Identity and Trust Abuse | Erweitert | LLM08 | AML.T0058 |
| AI Banking Platform | Fortgeschritten | LLM01, LLM06 | AML.T0043 |
| AI Healthcare Environment | Erweitert | LLM01, LLM06 | AML.T0043 |
| Multi-Tenant AI SaaS | Erweitert | LLM06 | AML.T0043 |
| AI Supply Chain Security | Experte | LLM03, LLM05 | AML.T0010, AML.T0048 |
| AI Developer Platform | Experte | LLM03, LLM07 | AML.T0010, AML.T0068 |
| Kategorie | Name | Labore | Status |
|---|
| LLM01 | Prompt Injection | Prompt Injection, AI Banking Platform, AI Healthcare Environment | Abgedeckt |
| LLM02 | Data and Memory Poisoning | Memory Poisoning, RAG Poisoning | Abgedeckt |
| LLM03 | Supply Chain and Training Data Risks | RAG Poisoning, AI Supply Chain Security, AI Developer Platform | Abgedeckt |
| LLM04 | Model Denial of Service | Geplant (v1.2) | |
| LLM05 | Insecure Supply Chain | AI Supply Chain Security | Abgedeckt |
| LLM06 | Sensitive Information Disclosure | Data Exfiltration, AI Banking Platform, AI Healthcare Environment, Multi-Tenant AI SaaS | Abgedeckt |
| LLM07 | Insecure Plugin Design | Tool Output Injection, MCP Security, Browser Agent Security, AI Developer Platform | Abgedeckt |
| LLM08 | Excessive Agency | Multi-Agent Security, Autonomous Agent Security, Agent Identity and Trust Abuse | Abgedeckt |
| LLM09 | Overreliance | Browser Agent Security, Autonomous Agent Security | Abgedeckt |
| LLM10 | Model Theft | Geplant (v1.2) |
| Dienst | Port (intern) | Zweck |
|---|
| PostgreSQL | 5432 | Primärer Datenspeicher |
| Redis | 6379 | Ratenbegrenzung, Instanz-TTL |
| Qdrant | 6333 | Semantische Suche über Findings |
| Ollama | 11434 | Lokale LLM-Inferenz |
| API | 8000 | FastAPI-Backend |
| Web | 3000 | Next.js-Frontend |
| Nginx | 8080 (Host) | Reverse Proxy |