ドキュメント

保護機能と適用

各セキュリティ保護機能の有効化方法、ObserveとEnforceの意味、および適用が準備完了ゲートを待つ理由。

セキュリティ → 設定には「組織デフォルト」があり、各プロジェクトはこれに従います。 誰かが個別の設定を指定しない限り、すべてのプロジェクトはこのデフォルト設定に従います。デフォルトを使用すると元の設定に戻ります。オーナーや管理者は設定を変更できますが、メンバーは読み取り専用で確認のみ可能です。

ObserveとEnforce

各保護機能には2つの個別な状態があります:

  • Observe:検出、記録、表示を行います。検出結果はセキュリティ画面に表示され、 Coroid Securityプルリクエストのチェックでそれらが報告されますが、チェックは失敗しません。
  • Enforce:チェックを失敗させます。選択した重大度以上の検出結果を含む変更はチェックに失敗し、Coroidのタスクもそれ以降のプルリクエストを作成しません。

適用にはスコープごとに3つの選択肢があります:

選択肢意味
継承(デフォルト)保護機能のプラットフォーム準備完了ゲートを通過した後に適用します。
適用同じ設定ですが、このスコープに対して明示的に選択されます。
Observeのみプラットフォームの動作に関係なく、決してチェックを失敗させません。

すべての保護機能は最初はObserveモードで開始されます。Coroidは、各保護機能が準備完了ゲートを通過した後にのみ適用を有効化します。依存関係の場合はカバレッジテストと誤検知がない観察期間が必要です。シークレットやコードルールの場合は下記の調整処理と同様の観察期間が必要です。それまでの間、継承または適用に設定された保護機能はObserveモードで動作し、設定にもそのように記載されます。ゲートを通過すると、継承を選択していたすべての項目に適用が行われ、Observeのみを選択した項目は引き続きObserveモードのままです。

適用は「GitHubがマージを阻止する」という意味ではありません。GitHubがマージをブロックするのは、リポジトリが「Coroid Security」チェックを必須とする場合のみです。詳細はGitHubの権限とCoroidのセキュリティチェックを参照してください。。

調整済みルール

漏洩したシークレットとコードスキャンは、調整を通過した検出器バージョンでのみ適用されます。実際のコードや合成シークレットのラベル付きデータセットで精度と再現率を測定し、実際にマージされた変更を再実行して誤検知率を確認します。報告された誤りはすべてケースとして保存され、引き続き合格し続ける必要があり、14日間誤検知がない観察期間も必要です。

新しい検出器バージョンが自動的に適用されることはありません。最後に承認されたバージョンが適用を続け、新しいバージョンは並行してObserveモードで動作します。新しいバージョンが調整を通過した後にのみ適用が切り替わります。承認されたバージョンが実行できない場合、適用中の保護機能は利用不可と報告し、チェックを失敗させます。無チェックで合格させることはありません。

設定

保護機能切り替え調整
脆弱な依存関係Observe適用;「以上の重大度で適用」(デフォルトは高)
脆弱な依存関係の修正オン/オフ「以上の重大度で修正作業を開始」(デフォルトは高)。プロジェクトごとのpull requestの上限はデフォルトで5件、最大50件。エージェント時間の予算は組織デフォルトに準じます。
漏洩したシークレットObserve適用。組織デフォルト設定でのみ:新しいシークレットをブロックし、スキャン対象の最大変更内容を制限します。
コードスキャンObserve適用;独自のスキャンコマンド;ルール一覧
プルリクエストのセキュリティレビューObserve適用;「以上の重大度で適用」(デフォルトは高)
GitHubのセキュリティアラートObserveなし
セキュリティ監査オン/オフ実行頻度:毎日、週次(デフォルト)、月次

一部の保護機能は他の機能に依存します:

  • プルリクエストのセキュリティレビューは、品質管理でプロジェクトにCoroidレビューが有効な場合にのみ機能します。Coroidレビューが無効な場合、行にその旨が記載され、保護機能は何も実行しません。
  • 脆弱な依存関係の修正は組織デフォルト設定で、組み込みのセキュリティ修正要求のオン/オフも切り替えます。詳細は プルリクエストの修正。
  • セキュリティ監査は、有料プランではオン、Freeプランではオフとなり、計画に従って動作します。詳細はセキュリティ監査。

セキュリティ機能は品質管理の設定に従って動作します。

セキュリティの保護機能は品質管理の制御に依存しません。品質管理でアンチスロップ機能をオフにしても、品質ルールのみが無効になり、セキュリティのコードルールは影響を受けません。プルリクエストにおいては、Coroid Securityは、プロジェクトに公開済みのデリバリーグラフが存在するかどうかにかかわらず、独自のチェックを実行します。

スキャナーの設定は Coroid から取得されます。

スキャナーは Coroid がこれらの設定とセキュリティで承認された例外から構築した設定で動作し、テスト対象の変更内容に含まれるファイルからは設定を読み込みません。スキャナー設定を追加または編集する変更(osv-scanner.toml、.gitleaks.toml、.gitleaksignore、.github/secret_scanning.yml、.secrets.baselineやそれに類似するもの)はベースコミットの設定に基づいてチェックされ、security.policy-changedという結果が得られます。リポジトリファイルで例外を指定することも可能ですが、その適用にはセキュリティでオーナーまたは管理者の承認が必要です。同じルールは Coroid 自身の修正タスクにも適用され、エージェントが除外対象を変更して自身のチェックを通過させることはできません。

設定は組織と共に移動します。

このsecurity設定は他の品質ポリシーと共に組織設定バンドルの一部であり、各プロジェクトの最新の脅威モデルも同様です。例外、結果、証拠は設定ではなく結果であり、移動しません。詳細は設定の移植性。