sonuoffsec/DVAP

GitHub: sonuoffsec/DVAP

一款 100% 本地运行的开源 AI 安全训练与研究平台,提供覆盖 OWASP LLM Top 10 的漏洞靶场、CTF 挑战和 LLM 安全基准测试。

Stars: 17 | Forks: 5

# DVAP - Damn Vulnerable AI Platform **训练。突破。防御。AI 系统。** 一个用于 AI 安全训练、红/蓝队对抗、CTF、基准测试和研究的开源平台。 100% 本地运行。无需云服务,无需付费 API,数据不离开你的机器。 [![许可证](https://img.shields.io/badge/license-Apache%202.0-blue?style=flat-square)](LICENSE) [![Docker](https://img.shields.io/badge/docker-ready-2496ED?style=flat-square&logo=docker)](docker-compose.yml) [![实验室](https://img.shields.io/badge/labs-15-7c3aed?style=flat-square)](#labs) [![OWASP LLM](https://img.shields.io/badge/OWASP%20LLM-Top%2010-orange?style=flat-square)](#labs)
## 前置条件 - [Docker](https://docs.docker.com/get-docker/) 24+ 和 Docker Compose v2 - 至少 16 GB 内存(Ollama 会将模型加载到内存中;8 GB 仅适用于小模型) - 20 GB 可用磁盘空间,用于基础镜像和至少一个模型 - x86-64 CPU;支持 Apple Silicon 和 ARM64,但未经测试 GPU 是可选的。Ollama 可以在 CPU 上运行,但没有 GPU 推理会很慢。 ## 快速开始 ``` git clone https://github.com/sonuoffsec/DVAP cd DVAP cp .env.example .env docker compose up -d ``` 当所有容器健康运行后,打开 `http://localhost:8080`。首次运行需要 30-60 秒。 ## 目录 - [前置条件](#prerequisites) - [快速开始](#quick-start) - [什么是 DVAP?](#what-is-dvap) - [为什么选择 DVAP?](#why-dvap) - [DVAP 有何不同](#how-dvap-differs) - [主要功能](#key-features) - [平台概览](#platform-overview) - [演示](#demo) - [截图](#screenshots) - [实验室](#labs) - [OWASP LLM Top 10 覆盖范围](#owasp-llm-top-10-coverage) - [架构](#architecture) - [安全架构](#security-architecture) - [服务](#services) - [环境变量](#environment-variables) - [升级](#upgrading) - [开发与生产环境](#development-vs-production) - [运行测试](#running-tests) - [路线图](#roadmap) - [治理](#governance) - [贡献](#contributing) - [许可证](#license) ## 什么是 DVAP? DVAP 是一个开源的 AI 安全研究、训练、基准测试和红队对抗平台,旨在帮助安全专业人员、AI 工程师、研究人员、学生和组织了解现代 AI 系统是如何失效的,以及如何防御它们。 专为 AI 时代构建,DVAP 提供了存在故意漏洞的 AI 应用、代理、RAG 系统、MCP 集成以及特定领域的环境,可供攻击、分析、基准测试和保护。 与基于云的 AI 试验场不同,DVAP 完全在你的机器上运行。 **无需云服务。无需订阅。无 API 成本。无供应商锁定。** ## 为什么选择 DVAP? 现代 AI 应用引入了全新的攻击面: - Prompt Injection - Memory Poisoning - RAG Poisoning - Tool Abuse - MCP Exploitation - Multi-Agent Attacks - Autonomous Agent Manipulation - Data Exfiltration - Identity and Trust Failures - AI Supply Chain Risks 然而,目前没有哪个单一平台能够让研究人员在一个地方安全地学习、练习、进行基准测试和验证这些攻击。 DVAP 的目标是成为 AI 安全教育、研究和实验的权威开源平台。 ## DVAP 有何不同 | | DVAP | DVWA | HackTheBox | Gandalf (Lakera) | 博客文章 / 论文 | |---|---|---|---|---|---| | 特定于 AI 的漏洞 | 是 | 否 | 部分 | 部分 | 是(仅理论) | | 本地运行,无需云 | 是 | 是 | 否 | 否 | 不适用 | | 15 个专用 AI 实验室 | 是 | 否 | 否 | 否 | 否 | | LLM 基准测试引擎 | 是 | 否 | 否 | 否 | 否 | | 包含 flag 的 CTF | 是 | 是 | 是 | 否 | 否 | | OWASP LLM Top 10 覆盖范围 | 完整 | 否 | 部分 | 部分 | 不定 | | MITRE ATLAS 映射 | 是 | 否 | 否 | 否 | 不定 | | 报告生成 | 是 | 否 | 否 | 否 | 否 | | 研究工作区 | 是 | 否 | 否 | 否 | 否 | | Agent 和 MCP 安全 | 是 | 否 | 否 | 否 | 否 | | 免费且开源 | 是 | 是 | 部分 | 否 | 是 | DVAP 是首批在单一的自托管环境中,将实战 AI 攻击实验室、本地 LLM 基准测试、CTF 挑战和专业报告结合起来的平台之一。 ## 主要功能 **AI 安全实验室** 15 个包含故意漏洞的实验室,涵盖真实的 AI 攻击技术。 **研究工作区** 检查 prompt、内存、工具调用、检索到的文档、代理动作和攻击链。 **安全基准测试** 针对 AI 安全攻击套件评估本地和外部模型。 **夺旗赛 (CTF)** 通过引导挑战、flag、提示和演练来学习 AI 安全。 **报告引擎** 生成映射到 OWASP LLM Top 10、MITRE ATLAS、CWE 和 CVSS 的专业发现和基准测试报告。 **100% 本地** 在你自己的机器上运行所有内容。你的 prompt、数据、发现和实验永远不会离开你的环境。 ## 平台概览 ![DVAP 平台概览](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0779dc6b7a165135.png) ## 🎬 演示
[![DVAP 演示 — 训练。突破。防御。AI 系统。](https://img.youtube.com/vi/-hzp43YpKIQ/maxresdefault.jpg)](https://youtu.be/-hzp43YpKIQ) ▶ 训练。突破。防御。AI 系统。  ·  点击观看完整的攻击演练
## 📸 截图
### 🖥️ 研究指挥中心
DVAP Research Command Center

Research Command Center  ·  Live platform activity, model benchmark leaderboard, flag capture progress, and service health in a single operational view.

### 🧩 平台模块
AI Security Labs

⚗️ AI Security Labs
15 containerized vulnerable AI environments across every major attack class
 
CTF Challenges

🚩 CTF Challenges
Flags, hints, and walkthroughs mapped to OWASP LLM Top 10 and MITRE ATLAS
 
Benchmark Center

📊 Benchmark Center
Evaluate local LLMs against prompt injection, jailbreak, and data exfiltration suites
 
Research Workspace

🔬 Research Workspace
Full trace recording of prompts, memory, tool calls, and agent behavior
 

### 🛡️ 发现面板
DVAP Findings Dashboard

Findings Dashboard  ·  Track, triage, and document security findings with severity ratings, OWASP LLM Top 10 mapping, MITRE ATLAS techniques, and export-ready reports.
## 实验室 15 个容器化的实验室,每个都包含 flag、提示、演练以及 OWASP LLM Top 10 + MITRE ATLAS 映射。 | 实验室 | 难度 | OWASP LLM | MITRE ATLAS | |---|---|---|---| | Prompt Injection | 初级 | LLM01 | AML.T0051, AML.T0054 | | Memory Poisoning | 中级 | LLM02 | AML.T0054 | | RAG Poisoning | 中级 | LLM02, LLM03 | AML.T0020, AML.T0043 | | Tool Output Injection | 中级 | LLM07 | AML.T0054, AML.T0068 | | MCP Security | 高级 | LLM07 | AML.T0068 | | Browser Agent Security | 高级 | LLM07, LLM09 | AML.T0054 | | Multi-Agent Security | 高级 | LLM08 | AML.T0054 | | Autonomous Agent Security | 高级 | LLM08, LLM09 | AML.T0054 | | Data Exfiltration | 高级 | LLM06 | AML.T0057, AML.T0058 | | Agent Identity and Trust Abuse | 高级 | LLM08 | AML.T0058 | | AI 银行平台 | 中级 | LLM01, LLM06 | AML.T0043 | | AI 医疗环境 | 高级 | LLM01, LLM06 | AML.T0043 | | 多租户 AI SaaS | 高级 | LLM06 | AML.T0043 | | AI 供应链安全 | 专家 | LLM03, LLM05 | AML.T0010, AML.T0048 | | AI 开发者平台 | 专家 | LLM03, LLM07 | AML.T0010, AML.T0068 | 每个实验室都在独立的 Docker 容器中运行,并带有由 Ollama 支持的独立 LLM endpoint。 ## OWASP LLM Top 10 覆盖范围 DVAP 与[大型语言模型应用的 OWASP Top 10](https://owasp.org/www-project-top-10-for-large-language-model-applications/) 保持一致。每个类别都映射到一个或多个专用实验室。 | 类别 | 名称 | 实验室 | 状态 | |---|---|---|---| | LLM01 | Prompt Injection | Prompt Injection、AI 银行平台、AI 医疗环境 | 已覆盖 | | LLM02 | Data and Memory Poisoning | Memory Poisoning、RAG Poisoning | 已覆盖 | | LLM03 | Supply Chain and Training Data Risks | RAG Poisoning、AI 供应链安全、AI 开发者平台 | 已覆盖 | | LLM04 | Model Denial of Service | | 计划中 (v1.2) | | LLM05 | Insecure Supply Chain | AI 供应链安全 | 已覆盖 | | LLM06 | Sensitive Information Disclosure | Data Exfiltration、AI 银行平台、AI 医疗环境、多租户 AI SaaS | 已覆盖 | | LLM07 | Insecure Plugin Design | Tool Output Injection、MCP Security、Browser Agent Security、AI 开发者平台 | 已覆盖 | | LLM08 | Excessive Agency | Multi-Agent Security、Autonomous Agent Security、Agent Identity and Trust Abuse | 已覆盖 | | LLM09 | Overreliance | Browser Agent Security、Autonomous Agent Security | 已覆盖 | | LLM10 | Model Theft | | 计划中 (v1.2) | 15 个实验室涵盖了 10 个类别中的 8 个。LLM04 和 LLM10 已列入 v1.2 路线图。 ## 架构 ``` graph TB User([User Browser]) --> Nginx[Nginx :8080] Nginx --> Web[Next.js Frontend :3000] Nginx --> API[FastAPI Backend :8000] API --> PG[(PostgreSQL)] API --> Redis[(Redis)] API --> Qdrant[(Qdrant)] API --> Sock[Docker Socket] Sock --> L1[Lab Container] Sock --> L2[Lab Container] Sock --> LN[Lab Container ...] L1 --> Ollama[Ollama :11434] L2 --> Ollama LN --> Ollama subgraph dvap-internal network Web API PG Redis Qdrant end subgraph dvap-labs network L1 L2 LN Ollama end ``` 实验室容器隔离在单独的 Docker 网络上。它们可以访问 Ollama 进行 LLM 推理,但无法访问数据库、Redis 或 Qdrant。 ## 安全架构 ### 网络隔离 两个 Docker 网络将实验室流量与平台基础设施分开: - `dvap-internal` (172.20.0.0/24) - PostgreSQL、Redis、Qdrant、API、前端、Nginx - `dvap-labs` (172.21.0.0/24) - 实验室容器和 Ollama 实验室容器可以访问 Ollama,但不能访问内部网络上的任何其他内容。它们无法访问 PostgreSQL、Redis 或 Qdrant。 ### Docker Socket 访问 **已知的权衡:** API 容器挂载了 `/var/run/docker.sock` 以按需生成和停止实验室容器(Docker-out-of-Docker)。这赋予了 API 进程对宿主机 Docker daemon 的等同于 root 的访问权限。 这是一个刻意的设计决定。DVAP 是用于安全研究和训练的本地单用户安装,而不是多租户服务。接受这种权衡是因为: - 没有可以通过网络访问的管理员界面来触发任意的容器操作 - 实验室容器资源限制(512 MB 内存,0.5 CPU)可防止资源耗尽 - 实验室镜像由本仓库中受控的 Dockerfile 构建 如果你要在共享或网络环境中部署 DVAP,请将 socket 挂载替换为无 root 权限的 Docker socket 或 Podman socket (`/run/user/1000/podman/podman.sock`),并相应地限制 API 的网络访问。 ### 实例 TTL 通过 Redis TTL 键,实验室实例将在 1 小时后自动停止。调用 `POST /api/v1/instances/cleanup` 可触发提前清理。 ### 速率限制 提交 flag 受到速率限制,每个会话 token 在 60 秒窗口内最多尝试 15 次。 ## 服务 | 服务 | 端口 (内部) | 用途 | |---|---|---| | PostgreSQL | 5432 | 主数据存储 | | Redis | 6379 | 速率限制、实例 TTL | | Qdrant | 6333 | 对发现结果进行语义搜索 | | Ollama | 11434 | 本地 LLM 推理 | | API | 8000 | FastAPI 后端 | | Web | 3000 | Next.js 前端 | | Nginx | 8080 (宿主机) | 反向代理 | ## 环境变量 有关所有变量,请参见 `.env.example`。在任何网络部署之前需要更改的关键变量: ``` SECRET_KEY= # strong random value for HMAC signing POSTGRES_PASSWORD= # change from the default REDIS_PASSWORD= # change from the default ``` ## 升级 一条命令即可让你的安装保持最新: ``` make upgrade ``` 这会执行 `git pull`,然后重建并重启所有容器。每次 API 容器启动时,都会自动运行数据库迁移。 不使用 `make` 时: ``` git pull docker compose up -d --build ``` ### 自动升级的内容 - 后端代码和 API endpoint - 前端仪表板 - 数据库 schema(Alembic 迁移- 实验室定义 ### 绝不会触碰的内容 - 你的数据(发现结果、研究会话、基准测试结果、活动) - 你的 `.env` 文件 ### 检查新的环境变量 ``` diff .env .env.example ``` ## 开发与生产环境 ``` # 开发 (默认) - 自动加载 docker-compose.override.yml # API 和前端的热重载,源码以 volumes 方式挂载 docker compose up -d # 生产 - 内置 images,无 volume 挂载,4 个 uvicorn workers docker compose -f docker-compose.yml up -d ``` 在生产环境运行之前构建镜像: ``` docker build -t dvap-api:latest --target production ./backend docker build -t dvap-web:latest --target production ./frontend ``` ## 运行测试 测试需要 PostgreSQL 实例。首先启动技术栈: ``` docker compose up -d postgres export TEST_DATABASE_URL=postgresql+asyncpg://dvap:@localhost:5432/dvap_test cd backend pip install -e ".[dev]" pytest ``` ## 路线图 ### v1.1 - 扩展实验室覆盖范围 - [ ] LangChain Agent 安全实验室 - [ ] CrewAI Multi-Agent 安全实验室 - [ ] LlamaIndex RAG 安全实验室 - [ ] AutoGPT 风格的 Autonomous Agent 实验室 ### v1.2 - 增强基准测试 - [ ] 支持 OpenAI 和 Anthropic API 模型 - [ ] 自定义基准测试套件构建器 - [ ] 跨模型版本的基准测试比较报告 - [ ] 针对模型安全的自动化回归测试 ### v1.3 - 平台改进 - [ ] 具有会话隔离的多用户支持 - [ ] 用于研究工作区的 VS Code 扩展 - [ ] 用于 CI/CD 安全测试的 GitHub Actions 集成 - [ ] 实验室难度进阶系统 ### v2.0 - AI 红队自动化 - [ ] 自动生成攻击链 - [ ] AI 辅助的漏洞发现 - [ ] 红队活动模板 - [ ] 与流行安全工具集成(Burp Suite、Metasploit) 想要为路线图做贡献?请提交 Issue 或发起讨论。 ## 治理 DVAP 由 [Sonu Chaudhary](https://github.com/sonuoffsec) 开发和维护。 欢迎社区贡献,并受[贡献指南](CONTRIBUTING.md)的约束。长期方向由 GitHub Issues 和 Discussions 推动。实验室添加、功能提案和路线图意见将进行公开审查。 不存在单点故障风险:该仓库是基于 Apache 2.0 的开源项目,社区可随时对其进行 fork。 ## 贡献 有关如何添加实验室、运行测试和提交 Pull Request 的信息,请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 许可证 Apache 2.0 - 有关全文,请参见 [LICENSE](LICENSE)。
标签:AI安全, AI风险缓解, Chat Copilot, CISA项目, DLL 劫持, Docker, MCP安全, 域名收集, 大语言模型, 安全防御评估, 搜索引擎查询, 测试用例, 漏洞演练, 自动化攻击, 请求拦截, 逆向工具, 靶场平台