Microsoftは2月16日、Educator Developer Blogの記事「GitHub Copilot Update: New AI Model That Also Filters Out Security Vulnerabilities」において、AIを利用したコーディング支援ツール「GitHub Copilot」の最新動向を発表した。最新のアップデートでは、AIモデルの「Codex」が改善され、より正確で迅速なコードの提案が可能になったという。また、安全でないコードパターンをAIがリアルタイムで検出して警告する脆弱性フィルタリングシステムが導入されたことも伝えられている。

GitHub Copilot Update: New AI Model That Also Filters Out Security Vulnerabilities

GitHub Copilotは、GitHubとOpenAIが共同で開発したAIによるコーディング支援ツール。開発者が書いたコードのコンテキストをAIが理解し、次に書くコードの候補やアルゴリズムの実装の提案を行ってくれる。Visual StudioやVisual Studio Code、JetBrains IDEなどのエディタの拡張機能として利用することができる。

Microsoftによると、最新のアップデートではCodexモデルが更新されてより優れたコード生成が可能になったほか、Fill-in-the-Middle (FIM) と呼ばれるモデルの採用によってコンテキストの理解度が向上しているという。また、軽量なクライアント側モデルが改善されたことで全体的なコード提案の受け入れ率が向上し、不要な提案が4.5%削減されたと説明されている。

新しい脆弱性フィルタリングシステムは、脆弱性につながりやすい安全でないコードパターンが入力された場合に、それをAIがリアルタイムに検出して警告し、修正案の候補を提示するというもの。例えば、資格情報のハードコーディングや、SQLインジェクション、パスインジェクションといったよくあるパターンは、GitHub Copilotによって検出され、排除することが可能だという。

以前から一般的に使われている静的な脆弱性検出ツールは、リポジトリ全体のコードを分析して脆弱性の発生しやすいパターンを検出する。この方法は、プロジェクト全体のコードを見渡せるためにコード間の依存関係を含めて確実な分析を行えるという利点がある。その一方、ビルドやリリースといった全てのコードが出そろったタイミングでしか正確な分析を行えないというデメリットもあった。

GitHub Copilotでは不完全な状態のコードでも脆弱なパターンを検出することが可能なため、開発者の生産性の大幅な向上につながるとのことだ。