計画的なセキュリティとプライバシーについて調べます

完了

Microsoft SDL は、設計のセキュリティとプライバシーの重要性を強調しています。 セキュリティ機能とプライバシー機能はアドオンではありませんが、弊社の製品とサービスの中心的な構成要素です。 弊社では、機能ライフサイクルの初期の段階でセキュリティ要件を定義してセキュリティを構築し、あらゆる主要なサービスのコンポーネントや機能に関する最新の脅威モデルを管理し、すべてのソース コードに対して手動のコードレビューを要求することで、製品にセキュリティを組み込んでいます。

セキュリティとプライバシーの要件

セキュリティとプライバシーの要件は、高度なセキュリティで保護されたアプリケーションとシステムの設計に必要です。 Microsoft では、開発するすべての製品、サービス、および機能には、セキュリティとプライバシーの要件を明確に定義することから始まります。 ソフトウェア開発は継続的なプロセスであるため、弊社では、製品のライフサイクル全体を通して必要な機能と脅威の状況の両方の変化を反映して、これらの要件を継続的に更新します。 セキュリティとプライバシーの要件に影響を与える要因には、開発中のソフトウェアの性質、既知のセキュリティ脅威、セキュリティ インシデントから学んだ教訓、法律および業界の要件、社内基準およびコーディングの慣行などがあります。

セキュリティとプライバシーの要件を定義するのに最適な時間は、製品または機能の初期設計および計画段階です。 これにより、開発チームはセキュリティ機能を製品の中核機能に統合できます。 例えば、設計段階で製品ごとに聴取する質問の一つに、顧客データなどの機密情報を取り扱うかどうかというものがあります。 Microsoft の SDL には、セキュリティとプライバシーの要件が含まれており、開発者が機密データの処理に関するベスト プラクティスを導入し、関連する要件に準拠して、機密データを確実に収集、処理、および保存することに役立ちます。 機密データ処理の SDL 要件には、機密データを保護するための暗号化、ログ記録、インシデント対応の準備、および潜在的なセキュリティ インシデントの調査と対応に必要な監査機能が Microsoft セキュリティ対応チームに提供されます。

脅威モデルとデータ フロー図 (DFD)

製品の設計にセキュリティとプライバシーの要件に関する定義が明確に含まれた場合、開発チームは脅威モデルを構築して、製品に影響を与える可能性が高いセキュリティおよびプライバシーの脅威を可視化します。 脅威のモデリングは、開発者が適切な軽減策を提案および実施できるように、リスクに応じて潜在的な脅威を特定して分類し、評価するのに役立ちます。 SDL では、Microsoft の開発チームが、すべての主要なサービス コンポーネントと機能に対して最新の脅威モデルとデータ フロー ダイアグラム (DFD) を維持する必要があります。

コンポーネントの脅威モデリングを示す図: 定義、図、識別、軽減、検証。

脅威のモデリングは、製品または機能のコンポーネントを 定義 し、認証や機密データ処理などの重要な機能シナリオのために、相互の関係を 図示 することから始まります。 脅威モデル図には、関連するデータフロー、関数、および処理が含まれ、サービスへの脅威を可視化するのに役立ちます。 脅威のモデリング プロセスの一環として、サービス チームは、サービス コンポーネントや機能で使用されるすべてのデータフロー、ポート、およびプロトコルを文書化した DFD を作成し、維持します。

完成した図面は、システムに対する脅威を 特定 し、軽減に向けて脅威に優先順位を付けるために使用されます。 開発チームは、脅威モデルによってさらされるリスクの 軽減 を提案し、実装します。 新しい軽減策は、製品のセキュリティ要件に追加され、コードの手動でのレビューと自動テストの実施中にコード内で 検証 され、リリース前の承認プロセスの一部としてレビューされます。

アジャイルを使用する先進のソフトウェア開発では、ユーザーへの迅速な機能配信が重視されているため、脅威のモデリングは継続的なプロセスです。 開発チーム全体で一貫性を確保し、脅威モデルを最新の状態に維持するには、Microsoft の開発者は、すべての脅威モデルに Microsoft の脅威モデリング ツールを使用する必要があります。 脅威モデリング ツールでは、Microsoft の開発者やソフトウェア アーキテクトは誰でも次のことを行うことができます。

  • 自社システムのセキュリティ設計に関する情報を伝えます。
  • 潜在的なセキュリティ問題について、実証済みの手法を使用してセキュリティ設計を分析します。
  • セキュリティ問題の軽減策を提案し、管理します。

リリース前のセキュリティ レビューでは、許容できないリスクの軽減策も含むすべての脅威モデルの正確性および完全性が確認されます。 これらのレビューは、アカウンタビリティを維持し、セキュリティ重視のデザインを促します。

手動のコード レビュー

弊社の開発チームは、すべての新しいコード リポジトリで、バージョン管理に Azure DevOps Git を使用しています。 Microsoft で開発されたすべてのコードが SDL に準拠していることを確認するために、SDL では、コードを変更してリリース ブランチにする前に、別のレビュー担当者によって手動でコード レビューを行う必要があります。 コード レビュー担当者は、コーディング エラーを確認し、コード変更が SDL および設計要件を満たしているか、機能およびセキュリティのテストに合格したか、確実に動作するかを確認します。 また、コードの変更が適切に文書化され、意図しない副作用が発生しないことを確認するために、関連するドキュメント、構成、および依存関係を確認します。

レビュー担当者は、コード レビュー中に問題を発見した場合、提出者に、提案された変更と追加のテストを含めたコードを再提出するよう依頼できます。 また、コード担当者は、要件を満たしていないコードのチェックインを全面的にブロックすることもできます。 リリースのために提出されたコードのすべての変更は、1人の開発者に明確に帰属するものでなければならず、アカウンタビリティを維持するために、別のレビュー担当者による確認が必要です。 さらに、コードのリリースに向けたすべての変更は、作成者、ビジネスの妥当性、テスト結果、および変更を承認したレビュー担当者を含めたすべてのコード変更に関する監査可能な記録を提供するために、少なくとも18か月間記録され、保持されなければなりません。

詳細情報