
Plateforme de laboratoire de sécurité IA pratique avec plus de 50 scénarios couvrant l'injection de prompts, l'exploitation de systèmes agentiques, la manipulation de modèles et les attaques sur les frontières de confiance MCP. Utilise Ollama + FastAPI + React pour une pratique offensive/défensive en toute sécurité.
AIVP est une plateforme pratique de laboratoires de sécurité IA couvrant 4 phases et 50+ laboratoires (actuellement 50+ scénarios dans la base de code). Elle combine Ollama + Llama 3.1, un backend FastAPI et un frontend React/Vite pour permettre aux praticiens de s'entraîner en toute sécurité aux techniques de sécurité IA offensives et défensives.
Si cela vous aide, merci de ⭐ starrer / liker le dépôt, de le forker, et n'hésitez pas à ouvrir des PR !
Utilisez le guide d'exécution dédié : RUN_STEPS.md. Il couvre le mode manuel (Vite + uvicorn) et Docker (nginx + API + Redis, Ollama sur l'hôte), y compris les prérequis pour un accès fiable aux laboratoires.
Le comportement de la configuration est strict dans les chemins d'exécution actifs : des valeurs d'environnement requises manquantes peuvent faire échouer le démarrage par conception.
La plateforme couvre quatre parcours de formation :
Chaque laboratoire utilise des secrets dynamiques propres à chaque laboratoire et une validation explicite afin que vous puissiez vérifier le succès de l'exploitation dans un environnement sûr.
Usage exclusivement pédagogique — Les laboratoires simulent des scénarios de sécurité IA offensifs et défensifs sur des systèmes locaux. Ne pas cibler de vrais services, données ou infrastructures que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de tester. Les secrets de ces laboratoires sont synthétiques et régénérés pour chaque laboratoire ; ce ne sont pas des identifiants de production. Utilisation à vos propres risques. Aucune garantie n'est fournie.
POST /api/labs/{lab}/chatTéléchargez un modèle au moins une fois :
ollama pull llama3.1(ou une autre variante compatible llama3.1 de votre choix)
apps/
api/ # FastAPI backend (SSE -> Ollama)
main.py
requirements.txt
.env.example
web/ # React + Vite frontend
src/
.env.example
Conseil : 16 GB de RAM système suffisent ; 32 GB offrent une marge confortable pour le navigateur, Node, Python et l'IDE.
Depuis la racine du dépôt (le dossier qui contient apps\api et 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
Ouvrez une nouvelle fenêtre PowerShell pour le 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
Dans un autre shell :
cd apps/web
npm install
cp .env.example .env
npm run dev # http://localhost:5173
ollama serve si nécessaire).ollama pull llama3.1.:8000.:5173.Le frontend diffuse les événements envoyés par le serveur (SSE) depuis le backend ; assurez-vous que les origines CORS dans
apps/api/.envincluenthttp://localhost:5173.
Formats d'ID de laboratoire acceptés (par le backend) : PI-01, PI_01, pi01, p01 → tous normalisés en PI_01.
Les secrets dynamiques sont créés la première fois qu'un laboratoire est utilisé après un redémarrage du backend. Vous pouvez également réinitialiser un secret :
POST /api/secrets/reset/{labId}