セキュリティ API のベスト プラクティス

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

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

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

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

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

脅威モデル

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

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

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

承認

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

詳細情報

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

トピック 説明
特別な特権で実行する
特権のセキュリティへの影響について説明します。
バッファー オーバーランの回避
バッファー オーバーランの回避に関する情報を提供します。
制御フロー ガード (CFG)
メモリ破損の脆弱性について説明します。
DACL の作成
セキュリティ記述子定義言語 (SDDL) を使用して随意アクセス制御リスト (DACL) を作成する方法を示します。
パスワードの処理
パスワードを使用する場合のセキュリティへの影響について説明します。
MSDN ライブラリ検索を最適化する方法
MSDN ライブラリで Security SDK コンテンツを検索するためのオプションについて説明します。
動的Access Control開発者の拡張性
新しい動的Access Control ソリューションの開発者向け機能拡張ポイントの一部に対する基本的な方向。