Note
Security campaigns are currently in パブリック プレビュー and subject to change.
セキュリティ キャンペーンを作成する
セキュリティ キャンペーンは、組織の [Security] タブから作成および管理されます。 キャンペーンに含めるアラートを選択するには、[Overview] ダッシュボードのサイドバーからキャンペーン テンプレートを選択するか、組織の code scanning アラート ビューに表示されるアラートをフィルター処理します。
アラートのフィルター処理について詳しくは、「Best practices for fixing security alerts at scale」および「セキュリティの概要でアラートをフィルター処理する」を参照してください。
テンプレートからキャンペーンを作成する
キャンペーン テンプレートには、最も一般的なアラート選択用のフィルターが含まれています。 また、含まれるすべてのアラートの種類に対して GitHub Copilot Autofix がサポートされるという要件 (つまり、autofix:supported
) もすべて含まれます。
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [ セキュリティ] をクリックします。
-
左側のサイドバーの [Campaigns] の横にある アイコンをクリックして、キャンペーンの作成を開始します。
-
定義済みのフィルター テンプレートの 1 つを選択して、[New campaign from TEMPLATE_NAME template] ダイアログ ボックスを開きます。
-
"This looks like a big campaign" というメッセージが表示された場合は、[Back to filters] をクリックして、キャンペーン テンプレート フィルターが表示されたcode scanning アラート ビューを表示します。
- さらにフィルターを追加して、表示されるアラートの数を減らします。たとえば、"Team" やカスタム プロパティによるフィルターなどです。
- 100 個のリポジトリに 1,000 個未満のアラートがある場合は、[Create campaign] をクリックして [New campaign] ダイアログを再表示します。
または、[Continue creating a campaign] をクリックしてキャンペーンを作成することもできます。 Alerts will be omitted to until there are fewer than 1000 alerts in fewer than 100 repositories remaining. Alerts in repositories with recent pushes are prioritized for inclusion in the campaign.
-
キャンペーンのニーズに合わせて [Campaign name] と [Short description] を編集し、キャンペーンをサポートするすべてのリソースにリンクします。
-
[Campaign due date] を定義し、キャンペーンの主要連絡先として [Campaign manager] を選択します (この組織の所有者またはセキュリティ管理者)。
-
キャンペーンを作成する準備ができたら、[Create campaign] をクリックします。
セキュリティ キャンペーンが作成され、キャンペーンの概要ページが表示されます。
カスタム フィルターを使用してキャンペーンを作成する
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [ セキュリティ] をクリックします。
-
左のサイドバーの [Alerts] で、 [Code scanning] をクリックしてアラート ビューを表示します。
-
フィルターを追加して、キャンペーンのアラートのサブセットを選択します。 100 個未満のリポジトリに分散した 1000 個未満のアラートを選択した場合は、キャンペーンを作成する準備が整っています。
-
アラートのテーブルの上にある [Create campaign] をクリックして、キャンペーンの作成を開始します。
-
"This looks like a big campaign" というメッセージが表示された場合は、[Back to filters] をクリックして、既存のフィルターが表示されたcode scanning アラート ビューを表示します。
- さらにフィルターを追加して、表示されるアラートの数を減らします。たとえば、"Team" やカスタム プロパティによるフィルターなどです。
- 100 個のリポジトリに 1,000 個未満のアラートがある場合は、[Create campaign] をクリックして [New campaign] ダイアログを再表示します。
または、[Continue creating a campaign] をクリックしてキャンペーンを作成することもできます。 Alerts will be omitted to until there are fewer than 1000 alerts in fewer than 100 repositories remaining. Alerts in repositories with recent pushes are prioritized for inclusion in the campaign.
-
キャンペーンのニーズに合わせて [Campaign name] と [Short description] を編集し、キャンペーンをサポートするすべてのリソースにリンクします。
-
[Campaign due date] を定義し、キャンペーンの主要連絡先として [Campaign manager] を選択します (この組織の所有者またはセキュリティ管理者)。
-
キャンペーンを作成する準備ができたら、[Create campaign] をクリックします。
便利なフィルターの例
すべてのテンプレート フィルターには、次の便利なフィルターが含まれています。
is:open
には、既定のブランチで開かれているアラートのみが含まれます。autofilter:true
には、アプリケーション コード内にあるように見えるアラートのみが含まれます。autofix:supported
には、GitHub Copilot Autofix でサポートされているルールに対するアラートのみが含まれます。
これらのコア フィルターを含めた後は、通常、結果を特定のルール名、重大度、またはタグに制限するフィルターを追加する必要があります。 次に例を示します。
- Java コードでログ挿入のアラートのみを表示する
is:open autofilter:true autofix:supported rule:java/log-injection
。 - "CWE 117: Improper Output Neutralization for Logs" のアラートのみを表示する
is:open autofilter:true autofix:supported tag:external/cwe/cwe-117
。 これには、Java やその他の言語でのログ挿入が含まれます。 - セキュリティ重大度がクリティカルであるアラートのみを表示する
is:open autofilter:true autofix:supported severity:critical
Tip
検索フィールドでキーワードの後にコロンを入力すると、有効なすべての値の一覧が表示されます (例: tag:
)。
CodeQL によるルール実行と自動修正のサポートの詳細については、「既定のクエリ スイートのクエリ リスト」を参照してください。
セキュリティ キャンペーンを開始する
キャンペーンを作成すると、容量が許す限り、すべてのアラートが自動的に GitHub Copilot Autofix に送信されて処理されます。 これにより、pull request で検出されたアラートの提案が、新しいキャンペーンによって遅延されないようにします。 ほとんどの場合、作成できるすべての提案は 1 時間以内に準備ができていることがわかります。 ビジーな時間帯や特に複雑なアラートの場合は、時間がかかります。
セキュリティ キャンペーンを開始したことを開発者が知る方法
キャンペーンに含まれるリポジトリに対する書き込みアクセス権を持つすべてのユーザーは、キャンペーンに関する通知設定に従って通知を受けます。
Note
パブリック プレビュー中は、電子メール通知が有効になっているユーザーにのみ通知が送信されます。
自動通知の送信に加えて、新しいキャンペーンは、含まれる各リポジトリの [Security] タブのサイドバーに表示されます。 開発者エクスペリエンスの詳細については、「Fixing alerts in a security campaign」を参照してください。
セキュリティ キャンペーンに対するエンゲージメントを高める方法
キャンペーンへのエンゲージメントを高める最善の方法は、アラート修復ために共同作業するチームに周知することです。 たとえば、エンジニアリング マネージャーと協力して、より平穏な開発期間を選択して、関連するトレーニング セッションでそれぞれが異なる種類のアラートに焦点を当てて一連のセキュリティ キャンペーンを実行できます。 その他のアイデアについては、「Best practices for fixing security alerts at scale」を参照してください。
セキュリティ キャンペーンを追跡する
キャンペーンを作成すると、キャンペーン追跡ビューが表示され、組織の [Security] タブのサイドバーにキャンペーンが一覧表示されます。 [Campaigns] の下にあるサイドバーで選択することで、キャンペーン追跡ビューをいつでも再表示できます。
セキュリティ キャンペーンのアラートの状態
キャンペーン ビューの上部にあるサマリーには、closed、open、in progress のアラートの数が報告されます。
- In progress: キャンペーン ビューまたはアラート ページを通じてアラートを修正するために、少なくとも 1 つのブランチまたは pull request が作成された場合です。
- Closed: 開発作業がキャンペーン フレームワークの外部で行われた場合でも、アラートが修正または無視された場合です。
セキュリティ キャンペーン ビュー
キャンペーン リポジトリとアラートを調べて、チームがキャンペーンに参加している場所と、チームにさらに参加を促す必要がある可能性のある場所を確認できます。
- Repository details: 任意のリポジトリを展開して、アラートの修復の進行状況を表示できます。
- Alert details: すべてのアラートの一覧を表示するには、[Group by] オプションを [None] に設定します。
これらの両方のビューをフィルター処理して、リポジトリまたはアラートのサブセットに焦点を当てることができます。 進行中のすべてのアラートが最初に一覧表示されます。
セキュリティ キャンペーンの詳細を編集する
キャンペーンの名前、説明、期限、管理者を編集できます。 これは、現在のキャンペーン管理者が休暇中で、開発者向けの新しい連絡先を定義する必要がある場合に特に便利です。
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [ セキュリティ] をクリックします。
-
サイドバーの [Campaigns] で、キャンペーンの名前をクリックしてキャンペーン追跡ビューを表示します。
-
キャンペーン タイトルの行で、[] をクリックし、[Edit campaign] を選択します。
-
[Edit campaign] ダイアログで変更を行い、[Save changes] をクリックします。
変更はすぐに行われます。
セキュリティ キャンペーンを終了または削除する
アクティブなキャンペーンは 10 個に制限されています。 キャンペーンが完了したとき、または一時停止する場合は、キャンペーンを閉じる必要があります。 キャンペーンを閉じると、リポジトリの [Security] タブで開発者に表示されなくなりますが、キャンペーン追跡ビューを表示してベスト プラクティスを開発することはできます。 さらに、組織の [Security] タブのサイドバーからアクセスできる [Closed campaigns] ビューから、閉じたキャンペーンを再び開くことができます。
キャンペーンをテスト用に開いた場合は、キャンペーンを削除することもできます。 これにより、キャンペーンおよび関連するすべてのデータが完全に削除されます。
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [ セキュリティ] をクリックします。
-
サイドバーの [Campaigns] で、キャンペーンの名前をクリックしてキャンペーン追跡ビューを表示します。
-
キャンペーン タイトルの行で、[] をクリックし、必要なオプションを選択します。
- アクティブなキャンペーンの一覧から削除し、[Closed campaigns] ビューに表示する場合は [Close campaign]。
- キャンペーンを完全に削除する場合は [Delete campaign]。 [Delete campaign] ダイアログで、[Delete] をクリックして、キャンペーンを削除することを確認します。