title: “演習環境とシナリオ設計” part: “Part 7” chapter: “7-1”
演習環境とシナリオ設計
本章では、総合演習で利用する環境とシナリオの例を示す。実際の構築手順や Docker Compose ファイル等は exercises/ ディレクトリ側で扱い、本章では「どのような構成要素があり、何を学ぶための環境か」を整理する。
本章のゴール
- 前提:Part 1〜6 で扱った各レイヤ(Web / API / モバイル / クラウド / インフラ)のアタックサーフェスと、総合演習の目的を把握している。
- 到達目標:演習環境の構成要素と学習ゴールを明確化し、総合演習が「攻撃チェーンの構築」と「成果物作成」に接続するよう設計できる。
- 対応演習:既存の
exercises/(例:dvwa/juice-shop/crapi/mobsf/ssrf-imds)を前提に、演習対象コンポーネントと評価範囲、期待成果物を文書化する(起動手順は 付録「演習環境クイックスタート」 を参照)。
想定する演習環境の構成(例)
以下は、1 週間の総合演習で利用する模擬システム構成の一例である。
- Web フロントエンド
- 脆弱な Web アプリ(例:Juice Shop または自作アプリ)
- 認証機能、商品閲覧・購入機能、管理画面を含む
- バックエンド API
- REST ベースの API(ユーザ情報、注文情報、管理 API 等)
- JWT ベースの認証、RBAC による権限管理
- モバイルクライアント(オプション)
- 上記 API を利用する Android アプリ(演習用簡易クライアント)
- クラウド/インフラ
- Docker ベースの疑似クラウド環境(本番ではなくローカルで完結)
- Web / API / DB / ログサーバなど複数コンテナで構成
これらを Docker Compose(docker compose)等で一括起動できるようにし、受講者が自身のマシン上で環境を再現可能とする。
図7-1: 総合演習環境の構成例(ローカル完結)
flowchart LR
subgraph Student[受講者マシン(例)]
Browser[Web ブラウザ]
Burp[Burp Suite(Proxy)]
Mobile[モバイルクライアント(任意)]
Browser --> Burp
Mobile --> Burp
end
subgraph Docker[Docker Compose(ローカル)]
Web[Web フロントエンド\n(例:Juice Shop)]
API[バックエンド API\n(例:crAPI / 自作)]
DB[(DB)]
Log[ログ/監査(任意)]
Web --> API
API --> DB
API --> Log
end
Burp --> Web
Burp --> API
図7-1 は、受講者マシン上のプロキシ(Burp Suite)を起点に、ローカルの Docker Compose 環境(Web / API / DB 等)を観測・検証する前提を示す。実際の演習環境では、学習ゴールと安全要件に応じて構成要素を調整する。
学習ゴールの明確化
演習開始時に、次のような学習ゴールを明示しておく。
- Web / API / モバイル / クラウド/インフラの各レイヤで、少なくとも 1 つ以上の脆弱性を発見し、PoC を作成する
- Kill Chain や MITRE ATT&CK 等のモデルに基づき、攻撃チェーン全体を説明できる
- テスト計画書とレポートテンプレートを用いて、再現可能な形で成果を残す
ゴールが曖昧だと、演習が個々のテクニック集に分解されてしまうため、事前の合意が重要である。
次に読む章
本章のポイント
- 演習環境は Web、API、(任意で)モバイル、クラウド/インフラの複数コンポーネントで構成し、Docker Compose(
docker compose)等で再現可能にする。 - 本章は環境の構築手順ではなく、「構成要素」と「学習目的」を整理し、具体物(Docker Compose 等)は
exercises/側で管理する。 - 学習ゴール(脆弱性発見と PoC、攻撃チェーン説明、テンプレートに基づく成果物)を開始時に明確化し、演習の焦点を維持する。