セキュリティ キャンペーンを作成する
セキュリティ キャンペーンは、organization の [Security] タブから作成および管理されます。
次のいずれかを使って、キャンペーンに含めるアラートを選びます。
- キャンペーン テンプレート: キャンペーン テンプレートには、最も一般的なアラート選択用のフィルターが含まれています。 また、含まれるすべてのアラートの種類に対して GitHub Copilot Autofix がサポートされるという要件 (つまり、
autofix:supported
) もすべて含まれます。 - カスタム フィルター: カスタム フィルターを使ってキャンペーンを作成すると、キャンペーンのアラートを選ぶための独自の条件を定義できます。また、organization の特定のニーズに合わせてキャンペーンを調整できます。
In addition, you can use the REST API to create and interact with campaigns more efficiently and at scale. For more information, see REST API endpoints for security campaigns.
キャンペーンを作成する
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [ セキュリティ] をクリックします。
-
In the left sidebar, click Campaigns.
-
[Create campaign] をクリックしてから、次のオプションのいずれかを選びます。
- [From template] をクリックし、一覧から事前定義されたキャンペーン テンプレートを選びます。
- [From code scanning filters] をクリックし、フィルターを追加してキャンペーンのアラートのサブセットを定義します。 「便利なフィルターの例」を参照してください。
-
キャンペーンに含める一連のアラートをレビューし、必要に応じてフィルターを調整します。 選択できるアラート数は 1,000 件以下です。
-
キャンペーンのスコープに問題がなければ、[Save as] をクリックし、キャンペーンの下書きを作成するか、公開する前にキャンペーンの詳細の仕上げに直接進むかを選びます。
- 開始前にキャンペーンのスコープと詳細をレビューする場合、またはキャンペーンの実施に関するフィードバックを求める場合は、 [Draft campaign] をクリックします。
- キャンペーンを公開する予定であり、レビュー フェーズが必要ない場合は、 [Publish campaign] をクリックします。
-
キャンペーンの下書きを作成することを選んだ場合は、必要に応じて、キャンペーンの詳細を編集、保存、レビューします。
- キャンペーンのニーズに合わせて [Campaign name] と [Short description] を編集し、キャンペーンをサポートするすべてのリソースにリンクします。
- [Campaign due date] を定義し、キャンペーンの主要連絡先として 1 つ以上の [Campaign managers] を選択します。 キャンペーン マネージャーは、organization 内の所有者またはセキュリティ マネージャーであるユーザーまたはチームである必要があります。
- 必要に応じて、キャンペーン マネージャーに連絡するために、GitHub Discussions または別の通信チャネルへのリンクなど、[Contact link] を指定します。
- [下書きの保存] をクリックします。
- キャンペーンを公開する準備ができたら、右上隅にある [Review and publish] をクリックします。
-
[Publish campaign] ページで、キャンペーンの詳細をレビューまたは編集します。
- キャンペーンの名前
- 簡単な説明
- 期日
- キャンペーン マネージャー
- 連絡先リンク
-
必要に応じて、キャンペーンに含まれる各リポジトリでキャンペーンの issue を作成するには、[Publish campaign] ページの [Automations] で、[Create issues for NUMBER repositories in this campaign] の横のチェックボックスをオンにします。
-
[Publish 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
: セキュリティ重大度がクリティカルのアラートのみを表示します。
ヒント
検索フィールドでキーワード (keyword) の後にコロンを入力すると、有効なすべての値の一覧が表示されます (例: tag:
)。
CodeQL により実行されるルールと自動修正のサポートの詳細については、「既定のクエリ スイートのクエリ リスト」を参照してください。
アラートのフィルター処理について詳しくは、「セキュリティ アラートの大規模な修正に関するベスト プラクティス」と「セキュリティの概要でアラートをフィルター処理する」を参照してください。
セキュリティ キャンペーンを開始する
キャンペーンを作成すると、容量が許す限り、すべてのアラートが自動的に GitHub Copilot Autofix に送信されて処理されます。 これにより、pull request で検出されたアラートの提案が、新しいキャンペーンによって遅延されないようにします。 ほとんどの場合、作成できるすべての提案は 1 時間以内に準備ができていることがわかります。 ビジーな時間帯や特に複雑なアラートの場合は、時間がかかります。
セキュリティ キャンペーンを開始したことを開発者が知る方法
キャンペーンが開始されると、キャンペーンに含まれるリポジトリに対して書き込みアクセス権があり、そのリポジトリ内の "すべてのアクティビティ" または "セキュリティ アラート" の監視を購読しているユーザーに通知が送信されます。
自動通知の送信に加えて、新しいキャンペーンは、含まれる各リポジトリの [Security] タブのサイドバーに表示されます。 開発者エクスペリエンスの詳細については、「セキュリティ キャンペーンでのアラートの修正」を参照してください。
セキュリティ キャンペーンに対するエンゲージメントを高める方法
キャンペーンへのエンゲージメントを高める最善の方法は、アラート修復ために共同作業するチームに周知することです。 たとえば、エンジニアリング マネージャーと協力して、より平穏な開発期間を選択して、関連するトレーニング セッションでそれぞれが異なる種類のアラートに焦点を当てて一連のセキュリティ キャンペーンを実行できます。 その他のアイデアについては、「セキュリティ アラートの大規模な修正に関するベスト プラクティス」を参照してください。
セキュリティ キャンペーンの詳細を編集する
キャンペーンの名前、説明、期限、管理者を編集できます。
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [ セキュリティ] をクリックします。
-
In the left sidebar, click Campaigns.
-
キャンペーンの一覧からキャンペーン名をクリックすると、キャンペーン追跡ビューが表示されます。
-
キャンペーンのタイトル行で をクリックして、 [Edit campaign] を選びます。
-
[Edit campaign] ダイアログで変更を行い、[Save changes] をクリックします。
変更はすぐに行われます。
セキュリティ キャンペーンの終了、再開、削除
アクティブなキャンペーンは 10 個に制限されています。 キャンペーンが完了したとき、または一時停止する場合は、キャンペーンを閉じる必要があります。 "Closed" キャンペーン一覧では、すべての終了済みキャンペーンを引き続き表示できます。また、終了済みキャンペーンは再開することができます。
キャンペーンまたはそのデータを保持する必要がない場合は、削除できます。
キャンペーンを終了する
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [ セキュリティ] をクリックします。
-
In the left sidebar, click Campaigns.
-
終了するキャンペーンの右側にある をクリックして、 [Close campaign] を選びます。
終了済みキャンペーンを再開する
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [ セキュリティ] をクリックします。
-
In the left sidebar, click Campaigns.
-
キャンペーン一覧の上にある [Closed] をクリックして、終了済みキャンペーン一覧を表示します。
-
再開するキャンペーンの右側にある をクリックして、 [Reopen campaign] を選びます。
キャンペーンの削除
-
GitHub で、organization のメイン ページに移動します。
-
組織名の下で、 [ セキュリティ] をクリックします。
-
In the left sidebar, click Campaigns.
-
削除するキャンペーンの右側にある をクリックして、 [Delete campaign] を選びます。