
Plataforma de laboratorio práctico de seguridad de IA con más de 50 escenarios que cubren inyección de prompts, explotación de sistemas agénticos, manipulación de modelos y ataques a límites de confianza de MCP. Utiliza Ollama + FastAPI + React para práctica ofensiva/defensiva segura.
AIVP es una plataforma práctica de laboratorio de seguridad de IA que abarca 4 fases y más de 50 laboratorios (actualmente más de 50 escenarios en todo el código base). Combina Ollama + Llama 3.1, un backend FastAPI y un frontend React/Vite para que los profesionales puedan practicar de forma segura técnicas ofensivas y defensivas de seguridad de IA.
Si esto te resulta útil, por favor ⭐ marca / dale like al repositorio, haz fork y no dudes en abrir PRs.
Usa la guía de ejecución dedicada: RUN_STEPS.md. Cubre los métodos manual (Vite + uvicorn) y Docker (nginx + API + Redis, Ollama en el host), incluidos los requisitos previos para un acceso fiable a los laboratorios.
El comportamiento de la configuración es estricto en las rutas de ejecución activas: la falta de valores de entorno requeridos puede provocar un fallo al iniciar por diseño.
La plataforma cubre cuatro pistas de entrenamiento:
Cada laboratorio usa secretos dinámicos por laboratorio y validación explícita para que puedas verificar el éxito del exploit en un entorno seguro.
Solo para uso educativo — Los laboratorios simulan escenarios ofensivos y defensivos de seguridad de IA en sistemas locales. No ataques servicios, datos o infraestructura reales que no poseas o para los que no tengas permiso explícito de prueba. Los secretos de estos laboratorios son sintéticos y se regeneran por laboratorio; no son credenciales de producción. Úsalo bajo tu propio riesgo. No se ofrece garantía alguna.
POST /api/labs/{lab}/chatDescarga un modelo al menos una vez:
ollama pull llama3.1(u otra variante compatible con llama3.1 que prefieras)
apps/
api/ # FastAPI backend (SSE -> Ollama)
main.py
requirements.txt
.env.example
web/ # React + Vite frontend
src/
.env.example
Consejo: 16 GB de RAM del sistema funcionan; 32 GB ofrecen un margen cómodo para navegador, Node, Python e IDE.
Desde la raíz del repositorio (la carpeta que contiene apps\api y apps\web):
# 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
Abre una ventana nueva de PowerShell para el 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
En otra terminal:
cd apps/web
npm install
cp .env.example .env
npm run dev # http://localhost:5173
ollama serve si es necesario).ollama pull llama3.1.:8000.:5173.El frontend transmite Server‑Sent Events (SSE) desde el backend; asegúrate de que los orígenes CORS en
apps/api/.envincluyanhttp://localhost:5173.
Formatos de ID de laboratorio aceptados (por el backend): PI-01, PI_01, pi01, p01 → todos se normalizan a PI_01.
Los secretos dinámicos se crean la primera vez que se usa un laboratorio después de reiniciar el backend. También puedes restablecer un secreto:
POST /api/secrets/reset/{labId}
El secreto de cada laboratorio es diferente y se regenera al reiniciar el backend (en memoria). Considera respaldarlo con un archivo/BD si necesitas persistencia.
apps/api/.env)