
はじめに
こんにちは、エーピーコミュニケーションズ ACS事業部の田中です。
GitHub Advanced Seurityのコードスキャンやシークレットスキャンを活用していると、次のような状況に陥ることがあります。
・リポジトリのスキャンが終わり、表示されたセキュリティアラートの件数を見て頭を抱えた
・「いつか対応しないと」と思いながら、未解決のセキュリティアラート件数が徐々に増えている
このような状況に有効なのがSecurity Campaignsです。
Security Campaignsの機能でセキュリティアラートを脆弱性の重大度や種類などでグループ化したものがキャンペーンです。
「最低でも重要度Criticalの脆弱性だけは是正しよう」「次はSQLインジェクションを撲滅しよう」といった目的にあわせてキャンペーンを作成し、期限を設定することでアラートを集中的に解消することができます。

また、キャンペーンが作成と同時に対応するIssueを作成したり、(Copilot Autofixが有効であれば)アラートに対してAIによる修正提案を自動生成させることも可能です。
開発者がキャンペーンを確認する頃にはアラートを効率的に解消することができる状態を整えることができます。
心理的安全性を損なわない脆弱性の解消
ただ、アラート解消の手順を省略してくれる便利な機能とはいえ、期限が設けられたタスクがトップダウンで追加されることに、強制力や圧を感じる開発者もいるかと思います。
Security Campaigns自体に慣れていない活用初期や、脆弱性が含まれているコードに関わった開発者にとってはなおのことでしょう。
ここで重要なのが、Security Campaignsによって作成されるキャンペーンは開発者個人ではなく、セキュリティアラートが発生しているリポジトリに対して割り当てられることです。
「誰がこの脆弱性を生んだか」を特定して、その個人に修正を迫るものではありません。
「私たちのチームが管理するリポジトリに、これだけの改善余地がある」という状態を明確にし、チームで前向きに取り組むことができるようになっています。
実践を通して身に付くセキュリティオーナーシップ
Security Campaignsには「アラート解消の効率化」だけではなく「実践を通じたセキュリティ教育」という側面を持ちます。
座学で「クロスサイトスクリプティング(XSS)とは何か」を学ぶよりも、自分たちが書いている実際のコード上でアラートが表示され、それを修正する過程のほうが学習効果は高くなるでしょう。
Copilot Autofixの修正提案には「なぜこのコードが危険なのか」「どう書けば安全なのか」といった内容も含まれるので、効率的なOJT(On-the-Job Training)と捉えることもできます。

活用初期は「キャンペーンが作成されたから修正する」という受動的な姿勢だった開発者が、知識と経験が蓄積されるにつれて「最初から脆弱性を作り込まないコード」を書くようになり、キャンペーンの作成を待たずにセキュリティアラートを自発的に解消するような動きも出てくれば大成功と言えるでしょう。
セキュリティ担当者に指摘されずとも開発チームが自律的にプロダクトの安全性を担保するような、開発者がセキュリティにオーナーシップを持つ文化の醸成こそが目指すべきゴールです。
Security Campaignsは単なる脆弱性のしらみ潰しのための機能ではなく、セキュリティに関する開発者の意識や組織の文化をアップデートするためのプロセスなのです。
最後に
Security Campaignsを含むGitHub Advanced Security(GitHub Code Security / GitHub Secret Protection)は30日間の無料トライアルも可能です。
まずは規模が小さいリポジトリを対象にGitHub Advanced Securityの有用性を体験してみませんか?
弊社では、GitHub Advanced SecurityをはじめとしたGitHubソリューションの導入支援を行っております。
「組織全体への導入・展開をサポートしてほしい」「設定のベストプラクティスが知りたい」といったご要望にお応えします。