
Hands-on-Plattform für KI-Sicherheitslabore mit über 50 Szenarien zu Prompt-Injection, Ausnutzung agentischer Systeme, Modellmanipulation und MCP-Vertrauensgrenzen-Angriffen. Nutzt Ollama + FastAPI + React für sicheres offensives/defensives Training.
AIVP ist eine praxisnahe Plattform für KI-Sicherheits-Labs, die 4 Phasen und über 50 Labs umfasst (derzeit über 50 Szenarien in der Codebasis). Sie kombiniert Ollama + Llama 3.1, ein FastAPI-Backend und ein React/Vite-Frontend, damit Praktiker offensive und defensive KI-Sicherheitstechniken sicher üben können.
Wenn dir das hilft, gib dem Repo bitte einen ⭐ Stern / Like, forke es und eröffne gerne PRs!
Nutze die eigens dafür vorgesehene Ausführungsanleitung: RUN_STEPS.md. Sie deckt den manuellen Betrieb (Vite + uvicorn) und Docker (nginx + API + Redis, Ollama auf dem Host) ab, einschließlich der Voraussetzungen für zuverlässigen Lab-Zugriff.
Das Konfigurationsverhalten ist in aktiven Laufzeitpfaden strikt: Fehlende erforderliche Env-Werte können den Start bewusst verhindern.
Die Plattform umfasst vier Trainingspfade:
Jedes Lab verwendet dynamische, pro Lab einzigartige Secrets und eine explizite Validierung, damit du den Erfolg von Exploits in einer sicheren Umgebung verifizieren kannst.
Nur für Bildungszwecke — Die Labs simulieren offensive und defensive KI-Sicherheitsszenarien auf lokalen Systemen. Greife nicht echte Dienste, Daten oder Infrastruktur an, die du nicht besitzt oder für die du keine ausdrückliche Genehmigung zum Testen hast. Die Secrets in diesen Labs sind synthetisch und werden pro Lab neu generiert; es handelt sich nicht um Produktionsanmeldedaten. Nutzung auf eigene Gefahr. Es wird keine Garantie gewährt.
POST /api/labs/{lab}/chatZiehe das Modell mindestens einmal:
ollama pull llama3.1(oder eine andere llama3.1-kompatible Variante, die du bevorzugst)
apps/
api/ # FastAPI backend (SSE -> Ollama)
main.py
requirements.txt
.env.example
web/ # React + Vite frontend
src/
.env.example
Tipp: 16 GB Systemspeicher funktionieren; 32 GB bieten komfortable Reserven für Browser, Node, Python und IDE.
Vom Repo-Stammverzeichnis aus (der Ordner, der apps\api und apps\web enthält):
# 0) Ensure the model is available
ollama pull llama3.1
# 1) Backend venv + deps + run
cd apps/api
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
copy .env.example .env
uvicorn main:app --reload --port 8000
Öffne ein neues PowerShell-Fenster für das Frontend:
cd apps/web
npm install
copy .env.example .env
npm run dev # http://localhost:5173
# 0) Model
ollama pull llama3.1
# 1) Backend
cd apps/api
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
uvicorn main:app --reload --port 8000
In einer anderen Shell:
cd apps/web
npm install
cp .env.example .env
npm run dev # http://localhost:5173
ollama serve falls nötig).ollama pull llama3.1.:8000 aus.:5173 aus.Das Frontend streamt Server-Sent Events (SSE) vom Backend; stelle sicher, dass die CORS-Origins in
apps/api/.envhttp://localhost:5173enthalten.
Akzeptierte Lab-ID-Formate (vom Backend): PI-01, PI_01, pi01, p01 → alle werden zu PI_01 normalisiert.
Dynamische Secrets werden erstellt, wenn ein Lab nach einem Backend-Neustart zum ersten Mal verwendet wird. Du kannst ein Secret auch zurücksetzen:
POST /api/secrets/reset/{labId}
Das Secret jedes Labs ist unterschiedlich und wird bei einem Backend-Neustart neu generiert (im Speicher). Ziehe in Betracht, es mit einer Datei/DB zu sichern, wenn du Persistenz benötigst.
apps/api/.env)