設定ミスのあるソースコード管理プラットフォームはソフトウェアサプライチェーン攻撃の一般的なエントリーポイントのままであり、どの設定がリスクをもたらすかについて、組織は可視性が不足していることが多くあります。Legit SecurityのオープンソースツールであるLegitifyは、GitHubおよびGitLab環境をスキャンし、組織、リポジトリ、メンバー、およびCI/CDランナーグループ全体にわたるポリシー違反を報告することで、このギャップに対処しています。

チェック内容
Legitifyは5つのネームスペース全体で設定を評価します:組織レベルの設定、GitHubアクション設定、メンバーアカウント、リポジトリ、およびランナーグループです。チェック例には、組織全体で二要素認証が強制されているかどうか、GitHubアクション実行が検証済みアクションに制限されているかどうか、古い管理者が存在するかどうか、およびリポジトリに対してコードレビュー要件が設定されているかどうかが含まれます。
デフォルトではツールはすべてのネームスペースをスキャンし、ユーザーはコマンドラインフラグを使用して特定の組織、リポジトリ、またはネームスペースタイプをターゲットにスコープを絞ることができます。アーカイブされたリポジトリは、直接指定されない限りスキップされます。
出力と統合
スキャン結果は、人間が読める形式のテキスト、JSON、またはSARIF形式でエクスポートできます。SARIF出力は、標準をサポートするコードスキャンツールとセキュリティダッシュボードに検出結果をフィードすることができます。結果はネームスペース、リソース、または重大度でグループ化することもできます。
LegitifyはスタンドアロンのコマンドラインツールまたはGitHubアクションとして実行され、既存のCIワークフロー内でスケジュール済みスキャンを可能にします。
スコアカード統合
LegitifyはGitHubリポジトリのOpen Source Security FoundationのScorecard プロジェクトと統合されています。有効化されると、組織内のすべてのリポジトリに対してScorecardチェックを実行し、7.0以下のスコアを持つリポジトリにフラグを付けます。詳細モードは、Scorecardの出力をLegitifyの出力に直接埋め込みます。統合には、ブランチ保護、コードレビュー、依存関係更新ツーリング、ピン留めされた依存関係、危険なワークフロー、SAST、トークン権限、脆弱性検出などのチェックが含まれます。いくつかのチェックはパブリックリポジトリにのみ適用されます。
プラットフォーム要件と制限事項
GitHub上では、Legitifyを効果的に使用するには組織所有者権限が必要です。個別のリポジトリへの管理アクセス権を持つユーザーは、それらのリポジトリに対してツールを実行し、リポジトリレベルの結果を受け取ることができます。ツールはadmin:org、read:enterprise、admin:org_hook、read:org、repo、read:repo_hookを含むスコープを持つGitHub個人用アクセストークンが必要です。粒度の細かい個人用アクセストークンはサポートされていません。
GitLab上では、ツールはGitLab CloudとセルフマネージドGitLab Serverインスタンスの両方に対して機能します。プレミアムではないGitLabアカウントは、ブランチ保護ポリシーを含む一部のポリシーがスキップされます。GitLabスキャンは--scm gitlabフラグとread_api、read_user、read_repository、read_registryスコープを持つ個人用アクセストークンが必要です。
LegitifyはGitHubで入手可能です。