
Piattaforma pratica di laboratorio di sicurezza AI con oltre 50 scenari che coprono injection di prompt, sfruttamento di sistemi agenziali, manipolazione di modelli e attacchi al confine di fiducia MCP. Utilizza Ollama + FastAPI + React per pratica offensiva/difensiva sicura.
AIVP è una piattaforma pratica di laboratorio di sicurezza AI che copre 4 fasi e 50+ laboratori (attualmente 50+ scenari nel codebase). Combina Ollama + Llama 3.1, un backend FastAPI e un frontend React/Vite per consentire ai professionisti di esercitarsi in sicurezza su tecniche offensive e difensive di sicurezza AI.
Se questo progetto ti è utile, per favore ⭐ metti una stella / metti mi piace al repo, fai un fork, e sentiti libero di aprire PR!
Usa la guida dedicata: RUN_STEPS.md. Copre i flussi manuale (Vite + uvicorn) e Docker (nginx + API + Redis, Ollama sull'host), inclusi i prerequisiti per un accesso affidabile ai laboratori.
Il comportamento della configurazione è rigoroso nei percorsi di runtime attivi: i valori env obbligatori mancanti possono far fallire l'avvio per progettazione.
La piattaforma copre quattro percorsi formativi:
Ogni laboratorio usa segreti dinamici specifici e una validazione esplicita, così puoi verificare il successo dell'exploit in un ambiente sicuro.
Solo a scopo educativo — I laboratori simulano scenari di sicurezza AI offensivi e difensivi su sistemi locali. Non prendere di mira servizi, dati o infrastrutture reali che non possiedi o per cui non hai esplicita autorizzazione al test. I segreti in questi laboratori sono sintetici e rigenerati per ogni laboratorio; non sono credenziali di produzione. Utilizzo a proprio rischio. Nessuna garanzia fornita.
POST /api/labs/{lab}/chatEsegui il pull del modello almeno una volta:
ollama pull llama3.1(o un'altra variante compatibile con llama3.1 che preferisci)
apps/
api/ # Backend FastAPI (SSE -> Ollama)
main.py
requirements.txt
.env.example
web/ # Frontend React + Vite
src/
.env.example
Suggerimento: 16 GB di RAM di sistema funzionano; 32 GB offrono un margine confortevole per browser, Node, Python e IDE.
Dalla radice del repo (la cartella che contiene apps\api e apps\web):
# 0) Assicurati che il modello sia disponibile
ollama pull llama3.1
# 1) venv backend + dipendenze + avvio
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
Apri una nuova finestra PowerShell per il frontend:
cd apps/web
npm install
copy .env.example .env
npm run dev # http://localhost:5173
# 0) Modello
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
In un'altra shell:
cd apps/web
npm install
cp .env.example .env
npm run dev # http://localhost:5173
ollama serve se necessario).ollama pull llama3.1.:8000.:5173.Il frontend riceve in streaming gli eventi Server‑Sent Events (SSE) dal backend; assicurati che le origini CORS in
apps/api/.envincludanohttp://localhost:5173.
Formati ID laboratorio accettati (dal backend): PI-01, PI_01, pi01, p01 → tutti normalizzati a PI_01.
Segreti dinamici vengono creati al primo utilizzo di un laboratorio dopo un riavvio del backend. Puoi anche reimpostare un segreto:
POST /api/secrets/reset/{labId}
Il segreto di ogni laboratorio è diverso e viene rigenerato al riavvio del backend (in memoria). Valuta di usare un file/DB come supporto se ti serve la persistenza.
apps/api/.env)