
Платформа, соответствующая OWASP, намеренно уязвимая, для изучения и тестирования безопасности AI, LLM, RAG, MCP и Agentic AI.
Обучай. Взламывай. Защищай. AI-системы.
Открытая платформа для обучения безопасности AI, red/blue teaming, CTF, бенчмаркинга и исследований. Работает на 100% локально. Никакого облака, платных API, данные не покидают вашу машину.
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 секунд.
DVAP — это открытая платформа для исследований, обучения, бенчмаркинга и red teaming в области безопасности AI, предназначенная для специалистов по безопасности, AI-инженеров, исследователей, студентов и организаций, чтобы понять, как современные AI-системы выходят из строя и как их защищать.
Созданная для эры AI, DVAP предоставляет намеренно уязвимые AI-приложения, агентов, RAG-системы, MCP-интеграции и домен-специфичные среды, которые можно атаковать, анализировать, бенчмаркать и защищать.
В отличие от облачных AI-песочниц, DVAP работает полностью на вашей машине.
Никакого облака. Никаких подписок. Никаких затрат на API. Никакой привязки к вендору.
Современные AI-приложения вводят совершенно новые поверхности атак:
Однако не существует единой платформы, которая позволяла бы исследователям безопасно изучать, практиковать, бенчмаркать и проверять эти атаки в одном месте.
DVAP стремится стать определяющей открытой платформой для обучения, исследований и экспериментов в области безопасности AI.
DVAP — одна из первых платформ, объединяющих практические AI-лаборатории атак, локальный бенчмаркинг LLM, CTF-задачи и профессиональную отчетность в единой самостоятельно размещаемой среде.
AI-лаборатории безопасности 15 намеренно уязвимых лабораторий, охватывающих реальные техники AI-атак.
Исследовательское рабочее пространство Просматривайте промпты, память, вызовы инструментов, извлеченные документы, действия агентов и цепочки атак.
Бенчмаркинг безопасности Оценивайте локальные и внешние модели с помощью наборов AI-атак безопасности.
Capture The Flag (CTF) Изучайте безопасность AI через направленные задания, флаги, подсказки и прохождения.
Движок отчетности Создавайте профессиональные отчеты о находках и бенчмарках с привязкой к OWASP LLM Top 10, MITRE ATLAS, CWE и CVSS.
100% Локально Запускайте все на своей машине. Ваши промпты, данные, находки и эксперименты никогда не покидают вашу среду.

15 контейнеризированных лабораторий, каждая с флагами, подсказками, прохождением и привязкой к OWASP LLM Top 10 + MITRE ATLAS.
Каждая лаборатория работает в изолированном Docker-контейнере со своей конечной точкой LLM на базе Ollama.
DVAP соответствует OWASP Top 10 для приложений на больших языковых моделях. Каждая категория привязана к одной или нескольким специализированным лабораториям.
8 из 10 категорий покрыты 15 лабораториями. 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, фронтенд, Nginxdvap-labs (172.21.0.0/24) - контейнеры лабораторий и OllamaКонтейнеры лабораторий могут получать доступ к Ollama и ни к чему больше во внутренней сети. Они не могут достучаться до PostgreSQL, Redis или Qdrant.
Известный компромисс: API-контейнер монтирует /var/run/docker.sock, чтобы создавать и останавливать контейнеры лабораторий по требованию (Docker-out-of-Docker). Это предоставляет процессу API доступ, эквивалентный root, к демону Docker хоста.
Это осознанное проектное решение. DVAP — это локальная однопользовательская установка для исследований и обучения безопасности, а не мультитенантный сервис. Компромисс принят, потому что:
Если вы разворачиваете DVAP в общей или сетевой среде, замените монтирование сокета на rootless Docker-сокет или Podman-сокет (/run/user/1000/podman/podman.sock) и соответствующим образом ограничьте сетевой доступ к API.
Экземпляры лабораторий автоматически останавливаются через 1 час с помощью ключей TTL в Redis. Вызов POST /api/v1/instances/cleanup запускает досрочную очистку.
Отправка флагов ограничена 15 попытками за 60-секундное окно на один токен сессии.
Смотрите .env.example для всех переменных. Ключевые, которые нужно изменить перед любым сетевым развертыванием:
SECRET_KEY= # сильное случайное значение для подписи HMAC
POSTGRES_PASSWORD= # измените с значения по умолчанию
REDIS_PASSWORD= # измените с значения по умолчанию
Одна команда обновляет вашу установку:
make upgrade
Это выполняет git pull, затем пересобирает и перезапускает все контейнеры. Миграции базы данных выполняются автоматически при каждом запуске API-контейнера.
Без make:
git pull
docker compose up -d --build
.envdiff .env .env.example
# Разработка (по умолчанию) - автоматически загружает docker-compose.override.yml
# Горячая перезагрузка для API и фронтенда, исходники смонтированы как тома
docker compose up -d
# Продакшен - собранные образы, без монтирования томов, 4 рабочих процесса uvicorn
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:<your-postgres-password>@localhost:5432/dvap_test
cd backend
pip install -e ".[dev]"
pytest
Хотите внести вклад в дорожную карту? Откройте issue или начните обсуждение.
DVAP разрабатывается и поддерживается Sonu Chaudhary.
Вклад сообщества приветствуется и регулируется рекомендациями по вкладу. Долгосрочное направление определяется через Issues и Discussions на GitHub. Добавление лабораторий, предложения функций и ввод по дорожной карте рассматриваются публично.
Нет риска единой точки отказа: репозиторий имеет открытый исходный код под лицензией Apache 2.0 и может быть форкнут сообществом в любое время.
Смотрите CONTRIBUTING.md о том, как добавлять лаборатории, запускать тесты и отправлять pull request.
Apache 2.0 — смотрите LICENSE для полного текста.
| DVAP | DVWA | HackTheBox | Gandalf (Lakera) | Блог-посты / Статьи |
|---|
| Уязвимости, специфичные для AI | Да | Нет | Частично | Частично | Да (только теория) |
| Локально, без облака | Да | Да | Нет | Нет | N/A |
| 15 специализированных AI-лабораторий | Да | Нет | Нет | Нет | Нет |
| Движок бенчмаркинга LLM | Да | Нет | Нет | Нет | Нет |
| CTF с флагами | Да | Да | Да | Нет | Нет |
| Покрытие OWASP LLM Top 10 | Полное | Нет | Частично | Частично | Разное |
| Привязка к MITRE ATLAS | Да | Нет | Нет | Нет | Разное |
| Генерация отчетов | Да | Нет | Нет | Нет | Нет |
| Исследовательское рабочее пространство | Да | Нет | Нет | Нет | Нет |
| Безопасность агентов и MCP | Да | Нет | Нет | Нет | Нет |
| Бесплатно и с открытым исходным кодом | Да | Да | Частично | Нет | Да |
⚗️ AI-лаборатории безопасности 15 контейнеризированных уязвимых AI-сред для каждого основного класса атак |
🚩 CTF-задачи Флаги, подсказки и прохождения с привязкой к OWASP LLM Top 10 и MITRE ATLAS |
📊 Центр бенчмаркинга Оценка локальных LLM на наборах инъекций промптов, джейлбрейков и эксфильтрации данных |
🔬 Исследовательское рабочее пространство Полная запись трассировки промптов, памяти, вызовов инструментов и поведения агентов |
| Лаборатория | Сложность | OWASP LLM | MITRE ATLAS |
|---|
| Инъекция промптов | Начальный | LLM01 | AML.T0051, AML.T0054 |
| Отравление памяти | Средний | LLM02 | AML.T0054 |
| Отравление RAG | Средний | LLM02, LLM03 | AML.T0020, AML.T0043 |
| Инъекция вывода инструментов | Средний | LLM07 | AML.T0054, AML.T0068 |
| Безопасность MCP | Продвинутый | LLM07 | AML.T0068 |
| Безопасность браузерных агентов | Продвинутый | LLM07, LLM09 | AML.T0054 |
| Безопасность многоагентных систем | Продвинутый | LLM08 | AML.T0054 |
| Безопасность автономных агентов | Продвинутый | LLM08, LLM09 | AML.T0054 |
| Эксфильтрация данных | Продвинутый | LLM06 | AML.T0057, AML.T0058 |
| Злоупотребление идентификацией и доверием агентов | Продвинутый | 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 |
| Категория | Название | Лаборатории | Статус |
|---|
| LLM01 | Инъекция промптов | Инъекция промптов, AI-банковская платформа, AI-среда здравоохранения | Покрыто |
| LLM02 | Отравление данных и памяти | Отравление памяти, Отравление RAG | Покрыто |
| LLM03 | Риски цепочки поставок и обучающих данных | Отравление RAG, Безопасность цепочки поставок AI, AI-платформа разработчика | Покрыто |
| LLM04 | Отказ в обслуживании модели | Запланировано (v1.2) | |
| LLM05 | Небезопасная цепочка поставок | Безопасность цепочки поставок AI | Покрыто |
| LLM06 | Раскрытие конфиденциальной информации | Эксфильтрация данных, AI-банковская платформа, AI-среда здравоохранения, Мультитенантный AI SaaS | Покрыто |
| LLM07 | Небезопасный дизайн плагинов | Инъекция вывода инструментов, Безопасность MCP, Безопасность браузерных агентов, AI-платформа разработчика | Покрыто |
| LLM08 | Чрезмерная агентность | Безопасность многоагентных систем, Безопасность автономных агентов, Злоупотребление идентификацией и доверием агентов | Покрыто |
| LLM09 | Чрезмерная зависимость | Безопасность браузерных агентов, Безопасность автономных агентов | Покрыто |
| LLM10 | Кража модели | Запланировано (v1.2) |
| Сервис | Порт (внутренний) | Назначение |
|---|
| PostgreSQL | 5432 | Основное хранилище данных |
| Redis | 6379 | Ограничение частоты запросов, TTL экземпляров |
| Qdrant | 6333 | Семантический поиск по находкам |
| Ollama | 11434 | Локальный инференс LLM |
| API | 8000 | Бэкенд FastAPI |
| Web | 3000 | Фронтенд Next.js |
| Nginx | 8080 (хост) | Обратный прокси |