Google DeepMindは10月6日(米国時間)、新しいAIエージェント「CodeMender」に関する研究の初期成果を公開した。CodeMenderはコードのセキュリティを自動的に強化する仕組みを備えている。

リアクティブとプロアクティブな対応を組み合わせた「CodeMender」

ソフトウェアの脆弱性は、従来の自動化手法(ファジングなど)を用いても、開発者が発見・修正するのは困難かつ時間を要しており、これまで同社はBig SleepOSS-FuzzといったAIベースの取り組みで、テストされたソフトウェアにおいても新たなゼロデイ脆弱性を発見できることを示してきた。

しかし、AIによる脆弱性検出が進化するにつれ、人間だけで対応するのはますます難しくっていると指摘。CodeMenderはこうした課題を解決するため、包括的なアプローチを採用している。

新たな脆弱性を即座に修正するリアクティブ(受動的)な対応と、既存コードを再構築して安全性を高め、脆弱性のクラスそのものを排除するプロアクティブ(能動的)な対応を組み合わせている。

開発発をスタートさせてから半年で、すでにオープンソースプロジェクトに72件のセキュリティ修正をアップストリームし、対象コードは最大で450万行に及んでいるという。CodeMenderにより、品質の高いセキュリティパッチを自動生成・適用することで開発者が本来の業務に集中できるよう支援する。

「Gemini Deep Think」の推論能力を活用

CodeMenderは「Gemini Deep Think」モデルの推論能力を活用し、複雑な脆弱性をデバッグ・修正できる自律型エージェントとして動作。そのため、CodeMenderにはコード変更前に論理的に推論し、変更後に自動検証するためのツール群が搭載されており、修正が正しく、リグレッション(後退)を引き起こさないことを保証するとのこと。

  • CodeMenderの脆弱性修正プロセス

    CodeMenderの脆弱性修正プロセス

LLM(大規模言語モデル)は急速に進化しているが、コードセキュリティの誤りは高コストになり得ることから、CodeMenderの自動検証プロセスは修正が根本原因を解決し、機能的に正しく、リグレッションを起こさず、スタイルガイドに準拠している場合のみ、人間によるレビューに回す。研究の一環として、CodeMenderがより効果的にコードを推論・検証できる新技術やツールも開発。主な要素は以下の通り。

  • 高度なプログラム解析
    静的解析、動的解析、差分テスト、ファジング、SMTソルバーを含むツールを開発。コードパターン、制御フロー、データフローを体系的に精査し、セキュリティ欠陥や設計上の弱点の根本原因を特定する。

  • マルチエージェントシステム
    特定の問題側面に対応する専用エージェントを開発。例えば、CodeMenderはLLMベースの批評ツールを用いて、元のコードと修正後コードの差異を検証し、リグレッションを防ぎ、必要に応じて自己修正する。

今後の見通し

また、脆弱性を効果的に修正し、再発を防ぐため、CodeMenderはデバッグ作業を支援したり、ソースコードブラウザなどを使って根本原因を特定したりしてパッチを作成。さらに、安全なデータ構造やAPIを使うよう既存コードを積極的に書き換える機能も備える。

現時点でCodeMenderが生成したパッチは、人間の研究者によるレビューを経てアップストリームに送られる。すでに複数の重要なオープンソースライブラリにパッチを提出し、多くが受け入れられており、今後も品質を確保しつつ、オープンソースコミュニティからのフィードバックに体系的に対応するという。

加えて、重要なオープンソースプロジェクトの保守に対し、CodeMender生成パッチを提供する予定だ。これらのプロセスを通じてフィードバックを反映し、最終的にすべての開発者が利用できるツールとして公開することを目指す。そのほか、今後数カ月で技術論文やレポートとして詳細な手法や成果の発表を予定している。