
Plataforma práctica de aprendizaje de seguridad en IA con aplicaciones LLM intencionalmente vulnerables. Explora OWASP Top 10 para LLMs a través de escenarios interactivos de pizzería que cubren inyección de prompts, divulgación de datos y riesgos en la cadena de suministro.
En PwnzzAI Shop, cada rebanada ofrece una dosis de instrucción holística de seguridad en IA. Esta plataforma práctica de aprendizaje prepara a los profesionales para comprender la protección de las tecnologías de IA en general, entregada a través de un atractivo y práctico escenario de pizzería.
Así como un ingrediente incorrecto puede arruinar una pizza, un prompt defectuoso o una arquitectura inadecuada pueden dejar las tecnologías de IA vulnerables a amenazas graves, incluyendo violaciones de información, robo de propiedad intelectual o acceso ilegítimo.
Aquí explorarás ejemplos prácticos de cómo se crean, explotan y mitigan las vulnerabilidades. Necesitas iniciar sesión como alice/alice o bob/bob para algunas páginas. Toma una rebanada, adéntrate y descubre lo delicioso que puede ser aprender sobre seguridad en IA.
Tabla de Contenido
PwnzzAI Shop representa una plataforma de aprendizaje práctica construida intencionalmente para la instrucción sobre la protección de la tecnología de IA. Esta aplicación web basada en Flask, intencionalmente insegura, muestra una amplia gama de debilidades de seguridad en IA a través de una experiencia inmersiva de pizzería.
Socio fundador: OWASP AI Exchange
PwnzzAI está diseñado como una plataforma de aprendizaje integral y en evolución alineada con la taxonomía de riesgos de AI Exchange Su alcance se expande progresivamente en sintonía con los marcos de análisis de seguridad y la guía defensiva de OWASP AI Exchange, asegurando relevancia a largo plazo a medida que maduran las prácticas de seguridad en IA. El proyecto actualmente incorpora el OWASP Top 10 para LLMs, con una arquitectura mapeada intencionalmente a las clasificaciones de riesgos de AI Exchange. Con el tiempo, PwnzzAI aspira a madurar hasta convertirse en un ecosistema de aprendizaje estructurado que soporte:
Capacitación en protección y defensa de IA, incluyendo rutas de aprendizaje autodirigidas
Programas de capacitación práctica en seguridad con ejercicios prácticos basados en escenarios
Iniciativas de aprendizaje en equipo para ingenieros y profesionales de seguridad
Educación integral en seguridad de IA, abarcando diseño, desarrollo, despliegue y operaciones
Elige una de estas 3 formas de ejecutar PwnzzAI:
https://www.docker.com/products/docker-desktop.git clone https://github.com/OWASP/PwnzzAI.git
cd PwnzzAI
Los laboratorios se ejecutan con un modelo local gratuito de forma predeterminada. Para usar también las pestañas de modelo en la nube (OpenAI / Gemini / Claude), necesitas dos cosas: una clave API y un nombre de modelo:
.env (OPENAI_API_KEY=...). La clave de Lab Setup tiene prioridad..env. No hay valor predeterminado en el código, por lo que las llamadas fallan con LLM Provider NOT provided si no está configurado.Crea .env a partir de la plantilla y descomenta la línea del modelo:
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.)
Reinicia la aplicación después de editar .env. Para una guía completa de proveedores/modelos, consulta Anfitriones del taller: elegir OpenAI, Claude, Gemini u otros modelos en la nube.
Usa esta opción si deseas que Docker ejecute tanto la aplicación PwnzzAI como Ollama por ti.
docker compose up -d
docker compose ps
http://localhost:8080
En la aplicación, ve a la página Basics y ejecuta la configuración de Ollama para descargar modelos.
Sigue los logs si es necesario:
# App logs
docker compose logs -f pwnzzai-app
# Ollama logs (optional)
docker compose logs -f ollama
docker compose down
docker compose down -v
Si publicas la imagen de la aplicación bajo otra ruta de registro, sobrescribe el nombre de la imagen al iniciar:
PWNZZAI_IMAGE=ghcr.io/owasp/pwnzzai:latest docker compose up -d
docker compose usa la imagen predeterminada pwnzzai-app de docker-compose.yml (sobrescribible con PWNZZAI_IMAGE). Si docker compose up falla con denied, unauthorized o similar al descargar esa imagen, es posible que el registro requiera inicio de sesión o que tu cuenta no tenga acceso de descarga. Aún puedes ejecutar todo desde este repositorio compilando la imagen de la aplicación localmente y apuntando compose hacia ella.
Desde la raíz del repositorio:
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
Luego abre http://localhost:8080. La primera carga puede fallar brevemente mientras Flask se inicia dentro del contenedor; espera unos segundos y actualiza si ves un error de conexión.
Si tienes acceso a la imagen del registro, puedes autenticarte primero (ejemplo para GitHub Container Registry):
docker login ghcr.io
El mismo enfoque de PWNZZAI_IMAGE=pwnzzai-local:dev se aplica a la Opción 2 si usas docker-compose.external-ollama.yml y encuentras el mismo error de descarga.