Copilot Autofixを使えば、開発者やセキュリティチームは新たな脆弱性をコードに持ち込むことなく、既存のセキュリティリスクを迅速かつ確実に修正できます。
開発者は、かつてない速さでソフトウェアをリリースし、新機能を早期かつ頻繁に提供しています。しかし、セキュアなコードを書こうと最善を尽くしても、ソフトウェアの脆弱性が意図せず開発中に入り込んでしまい、現在もセキュリティ侵害の主な原因となっています。さらに、多くの開発者にとって、セキュリティの必須要件は理解しづらく、実装することが難しいため、セキュリティの観点から望ましい形になることが難しく、結果としてより多くの脆弱性がそのままリリースまで残ってしまいます。
静的解析のツールは脆弱性を検出できますが、根本的な問題には対処しません。修復にはセキュリティの専門知識と時間が必要ですが、この貴重な2つの要素は決定的に不足しています。言い換えれば、脆弱性を見つけることが問題ではなく、脆弱性を修正することが問題なのです。
そこで本日、GitHub Advanced Security(GHAS)のCopilot AutofixでAIが支援する修正の一般提供を開始することを発表します。Copilot Autofixはコードに含まれる脆弱性を分析し、その重要性を説明し、脆弱性を発見するとすぐに開発者が修正できるようコードの提案を行います。公開ベータのテストでは、開発者がコードの脆弱性を修正する際に、手作業で修正するより3倍以上速く修正できたことがわかりました。これは、AIエージェントがセキュアなソフトウェア開発を劇的に効率化し、高速化できることを示す強力な例です。
開発者は、プルリクエストでCopilot Autofixを使用し、コードから新たな脆弱性を排除し、既存の脆弱性を修正して、既存のセキュリティ負債を削減することもできます。
詳しく見ていきましょう。
すでにGitHub Enterprise CloudのGHASをお使いであれば、Copilot AutofixはそのGHASサブスクリプションに含まれています。GHASのコードスキャン設定では既にCopilot Autofixが有効化されています。GHASをご利用でない場合は、こちらで詳細情報を確認いただくか、GitHubの担当者にトライアルについてご相談ください。 |
新しい脆弱性をコードから排除
2024年3月に公開ベータ版として発表されて以来、開発者はプルリクエストでCopilot Autofixを使用し、新しいコードの脆弱性を迅速に修正し、製品コードにマージされて顧客に影響を与えるのを防ぐことができるようになっています。SQLインジェクションやクロスサイトスクリプティングなど、数十種類のコード脆弱性に対して修正が生成でき、開発者はこれらの修正提案をプルリクエスト内で却下、編集、またはコミットすることができます。
2024年5月から7月まで公開ベータ版を利用したお客様のデータによると、Copilot Autofixは検出から修正までの時間を劇的に短縮しました。
GitHub Advanced Securityを有効にしたリポジトリ上のプルリクエストでCodeQLが新たに発見したコードスキャンアラートに基づいています。
- 3倍速く:プルリクエスト時のアラート修正を自動コミットするまでの開発者の中央値は28分で、手動で同じアラートを解決するのに1.5時間かかっていたのに比べ、3倍速くなっています。
- 7倍速く:クロスサイトスクリプティングの脆弱性では、22分で修正され、手動での修正には約3時間かかっていました。
- 12倍速く:SQLインジェクションの脆弱性では、18分で修正され、手動では3.7時間かかっていました。
Copilot Autofixのベータ版初期ユーザーからも、効率性と生産性の劇的な向上が報告されています:
Copilot Autofixを導入してから、セキュリティ関連のコードレビューにかかる時間が60%削減され、開発生産性全体が25%向上しました」と、Optum社のプリンシパルエンジニアであるケビン・クーパー氏は述べています。
「セキュリティが重要な医療分野において、業界で実証済みのソリューションを迅速に採用できるのは大きな利点です。このプロアクティブなセキュリティアプローチにより、潜在的な問題を未然に防ぎ、月に数千時間の修正作業を節約することができます。Optum社 プリンシパルエンジニア、ケビン・クーパー氏
セキュリティ負債の削減
GitHub Copilotが開発者のコーディングを加速させるように、Copilot Autofixも修正のスピードを向上させ、セキュリティチームが既存の脆弱性、いわゆるセキュリティ負債の削減を進めることを可能にします。
脆弱性は放置しても無くならず、放置されればされるほど、修正が困難でコストがかかるようになります。ソフトウェア開発者が、しばらく見ていないコードや馴染みのないコードの脆弱性を修正するように求められた場合、周囲のコードを評価し、手動で修正を試みるのに数時間かかることがあります。Copilot Autofixはこの負担を大幅に軽減し、開発者が古い脆弱性をより迅速かつ確実に修正できるようにします。
使い方は簡単です。既存のコードの脆弱性に対してCopilot Autofixを起動するには、GHASのコードスキャンアラートで「Generate fix」ボタンを押すだけです。Copilot Autofixはコードと脆弱性を評価し、レビュー用の説明とコード提案を返します。開発者はその後、「Create PR with fix」ボタンを押して、アラートを修正するコード変更を含む新しいプルリクエストを作成できます。Copilot Autofixを使用すれば、優先順位付けが難しい低・中程度の脆弱性アラートを含め、数年間蓄積したセキュリティ負債をわずか数クリックで解消できます。
Copilot Autofixは、煩雑なセキュリティタスクを処理し、既存および新規のコードが可能な限り常にセキュアであることを保証します。脆弱性を含むコードには直ちにフラグが立てられ、コードの変更が自動的に推奨されます。このおかげで、当社のチームは時間を自由に使えるようになり、より戦略的な取り組みに集中できるようになりました。
Otto (GmbH & Co KG)社 セキュリティ担当コミュニティマネージャ、マリオ・ランドグラフ氏
Copilot Autofixの使用例
セキュリティの専門家でない開発者にとって、Copilot Autofixは、コードレビュー中にセキュリティチームの専門知識をすぐに手元に置いているかのような存在です。「Copilot Autofixは単に脆弱性にフラグをつけるだけではなく、特定のアクションが必要な理由とその実装方法を説明し、問題解決をより身近なものにしています」とOptum社のクーパー氏は述べています。
Copilot Autofixの舞台裏では、CodeQLエンジン、GPT-4o、およびGitHub Copilot APIとヒューリスティックの組み合わせを活用してコード提案が生成されます。Copilot Autofixは、CodeQL分析とフローパス周辺のコードスニペットを含むソースに基づいてLLMプロンプトを作成します。
GitHub Enterprise Cloudをご利用のGHASのお客様は、デフォルトでCopilot Autofixが有効になっています。GHAS製品にご興味のあるお客様は こちら からお問い合わせいただくか、GitHubの営業担当までお問い合わせください。 |
オープンソースのセキュリティを強化
Copilot Autofixはプライベートリポジトリの脆弱性修正に必要な時間と労力を削減しますが、オープンソースの脆弱性についてはどうでしょうか?Log4jで見られたように、どこかに脆弱性があると、それがすぐにあらゆる場所に広がる可能性があります。GitHubは、オープンソースコミュニティのグローバルなホームとして、メンテナーが脆弱性を検出し、修正することで、オープンソースソフトウェアが誰にとってもより安全で信頼性の高いものになるよう支援する唯一の立場にあります。私たちは、オープンソースソフトウェアに関しては責任のある利用者でありながら、そのコミュニティに貢献することが極めて重要であると強く信じています。そのため、オープンソースのメンテナーは、GitHubのコードスキャン、シークレットスキャン、依存関係管理、脆弱性非公開報告ツールを無料で利用できるようにしています。そして9月からは、プルリクエストにおけるCopilot Autofixをこのリストに加え、すべてのオープンソースプロジェクトに無料で提供できることを嬉しく思います。
迅速な対応と修正
ソフトウェアセキュリティの責任が引き続き開発者の肩にかかっている一方で、AIエージェントがその負担を大いに軽減できると私たちは信じています。熟練したセキュリティの人材は不足していますが、Copilot Autofixがあれば、すべての開発者が必要なときにセキュリティの専門知識を享受できます。セキュリティは、ソフトウェア開発と同義のものとなるのです。
そして、これはまだ始まりに過ぎません。GitHub Copilot WorkspaceからGHASまで、私たちは、AIが単に支援するだけでなく、生産性やイノベーションからセキュリティ、リスク軽減に至るまで、ビジネスを変革する未来を目指しています。GHASでは、AIを活用してコードの脆弱性を修正するだけでなく、シークレットスキャンの範囲と精度を向上させ、新たなワークフローで大量のセキュリティ負債を抱える組織にも対応できるようにしており、すべてが開発者に馴染みのあるプラットフォーム上で実現されます。
Copilot Autofixにより、”Found means fixed” (脆弱性が見つかることが修正されたことと同じ意味を持つ)というビジョンに一歩近づくことができました。