セキュリティの開発と運用の概要

Microsoft では、セキュリティで保護された開発プラクティスを実装する方法を説明します。

Microsoft のセキュリティ開発ライフサイクル (SDL) は、セキュリティで保護されたソフトウェアの開発および運用に重点を置いたセキュリティ保証プロセスです。 SDL には、Microsoft の開発者やエンジニアにとって、より多くの測定可能なセキュリティ要件が用意されています。 Microsoft は、お客様の製品とサービスの脆弱性の数と重大度を削減します。 Microsoft のすべてのソフトウェア開発チームは SDL 要件に従う必要があり、変化する脅威の状況、業界のベスト プラクティス、コンプライアンスに関する規制基準を反映するように SDL を継続的に更新します。

Microsoft の SDL は、アプリケーションのセキュリティを向上させる方法を説明します。

Microsoft の SDL プロセスは、開発の 5 つのフェーズ (要件、設計、実装、検証、リリース) の観点から考えることができます。 まず、セキュリティを念頭に置いてソフトウェア要件を定義します。 この目標を達成するために、アプリケーションが何を達成する必要があるかについて、セキュリティ関連の質問をします。 アプリケーションで機密データを収集する必要がありますか? アプリケーションは機密情報や重要なタスクを実行しますか? アプリケーションは、信頼できない発行元からの入力を受け入れる必要がありますか?

関連するセキュリティ要件が特定されると、これらの要件を満たすセキュリティ機能が組み込まれるようにソフトウェアを設計します。 開発者は SDL と設計要件をコードに実装し、手動のコード レビュー、自動化されたセキュリティ ツール、および侵入テストで検証します。 最後に、コードをリリースする前に、すべての要件が満たされていることを確認するために、新しい機能と重要な変更が最終的なセキュリティとプライバシー レビューを受けます。

Microsoft では、一般的な脆弱性についてソース コードをテストする方法を説明します。

コード開発やリリース後のセキュリティ要件を実装する開発者をサポートするために、Microsoft では、セキュリティの欠陥や脆弱性についてソース コードを自動的にチェックする、セキュリティで保護された一連の開発ツールを提供しています。 Microsoft は、コンパイラや開発環境など、開発者が使用する承認済みツールの一覧と、Microsoft ビルド パイプライン内で自動的に実行される組み込みのセキュリティ チェックを定義して公開します。 弊社の開発者は、新しいセキュリティ機能を活用するために、承認されたツールの最新バージョンを使用しています。

コードをリリース ブランチにチェックインする前に、SDL には別のレビュー担当者による手動コード レビューが必要です。 コード レビュー担当者は、コーディング エラーを確認し、コード変更が SDL および設計要件を満たしているか、機能およびセキュリティのテストに合格したか、確実に動作するかを確認します。 また、コードの変更が適切に文書化され、意図しない副作用が発生しないことを確認するために、関連するドキュメント、構成、および依存関係を確認します。 レビュー担当者は、コード レビュー中に問題を発見した場合、提出者に、提案された変更と追加のテストを含めたコードを再提出するよう依頼できます。 また、コード担当者は、要件を満たしていないコードのチェックインを全面的にブロックすることもできます。 校閲者によってコードが満足できるものと見なされた後、レビュー担当者は承認を提供します。これは、コードが次のデプロイ フェーズに進む前に必要です。

Microsoft では、セキュリティで保護された開発ツールと手動コード レビューに加えて、自動セキュリティ ツールを使用して SDL 要件を適用します。 これらのツールの多くはコミット パイプラインに組み込まれており、チェックイン時や新しいビルドのコンパイル時にセキュリティ上の欠陥についてコードを自動的に分析します。 たとえば、一般的なセキュリティの欠陥に対する静的コード分析や、埋め込みシークレットのコードを分析する資格情報スキャナーなどがあります。 自動セキュリティ ツールによって検出された問題は、新しいビルドがセキュリティ レビューに合格し、リリースが承認される前に修正する必要があります。

Microsoft はオープンソース ソフトウェアを管理する方法を説明します。

Microsoft では、次の目的で設計されたツールとワークフローを使用するオープンソース セキュリティを管理するための高度な戦略を採用しています。

  • 当社の製品およびサービスで使用されているオープン ソース コンポーネントを理解します。
  • これらのコンポーネントがどこでどのように使用されているかを追跡します。
  • それらのコンポーネントに脆弱性があるかどうかを確認します。
  • これらのコンポーネントに影響を与える脆弱性が発見された場合は、適切に対応します。

Microsoft のエンジニアリング チームは、製品またはサービスに含まれるすべてのオープン ソース ソフトウェアのセキュリティに対する責任を維持します。 このセキュリティを大規模に実現するために、Microsoft は、オープンソースの検出、法的要件ワークフロー、脆弱なコンポーネントのアラートを自動化するコンポーネント ガバナンス (CG) を通じて、エンジニアリング システムに不可欠な機能を組み込んでいます。 自動CGツールは、オープンソースコンポーネントと関連するセキュリティの脆弱性または法的義務について、Microsoft のビルドをスキャンします。 検出されたコンポーネントは登録され、ビジネスおよびセキュリティ レビューのために適切なチームに送信されます。 これらのレビューは、オープン ソース コンポーネントに関連する法的義務またはセキュリティの脆弱性を評価し、コンポーネントの展開を承認する前にそれらを解決するように設計されています。

Microsoft のオンライン サービスは、外部の規制と認定に準拠するために定期的に監査されます。 セキュリティの開発と操作に関連するコントロールの検証については、次の表を参照してください。

Azure と Dynamics 365

外部監査 Section 最新のレポート日
ISO 27001/27002

適用性に関する声明
証明書
A.12.1.2: 管理コントロールを変更する
A.14.2: 開発およびサポート プロセスのセキュリティ
2023 年 11 月 6 日
ISO 27017

適用性に関する声明
証明書
A.12.1.2: 管理コントロールを変更する
A.14.2: 開発およびサポート プロセスのセキュリティ
2023 年 11 月 6 日
SOC 1
SOC 2
SOC 3
SDL-1: セキュリティ開発ライフサイクル (SDL) 手法
SDL-2: リリースに記載されているセキュリティ制御要件
SDL-4: テスト環境と運用環境の分離
SDL-6: ソース コード ビルドでのマルウェア スキャン
SDL7: 半期の SDL レビュー
2023 年 11 月 17 日

Microsoft 365

外部監査 Section 最新のレポート日
FedRAMP (Office 365) SA-3: システム開発ライフサイクル 2023 年 7 月 31 日
ISO 27001/27002/27017

適用性に関する声明
認定 (27001/27002)
認定 (27017)
A.12.1.2: 管理コントロールを変更する
A.14.2: 開発およびサポート プロセスのセキュリティ
2024 年 3 月
SOC 1
SOC 2
CA-03: リスク管理
CA-18: 変更管理
CA-19: 監視の変更
CA-21: 変更テスト
CA-38: ベースライン構成
CA-46: セキュリティ レビュー
2024 年 1 月 23 日

リソース