GitHubは3月20日(米国時間)、「Found means fixed: Introducing code scanning autofix, powered by GitHub Copilot and CodeQL - The GitHub Blog」において、GitHub Advanced Securityの顧客向けにコードの脆弱性を自動的に修正する機能を導入したと発表した。この機能はGitHub CopilotとCodeQLを利用しており、JavaScript、Typescript、Java、Pythonの既知の脆弱性の3分の2以上を編集せずに修正できるという。

  • Found means fixed: Introducing code scanning autofix、powered by GitHub Copilot and CodeQL - The GitHub Blog

    Found means fixed: Introducing code scanning autofix, powered by GitHub Copilot and CodeQL - The GitHub Blog

コードスキャンによる自動修正

今回発表されたコードスキャンによる自動修正機能はパブリックベータ版とされる。サポート対象のプログラムコードから脆弱性を発見した場合、修正提案が表示され、提案の受け入れ、編集、却下を選択することができる。GitHubはYouTubeにてその手順を解説している(参考:「GitHub Advanced Security: Code scanning autofix - YouTube」)。

  • 提案された自動修正を受け入れる画面の例 - 引用:GitHub

    提案された自動修正を受け入れる画面の例  引用:GitHub

GitHubは同機能の詳細を「About autofix for CodeQL code scanning - GitHub Docs」にて解説している。同機能を有効にすると、GitHubはpullリクエストとCodeQLの分析からさまざまデータを大規模言語モデル(LLM: Large Language Model)に送信する。その応答から自動修正候補を提案コメントとして表示する。

コードが自動的に大規模言語モデルに送信されるため、情報漏洩のリスクを伴うと考えられるが、GitHubはGitHub Advanced Securityの使用条件を超えて顧客データを利用することはないとしている。また、大規模言語モデルのトレーニングには使用されない。

GitHubは今後、対象言語をC#、Goに拡大する予定。また、同機能を利用する開発者にディスカッション「Code scanning autofix: Preview Feedback and Resources · community · Discussion #111094 · GitHub」への参加を求めている。ユーザーはディスカッションへのフィードバックを通じて自動修正機能のさらなる向上に寄与できる。

同機能を試すにはGitHub EnterpriseのGitHub Advanced Security(有料)に加入する必要がある。組織がまだ加入していない場合、「GitHub Advanced Security - Contact - GitHub Resources」から無料トライアルのセットアップを問い合わせ可能。