ストーリー
シナリオ
企業: ECプラットフォーム「ShopNow」
事業: BtoC向けマーケットプレイス
規模: 月間100万ユーザー、年間取引額500億円
現状:
- PCI DSS準拠が必要だが未取得
- WAFは導入済み、SAST/DASTは未導入
- インシデント対応手順が口頭ベース
- 開発者50名、セキュリティ専任2名
- 直近で顧客情報漏洩インシデントが1件発生
Part 1: 脅威モデリング(15分)
STRIDEを使用して、ShopNowの主要な脅威を分析してください。最低6つの脅威を特定し、リスクレベルを評価すること。
解答例
| STRIDE | 脅威 | 対象 | リスク | 対策 |
|---|---|---|---|---|
| Spoofing | アカウント乗っ取り | 認証システム | High | MFA導入、不正ログイン検知 |
| Tampering | 価格改ざん | 注文API | Critical | サーバーサイドバリデーション強化 |
| Repudiation | 不正注文の否認 | 決済システム | High | 監査ログ、電子署名 |
| Information Disclosure | 顧客情報漏洩 | データベース | Critical | 暗号化、アクセス制御強化 |
| Denial of Service | DDoS攻撃 | フロントエンド | High | CDN、レート制限、WAF強化 |
| Elevation of Privilege | 管理者権限昇格 | 管理画面 | Critical | RBAC見直し、最小権限原則 |
Part 2: ゼロトラストアーキテクチャ設計(20分)
ShopNowにゼロトラストの原則を適用したアーキテクチャを設計してください。
解答例
認証・認可設計
| コンポーネント | 現状 | ゼロトラスト対応 |
|---|---|---|
| ユーザー認証 | パスワードのみ | MFA + リスクベース認証 |
| サービス間認証 | なし | mTLS + JWT |
| API認可 | 基本的なRBAC | ABAC + ポリシーエンジン(OPA) |
| データアクセス | アプリ層のみ | RLS + 暗号化 |
ネットワーク設計
graph LR
INT["Internet"] --> CF["CloudFront<br/>(WAF)"] --> ALB["ALB"]
ALB --> SM["Service Mesh<br/>(Istio)"]
SM --> BFF["BFF<br/>(mTLS)"]
SM --> PROD["商品サービス<br/>(mTLS)"]
SM --> ORD["注文サービス<br/>(mTLS)"]
SM --> USR["ユーザーサービス<br/>(mTLS)"]
USR --> RDS[("RDS<br/>VPC内、暗号化")]
- 全サービス間通信をmTLSで暗号化
- ネットワークポリシーでサービス間通信を制限
- VPC内のプライベートサブネットにDBを配置
Part 3: DevSecOpsパイプライン設計(20分)
CI/CDにセキュリティスキャンを組み込んだパイプラインを設計してください。
解答例
graph TD
PR["PR作成"] --> SAST --> SCA --> SS["シークレットスキャン"] --> UT["ユニットテスト"] --> MG["マージ"]
MG --> STG["ステージング環境"]
STG --> DAST --> CS["コンテナスキャン"] --> IAC["IaCスキャン"]
IAC --> GATE{"セキュリティゲート<br/>全スキャンPass?"}
GATE -->|"Pass"| PROD["本番デプロイ"]
GATE -->|"Fail"| BLOCK["ブロック"]
style GATE fill:#fff3e0,stroke:#e65100,stroke-width:2px
style PROD fill:#e8f5e9,stroke:#2e7d32
style BLOCK fill:#ffebee,stroke:#c62828
| ステージ | ツール | ブロック条件 |
|---|---|---|
| SAST | SonarQube + Semgrep | Critical/High脆弱性 |
| SCA | Snyk | 既知の重大脆弱性 |
| シークレット | GitLeaks | シークレット検出 |
| DAST | OWASP ZAP | Critical脆弱性 |
| コンテナ | Trivy | Critical CVE |
| IaC | Checkov | セキュリティルール違反 |
Part 4: 脆弱性管理プロセス(15分)
脆弱性の発見から修正までのプロセスを設計してください。
解答例
| 重大度 | 修正SLA | 担当 | エスカレーション |
|---|---|---|---|
| Critical | 24時間 | セキュリティチーム + 担当チーム | CTO |
| High | 7日 | 担当チーム | セキュリティリード |
| Medium | 30日 | 担当チーム | チームリード |
| Low | 90日 | 担当チーム | なし |
プロセスフロー
graph LR
A["発見"] --> B["トリアージ"] --> C["優先度付け"] --> D["修正"] --> E["検証"] --> F["クローズ"]
A --> G["脆弱性DB登録"] --> H["追跡"] --> I["メトリクス"] --> F
Part 5: インシデント対応計画(20分)
ShopNowのインシデント対応計画を策定してください。
解答例
対応体制
| 役割 | 主担当 | 副担当 |
|---|---|---|
| インシデントコマンダー | セキュリティリード | CTO |
| テクニカルリード | シニアSRE | シニアバックエンド |
| コミュニケーション | PM | カスタマーサクセス |
| 法務・コンプライアンス | 法務担当 | 外部弁護士 |
PCI DSS対応
| 要件 | 対応策 |
|---|---|
| カード情報の非保持化 | Stripe Elementsで直接トークン化 |
| ネットワーク分離 | 決済系を専用VPCに分離 |
| アクセスログ | 決済関連の全操作を監査ログに記録 |
| 定期スキャン | ASV(認定スキャニングベンダー)による四半期スキャン |
改善ロードマップ
| フェーズ | 期間 | 施策 |
|---|---|---|
| Phase 1 | 1-3ヶ月 | MFA導入、SAST/SCA自動化、インシデント対応手順文書化 |
| Phase 2 | 4-6ヶ月 | ゼロトラスト基盤構築、DAST導入、セキュリティチャンピオン制度開始 |
| Phase 3 | 7-9ヶ月 | PCI DSS準拠完了、カオスエンジニアリング開始 |
| Phase 4 | 10-12ヶ月 | セキュリティ成熟度評価、継続的改善サイクル確立 |
まとめ
| ポイント | 内容 |
|---|---|
| 脅威分析 | STRIDEで体系的に脅威を特定・評価する |
| ゼロトラスト | 認証・認可・ネットワークの多層防御を設計する |
| DevSecOps | CI/CDにセキュリティゲートを組み込む |
| 脆弱性管理 | SLAベースの修正プロセスを確立する |
| インシデント対応 | 体制・手順・コミュニケーション計画を整備する |
チェックリスト
- STRIDEによる脅威分析を実施できた
- ゼロトラストアーキテクチャを設計できた
- DevSecOpsパイプラインを設計できた
- 脆弱性管理プロセスを設計できた
- インシデント対応計画を策定できた
次のステップへ
最後は卒業クイズです。Month 3の全体を振り返りましょう。
推定読了時間: 90分