Security API のベスト プラクティス

セキュリティで保護されたソフトウェアの開発に役立つには、アプリケーションの開発時に次のベスト プラクティスを使用することをお勧めします。 詳細については、「セキュリティ デベロッパー センター」を参照してください。

セキュリティ開発ライフサイクル

セキュリティ開発ライフサイクル (SDL) は、セキュリティに重点を置いた一連のアクティビティと成果物をソフトウェア開発の各フェーズに合わせたプロセスです。 これらのアクティビティと成果物は次のとおりです。

  • 脅威モデルの開発
  • コード スキャン ツールの使用
  • コード レビューとセキュリティ テストの実施

SDL についての詳細は、「Microsoft セキュリティ開発ライフサイクル」を参照してください。

脅威モデル

脅威モデル分析を実行すると、コード内の潜在的な攻撃ポイントを検出するのに役立ちます。 脅威モデル分析の詳細については、「Howard、Michael、LeBlanc、David [2003]」、「Writing Secure Code」、「2d ed.、ISBN 0-7356-1722-8、Microsoft Press、Redmond、Washington」を参照してください。 (このリソースは、一部の言語や国では利用できない場合があります。)

サービス パックとセキュリティ更新

ビルド環境とテスト環境では、対象となるユーザー ベースの同じレベルのサービス パックとセキュリティ更新プログラムを反映する必要があります。 ビルドおよびテスト環境の一部である Microsoft プラットフォームまたはアプリケーション用の最新のサービス パックとセキュリティ更新プログラムをインストールし、完成したアプリケーション環境に対して同じ操作を行うことをユーザーに推奨することをお勧めします。 Service Pack とセキュリティ更新プログラムの詳細については、「Microsoft Windows Update および Microsoft Security」を参照してください。

承認

最小限の特権を必要とするアプリケーションを作成する必要があります。 最小限の特権を使用すると、悪意のあるコードによってコンピューター システムが侵害されるリスクが軽減されます。 最小限の特権レベルでコードを実行する方法の詳細については、「特別な特権を使用した実行」を参照してください。

その他の情報

ベスト プラクティスの詳細については、次のトピックを参照してください。

トピック 説明
特別特権での実行
特権のセキュリティへの影響について説明します。
バッファー オーバーランの回避
バッファー オーバーランの回避に関する情報を提供します。
制御フロー ガード (CFG)
メモリ破損の脆弱性について説明します。
DACL の作成
Security Descriptor Definition Language (SDDL) を使用して随意アクセス制御リスト (DACL) を作成する方法について説明します。
パスワードの処理
パスワードを使用した場合のセキュリティへの影響について説明します。
ダイナミック アクセス制御の開発者向け機能拡張に関するページ
新しい動的アクセス制御ソリューションの開発者向け機能拡張ポイントの一部に対する基本的な方向性。