13-セキュアプログラミング
freeze
br
セキュアプログラミングに関するページです。
br
●システム開発工程における実装の例
br
・セキュリティ基本方針の決定
セキュリティ目標、準拠するセキュリティ規格やISO等
(例:ISO 15408(セキュリティ技術− 情報技術セキュリティの評価基準) JISでは「X 5070-1」
プロテクションプロファイル,セキュリティ要求仕様書(Protection Profile) を作っていきます。
br
・リスク分析の実施
主に想定される脅威等の洗い出し、脅威モデリングを使用しシナリオ作成と検証の実施
br
・セキュリティ要件の決定
実装要件をまとめていきます。こちらでは専門知識が問われます。
認証、アクセス制御、暗号化、データ保護、マルウェア対策、Dos攻撃対策
※その後の脆弱性診断シナリオにも使われます
br
言語等に応じたセキュリティ要件(C++等はBF等に関し、strcpyは使わないやStackGuard,Libsafe使用等)
GCC使用に際しては、Automatic Fortification使用など。
br
Java系はクラスの外部許可するアクセスは必要最低限になるよう,メソッド構成に注意。
重要な情報を扱うオブジェクトについてはReadOnlyインタフェースを用いる方法がある。
DBセキュリティと同様に、必要最低限の権限と組み合わせにしたい。
br
システムセキュリティ管理要件
ID管理、パッチ管理、構成管理、鍵管理、証明書管理 など
br
・セキュリティ設計/構築手順書の整備
共通モジュールの仕様、モジュール間 I/F仕様等の決定
br
・セキュアプログラミングガイド作成
プログラミング工程開始前までに作成すること。セキュリティテストコードのテンプレ。
br
・コーティング/レビュー
重要なPGについては専門家によるレビュー(検証シナリオに基づき)する。
ツールを使用した自動化が望まれる。
br
・脆弱性検査
ブラックボックス型で第三者検証と、ホワイトの組み合わせが望まれる。
C++系は可能であればファジングも。