柱名: エンジニアリング システムの保護
パターン名: ソース コード アクセスのゼロ トラスト
Microsoft では、ソース コードを保護するためのゼロ トラスト アプローチを採用し、すべてのコード変更について ID 検証済みチェックを必要とします。 重要な対策には、プル要求の多要素認証と運用ブランチに対する厳格な保護が含まれており、未承認のマージのリスクが軽減されます。
コンテキストと問題
ソース コードは、組織内で最も価値のある資産の 1 つです。 Microsoft では、何万ものリポジトリと数百万行のコードが、世界中で使用されているサービスと製品を支えています。 これにより、ソース コードは敵対者にとって価値の高いターゲットになり、不正アクセスを悪用して悪意のある変更を挿入したり、知的財産を盗んだり、顧客の信頼を損なったりする可能性があります。
これまで、リポジトリのアクセス許可やブランチ ポリシーなどの保護は、制御のベースラインを提供しました。 しかし、攻撃者の成長に合わせ、盗まれた資格情報、自動化、サプライ チェーン ベクトルを活用することで、従来のアクセス制御では十分ではなくなりました。 業界全体のインシデントは、1 つの侵害されたアカウントまたは未チェックのプル要求が、何百万人ものユーザーにダウンストリームの影響を与える可能性があることを示しています。
これに対処するために、Microsoft はソース コード アクセスに対するゼロ トラスト アプローチを運用化し、厳密で ID 検証済みで監査可能なチェックなしでコードが運用環境に到達しないようにしました。
解決策
Microsoft のアプローチは、ゼロ トラストの原則をエンジニアリング システムに直接適用します。 つまり、ソース コードへのアクセスと、変更を運用ブランチにマージするには、継続的な検証、最小限の特権の適用、およびプレゼンスの強力な証明が必要です。
主な要素は次のとおりです。
- プル要求のプレゼンス証明 (PoP PR): 2024 年に導入され、61,000 個のリポジトリにロールアウトされた PoP PR は、保護されたブランチに対するすべてのプル要求が、新しい多要素認証 (MFA) を使用して実際の検証済み個人によって認証されることを保証します。
- 階層化認証方法: プロジェクトの機密性に応じて、エンジニアはソフトウェア認証システム (Windows Hello、Face ID)、ハードウェア トークン (FIDO2 YubiKeys)、または Secure Access Workstations (SAW) に関連付けられている運用 ID を使用します。
-
ブランチの分類と適用: 運用ブランチ (
main、master、default) は自動的にタグ付けされ、保護されるため、企業全体で統一された適用が保証されます。 - 例外ガバナンス: 制限付き、レビュー済み、監査可能な除外 (自動化など) は、役員のサインオフを伴うソフトウェア資産管理システムで追跡されます。
ソフトウェア開発ライフサイクルにゼロ トラスト チェックを埋め込むことで、Microsoft は、承認されていないコードのマージを防ぎ、特権エスカレーションのリスクを軽減し、アカウンタビリティを強化します。
ガイダンス
組織は、次の実用的なプラクティスを使用して、同様のパターンを採用できます。
| ユースケース | 推奨されるアクション | 資源 |
|---|---|---|
| 条件付きアクセス | - 条件付きアクセス ポリシーを作成して、クラシック デプロイ モデルにアクセスするユーザーに多要素認証 (MFA) の使用を要求します。 | 条件付きアクセスを使用して Azure 管理に MFA を要求する |
| 認証の強度 | - 機密性の高いリポジトリには、FIDO2 ハードウェア トークンまたは SECURE Access Workstation (SAW) バインド ID を使用します。 | Microsoft Entra ID でフィッシングに強いパスワードレス認証の展開を計画する |
| オートメーションの例外 | - 人による審査が不可能な場合に除外を制限する。ガバナンス システムで承認を追跡します。 | 組織の監査ログの確認 – GitHub Docs |
| コード レビューの厳しさ | - マージする前に、少なくとも 2 人のレビュー担当者を必要とし、正常なビルド ポリシーを適用します。 | Git ブランチのポリシーと設定 – Azure DevOps |
| 既定でセキュリティで保護されたパイプライン | - GitHub Advanced Security を統合して、シークレット スキャン、依存関係管理、コード スキャンを行います。 | GitHub Advanced Security について |
利点
- より強力なサプライ チェーンの回復性: 運用環境のコードに対する未承認または自動の変更を防止します。
- アカウンタビリティの向上: すべての変更は、監査可能なログを持つ検証済みの個人に追跡できます。
- スケーラブルな保護: 中断を最小限に抑えて 100,000 人を超えるエンジニアに保護を提供する、標準化された共有のツールとルールのセットへの統合。
トレードオフ
- 開発者の摩擦: マージ ポイントでの新しい MFA により、時間と認識される不便が増える可能性があります。
- インフラストラクチャへの投資: ハードウェア トークン、Secure Access Workstations (SAW)、エンジニアリング プラットフォームとの統合が必要です。
- 除外管理: 自動化されたシナリオのガバナンスでは、継続的な監視が必要です。
- 導入曲線: Teams では、より厳密な適用ポリシーと分岐ポリシーに合わせてワークフローを調整する必要があります。
主な成功要因
成功を追跡するには、次を測定します。
- プレゼンス証明 (PoP) ポリシーによって保護されている運用リポジトリの割合。
- ポリシー バイパスなしで完了した認証済みプル要求の 1 日あたりの数。
- 未承認または異常なコード マージ試行の削減。
- 例外管理の内部監査要件への準拠。
- エンジニアの満足度と導入メトリックは 、セキュリティの適用とバランスが取れています。
概要
ソース コード アクセスに対するゼロ トラストは、Microsoft の最も重要な知的財産 (ソース コード) が、インサイダーの脅威、侵害された資格情報、自動攻撃からより適切に保護されるようにするのに役立ちます。 プレゼンスの証明、ブランチ分類の実施、ゼロ トラスト保護のスケーリングを要求することで、Microsoft はソフトウェア サプライ チェーン全体を強化しました。
適切なプラクティスにより、組織は同じアプローチを適用できます。コードのマージのたびに強力な ID チェックを適用し、MFA とハードウェアベースの認証を採用し、監査可能なガバナンスを維持します。 これらの措置により、開発者の生産性とセキュリティを維持する回復力のあるエンジニアリング システムが作成されます。
現在、ソース コード アクセスにゼロ トラストを採用し、ソフトウェア開発ライフサイクルの整合性を保護します。