
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.
Usa esta opción si Ollama ya se está ejecutando en otro lugar y solo deseas ejecutar PwnzzAI en Docker.
Si ejecutas Ollama en WSL y PwnzzAI en Docker, consulta OLLAMA_CONNECTION_TROUBLESHOOTING.md para soluciones de conectividad (Connection refused, host.docker.internal, enlace y validación de entorno).
Mantén tu servicio Ollama en ejecución.
Si Ollama está en una máquina remota, configura OLLAMA_HOST antes de iniciar (omite esto si Ollama está en la misma máquina que Docker y es accesible en la URL predeterminada de docker-compose.external-ollama.yml, http://host.docker.internal:11434).
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
Si la imagen predeterminada de la aplicación no se descarga de GHCR, compila localmente y configura PWNZZAI_IMAGE como en Si la imagen predeterminada no se descarga (compilar localmente).
Visita http://localhost:8080 en tu navegador para ver la aplicación. Comienza desde la página Basic y configura tu laboratorio.
Sigue los logs de la aplicación si es necesario:
docker compose -f docker-compose.external-ollama.yml logs -f pwnzzai-app
docker compose -f docker-compose.external-ollama.yml down
Usa esta opción si deseas ejecutar Python directamente (sin Docker para la aplicación).
Linux/macOS:
python -m venv venv
source venv/bin/activate
Windows PowerShell:
python -m venv venv
.\venv\Scripts\Activate.ps1
./install.sh
Asegúrate de que Ollama esté disponible: http://localhost:11434 u otro endpoint mediante OLLAMA_HOST.
Ejecuta la aplicación:
flask run --host=0.0.0.0 --port=8080
http://localhost:8080
Si necesitas más detalles, mira este tutorial , que muestra la configuración paso a paso.
Esta plataforma muestra un amplio espectro de desafíos de protección de IA, alineados con la taxonomía integral de amenazas de OWASP AI Exchange. La implementación actual cubre el OWASP Top 10 para Aplicaciones LLM y las categorías centrales de amenazas de AI Exchange, con una arquitectura extensible construida para la cobertura futura de riesgos de IA.
Cada debilidad demostrada en PwnzzAI incluye:
Inyección de Prompt AI Exchange: Inyección Directa de Prompt, Inyección Indirecta de Prompt, Top 10: LLM-01.
Divulgación de Datos AI Exchange: Divulgación de datos sensibles en la salida del modelo, Top 10: LLM-02
Envenenamiento de Datos y Modelo AI Exchange: Envenenamiento de Datos, Envenenamiento de Modelo, Top 10: LLM04
Manejo Incorrecto de la Salida AI Exchange: La Salida Contiene Inyección Convencional, Top 10:LLM05
Agencia Excesiva AI Exchange: Privilegio Mínimo del Modelo, Supervisión, Top 10:LLM06
Fuga del Prompt del Sistema AI Exchange: Divulgación de Información Sensible, Top 10:LLM07
Debilidad de Vectores y Embeddings AI Exchange: Fuga directa de datos de aumento, Top 10:LLM08
Desinformación AI Exchange: Manipulación de datos de aumento, Top 10:LLM09
Consumo Ilimitado AI Exchange: Agotamiento de Recursos de IA, Top 10:LLM10
y,
⚠️ Solo con Fines Educativos: Esta aplicación contiene vulnerabilidades de seguridad intencionales. No usar en entornos de producción.