10月22日、Microsoft DevBlogsが「Introducing Agentic Autofix for code and dependencies」と題した記事を公開した。GitHub Advanced Security for Azure DevOpsにおいて、AIエージェントが脆弱性を自動修正する「Agentic Autofix」機能が導入されたことについて紹介されている。
脆弱性の「場所の特定」から「修正コードの生成」まで自動化
セキュリティアラートを受け取っても、実際に修正コードを書くのは開発者の仕事だった。Copilot Autofix for GitHub Advanced Security for Azure DevOpsが新たにエージェント基盤で動作するようになり、その一歩を自動化する。
なお、GitHub Advanced Security for Azure DevOps(GHAzDO)はGitHub.com向けのGitHub Advanced Security(GHAS)と同等の機能をAzure DevOps環境に提供するものだ。今回の「Agentic Autofix」はその一機能として追加された。
従来のAutofixはCodeQLの限られたルールに対してのみ修正案を生成できた。今回の更新では以下の2点が追加されている。
- 依存パッケージの脆弱性に対する修正生成
- サードパーティのコードスキャンツールが検出したアラートへの対応
リポジトリの文脈を読んで修正案を生成する
単に「修正コードを貼り付ける」だけでは、プロジェクト固有のコーディング規約や承認済みのパッケージ更新手順を無視した変更になりかねない。
Agentic AutofixはCopilotコーディングエージェントを使い、リポジトリの関連コンテキストを探索した上で修正案を生成する。このコーディングエージェントはGitHub Copilot Workspaceをベースとしており、コードベース全体を参照しながらタスクを遂行する設計になっている。さらに、.githubまたは.agentsディレクトリに配置したカスタムインストラクションやスキルファイルを参照できる。
具体的には次のような使い方ができる。
- インストラクションファイルで「チーム承認済みの入力バリデーションヘルパーを使うこと」と指示する
- 依存更新スキルで「パッケージ更新手順と互換性チェックの方法」を記述する
エージェントはこれらの情報をもとに修正案を精査・改善してからプルリクエストを提案する。マージの最終判断は依然として開発者側が持つ。
依存パッケージの脆弱性修正:トリアージも自動化
依存スキャンが脆弱なパッケージを検出しても、従来は「どのパッケージを更新すればいいか」という情報止まりで、実際の変更作業は開発者が手動で行う必要があった。
今回、脆弱性アラートの画面から「Generate fix」を選択するだけで、Agentic Autofixがプルリクエストと変更の説明を自動生成するワークフローが追加された。
どのアラートから手をつけるべきか:EPSSとスコープ情報
深刻度(severity)だけでは修正の優先順位を正確に判断しにくい。今回の更新では2つの指標が追加されている。
- EPSS(Exploit Prediction Scoring System):実際に悪用される可能性をパーセンタイルで表示する。数値が高いほど、他の脆弱性と比較して悪用予測の相対順位が高いことを示す。なお、これは「攻撃される確率」ではなく「相対的なランク」である点に注意が必要だ。広く普及しているCVSSが脆弱性そのものの深刻度を静的なスコアで表すのに対し、EPSSは「現実の攻撃トレンド」に基づいた動的な悪用予測指標であり、優先順位付けの補助として使い分けるのが一般的だ。
- 開発用依存検出:対象パッケージが実行時依存(runtime)か開発時依存(development)かを判別する。「Runtime」スコープフィルターと高いEPSSパーセンタイルを組み合わせることで、優先してトリアージすべきアラートに絞り込める。
利用方法と注意点
組織・プロジェクト・リポジトリの各レベルから、コードスキャンと依存スキャン両方に対してボタン一つでAgentic Autofixを有効化できる。有効化した後は、リポジトリレベルで個別アラートを選択して修正を依頼する形になる。
現在、limited public previewに参加中の組織では既に利用可能だ。パブリックプレビューは11月を予定しており、記事公開時点(10月22日)では今後2〜3週間でのロールアウトが予告されている。読者が本記事を読む時期によっては、既にパブリックプレビューが開始されている可能性もある。
運用上の注意点として以下が明記されている。
- 修正生成にはAIクレジットを消費する(Autofixを有効化しただけでは自動生成は走らない)
- すべてのリクエストで修正案が生成されるわけではない
- AIが生成した提案は正確性を人間がレビューしてからマージすること
詳細はIntroducing Agentic Autofix for code and dependenciesを参照していただきたい。
