Plateforme d'apprentissage pratique de la sécurité IA avec des applications LLM volontairement vulnérables. Explorez l'OWASP Top 10 pour les LLM à travers des scénarios interactifs de pizzeria couvrant l'injection de prompts, la divulgation de données et les risques liés à la chaîne d'approvisionnement.
Chez PwnzzAI Shop, chaque part sert une bonne dose d'enseignement holistique de la sécurité de l'IA. Cette plateforme d'apprentissage pratique prépare les professionnels à comprendre la protection des technologies d'IA au sens large, à travers un scénario de pizzeria ludique et pratique.
Tout comme un mauvais ingrédient peut gâcher une pizza, un prompt défectueux ou une architecture inadéquate peut laisser les technologies d'IA vulnérables à des menaces graves, notamment les fuites d'informations, le vol de propriété intellectuelle ou les accès illégitimes.
Ici, vous explorerez des exemples pratiques de création, d'exploitation et d'atténuation des vulnérabilités. Pour certaines pages, vous devrez vous connecter avec alice/alice ou bob/bob. Prenez une part, régalez-vous et découvrez à quel point apprendre la sécurité de l'IA peut être savoureux.
Sommaire
PwnzzAI Shop est une plateforme d'apprentissage pratique, délibérément conçue pour l'enseignement de la protection des technologies d'IA. Cette application web Flask volontairement non sécurisée présente un large éventail de faiblesses de sécurité de l'IA à travers une expérience immersive de pizzeria.
Partenaire fondateur : OWASP AI Exchange
PwnzzAI est conçu comme une plateforme d'apprentissage complète et évolutive, alignée sur la taxonomie des risques de l'AI Exchange. Son périmètre s'étend progressivement au rythme des cadres d'analyse de sécurité et des recommandations défensives de l'OWASP AI Exchange, garantissant une pertinence durable à mesure que les pratiques de sécurité de l'IA mûrissent. Le projet intègre actuellement le Top 10 OWASP pour les LLM, avec une architecture délibérément alignée sur les classifications de risques de l'AI Exchange. À terme, PwnzzAI vise à devenir un écosystème d'apprentissage structuré qui prend en charge :
La formation à la protection et à la défense de l'IA, y compris des parcours d'apprentissage en autonomie
Des programmes de formation pratique à la sécurité avec des exercices concrets basés sur des scénarios
Des initiatives d'apprentissage en équipe pour les ingénieurs et professionnels de la sécurité
Une éducation à la sécurité de l'IA de bout en bout, couvrant la conception, le développement, le déploiement et l'exploitation
Choisissez l'une de ces 3 façons d'exécuter PwnzzAI :
https://www.docker.com/products/docker-desktop.git clone https://github.com/OWASP/PwnzzAI.git
cd PwnzzAI
Les ateliers fonctionnent dès le départ avec un modèle local gratuit. Pour utiliser également les onglets modèle cloud (OpenAI / Gemini / Claude), vous avez besoin de deux éléments : une clé API et un nom de modèle :
.env (OPENAI_API_KEY=...). La clé saisie dans Lab Setup a priorité..env. Il n'y a pas de valeur par défaut dans le code, donc les appels échouent avec LLM Provider NOT provided s'il n'est pas défini.Créez .env à partir du modèle fourni et décommentez la ligne du modèle :
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.)
Redémarrez l'application après avoir modifié .env. Pour un guide complet sur les fournisseurs et les modèles, consultez Hôtes d'atelier : choisir OpenAI, Claude, Gemini ou d'autres modèles cloud.
Utilisez cette option si vous souhaitez que Docker exécute à la fois l'application PwnzzAI et Ollama pour vous.
docker compose up -d
docker compose ps
http://localhost:8080
Dans l'application, allez sur la page Basics et exécutez la configuration d'Ollama pour télécharger les modèles.
Consultez les journaux si nécessaire :
# App logs
docker compose logs -f pwnzzai-app
# Ollama logs (optional)
docker compose logs -f ollama
docker compose down
docker compose down -v
Si vous publiez l'image de l'application sous un autre chemin de registre, remplacez le nom de l'image au démarrage :
PWNZZAI_IMAGE=ghcr.io/owasp/pwnzzai:latest docker compose up -d
docker compose utilise l'image pwnzzai-app par défaut de docker-compose.yml (remplaçable avec PWNZZAI_IMAGE). Si docker compose up échoue avec denied, unauthorized ou une erreur similaire lors du téléchargement de l'image, le registre peut exiger une connexion ou votre compte peut ne pas disposer des droits de téléchargement. Vous pouvez tout de même tout exécuter depuis ce dépôt en compilant localement l'image de l'application et en pointant compose vers cette image.
Depuis la racine du dépôt :
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
Ouvrez ensuite http://localhost:8080. Le premier chargement peut échouer brièvement pendant que Flask démarre dans le conteneur ; attendez quelques secondes et actualisez si vous voyez une erreur de connexion.
Si vous avez bien accès à l'image du registre, vous pouvez vous authentifier au préalable (exemple pour GitHub Container Registry) :
docker login ghcr.io