QUIZ 15分

クイズの説明

Step 1「セキュリティ要件を体系化しよう」の理解度を確認します。DevSecOps、脅威モデリング、セキュリティ要件定義、コンプライアンスマッピングについて問います。

合格ライン: 80%(5問中4問正解)


問題

Q1. DevSecOpsの基本原則

DevSecOpsにおける「Shift Left」の考え方として最も適切なものはどれですか?

  • A. セキュリティチームの人数を増やし、より多くのレビューを実施する
  • B. セキュリティテストを開発ライフサイクルの早い段階に組み込み、問題を早期に検出する
  • C. セキュリティ専用の環境を本番環境の左隣に配置する
  • D. セキュリティツールのライセンスコストを開発部門の予算に移管する
答えを見る

正解: B

Shift Leftとは、セキュリティテストや検証をSDLC(ソフトウェア開発ライフサイクル)の早い段階(左側 = 上流工程)に移動させることです。要件定義や設計の段階で脅威モデリングを行い、実装段階でSASTを実行し、テスト段階でDASTを実施することで、リリース直前のゲートレビューに依存しない継続的なセキュリティ検証を実現します。リリース後に発見される脆弱性の修正コストは、設計段階の20倍以上とされており、Shift Leftの経済的メリットは非常に大きいです。


Q2. STRIDE脅威モデル

以下のセキュリティ上の問題は、STRIDEモデルのどのカテゴリに該当しますか?

攻撃者がAPIリクエストのパラメータを改ざんし、他のユーザーの注文金額を0円に変更した。

  • A. Spoofing(なりすまし)
  • B. Tampering(改ざん)
  • C. Information Disclosure(情報漏洩)
  • D. Elevation of Privilege(権限昇格)
答えを見る

正解: B

APIリクエストのパラメータを改ざんして金額を変更する行為は、Tampering(改ざん)に該当します。Spoofing(A)は他者になりすます行為、Information Disclosure(C)は情報の不正な閲覧、Elevation of Privilege(D)は権限を不正に取得する行為です。この事例では、データの完全性が損なわれており、対策としてはサーバーサイドでの金額再計算、デジタル署名、入力検証の強化が必要です。


Q3. セキュリティ要件の品質

以下のセキュリティ要件のうち、「受け入れ基準」として最も適切なものはどれですか?

  • A. 「セキュリティを強化する」
  • B. 「パスワードは十分に強いものにする」
  • C. 「未認証のAPIリクエストに対してHTTP 401ステータスコードを返し、レスポンスボディにエラーメッセージを含める」
  • D. 「セキュリティ対策を適切に実施する」
答えを見る

正解: C

受け入れ基準は「テスト可能」で「客観的に判定可能」である必要があります。Cは「未認証リクエスト → HTTP 401 + エラーメッセージ」という具体的な入力と期待される出力が明記されており、自動テストで検証できます。A「セキュリティを強化する」、B「十分に強い」、D「適切に実施する」はすべて曖昧で、何をもって達成とするかが判定できません。「テストできない要件は要件ではない」という原則を常に意識しましょう。


Q4. DREADリスクスコアリング

DREADモデルにおいて、以下の脆弱性のリスクスコアを計算してください。

評価軸スコア
Damage(被害の大きさ)9
Reproducibility(再現性)8
Exploitability(攻撃容易性)7
Affected Users(影響範囲)10
Discoverability(発見容易性)6

このリスクスコアと対応方針として最も適切なものはどれですか?

  • A. スコア7.0 — High: 次スプリントで対応
  • B. スコア8.0 — Critical: 即時対応必須
  • C. スコア6.0 — Medium: 計画的に対応
  • D. スコア9.0 — Critical: 即時対応必須
答えを見る

正解: B

DREADスコア = (9 + 8 + 7 + 10 + 6) / 5 = 40 / 5 = 8.0。スコア8.0以上はCriticalに分類され、即時対応が必要です。被害が大きく(9)、再現性が高く(8)、影響範囲が全ユーザー(10)であるため、この脆弱性は最優先で対処すべきです。DREADスコアは脅威の優先順位付けに有効ですが、組織のコンテキスト(ビジネスクリティカル度、既存の防御策等)も考慮した上で最終的な対応方針を決定します。


Q5. コンプライアンスマッピング

Compliance as Codeの目的として最も適切なものはどれですか?

  • A. コンプライアンス要件をコードで定義し、自動的に準拠状況を検証することで、監査対応を日常業務に統合する
  • B. 監査法人の代わりにAIが監査を実施できるようにする
  • C. コンプライアンス違反を自動的に隠蔽し、監査をパスしやすくする
  • D. セキュリティエンジニアの代わりにプログラマーがコンプライアンスを管理する
答えを見る

正解: A

Compliance as Codeは、OPA(Open Policy Agent)やcheckov等のツールを使ってコンプライアンス要件をコード(ポリシー)として定義し、CI/CDパイプラインで自動的に準拠状況をチェックするアプローチです。これにより、年1回の監査のためにドキュメントを慌てて整備するのではなく、日々の開発がそのまま監査証跡となります。監査法人を置き換えるもの(B)ではなく、監査時に「自動テストの結果」を証拠として提示できるようにするものです。


結果

合格(4問以上正解)

Step 1の内容をよく理解しています。DevSecOpsの基本原則、脅威モデリング、セキュリティ要件定義、コンプライアンスマッピングの知識を身につけました。次のStep 2「SAST/DAST/SCAを統合しよう」に進みましょう。定義した要件を自動で検証するパイプラインを構築します。

不合格(3問以下正解)

Step 1の内容を復習しましょう。特に以下のポイントを重点的に確認してください:

  • Shift Left — セキュリティを開発の早い段階に組み込む意義
  • STRIDE — 6カテゴリの脅威分類と具体例
  • 要件の品質 — テスト可能で客観的に判定できる受け入れ基準
  • Compliance as Code — ポリシーのコード化と自動チェック

推定所要時間: 15分