13-セキュアプログラミング のバックアップ(No.1)


 

セキュアプログラミングに関するページです。

 

●システム開発工程における実装の例

 

 ・セキュリティ基本方針の決定

  セキュリティ目標、準拠するセキュリティ規格やISO等

 (例:ISO 15408(セキュリティ技術− 情報技術セキュリティの評価基準) JISでは「X 5070-1」

  プロテクションプロファイル,セキュリティ要求仕様書(Protection Profile) を作っていきます。

 

 ・リスク分析の実施

  主に想定される脅威等の洗い出し、脅威モデリングを使用しシナリオ作成と検証の実施

 

 ・セキュリティ要件の決定

  実装要件をまとめていきます。こちらでは専門知識が問われます。

  認証、アクセス制御、暗号化、データ保護、マルウェア対策、Dos攻撃対策

  ※その後の脆弱性診断シナリオにも使われます

 

  言語等に応じたセキュリティ要件(C++等はBF等に関し、strcpyは使わないやStackGuard,Libsafe使用等)

  GCC使用に際しては、Automatic Fortification使用など。

 

  システムセキュリティ管理要件

  ID管理、パッチ管理、構成管理、鍵管理、証明書管理 など

 

 ・セキュリティ設計/構築手順書の整備

  共通モジュールの仕様、モジュール間 I/F仕様等の決定

 

 ・セキュアプログラミングガイド作成

  プログラミング工程開始前までに作成すること。セキュリティテストコードのテンプレ。

 

 ・コーティング/レビュー

  重要なPGについては専門家によるレビュー(検証シナリオに基づき)する。

  ツールを使用した自動化が望まれる。

 

 ・脆弱性検査

  ブラックボックス型で第三者検証と、ホワイトの組み合わせが望まれる。

  C++系は可能であればファジングも。