イントロダクション:なぜ今、API演習が必要なのか
APIは現代のアプリケーション接続の中核であり、攻撃者はエンドポイントや認可ロジック、データ検証の弱点を突いて侵害を行います。本稿では、現場で即使えるAPIセキュリティ演習キットを紹介します。対象は開発者、SRE、セキュリティチーム、教育担当者で、ハンズオン教材、実践的攻撃シナリオ、評価指標(ルーブリック)を含み、短時間でスキルを測定・改善できる構成です。
演習の目的は次の通りです:
- API認証・認可の誤りを検出・修正する能力を養う
- 入力検証やシリアライゼーション由来の脆弱性を見つけるスキルを高める
- ログやテレメトリからの検出力を検証し、検出ルール改善につなげる
この記事は、教材の構成例、演習設計の手順、採点・評価指標のテンプレート、運用上の注意点を含みます。すぐに使えるテンプレートと実行手順を提供するため、ワークショップ運営や社内トレーニングにそのまま導入できます。
キット構成とラボ環境(必須コンポーネント)
以下は、演習を実施するための標準的なキット構成です。各項目は授業時間や参加者数に応じて調整してください。
必須ソフト/ツール
- 模擬APIサーバ(Dockerコンテナで提供)— 認証/認可の弱いバージョンと強化済みバージョン
- APIフロントエンド(シンプルなSPA)— 実際の呼び出しを再現
- Burp Suite Community/Pro または HTTPie, Postman
- OpenAPI / Swaggerドキュメント(意図的なミスを含む)
- ログ収集スタック(軽量):Fluentd/Fluent Bit → Elasticsearch / Loki / ファイル
- テレメトリ可視化:Kibana / Grafana
推奨ハードウェア/環境
| 項目 | 推奨 | 備考 |
|---|---|---|
| 実行環境 | Docker対応のPC×1(インストラクター)+参加者PC | クラウド(GCP/AWS)上のワークスペースでも可 |
| 演習時間 | 半日(4時間)〜1日(8時間) | シナリオ数で調整 |
| 参加者数 | 6〜20名/1インストラクター | グループ演習を推奨 |
教材配布物(テンプレ)
- シナリオシート(目的・前提・期待される観察)
- 手順書(攻撃手順/防御修正手順)
- 検証チェックリスト(POC成功判定)
- 採点ルーブリック(技術的実行・検出・レポート品質)
攻撃シナリオ例と評価指標(実践パート)
以下は、演習に組み込む代表的な攻撃シナリオと、それぞれに対応する学習目的・評価基準です。各シナリオは難易度をL1〜L3で分類しています。
代表シナリオ
- 認可バイパス(L1):IDトークン改ざん、水平・垂直権限昇格の検証。目的はアクセス制御設計の誤りを発見すること。
- 認証破り/トークン再利用(L2):セッション固定、トークン盗用、短時間のリプレイ。「再発見と緩和設計」の実施が狙い。
- インジェクション(L2):JSON/SQL/NoSQLインジェクションを組み合わせたデータ改ざん経路の探索。
- 過剰公開エンドポイント(L1):未ドキュメントAPIを発見し、意図しない情報漏えいを確認。
- レート制御回避/DoSに近い検証(L3):適切なレート制限実装の有無を検証(注意:安全な範囲で実施)。
評価指標(ルーブリック)
各チーム・参加者は以下の観点で採点します。数値化してKPI化することで演習の効果測定が可能です。
| 評価軸 | 説明 | 満点 |
|---|---|---|
| 技術的達成度 | 攻撃手順を正確に実行し、POCを作成できたか | 40 |
| 検出・ログ活用 | ログ/テレメトリから攻撃を検出・特徴抽出できたか | 25 |
| 緩和提案の妥当性 | 修正案(コード・設定・運用)を提示できたか | 20 |
| レポート品質 | 再現手順・影響範囲・修正優先度が分かりやすく記載されているか | 15 |
合計100点。合格ラインは組織のレベルに応じて設定(例:70点以上を合格)。
フィードバックと改善サイクル
- 演習直後:即時デブリーフ(30分)で発見点と誤りを共有
- 1週間後:改善実装レビュー(修正が適用されたかの確認)
- 3ヶ月後:フォローアップ演習で検出力の向上を測定
導入上の注意点とベストプラクティス
実施時には次を遵守してください:
- 実運用環境ではなく隔離されたラボで実施する(誤って本番へ影響を与えない)
- DoS系テストは必ず明示的な合意と制御下で実施する
- プライバシー保護:本物の個人データは使わず、ダミーデータを準備する
- 学習目標を事前に整理し、参加者の事前スキル(基礎の理解)を確認する
最後に、演習は発見だけで終わらせず、修正と運用改善に結びつけることが肝要です。本キットはテンプレートとして社内ワークショップや教育コースに組み込みやすく設計しています。導入用のチェックリストとテンプレート(シナリオシート、ルーブリック、手順書)は別途ダウンロード可能な形で整備すると運用がスムーズになります。