情報セキュリティマネジメント 2019年 春期 午前(科目A) 問38
問題文
ソフトウェア開発プロセスにおけるセキュリティを確保するための取組について、JIS Q27001:2014(情報セキュリティマネジメントシステム―要求事項)の附属書Aの管理策に照らして監査を行った。判明した状況のうち、監査人が監査報告書に指摘事項として記載すべきものはどれか。
選択肢
ア:ソフトウェア開発におけるセキュリティ機能の試験は、開発期間が終了した後に実施している。(正解)
イ:ソフトウェア開発は、セキュリティ確保に配慮した開発環境において行っている。
ウ:ソフトウェア開発を外部委託している場合、外部委託先による開発活動の監督・監視において、セキュリティ確保の観点を考慮している。
エ:パッケージソフトウェアを活用した開発において、セキュリティ確保の観点から、パッケージソフトウェアの変更は必要な変更に限定している。
🔒 解説は解答すると表示されます
開発工程のセキュリティ試験【情報セキュリティマネジメント解説】
正解の理由
選択肢アの「ソフトウェア開発におけるセキュリティ機能の試験は、開発期間が終了した後に実施している。」は、附属書Aの「システムの取得、開発及び保守(A.14)」に掲げられる管理策の趣旨に反します。JIS Q27001:2014(ISO/IEC 27001に相当)は、セキュリティ要件を開発ライフサイクルに組み込み、設計・実装の各段階で検証・試験(テスト)を行うことを求めます。試験を開発終了後の一度きりに留める運用は、脆弱性の早期発見を妨げ、修正コストとリスクを増大させるため、監査人は監査報告書に指摘事項(所見)として記載すべきです。
(補足)他の選択肢(イ・ウ・エ)は、附属書Aの管理策に沿った適切な取組を示しており、監査報告での指摘対象には該当しません。
解法ステップ
- 観察事項を附属書Aの該当領域に照らす
- 主に「システムの取得、開発及び保守(A.14)」を確認する。
- 期待される管理策を整理する
- セキュリティ要件の定義、設計段階でのレビュー、段階的なテスト(単体・結合・システム・受入)やセキュリティテストの実施。
- 取得すべき客観的証拠を列挙する
- テスト計画・テストケース、テスト実施記録、欠陥管理票、設計レビュー記録、受入基準。
- 観察事項と期待値を照合して判断する
- セキュリティ試験が「開発終了後のみ」で、各段階の試験や設計レビューが欠落している証拠がある場合は不適合または所見として記載。
- 監査報告書の書き方(例)
- 「観察:セキュリティ機能の試験が開発終了後にのみ実施されていることを確認。基準:JIS Q27001 附属書A(A.14)に基づき、開発ライフサイクルの各段階での検証・試験が要求される。影響:脆弱性の早期発見ができず、変更コストおよび情報漏えい等のリスクが増大するおそれがある。改善提案:設計段階からのテスト計画とセキュリティテストケースの導入を推奨。」
選択肢別の誤答解説
- ア:誤り(監査で指摘すべき)
- 理由:テストを開発終了後に限定すると、設計や実装段階での問題発見が遅れ、修正が困難・高コストになります。JIS Q27001の管理策はライフサイクル全体でのセキュリティ対策を求めます。
- イ:適切(指摘対象ではない)
- 理由:開発環境自体がセキュリティ配慮されたものになっていることは、附属書Aの考え方に合致します。例えばアクセス制御やテスト用データの管理が行われていれば良い運用です。
- ウ:適切(指摘対象ではない)
- 理由:外部委託時に委託先の活動に対して監督・監視を行い、セキュリティ観点を考慮しているのは望ましい実務です。契約や受入基準にセキュリティ要件が含まれていることが重要です。
- エ:適切(指摘対象ではない)
- 理由:パッケージソフトの変更を必要最小限にする方針は、セキュリティ面でのリスク管理上有効です。変更が必要な場合はリスクアセスメントと検証を行う運用が求められます。
よくある誤解
- 「テストは最後にまとめてやればよい」
- 真意:最後の一度きりのテストでは、設計段階や実装段階の欠陥を見逃しやすい。問題は段階的に小さいうちに発見する方が低コストで確実です。
- 「開発環境が整っていればセキュリティは十分」
- 真意:開発環境の整備は重要ですが、設計レビューや段階的なテスト、脆弱性検査が伴わなければ不十分です。
- 「パッケージは改変しない方が安全」→勘違い
- 真意:改変が少ないことは利点ですが、既知脆弱性の修正や設定調整は必要です。変更時には必ずセキュリティ検証を行ってください。
補足コラム
- 「Shift-left(シフトレフト)」という考え方があります。これはテストやセキュリティ対策をライフサイクルの「左側(設計・実装の早い段階)」に移すことを指します。早期に問題を見つけることで対応コストとリスクを大きく下げられます。
- 具体的な技術(初出時に説明):
- SAST(Static Application Security Testing:静的解析)— ソースコードを実行せずに解析して脆弱性を検出する手法。開発中の早い段階で有効。
- DAST(Dynamic Application Security Testing:動的解析)— 実行中のアプリケーションに対して攻撃を模擬し挙動から脆弱性を検出する手法。統合・システムテスト段階で有効。
- 実務イメージ:開発チームは「Definition of Done(完了の定義)」にセキュリティ試験(静的解析の警告解消、脆弱性スキャンの実施、セキュリティ受入基準の満足)を含めます。これにより、"完成後に一度だけテスト"という運用を避けられます。
FAQ
Q1: 監査で「どの段階でのテストが必要」とはっきり言わないといけませんか?
A1: 監査人は必ずしも具体的な工程を指定する必要はありません。附属書Aの方針に照らして「ライフサイクル各段階でのテストが行われていない」という事実とリスクを指摘し、改善案(例:設計レビュー、単体・結合・システムのセキュリティテスト計画の導入)を提示します。
A1: 監査人は必ずしも具体的な工程を指定する必要はありません。附属書Aの方針に照らして「ライフサイクル各段階でのテストが行われていない」という事実とリスクを指摘し、改善案(例:設計レビュー、単体・結合・システムのセキュリティテスト計画の導入)を提示します。
Q2: 外部委託なら委託先がテストすれば良いのでは?
A2: 委託は可ですが、発注側は要件定義や契約でセキュリティ基準を明確にし、受入時に証跡(テストレポート等)を確認する必要があります。監督・監視の実施も附属書Aで求められる運用です。
A2: 委託は可ですが、発注側は要件定義や契約でセキュリティ基準を明確にし、受入時に証跡(テストレポート等)を確認する必要があります。監督・監視の実施も附属書Aで求められる運用です。
Q3: パッケージソフトの変更を制限するのはなぜ?
A3: 不要な変更は新たな脆弱性を生む可能性があり、保守・アップデートの追従が困難になるためです。ただし必要な変更はリスク評価と検証を行って実施します。
A3: 不要な変更は新たな脆弱性を生む可能性があり、保守・アップデートの追従が困難になるためです。ただし必要な変更はリスク評価と検証を行って実施します。
関連キーワード: セキュア開発、シフトレフト、A.14、SDLC(Software Development Life Cycle)、SAST、DAST、脆弱性検査、委託先管理、受入試験、セキュリティテスト

\ せっかくなら /
情報セキュリティマネジメントを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

