
Im PwnzzAI Shop serviert jedes Stück eine Portion ganzheitlicher KI-Sicherheitsschulung. Diese praxisorientierte Lernplattform bereitet Fachkräfte darauf vor, den Schutz von KI-Technologien im weiteren Sinne zu verstehen – vermittelt durch ein ansprechendes, praxisnahes Pizzaladen-Szenario.
Genau wie eine falsche Zutat eine Pizza verderben kann, kann ein fehlerhafter Prompt oder eine unzureichende Architektur KI-Technologien für schwerwiegende Bedrohungen anfällig machen, darunter Informationslecks, Diebstahl geistigen Eigentums oder unberechtigter Zugriff.
Hier erkunden Sie praktische Beispiele dafür, wie Schwachstellen entstehen, ausgenutzt und entschärft werden. Für einige Seiten müssen Sie sich als alice/alice oder bob/bob anmelden. Greifen Sie zu einem Stück, stürzen Sie sich hinein und entdecken Sie, wie köstlich das Lernen über KI-Sicherheit sein kann.
Inhaltsverzeichnis
Der PwnzzAI Shop ist eine praxisorientierte Lernplattform, die gezielt für die Schulung zum Schutz von KI-Technologien entwickelt wurde. Diese bewusst unsichere, auf Flask basierende Webanwendung präsentiert eine umfangreiche Reihe von KI-Sicherheitsschwachstellen durch ein immersives Pizzaladen-Erlebnis.
Gründungspartner: OWASP AI Exchange
PwnzzAI ist als umfassende, sich weiterentwickelnde Lernplattform konzipiert, die an der AI-Exchange-Risikotaxonomie ausgerichtet ist. Ihr Umfang erweitert sich schrittweise im Gleichschritt mit den Sicherheitsanalyse-Frameworks und Verteidigungsempfehlungen des OWASP AI Exchange, wodurch langfristige Relevanz gewährleistet wird, während KI-Sicherheitspraktiken reifer werden. Das Projekt integriert derzeit die OWASP Top 10 für LLMs, mit einer Architektur, die bewusst auf die Risikoklassifikationen des AI Exchange abgebildet ist. Im Laufe der Zeit soll PwnzzAI zu einem strukturierten Lern-Ökosystem heranreifen, das Folgendes unterstützt:
Ausbildung in KI-Schutz und -Verteidigung, einschließlich selbstgesteuerter Lernpfade
Praxisnahe Sicherheitstrainingsprogramme mit praktischen, szenariobasierten Übungen
Teamorientierte Lerninitiativen für Sicherheitsingenieure und -praktiker
Ende-zu-Ende-KI-Sicherheitsausbildung über Design, Entwicklung, Bereitstellung und Betrieb
Wählen Sie eine dieser 3 Möglichkeiten, um PwnzzAI auszuführen:
https://www.docker.com/products/docker-desktop.git clone https://github.com/OWASP/PwnzzAI.git
cd PwnzzAI
Die Labore laufen standardmäßig mit einem kostenlosen lokalen Modell. Um auch die Cloud-Modell-Tabs (OpenAI / Gemini / Claude) zu nutzen, benötigen Sie zwei Dinge – einen API-Schlüssel und einen Modellnamen:
.env gesetzt werden (OPENAI_API_KEY=...). Der Schlüssel aus dem Lab-Setup hat Vorrang..env stammen. Es gibt keinen Standardwert im Code, daher schlagen Aufrufe mit LLM Provider NOT provided fehl, wenn er nicht gesetzt ist.Erstellen Sie .env aus der Vorlage und entfernen Sie die Auskommentierung der Modellzeile:
cp .env.example .env
# then edit .env and set, for example:
# OPENAI_MODEL=gpt-4o-mini
# (or LITELLM_MODEL=gemini/gemini-2.5-flash, etc.)
Starten Sie die App nach dem Bearbeiten von .env neu. Eine vollständige Anleitung zu Providern und Modellen finden Sie unter Workshop-Hosts: OpenAI, Claude, Gemini oder andere Cloud-Modelle auswählen.
Verwenden Sie diese Option, wenn Docker sowohl die PwnzzAI-App als auch Ollama für Sie ausführen soll.
docker compose up -d
docker compose ps
http://localhost:8080
Gehen Sie in der App zur Seite „Basics“ und führen Sie das Ollama-Setup aus, um Modelle zu laden.
Verfolgen Sie bei Bedarf die Logs:
# App logs
docker compose logs -f pwnzzai-app
# Ollama logs (optional)
docker compose logs -f ollama
docker compose down
docker compose down -v
Wenn Sie das App-Image unter einem anderen Registry-Pfad veröffentlichen, überschreiben Sie den Imagenamen beim Start:
PWNZZAI_IMAGE=ghcr.io/owasp/pwnzzai:latest docker compose up -d
docker compose verwendet das Standard-pwnzzai-app-Image aus docker-compose.yml (überschreibbar mit PWNZZAI_IMAGE). Wenn docker compose up beim Laden dieses Images mit denied, unauthorized oder Ähnlichem fehlschlägt, erfordert die Registry möglicherweise eine Anmeldung oder Ihr Konto verfügt nicht über Pull-Zugriff. Sie können trotzdem alles aus diesem Repository ausführen, indem Sie das App-Image lokal bauen und compose darauf verweisen lassen.
Vom Repository-Stammverzeichnis aus:
docker build -t pwnzzai-local:dev .
PWNZZAI_IMAGE=pwnzzai-local:dev docker compose up -d
Windows PowerShell:
docker build -t pwnzzai-local:dev .
$env:PWNZZAI_IMAGE="pwnzzai-local:dev"; docker compose up -d
Öffnen Sie dann http://localhost:8080. Der erste Ladevorgang kann kurz fehlschlagen, während Flask im Container startet; warten Sie ein paar Sekunden und aktualisieren Sie die Seite, wenn Sie einen Verbindungsfehler sehen.
Wenn Sie Zugriff auf das Registry-Image haben, können Sie sich zuerst authentifizieren (Beispiel für GitHub Container Registry):
docker login ghcr.io
Derselbe PWNZZAI_IMAGE=pwnzzai-local:dev-Ansatz gilt für Option 2, wenn Sie docker-compose.external-ollama.yml verwenden und auf denselben Pull-Fehler stoßen.
Verwenden Sie diese Option, wenn Ollama bereits woanders läuft und Sie nur PwnzzAI in Docker ausführen möchten.
Wenn Sie Ollama unter WSL und PwnzzAI in Docker ausführen, finden Sie in OLLAMA_CONNECTION_TROUBLESHOOTING.md Lösungen zu Verbindungsproblemen (Connection refused, host.docker.internal, Bindung und Env-Validierung).
Lassen Sie Ihren Ollama-Dienst weiterlaufen.
Wenn sich Ollama auf einem entfernten Rechner befindet, setzen Sie vor dem Start OLLAMA_HOST (überspringen Sie dies, wenn Ollama auf demselben Rechner wie Docker läuft und unter dem Standardwert in docker-compose.external-ollama.yml, http://host.docker.internal:11434, erreichbar ist).
Linux/macOS:
export OLLAMA_HOST=http://your-ollama-server:11434
Windows PowerShell:
$env:OLLAMA_HOST="http://your-ollama-server:11434"
docker compose -f docker-compose.external-ollama.yml up -d
Wenn das Standard-App-Image nicht von GHCR geladen wird, bauen Sie es lokal und setzen Sie PWNZZAI_IMAGE wie in Falls das Standard-Image nicht geladen wird (lokal bauen) beschrieben.
Rufen Sie http://localhost:8080 in Ihrem Browser auf, um die Anwendung zu sehen. Beginnen Sie auf der Seite „Basic“ und richten Sie Ihr Labor ein.
Verfolgen Sie bei Bedarf die App-Logs:
docker compose -f docker-compose.external-ollama.yml logs -f pwnzzai-app
docker compose -f docker-compose.external-ollama.yml down
Verwenden Sie diese Option, wenn Sie Python direkt ausführen möchten (ohne Docker für die App).
Linux/macOS:
python -m venv venv
source venv/bin/activate
Windows PowerShell:
python -m venv venv
.\venv\Scripts\Activate.ps1
./install.sh
Stellen Sie sicher, dass Ollama verfügbar ist:
http://localhost:11434 oder ein anderer Endpunkt über OLLAMA_HOST.
Führen Sie die App aus:
flask run --host=0.0.0.0 --port=8080
http://localhost:8080
Wenn Sie weitere Details benötigen, schauen Sie sich diese Anleitung an, die die Einrichtung Schritt für Schritt zeigt.
Diese Plattform präsentiert ein breites Spektrum an KI-Schutzherausforderungen, ausgerichtet an der umfassenden Bedrohungstaxonomie des OWASP AI Exchange. Die aktuelle Implementierung deckt die OWASP Top 10 für LLM-Anwendungen und die zentralen Bedrohungskategorien des AI Exchange ab, mit einer erweiterbaren Architektur für die zukünftige Abdeckung weiterer KI-Risiken.
Jede in PwnzzAI demonstrierte Schwachstelle umfasst:
Gemäß den Bedrohungen des OWASP AI Exchange und der OWASP Top 10 für LLM-Anwendungen 2025:
Prompt Injection AI Exchange: Direkte Prompt-Injection, Indirekte Prompt-Injection, Top 10: LLM-01.
Datenoffenlegung AI Exchange: Offenlegung sensibler Daten in der Modellausgabe , Top 10: LLM-02
Daten- und Modellvergiftung AI Exchange: Datenvergiftung, Modellvergiftung, Top 10: LLM04
Unsachgemäße Ausgabebehandlung AI Exchange: Ausgabe enthält konventionelle Injection, Top 10:LLM05
Übermäßige Autonomie AI Exchange: Minimale Modellprivilegien, Aufsicht, Top 10:LLM06
System-Prompt-Leckage AI Exchange: Offenlegung sensibler Informationen, Top 10:LLM07
und,
⚠️ Nur für Bildungszwecke: Diese Anwendung enthält absichtlich eingebaute Sicherheitsschwachstellen. Nicht in Produktionsumgebungen verwenden.
Vector- und Embedding-Schwachstelle AI Exchange: Direktes Leck von Augmentierungsdaten, Top 10:LLM08
Fehlinformation AI Exchange: Manipulation von Augmentierungsdaten, Top 10:LLM09
Unbegrenzter Ressourcenverbrauch AI Exchange: KI-Ressourcenerschöpfung, Top 10:LLM10