Skip to main content

セキュリティ アラートの大規模な修正に関するベスト プラクティス

開発者の関心を引き、安全なコーディングの理解を深めるのに役立つ、成功するセキュリティ キャンペーンの作成方法に関するガイダンス。

この機能を使用できるユーザーについて

GitHub Advanced Security が有効になっている GitHub Enterprise Cloud の組織

Note

セキュリティ キャンペーンは現在パブリック プレビュー段階にあり、変更される可能性があります。

成功するセキュリティ キャンペーンの要素

大規模にアラートを修正するための成功するセキュリティ キャンペーンは、次のような多くの機能を共通に持っています。

  • 修復のために関連するセキュリティ アラートのグループを選択する。
  • キャンペーンのマネージャーが修正に関するコラボレーション、レビュー、質問に対応できるようにする。
  • キャンペーンに含まれるアラートの種類に関する教育情報にアクセスできるようにする。
  • 開発者がキャンペーンのセキュリティ アラートによって強調されている脆弱性について学習するため、GitHub Copilot Chat を使用できるようにする。
  • 修正を目指すアラートの数を考慮して、キャンペーンの現実的な期限を定義する。
  • コラボレーションを開発者チームに公開し、チームを organization に関与させる最適な方法を明らかにする。

開発者エクスペリエンスについては、「セキュリティ キャンペーンでのアラートの修正」を参照してください。

修復するセキュリティ アラートの選択

最初は、最も緊急性の高いアラートをすべて洗い出し、それらを修正するためのセキュリティ キャンペーンを作成しようと考えるかもしれません。 開発者が既に安全なコーディングについて十分に理解しており、潜在的な脆弱性の修復に熱心な場合、これは会社にとって成功するアプローチになる可能性があります。 しかし、安全なコーディングと一般的な脆弱性に関する知識を蓄える必要がある場合は、さらに戦略的なアプローチの方がよい結果が得られます。

たとえば、クロスサイト スクリプティングの脆弱性に関するアラートが多数ある場合は、次のような方法があります。

  • OWASP Foundation のリソースを使って、リポジトリに開発者向けの教育コンテンツを作成します。「クロスサイト スクリプティング (XSS)」を参照してください。
  • この脆弱性に関するすべてのアラートを修復するキャンペーンを作成し、それにキャンペーンの説明の教育コンテンツへのリンクを含めます。
  • トレーニング セッションまたは他のイベントを開き、実際のバグを修正しながら、安全なコーディングについての自信を得るためのこの機会を強調します。
  • キャンペーンの管理に割り当てられているセキュリティ チーム メンバーが、必要に応じて共同で、キャンペーン アラートを修正するために作成された pull request をレビューできるようにします。

キャンペーン フィルター テンプレート

セキュリティ キャンペーンに含めるアラートを選ぶとき、セキュリティ アラート ページのフィルターのいずれかを使って、アラートのサブセットを定義できます。 または、キャンペーン テンプレートを選んで、一般的なニーズ用に事前に定義されたフィルターの 1 つ ("クロスサイト スクリプティング (CWE-79)" など) を使うこともできます。

セキュリティ キャンペーンに関する制限

次の制限は、コード内のアラートを修復するために、バランスのとれた計画的なアプローチを採用することを奨励するためのものです。 一度に少数の対象を絞ったアラートのセットに対処する反復的なアプローチは、セキュリティ態勢の持続的で長期的な変化につながる可能性があります。

  • 一度に最大 10 個のアクティブなセキュリティ キャンペーン (クローズしたキャンペーンに対する制限はありません)。
  • 各キャンペーンには、最大 100 個のリポジトリに分散した最大 1,000 個のアラートを含めることができます。

これらの制限を超えるキャンペーンの作成を選んだ場合、キャンペーンが制限内になるようにアラートは省略されます。 最近のプッシュを含むリポジトリ内のアラートは、優先的にキャンペーンに含められます。

キャンペーン マネージャーの役割の定義

セキュリティ キャンペーンを作成するときは、"キャンペーン マネージャー" を選ぶ必要があります。 キャンペーン マネージャーには、organization 所有者またはセキュリティ マネージャーの役割が必要です。

開発者がキャンペーンに参加すると、キャンペーン マネージャーの名前が表示されます。 アラートの修復率を高め、セキュリティ チームの知識を広げたい場合、これは開発者との協力関係を築くための重要な機会です。 キャンペーン マネージャーは、キャンペーン全体を通して、質問に回答し、難しい修正について協力し、pull request の修正をレビューできるのが理想的です。

セキュリティ トレーニングとセキュリティ キャンペーンの組み合わせ

セキュリティ チームが安全なコーディングに関するトレーニングを開発者に既に行っている場合、開発者がトレーニング セッションのスキルを使用できるように選ばれたアラートを含むキャンペーンを作成することは、学習を強化するための優れた方法です。 正式なトレーニング プログラムがない場合でも、キャンペーンに含まれるセキュリティ脆弱性の種類、修正方法の例、修正のテスト方法に関する情報を提供するのは意味のあることです。 これにより、キャンペーン マネージャーは、基本的な質問に対する答えとして開発者にこれらのリソースを示すことができるので、キャンペーン マネージャーの役割が簡単になります。

OWASP Foundation は最も一般的な脆弱性について学習するための多くのリソースを提供しており、MITRE Corporation は一般的な弱点の詳細な一覧を持っています。「OWASP Foundation について」と「CWE について」を参照してください。

セキュリティの脆弱性について学習するための AI サポートの提供

GitHub Copilot Autofix は自動的にトリガーされ、各セキュリティ アラートに対する解決策を提案します。 ただし、開発者は、元のコードが安全でない理由と、修正が正しく、他のコンポーネントを損なわないことをテストする方法に関して、さらに情報を望むことがよくあります。

GitHub Copilot は、安全なコーディング、セキュリティ アラートの修正方法、修正のテストに関する質問がある開発者にとって重要なツールです。 organization のすべての開発者が、IDE と GitHub の両方で Copilot にアクセスできることを確認します。「組織のメンバーに Copilot へのアクセスを付与する」を参照してください。

Tip

GitHub Advanced Security スキルは、セキュリティ アラートに関する質問に答えるための追加のコンテキストを Copilot Chat に提供します。

セキュリティ キャンペーンの開始と期限の定義に関する考慮事項

他のプロジェクトと同様に、開発者がセキュリティ キャンペーンに参加する意欲を失わないよう、現実的な期間を定義することが重要です。 会社が技術的負債を減らすためのより大きなキャンペーンの一環としてセキュリティ アラートを修正するのでない限り、ほとんどの開発者はアラートの修正に時間を割きません。 スケジュールされたタスクの隙間で開発者が見つけることのできる時間に基づいて、修復率を見積もる必要があります。 また、開発者が取り組んでいる可能性のある重要な会社の期限と、祝日を確認するのも、常に価値があることです。

次のステップ