offensiveai26/DVAI

GitHub: offensiveai26/DVAI

DVAI是一款模拟AI系统进行安全攻击和防御的实战平台。

Stars: 4 | Forks: 2

DVAI # DVAI - 极易受攻击的人工智能 **动手式AI安全培训平台。** 通过实际攻击AI系统来学习如何黑客化AI系统。32个挑战。13个类别。无云依赖。 [![Python 3.11-3.13](https://img.shields.io/badge/python-3.11--3.13-blue.svg)](https://www.python.org/downloads/) [![Node 18+](https://img.shields.io/badge/node-18+-green.svg)](https://nodejs.org/) [![OWASP LLM Top 10](https://img.shields.io/badge/OWASP-LLM%20Top%2010-orange.svg)](https://genai.owasp.org/llm-top-10/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Challenges](https://img.shields.io/badge/challenges-31-red.svg)](#challenge-categories) [![Offline](https://img.shields.io/badge/works-100%25%20offline-brightgreen.svg)](#) [快速入门](#-quick-start) · [挑战](#-challenge-categories) · [架构](#-architecture) · [贡献](CONTRIBUTING.md)
## 什么是DVAI? DVAI是一个故意易受攻击的AI应用程序,你可以攻击真实(和模拟)的AI系统来学习它们是如何崩溃的。它涵盖了从提示注入到对抗性ML、模型供应链攻击、RAG利用和代理AI滥用的一切。 与阅读AI安全不同,DVAI让你**自己构建漏洞利用** - 注入提示、毒化训练数据、篡改模型、滥用AI代理,并观察它们失败。每个挑战都有一个要捕获的标志、当你卡住时的提示,以及一个故事使其变得有趣。 **无需GPU。无需互联网。无需Ollama。** 内置的模拟模式意味着你可以在2分钟内开始黑客攻击。
DVAI Dashboard

Dashboard - Progress Tracking


DVAI Challenge

Challenges Categories

## 为什么选择DVAI? | | DVAI | 其他平台 | |---|---|---| | **设置** | 2分钟,一条命令 | 复杂配置,云账户 | | **离线** | 100%本地,无需互联网 | 通常依赖云 | | **GPU需求** | 无(模拟模式) | 通常需要 | | **挑战种类** | 13个类别中的32个 | 焦点狭窄,攻击类型较少 | | **ML攻击** | 对抗性图像、pickle RCE、模型篡改 | 很少涉及 | | **趣味性** | 故事、有趣的标志、动画 | 文档密集型 | | **难度** | 每个挑战3个级别 | 静态或全局切换 | | **API测试** | 包含兼容OpenAI端点 | 不可用 | ## 🚀 快速入门 ### 一条命令 ``` git clone https://github.com/offensiveai26/dvai.git cd dvai ./start.sh # Open http://localhost:3000 ``` ### Docker ``` docker compose up --build # Open http://localhost:3000 ``` 启动一切,包括本地LLM。无需API密钥。 ### 手动设置 ``` # 终端 1 - 后端 cd backend python3 -m venv venv && source venv/bin/activate pip install -r requirements.txt python3 -m uvicorn app.main:app --port 8000 --reload # 终端 2 - 前端 cd frontend npm install && npm run dev # Open http://localhost:3000 ``` ### 添加Ollama(可选 - 用于真实LLM攻击) ``` brew install ollama # macOS ollama serve && ollama pull llama3.2 ``` 仪表板在连接时会显示绿色指示器。没有Ollama,一切都在模拟模式下运行。 ## 🤖 模拟模式与Ollama | 功能 | 模拟模式 | 带Ollama | |---------|----------------|-------------| | 所有32个挑战 | ✅ | ✅ | | LLM挑战 | 模拟响应 | 真实LLM响应 | | 设置时间 | 2分钟 | 5分钟 | | 磁盘空间 | ~500 MB | ~4 GB(模型) | | 真实性 | 适合学习 | 生产级真实 | | GPU需求 | 无 | 无(CPU可用) | **模拟模式**使用故意易受攻击的模拟LLM,对常见的攻击模式做出响应。非常适合学习。**Ollama模式**为你提供了一个真实的LLM来攻击 - 更真实、更不可预测。 ## 🎯 挑战类别 | # | 类别 | 挑战 | OWASP | 你将攻击的内容 | |---|----------|:---------:|-------|-------------------| | 1 | 💉 提示注入 | 3 | LLM01 | 覆盖指令、劫持摘要器、越狱防护栏 | | 2 | 💥 不安全输出 | 3 | LLM05 | 通过AI进行XSS、通过自然语言进行SQL注入、代码执行 | | 3 | ☠️ 数据毒化 | 3 | LLM04 | 后门分类器、提取训练数据、成员推理 | | 4 | 📦 供应链 | 2 | LLM03 | Pickle反序列化RCE、模型权重篡改 | | 5 | 🔍 RAG攻击 | 3 | LLM08 | 毒化知识库、劫持检索、溢出上下文窗口 | | 6 | 🤖 代理AI | 3 | LLM06 | 滥用文件读取代理、提升权限、劫持推理链 | | 7 | 🎭 对抗性ML | 2 | N/A | 用噪声愚弄图像分类器、规避恶意软件检测器 | | 8 | ⚡ 过度代理 | 3 | LLM06 | 利用过权限的AI、通过AI进行SSRF、逃离沙箱 | | 9 | 🌍 现实世界 | 6 | LLM02 | 黑客攻击银行AI、泄露薪资、劫持航班、窃取考试 | | 10 | 🔓 提示泄露 | 1 | LLM07 | 提取隐藏的系统提示和秘密配置 | | 11 | 🤥 错误信息 | 1 | LLM09 | 让AI自信地产生幻觉,捕捉它撒谎 | | 12 | ♾️ 无限消费 | 1 | LLM10 | 耗尽令牌预算、绕过速率限制 | **总计:32个挑战** - 每个挑战3个难度级别(简单/中等/困难)= 93个独特的攻击场景。 ## 🏗️ 架构 ``` ┌──────────────────────────────────────────────┐ │ Frontend (React + Tailwind) │ │ Cyberpunk UI + Terminal Interface │ ├──────────────────────────────────────────────┤ │ Backend (Python + FastAPI) │ │ Challenge Engine + Progress Tracking │ ├───────────┬──────────┬───────────┬───────────┤ │ LLM │ ML │ Agent │ RAG │ │ Attacks │ Attacks │ Attacks │ Attacks │ ├───────────┼──────────┴───────────┼───────────┤ │ Ollama │ Simulated Models │ SQLite │ │ (optional)│ ChromaDB (RAG) │ (progress)│ └───────────┴──────────────────────┴───────────┘ ``` ## 🎮 功能 - **13个类别中的32个挑战**,涵盖LLM的OWASP Top 10 - **每个挑战3个难度级别** - 无防御→基本防护栏→加固 - **提示系统** - 逐步揭示 - **基于标志的验证** - 动态生成的标志,永远不会在源代码中 - **分数跟踪**和进度仪表板 - **模拟模式** - 每个挑战无需Ollama即可工作 - **兼容OpenAI的API** (`/v1/chat/completions`) - 测试你的安全工具 - **100%离线** - 完全在您的机器上运行 - **有趣** - 每个挑战都有一个故事、个性和胜利时的庆祝 ## 📖 适合谁? - **安全研究人员**探索AI攻击面 - **开发者**构建AI应用程序,希望了解风险 - **红队人员**将AI利用添加到他们的技能集 - **学生**动手学习ML/AI安全 - **CTF玩家**寻找AI特定的挑战 - **研讨会讲师**教授AI安全(见[贡献](CONTRIBUTING.md)) ## ⚙️ 配置 | 环境变量 | 默认 | 描述 | |---------------------|---------|-------------| | `OLLAMA_URL` | `http://localhost:11434` | Ollama服务器URL | | `OLLAMA_MODEL` | `llama3.1:8b` | 要使用的模型 | | `DVAI_FLAG_SECRET` | `dvai-default-secret-change-me-in-prod` | 用于标志生成的密钥 | | `DATABASE_URL` | `sqlite:///./dvai.db` | 数据库路径 | ## 🔧 故障排除 | 问题 | 解决方案 | |---------|-----| | **后端无法启动** | 检查是否已安装Python 3.11-3.13(3.14尚不支持),`pip install -r requirements.txt` | | **前端空白页面** | 确保后端正在端口8000上运行 | | **终端中“连接失败”** | 后端未运行 - 检查终端中的错误 | | **未检测到Ollama** | 在单独的终端中运行 `ollama serve` | | **挑战感觉太简单** | 切换到中等或困难难度 | | **模拟模式响应很通用** | 尝试提示中的常见攻击模式 | ## 📁 项目结构 ``` DVAI/ ├── backend/ Python backend (FastAPI) │ ├── app/ │ │ ├── main.py App entry point │ │ ├── flags.py Dynamic flag generator (HMAC) │ │ ├── llm.py Ollama client + simulation mode │ │ ├── db.py Database setup │ │ ├── models.py SQLAlchemy models │ │ ├── api/ API routes │ │ │ ├── challenges.py Challenge endpoints │ │ │ ├── progress.py Progress tracking │ │ │ ├── health.py Health check + Ollama status │ │ │ └── openai_compat.py OpenAI-compatible API │ │ └── challenges/ Challenge handlers (32 total) │ │ ├── registry.py Challenge definitions │ │ ├── prompt_injection/ │ │ ├── insecure_output/ │ │ ├── data_poisoning/ │ │ ├── supply_chain/ │ │ ├── rag/ │ │ ├── agentic/ │ │ ├── adversarial/ │ │ ├── excessive_agency/ │ │ ├── real_world/ │ │ ├── prompt_leakage/ │ │ ├── misinformation/ │ │ └── unbounded/ │ ├── requirements.txt │ └── Dockerfile ├── frontend/ React frontend │ ├── src/ │ │ ├── App.jsx Router │ │ ├── api.js API client │ │ ├── pages/ │ │ │ ├── Dashboard.jsx Home + category grid │ │ │ ├── CategoryPage.jsx Challenge list │ │ │ └── ChallengePage.jsx Terminal + hints + flag submit │ │ └── components/ │ │ └── Layout.jsx Header + footer │ ├── public/logo.svg │ └── package.json ├── docker-compose.yml One-command Docker setup ├── start.sh Start backend + frontend ├── stop.sh Stop everything ├── CONTRIBUTING.md ├── SECURITY.md └── LICENSE MIT ``` ## 🛡️ 安全 DVAI故意易受攻击。漏洞是功能,不是错误。有关要报告的内容和不要报告的内容,请参阅[SECURITY.md](SECURITY.md)。 ## 🤝 贡献 想添加挑战、修复错误或改进文档?请参阅[CONTRIBUTING.md](CONTRIBUTING.md)。 ## ⚠️ 声明 DVAI故意易受攻击。**不要**将其部署在任何面向公众的服务器上。它仅设计用于本地教育用途。 ## 👨‍💻 作者 由**Vivek Trivedi**开发与设计 ## 📄 许可证 MIT许可证 - 有关详细信息,请参阅[LICENSE](LICENSE)。
标签:MITM代理, 请求拦截, 逆向工具