
OWASP에 부합하는 의도적으로 취약하게 설계된 플랫폼으로, AI, LLM, RAG, MCP 및 에이전틱 AI 보안을 학습하고 테스트하기 위한 것입니다.
훈련. 공격. 방어. AI 시스템.
AI 보안 교육, 레드/블루 팀 활동, 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은 보안 전문가, AI 엔지니어, 연구자, 학생 및 조직이 최신 AI 시스템이 어떻게 실패하는지와 이를 방어하는 방법을 이해하도록 돕기 위해 설계된 오픈소스 AI 보안 연구, 교육, 벤치마킹 및 레드 팀 플랫폼입니다.
AI 시대를 위해 구축된 DVAP은 공격, 분석, 벤치마킹 및 보호가 가능한 의도적으로 취약한 AI 애플리케이션, 에이전트, RAG 시스템, MCP 통합 및 도메인별 환경을 제공합니다.
클라우드 기반 AI 놀이터와 달리 DVAP은 사용자의 기계에서 완전히 실행됩니다.
클라우드 없음. 구독 없음. API 비용 없음. 벤더 종속 없음.
최신 AI 애플리케이션은 완전히 새로운 공격 표면을 도입합니다:
그러나 연구자들이 이러한 공격을 한 곳에서 안전하게 배우고, 연습하고, 벤치마킹하고, 검증할 수 있는 단일 플랫폼은 없습니다.
DVAP은 AI 보안 교육, 연구 및 실험을 위한 확실한 오픈소스 플랫폼이 되는 것을 목표로 합니다.
| DVAP | DVWA | HackTheBox | Gandalf (Lakera) | 블로그 포스트/논문 | |
|---|---|---|---|---|---|
| AI 특화 취약점 | 예 | 아니오 | 부분적 | 부분적 | 예 (이론만) |
| 로컬, 클라우드 없음 | 예 | 예 | 아니오 | 아니오 | 해당 없음 |
| 15개의 전용 AI 연구소 | 예 | 아니오 | 아니오 | 아니오 | 아니오 |
| LLM 벤치마크 엔진 | 예 | 아니오 | 아니오 | 아니오 | 아니오 |
| 깃발이 있는 CTF | 예 | 예 | 예 | 아니오 | 아니오 |
| OWASP LLM Top 10 적용 범위 | 전체 | 아니오 | 부분적 | 부분적 | 다양함 |
| MITRE ATLAS 매핑 | 예 | 아니오 | 아니오 | 아니오 | 다양함 |
| 보고서 생성 | 예 | 아니오 | 아니오 | 아니오 | 아니오 |
| 연구 작업 공간 | 예 | 아니오 | 아니오 | 아니오 | 아니오 |
| 에이전트 및 MCP 보안 | 예 | 아니오 | 아니오 | 아니오 | 아니오 |
| 무료 및 오픈소스 | 예 | 예 | 부분적 | 아니오 | 예 |
DVAP은 실습형 AI 공격 연구소, 로컬 LLM 벤치마킹, CTF 챌린지 및 전문 보고서를 단일 자체 호스팅 환경에서 결합한 최초의 플랫폼 중 하나입니다.
AI 보안 연구소 실제 AI 공격 기술을 다루는 15개의 의도적으로 취약한 연구소
연구 작업 공간 프롬프트, 메모리, 도구 호출, 검색된 문서, 에이전트 동작 및 공격 체인을 검사합니다.
보안 벤치마킹 로컬 및 외부 모델을 AI 보안 공격 스위트에 대해 평가합니다.
깃발 잡기 (CTF) 가이드 챌린지, 깃발, 힌트 및 워크스루를 통해 AI 보안을 학습합니다.
보고서 엔진 OWASP LLM Top 10, MITRE ATLAS, CWE 및 CVSS에 매핑된 전문적인 결과 및 벤치마크 보고서를 생성합니다.
100% 로컬 모든 것을 자신의 기계에서 실행합니다. 프롬프트, 데이터, 결과 및 실험이 사용자 환경을 떠나지 않습니다.

⚗️ AI 보안 연구소 모든 주요 공격 클래스에 걸친 15개의 컨테이너화된 취약 AI 환경 |
🚩 CTF 챌린지 OWASP LLM Top 10 및 MITRE ATLAS에 매핑된 깃발, 힌트 및 워크스루 |
📊 벤치마크 센터 프롬프트 인젝션, 제일브레이크 및 데이터 유출 스위트에 대해 로컬 LLM 평가 |
🔬 연구 작업 공간 프롬프트, 메모리, 도구 호출 및 에이전트 동작의 전체 추적 기록 |
15개의 컨테이너화된 연구소, 각각 깃발, 힌트, 워크스루 및 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 Banking Platform | 중급 | LLM01, LLM06 | AML.T0043 |
| AI Healthcare Environment | 고급 | LLM01, LLM06 | AML.T0043 |
| Multi-Tenant AI SaaS | 고급 | LLM06 | AML.T0043 |
| AI Supply Chain Security | 전문가 | LLM03, LLM05 | AML.T0010, AML.T0048 |
| AI Developer Platform | 전문가 | LLM03, LLM07 | AML.T0010, AML.T0068 |
각 연구소는 자체 Ollama 기반 LLM 엔드포인트를 갖춘 격리된 Docker 컨테이너에서 실행됩니다.
DVAP은 OWASP Large Language Model Application Top 10에 맞춰 정렬됩니다. 각 카테고리는 하나 이상의 전용 연구소에 매핑됩니다.
| 카테고리 | 이름 | 연구소 | 상태 |
|---|---|---|---|
| LLM01 | 프롬프트 인젝션 | Prompt Injection, AI Banking Platform, AI Healthcare Environment | 적용됨 |
| LLM02 | 데이터 및 메모리 중독 | Memory Poisoning, RAG Poisoning | 적용됨 |
| LLM03 | 공급망 및 훈련 데이터 위험 | RAG Poisoning, AI Supply Chain Security, AI Developer Platform | 적용됨 |
| LLM04 | 모델 서비스 거부 | 계획됨 (v1.2) | |
| LLM05 | 안전하지 않은 공급망 | AI Supply Chain Security | 적용됨 |
| LLM06 | 민감 정보 노출 | Data Exfiltration, AI Banking Platform, AI Healthcare Environment, Multi-Tenant AI SaaS | 적용됨 |
| LLM07 | 안전하지 않은 플러그인 설계 | Tool Output Injection, MCP Security, Browser Agent Security, AI Developer Platform | 적용됨 |
| LLM08 | 과도한 에이전시 | Multi-Agent Security, Autonomous Agent Security, Agent Identity and Trust Abuse | 적용됨 |
| LLM09 | 과도한 의존 | Browser Agent Security, Autonomous Agent Security | 적용됨 |
| LLM10 | 모델 도난 | 계획됨 (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 네트워크에서 격리됩니다. LLM 추론을 위해 Ollama에 도달할 수 있지만 데이터베이스, 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 컨테이너는 연구소 컨테이너를 필요에 따라 생성 및 중지하기 위해(Docker-out-of-Docker) /var/run/docker.sock을 마운트합니다. 이는 API 프로세스에 호스트 Docker 데몬에 대한 루트에 상응하는 액세스 권한을 부여합니다.
이는 의도적인 설계 결정입니다. DVAP은 다중 테넌트 서비스가 아닌 보안 연구 및 교육을 위한 로컬 단일 사용자 설치입니다. 이 절충점은 다음과 같은 이유로 수용됩니다:
공유 또는 네트워크 환경에 DVAP을 배포하는 경우, 소켓 마운트를 루트리스 Docker 소켓 또는 Podman 소켓(/run/user/1000/podman/podman.sock)으로 교체하고 그에 따라 API 네트워크 액세스를 제한하십시오.
연구소 인스턴스는 Redis TTL 키를 통해 1시간 후 자동으로 중지됩니다. POST /api/v1/instances/cleanup을 호출하여 조기 정리를 트리거하십시오.
깃발 제출은 세션 토큰당 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= # HMAC 서명을 위한 강력한 임의 값
POSTGRES_PASSWORD= # 기본값에서 변경
REDIS_PASSWORD= # 기본값에서 변경
한 명령으로 설치를 최신 상태로 업데이트합니다:
make upgrade
이 명령은 git pull을 실행한 다음 모든 컨테이너를 재빌드하고 재시작합니다. 데이터베이스 마이그레이션은 각 API 컨테이너 시작 시 자동으로 실행됩니다.
make 없이:
git pull
docker compose up -d --build
.env 파일diff .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
로드맵에 기여하고 싶으신가요? 이슈를 열거나 토론을 시작하세요.
DVAP은 Sonu Chaudhary에 의해 개발 및 유지 관리됩니다.
커뮤니티 기여는 환영하며 기여 가이드라인의 적용을 받습니다. 장기적인 방향은 GitHub Issues 및 Discussions를 통해 결정됩니다. 연구소 추가, 기능 제안 및 로드맵 입력은 공개적으로 검토됩니다.
단일 장애 지점 위험은 없습니다. 저장소는 Apache 2.0에 따라 오픈소스이며 커뮤니티에서 언제든지 포크할 수 있습니다.
연구소 추가, 테스트 실행 및 풀 리퀘스트 제출 방법은 CONTRIBUTING.md를 참조하십시오.
Apache 2.0 - 전문은 LICENSE를 참조하십시오.