成功するセキュリティ キャンペーンの要素
大規模にアラートを修正するための成功するセキュリティ キャンペーンは、次のような多くの機能を共通に持っています。
- 修復するセキュリティ アラートの関連グループを選ぶ。
- コード キャンペーンでは、可能な限り Copilotの自動修正 の提案を使って、開発者がアラートをより迅速かつ効果的に修復できるようにする。
- キャンペーン マネージャーがコラボレーション、レビュー、修正に関する質問に対応できるようにする。
- キャンペーンに含まれるアラートの種類に関する教育情報にアクセスできるようにする。
- 開発者がキャンペーンのセキュリティ アラートによって強調されている脆弱性について学習するため、GitHub Copilot チャット を使用できるようにする。
- 修正を目指すアラートの数を考慮して、キャンペーンの現実的な期限を定義する。
- コラボレーションを開発者チームに公開し、チームを組織に関与させる最適な方法を明らかにする。
開発者エクスペリエンスについては、「セキュリティ キャンペーンでのアラートの修正」を参照してください。
修復するセキュリティ アラートの選択
最初は、最も緊急性の高いアラートをすべて洗い出し、それらを修正するためのセキュリティ キャンペーンを作成しようと考えるかもしれません。 開発者が既に安全なコーディングについて十分に理解しており、潜在的な脆弱性の修復に熱心な場合、これは会社にとって成功するアプローチになる可能性があります。 ただし、安全なコーディング、漏えいしたシークレット、一般的な脆弱性に関する知識を蓄積する必要がある場合は、より戦略的なアプローチが効果的です。
コード キャンペーンのアプローチ例
クロスサイト スクリプティングの脆弱性に対する認識向上と修正を目的としたキャンペーンの場合、次のことを実行できます。
- OWASP Foundation のリソースを使って、リポジトリに開発者向けの教育コンテンツを作成する。「Cross Site Scripting (XSS)」(クロス サイト スクリプティング (XSS)) を参照してください。
autofix:supportedフィルターを使って、Copilotの自動修正 がサポートされている環境でこの脆弱性のすべてのアラートを修復するキャンペーンを作成する。- キャンペーンの説明に教育コンテンツへのリンクを含める。
- トレーニング セッションまたは他のイベントを開き、実際のバグを修正しながら、安全なコーディングについての自信を得るためのこの機会を強調します。
- キャンペーンの管理に割り当てられたセキュリティ チーム メンバーが、キャンペーン アラートを修正するために作成された pull request を確認し、必要に応じて協力できるようにする。
シークレット キャンペーンのアプローチ例
メモ
現在、secret scanning アラートのキャンペーンは パブリック プレビュー 段階であり、変更される可能性があります。
漏えいしたパスワードに対する認識向上と修正を目的としてキャンペーンの場合、次のことを実行できます。
- パスワードを安全に (たとえば、GitHub シークレットの形式で) 保存する方法について開発者向けの教育コンテンツを作成する。「GitHub シークレットの種類の概要」を参照してください。
- 漏えいしたパスワードに関するすべてのアラートを修復するキャンペーンを作成し、それにキャンペーンの説明の教育コンテンツへのリンクを含める。
- 必要に応じて連携しながら、シークレットの取り消しと適切なローテーションを確実に実施できるように、担当のセキュリティ チーム メンバーがキャンペーンを管理できるように確保する。
キャンペーン フィルター テンプレート
セキュリティ キャンペーンに含めるアラートを選ぶとき、セキュリティ アラート ページのフィルターのいずれかを使って、アラートのサブセットを定義できます。 または、キャンペーン テンプレートを選んで、一般的なニーズ用に事前に定義されたフィルターの 1 つ ("クロスサイト スクリプティング (CWE-79)" など) を使うこともできます。
キャンペーンの下書き
最初にキャンペーンの下書きを作成すると便利です。キャンペーンに含めるように設定されたアラートとキャンペーンの詳細が一覧表示され、公開前にキャンペーンのスコープについて共同作業することができます。 キャンペーンの下書きの作成に関するガイダンスは、「セキュリティ キャンペーンの作成と管理」を参照してください。
セキュリティ キャンペーンに関する制限
次の制限は、コード内のアラートを修復するために、バランスのとれた計画的なアプローチを採用することを奨励するためのものです。 一度に少数の対象を絞ったアラートのセットに対処する反復的なアプローチは、セキュリティ態勢の持続的で長期的な変化につながる可能性があります。
- 一度に最大 10 個のアクティブなセキュリティ キャンペーン (クローズしたキャンペーンに対する制限はありません)。
- 各キャンペーンには最大 1,000 件のアラートを含めることができます。
これらの制限を超えるキャンペーンの作成を選んだ場合、キャンペーンが制限内になるようにアラートは省略されます。 最近のプッシュを含むリポジトリ内のアラートは、優先的にキャンペーンに含められます。
キャンペーン マネージャーと連絡先リンクの指定
セキュリティ キャンペーンを作成するときは、1 人以上の "キャンペーン マネージャー" を選ぶ必要があります。 キャンペーン マネージャーは次のいずれかである必要があります。
- 組織所有者ロールまたはセキュリティ マネージャー ロールを持つユーザー。
- 組織所有者ロールまたはセキュリティ マネージャー ロールを持つチームのメンバー。
キャンペーン マネージャーの名前は、開発者がキャンペーンに参加するときに表示されます。 開発者とキャンペーン マネージャー間のコミュニケーションをサポートするために、キャンペーンの作成時に、GitHub Discussions または別のコミュニケーション チャネルへのリンクなどの連絡先リンクを提供することもできます。
アラートの修復率を高め、セキュリティ チームの知識を広げたい場合、これは開発者との協力関係を築くための重要な機会です。 キャンペーン マネージャーが問い合わせリンクを通じて質問に答え、難しい修正には共同で取り組めるようにするのが理想的です。 キャンペーン マネージャーは、キャンペーン全体を通じて修正の pull request を確認できるようにすることをお勧めします。
キャンペーンの issue を作成する
キャンペーンを作成するときに、キャンペーンに関係するすべてのリポジトリで GitHub issue を自動的に開くように選択できます。 これにより、チームのプロジェクト ボードで作業をより簡単に追跡、割り当て、管理できるようになります。 さらに、連絡先リンクや期限などのキャンペーンの詳細を更新すると、issue の本文は最新の情報で自動的に更新されます。 キャンペーンが期限に達するか、削除または終了されると、その issue に関するコメントが自動的に投稿されます。
これにより、開発者の既存のワークフロー内に、明確で最新のコンテキストが直接提供されるため、開発者の関与を促すのに役立ちます。 キャンペーンの issue の作成を自動化する方法については、「セキュリティ キャンペーンの作成と管理」を参照してください。
セキュリティ トレーニングとセキュリティ キャンペーンの組み合わせ
セキュリティ チームが安全なコーディングに関するトレーニングを開発者に既に行っている場合、開発者がトレーニング セッションのスキルを使用できるように選ばれたアラートを含むキャンペーンを作成することは、学習を強化するための優れた方法です。 正式なトレーニング プログラムがない場合でも、キャンペーンに含まれるセキュリティ脆弱性の種類、修正方法の例、修正のテスト方法に関する情報を提供するのは意味のあることです。 これにより、キャンペーン マネージャーは、基本的な質問に対する答えとして開発者にこれらのリソースを示すことができるので、キャンペーン マネージャーの役割が簡単になります。
OWASP Foundation は最も一般的な脆弱性について学習するための多くのリソースを提供しており、MITRE Corporation は一般的な弱点の詳細な一覧を持っています。「OWASP Foundation について」と「CWE について」を参照してください。
コードの脆弱性について学習するための AI サポートを提供する
GitHub Copilot Autofix は自動的にトリガーされ、各 code scanning アラートの解決策が提案されます。 ただし、開発者は、元のコードが安全でない理由と、修正が正しく、他のコンポーネントを損なわないことをテストする方法に関して、さらに情報を望むことがよくあります。
安全なコーディング、セキュリティ アラートの修正方法、修正プログラムのテストについて不明な点がある開発者にとって、GitHub Copilot チャットは重要なツールです。 Organization のすべての開発者が、IDE と GitHub の両方で Copilot にアクセスできることを確認します。「組織のメンバーに GitHub Copilot へのアクセスを許可する」を参照してください。
セキュリティ キャンペーンの開始と期限の定義に関する考慮事項
他のプロジェクトと同様に、開発者がセキュリティ キャンペーンに参加する意欲を失わないよう、現実的な期間を定義することが重要です。 会社が技術的負債を減らすためのより大きなキャンペーンの一環としてセキュリティ アラートを修正するのでない限り、ほとんどの開発者はアラートの修正に時間を割きません。 スケジュールされたタスクの隙間で開発者が見つけることのできる時間に基づいて、修復率を見積もる必要があります。 また、開発者が取り組んでいる可能性のある重要な会社の期限と、祝日を確認することも常に重要です。
次のステップ
-
[AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-managing-security-campaigns)