情報セキュリティマネジメント試験 練習問題 24:ソフトウェア開発:セキュリティの組み込み
セキュアな開発ライフサイクル(Secure SDLC)について述べた文として、正しいものはどれか。
- セキュアな開発ライフサイクルでは、要件定義や設計段階からセキュリティ要件を組み込み、各工程でレビューやテストを行う
- セキュリティ対策はコストがかかるため、リリース直前のテスト工程でのみ実施すれば十分であり、それ以前の工程では考慮する必要がない
- セキュアな開発ライフサイクルとは、開発者が全員同じソースコードを共有し、レビューを一切行わずに開発速度を優先する手法である
- セキュアコーディングとは、ソースコードを難読化してリバースエンジニアリングを困難にすることのみを指す
- 脆弱性診断はリリース後に一度だけ実施すれば、その後のシステム変更に関わらず永続的に安全性が保証される
正解と解説を見る
正解:セキュアな開発ライフサイクルでは、要件定義や設計段階からセキュリティ要件を組み込み、各工程でレビューやテストを行う
セキュアな開発ライフサイクルは、企画・要件定義から設計・実装・テスト・リリース・運用に至る開発の各段階にセキュリティの考慮を組み込む考え方であり、後工程での手戻りコストを削減し脆弱性の作り込みを防ぎます。
【正解の理由】
脆弱性は開発の上流工程(要件定義・設計)で見落とされることが多く、後工程で発見されるほど修正コストが増大します。そのため、各工程でセキュリティ要件の定義、設計レビュー、静的・動的解析によるコードレビューやテストを実施することが推奨されます。
【不正解の理由】
• 「リリース直前のテスト工程でのみ実施すれば十分」という説明は誤り。上流工程からの一貫した対策が重要であり、後工程だけでの対応は手戻りコストが大きく不十分である
• 「全員同じソースコードを共有しレビューを一切行わない」という説明は誤り。セキュアな開発ではむしろコードレビューが重視される
• 「難読化のみを指す」という説明は誤り。セキュアコーディングは入力値検証やエラー処理など幅広い実践を含み、難読化はその一部ですらない
• 「一度の脆弱性診断で永続的に安全性が保証される」という説明は誤り。システムは変更や新たな脅威の出現により継続的な診断・見直しが必要である