
訓練。突破。防御。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は、実践的なAI攻撃ラボ、ローカルLLMベンチマーク、CTFチャレンジ、プロフェッショナルなレポート作成を単一のセルフホスト環境で組み合わせた、最初のプラットフォームの1つです。
AIセキュリティラボ 実世界のAI攻撃技術をカバーする15の意図的に脆弱なラボ。
研究ワークスペース プロンプト、メモリ、ツール呼び出し、取得ドキュメント、エージェント動作、攻撃チェーンを検査。
セキュリティベンチマーク ローカルおよび外部モデルをAIセキュリティ攻撃スイートに対して評価。
キャプチャ・ザ・フラッグ(CTF) ガイド付きチャレンジ、フラグ、ヒント、ウォークスルーを通じてAIセキュリティを学習。
レポートエンジン OWASP LLM Top 10、MITRE ATLAS、CWE、CVSSにマッピングされたプロフェッショナルな発見事項とベンチマークレポートを生成。
100%ローカル すべてを自分のマシンで実行。プロンプト、データ、発見事項、実験は環境から外部に出ることはありません。

15のコンテナ化されたラボ。それぞれにフラグ、ヒント、ウォークスルー、OWASP LLM Top 10 + MITRE ATLASマッピングが含まれています。
各ラボは、独自のOllamaバックエンドLLMエンドポイントを持つ隔離されたDockerコンテナ内で動作します。
DVAPはOWASP Top 10 for Large Language Model Applicationsに準拠しています。各カテゴリは1つ以上の専用ラボにマッピングされています。
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にはアクセスできません。
2つの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プロセスにホストDockerデーモンへのルート相当のアクセス権限が付与されます。
これは意図的な設計判断です。DVAPはマルチテナントサービスではなく、セキュリティ研究とトレーニングのためのローカルシングルユーザーインストールです。以下の理由からこのトレードオフは受け入れられます:
DVAPを共有環境やネットワーク環境にデプロイする場合は、ソケットマウントをルートレスDockerソケットまたはPodmanソケット(/run/user/1000/podman/podman.sock)に置き換え、APIのネットワークアクセスを制限してください。
ラボインスタンスはRedis TTLキーにより1時間後に自動的に停止します。早期クリーンアップをトリガーするには POST /api/v1/instances/cleanup を呼び出してください。
フラグ送信はセッショントークンごとに60秒間で15回の試行にレート制限されています。
すべての変数は .env.example を参照してください。ネットワーク展開前に変更すべき主要な変数:
SECRET_KEY= # HMAC署名用の強力なランダム値
POSTGRES_PASSWORD= # デフォルトから変更
REDIS_PASSWORD= # デフォルトから変更
1つのコマンドでインストールを最新に更新:
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
ロードマップに貢献したいですか? Issueを開くか、ディスカッションを開始してください。
DVAPはSonu Chaudharyによって開発・メンテナンスされています。
コミュニティからのコントリビューションを歓迎し、コントリビューションガイドラインに従います。長期的な方向性はGitHub IssuesとDiscussionsを通じて決定されます。ラボの追加、機能提案、ロードマップへのインプットは公開レビューされます。
単一障害点のリスクはありません:リポジトリはApache 2.0のオープンソースであり、コミュニティによっていつでもフォーク可能です。
ラボの追加方法、テストの実行方法、プルリクエストの提出方法については CONTRIBUTING.md を参照してください。
Apache 2.0 - 全文は LICENSE を参照してください。
| DVAP | DVWA | HackTheBox | Gandalf (Lakera) | Blog Posts / Papers |
|---|
| 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(ホスト) | リバースプロキシ |