ソース管理システムは、ソフトウェア開発ライフ サイクルの中で最も機密性の高いリンクの 1 つです。ソフトウェアのソース コード、ビルド スクリプト、IaC (Infra Structure as Code) スクリプトが保存され、場合によっては機密情報や追加の機密情報も保存されます。したがって、ソース管理システムのセキュリティを確保することは、ソフトウェア開発環境をセキュリティで保護するための最初のステップの 1 つである必要があります。
SCM の保護を目的として、GitGat を開発しました。 GitGat は自己完結型の OPA のセットです (ポリシーエージェントを開く) Rego で書かれたポリシー。 OPA を使用すると、他の OPA ベースのツールの一部として、またはスタンドアロン アプリケーションとして、複数のユース ケースが可能になります。 GitGat は SCM アカウントのセキュリティ設定を評価し、ステータス レポートと実用的な推奨事項を提供します。ステータス レポートは、セキュリティ担当者向けに人間が読める形式 (MD ファイル) で生成することも、自動化されたポリシーの決定とアクションをサポートするために機械が読める形式 (JSON ファイル) で生成することもできます。
GitHub は世界有数の SCM システムの 1 つであるため、これを出発点にしたいと考えました。最終的には他の SCM プラットフォームへのサポートを拡大することを目指しています。
GitGat は現在、次のポリシー ファミリの評価をサポートしています。
- アクセス制御 - 防ぐ 初期アクセス 資格情報の盗難に基づいた手法。
- 2 要素認証を検証する 現在 2FA を使用していない人を理解しながら、組織またはそのメンバーに強制されます。
- リポジトリの可視性を検証する 予定通りです。
- コントロールの検証 デプロイとSSHの キー.
- 権限 – 過剰な権限に起因する攻撃ステップを防止します 実行, 防御回避、認証情報へのアクセス、
- 管理者権限を持つユーザーをマップする
- チームの権限をマッピングし、管理者権限を持つチームに通知する
- ブランチ保護 – 意図しない、許可されていないリポジトリ変更を悪用する攻撃ステップを防止します。 実行力、持続力、防御回避力、衝撃力
- 保護されたブランチと保護されていないブランチをマップする
- ブランチ保護構成をマップする – どのような保護が実施されているかを理解します (例: レビューと署名付きコミットの強制、履歴の削除の防止)。
- ファイル変更の追跡 – GitHub の使用時にデフォルトで付与されるファイル アクセス許可を悪用する攻撃ステップを防止/検出します。 実行力、粘り強さ、防御回避力。
などのオープンソース ツールを利用したシークレット スキャンのサポートを追加する予定です。 git-リーク.
セキュリティ専門家なら誰でも知っているように、セキュリティ ルールとポリシーは通常、プロジェクト固有の決定の基礎となります。各プロジェクトには特別な条件と制約があり、権限のある関係者による特別な承認が必要です。このような特殊なケースを簡単に管理できるようにするために、GitGat は状態の管理をサポートしています。ユーザーが管理する JSON オブジェクトである状態には、そのような例外を保存できます。これにより、セキュリティ体制の継続的なスキャンを実行し、新しいもの、または状態に含まれていないものについてのみアラートを受け取ることができます。
SCM のセキュリティ体制を改善するための出発点としてこれらの問題を選択した理由に関する詳細な脅威分析は、 GitGat リポジトリ.
ぜひ皆さんもこのプロジェクトに挑戦してみてください。ご遠慮なくご批判ください、 アイデア、リクエスト、さらにはサポートまで。このプロジェクトにはさまざまな方向性があり、皆さんと一緒にそれを探求できることを楽しみにしています。
このコンテンツは、エンドツーエンドのソフトウェア サプライ チェーン セキュリティ ソリューションの大手プロバイダーである Scribe Security によって提供されており、ソフトウェア サプライ チェーン全体のコード成果物とコード開発および配信プロセスに最先端のセキュリティを提供しています。 もっと詳しく知る。