クイズの説明
Step 5で学んだ内容の理解度をチェックします。
- 全8問
- 合格ライン: 80%(7問正解)
- 不合格の場合は復習してから再挑戦してください
問題
Q1. SBOM(ソフトウェア部品表)の主な目的はどれですか?
- A) ソフトウェアのパフォーマンスを計測する
- B) ソフトウェアに含まれる全コンポーネントの可視化と脆弱性管理
- C) ソフトウェアのUI/UXを評価する
- D) ソフトウェアのデプロイを自動化する
答えを見る
正解: B
SBOMは、ソフトウェアに含まれる全てのコンポーネント(ライブラリ、フレームワーク等)の一覧です。脆弱性の迅速な特定、ライセンスコンプライアンスの確認、サプライチェーン攻撃の検知に活用されます。
Q2. SBOMの主要なフォーマットとして正しい組み合わせはどれですか?
- A) JSON と YAML
- B) CycloneDX と SPDX
- C) XML と CSV
- D) GraphQL と REST
答えを見る
正解: B
SBOMの主要なフォーマットは、OWASPが策定したCycloneDXとLinux Foundationが策定したSPDXです。CycloneDXはセキュリティに焦点を当てた軽量なフォーマット、SPDXはISO標準(ISO/IEC 5962
)として認定されています。Q3. CVSSスコアが9.5の脆弱性の深刻度と対応目安はどれですか?
- A) High、1週間以内に対応
- B) Critical、即座に対応(24時間以内)
- C) Medium、次のリリースで対応
- D) Low、計画的に対応
答えを見る
正解: B
CVSSスコア9.0-10.0はCritical(緊急)に分類され、即座の対応(24時間以内)が求められます。システムへの影響が非常に大きく、積極的に悪用される可能性が高い脆弱性です。
Q4. SASTの説明として正しいものはどれですか?
- A) 実行中のアプリケーションにテストリクエストを送信して脆弱性を検出する
- B) ソースコードを解析して脆弱性パターンを検出する
- C) 依存ライブラリの既知の脆弱性を検出する
- D) ネットワークトラフィックを監視して攻撃を検出する
答えを見る
正解: B
SAST(Static Application Security Testing)は、ソースコードを実行せずに解析し、SQLインジェクション、XSS、ハードコードされたシークレットなどの脆弱性パターンを検出します。コミット時やビルド時に実行できます。
Q5. DASTとSASTの最大の違いはどれですか?
- A) DASTは無料だがSASTは有料
- B) DASTは実行中のアプリをテストし、SASTはソースコードを解析する
- C) DASTはJavaScript専用、SASTは全言語対応
- D) DASTは手動テスト、SASTは自動テスト
答えを見る
正解: B
DASTは実行中のアプリケーションに対してテストリクエストを送信して脆弱性を検出する「ブラックボックステスト」です。SASTはソースコードを直接解析する「ホワイトボックステスト」です。両方を組み合わせることで、より包括的なセキュリティテストが実現します。
Q6. 監査ログに記録すべき情報として最も適切な組み合わせはどれですか?
- A) タイムスタンプ、アクター、アクション、パスワード
- B) タイムスタンプ、アクター、アクション、リソース、結果
- C) タイムスタンプ、ソースコード、コミットハッシュ
- D) タイムスタンプ、CPUUsage、メモリ使用量
答えを見る
正解: B
監査ログは「いつ(タイムスタンプ)、誰が(アクター)、何を(アクション)、どのリソースに対して、どのような結果だったか」を記録します。パスワードなどの機密情報は絶対にログに記録してはいけません。
Q7. SCAツールが検出するものとして正しいものはどれですか?
- A) ソースコード内のバグ
- B) 依存ライブラリの既知の脆弱性とライセンス問題
- C) 実行時のパフォーマンスボトルネック
- D) ネットワークの設定ミス
答えを見る
正解: B
SCA(Software Composition Analysis)は、プロジェクトが依存するサードパーティライブラリの既知の脆弱性(CVE)とライセンスの互換性問題を検出します。npm audit、Snyk、Trivyなどのツールが利用されます。
Q8. DevSecOpsパイプラインにおいて、シークレット検出を行うべきタイミングはどれですか?
- A) 本番デプロイ後
- B) pre-commit(コミット前)
- C) リリースノート作成時
- D) 月次のセキュリティレビュー時
答えを見る
正解: B
シークレットの検出は、可能な限り早い段階で行うべきです。pre-commitフック(gitleaks等)を使って、コミット前にシークレットの混入を検出・ブロックすることで、リポジトリにシークレットが入ることを防ぎます。
結果
7問以上正解の場合
合格です。おめでとうございます。
Step 5「セキュリティ運用とDevSecOps」を完了しました。 次は Step 6「最終試験:セキュリティ設計チャレンジ」に進みましょう。
6問以下の場合
もう少し復習しましょう。
間違えた問題の内容を、該当するセクションで復習してください:
| 問題 | 復習セクション |
|---|---|
| Q1, Q2 | step5_1 SBOM |
| Q3 | step5_2 脆弱性管理とパッチ戦略 |
| Q4, Q5 | step5_3 セキュリティテストの自動化 |
| Q6 | step5_4 セキュリティ監査ログの設計 |
| Q7 | step5_3 SCA |
| Q8 | step5_3 CI/CDパイプラインへの統合 |
次のステップへ
Step 6: 最終試験:セキュリティ設計チャレンジ(2時間)
ここまでの全ての知識を総合して、金融システムのセキュリティ設計に挑戦します。
推定所要時間: 30分