システム開発とセキュリティ(1)
システム開発工程とセキュリティ対策
必要性
システム開発においてセキュリティの必要性や対応方法を十分に認識・理解せずに開発
Webアプリケーションの脆弱性を着いた攻撃による個人情報漏洩、不正リンクの埋め込み等が多発
システム要件や利用環境等に応じた適切なセキュリティ機構を有し、脆弱性への対処がなされたアプリケーション開発には、開発工程の初期段階からセキュリティ対策に取り組む
実施例
システム開発工程におけるセキュリティ対策の実行例

@セキュリティ基本方針の決定
システム要件に応じたセキュリティ基本方針を決定する
決定すべき項目
- セキュリティ目標(実現するセキュリティレベル)
- セキュリティ品質管理体制
- 適用/準拠するセキュリティ規格、基準等(ISO/IEC15408、PCI DSS等)
Aリスク分析の実施
システム要件の大まかな構成、アクセス権者等の情報から、主に想定される脅威(リスク)を洗い出し、その結果をシステム方針設計に反映する
Bセキュリティ要件の決定
@、A、システム方針設計等の結果を受け、システムのセキュリティ要件を決定する
セキュリティ基本要件の決定
@で決めたセキュリティ目標、適用/準拠基準、リスク分析をもとにセキュリティ基本要件を決定する
セキュリティ実装要件の決定
セキュリティ基本要件に基づき、システムに実装するセキュリティ要件を決定する
具体的に
- 識別/認証
- アクセス制御
- データ保護(暗号化等)
- セキュリティ監視
- セキュリティ監査
- マルウェア対策
- DoS攻撃対策(性能面での対策) など
アプリケーションセキュリティ要件の決定
アプリケーション開発におけるセキュリティ要件を決定する
例えば
- アプリケーションの特性、使用言語等に応じたセキュリティ要件
- セキュリティテスト方式に関する要件
- 開発環境におけるセキュリティ対策要件
システクセキュリティ管理要件の決定
セキュリティ基本要件、実装要件に基づき、セキュリティ管理に関する要件を決定する
具体的には
- アイデンティティ管理(ID管理)
- パッチ管理
- 構成管理/設定管理/変更管理
- ログ管理
- インシデント管理/問題管理
- 鍵管理 など
Cセキュリティ設計/構築手順書の整備
Bで決定した要件をシステムに実装するための各種設計を行う
Dセキュアプログラミングガイド文書の整備
- アプリケーションセキュリティ要件に基づき、セキュアなソースコードを開発するためのプログラミングガイド文書を整備する
- プログラミング工程開始前に、同ガイドに基づいた開発要員教育を行う
Eセキュアシステム基盤構築
システム基盤構築において、サーバ類やセキュリティ関連製品等に必要なセキュリティ対策を行う
Fセキュアプログラミング/ソースコードレビュー
- Dで整備したガイド文書等に従ってセキュアなアプリケーションプログラムを開発し、テストを行う
- セキュリティ上重要なプログラムは、セキュリティ専門技術者等によるソースコードレビューを実施する
G本番移行前脆弱性検査
- 開発したシステムの本番移行前に、システム基盤やWebアプリケーションに対して脆弱性検査を実施する
- 静寂性が発見された場合は、その影響度によって適切に対処する
H運用後脆弱性検査
- 運用後も適切なセキュリティレベルを維持するため、定期的に脆弱性検査を実施する
- システム構成やアプリケーションに追加・変更が生じた場合は、適時脆弱性検査を実施する
 

