CodeMender の概要

高度な AI モデルのリリースにより、コードの脆弱性に対する懸念が広まりました。攻撃者がエクスプロイトを生成する新しい機能にアクセスできるようになるにつれて、攻撃者が脆弱性を悪用する前に、セキュリティ チームは脆弱性を事前に発見して修正するという大きな時間的プレッシャーにさらされています。

CodeMender は、コードベースの深層の脆弱性を検出、検証、修正できる AI コード セキュリティ エージェントです。CodeMender は、Google DeepMind が設計したプロンプト、スキル、オーケストレーション ロジックを使用して、LLM の周囲にファインチューニングされたハーネスをラップし、モデルをコード セキュリティに特化したエージェント システムに変換します。

仕組み

CodeMender は、コードが多数の言語とシステムタイプにまたがる最新の企業環境の規模と多様性に対応しています。

  • エージェントがガイドする LLM を使用してコードベースをスキャンし、セキュリティ上の欠陥にモデルを集中させるために、特別なツールとプロンプト エンジニアリングを活用して脆弱性を検出 します。または、外部のセキュリティ スキャンツールから脆弱性のリストをインポートすることもできます。
  • コードをビルドし、検出された脆弱性を悪用して、悪用可能かどうかを検証することで、脆弱性を検証 します。これにより、確認済みの脆弱性の優先順位付けに役立ち、誤検知率が低下します。
  • コードベースの言語と互換性のあるパッチを生成してテストすることで、脆弱性を修正 します。

3 つのステージすべてで、CodeMender にコンテキストを提供して、アプリケーションと脅威モデルのニュアンスを考慮できるようにします。LLM と CodeMender のファインチューニングされたハーネスを組み合わせることで、LLM のみを使用して脆弱性を検出して修正する場合よりも高品質の結果が得られます。

システム アーキテクチャ

ユーザーの視点から見ると、CodeMender システムは次の 2 つのコンポーネントで構成されています。

  • エージェント: コアビジネス ロジックと推論を実行するホスト型のマルチエージェント システム。
  • クライアント: マシンで実行されるクライアント。CLI(コマンドの発行と出力の表示)とデーモン(エージェントに代わってコマンドを実行する)の両方として機能します。ローカル プロセスレベルのサンドボックス内で分離して、コードの安全なコンパイル、テストの実行、脆弱性の検証を行うことができます。

対応する言語とフレームワーク

CodeMender は、C/C++、Go、Java、Python、TypeScript / JavaScript、Rust、Ruby など、主要なプログラミング言語の主要な脆弱性タイプをサポートしています。また、これらの言語の標準ライブラリや、一般的なエンタープライズ フレームワーク(HTML/CSS、Django、Flask、React、Spring Boot、Express など)も幅広くサポートしています。

サポートされている脆弱性タイプは、アプリケーション ロジック、データ処理、メモリ管理、認証制御フローなど、ソフトウェアのセキュリティ上の欠陥の幅広い範囲をカバーしています。

サポートされているモデル

CodeMender は次のモデルをサポートしています。

クリックして、サポートされているモデルを開く

CodeMender CLI コマンドを実行するときにモデルを指定するには、モデルを指定するをご覧ください。

サポートされるリージョン

CodeMender は世界中でご利用いただけます。

トークンの使用状況をトラッキングする

CodeMender では、コマンドの実行中のライブ ステータス行と、コマンドが正常に完了したときの 1 行の概要の 2 か所でトークンの消費量が表示されます。カウントには、現在のセッションの入力トークン、出力トークン、合計トークンが含まれます。

ライブ ステータス行

cm findcm fixcm verifycm session resume のいずれかが実行されているときに、--compact フラグを渡すと、エージェントの動作に応じて更新されるローリング ステータス行が表示されます。

cm find ./src/auth/ --compact

ステータス行には、セッションの累積合計が表示されます。

Tokens: 40k in / 12k out / 60k total

再開されたセッションは、前回の実行が終了したところからカウントを続けます。total カウントにはモデルの内部推論トークンが含まれる場合があるため、in + out を超えることがあります。

終了の概要

コマンドが正常に終了し、少なくとも 1 つのツールステップが実行された場合、CodeMender は経過時間とトークンの合計を含む 1 行の概要を出力します。

 Completed 14 tool steps in 3m 42s | Tokens: 40k in / 12k out / 60k total

課金対象のトークン使用量

プロジェクト全体の累積課金対象トークン使用量と費用傾向を表示するには、Cloud Billing で請求レポートと費用傾向を表示するをご覧ください。 Google Cloud

CLI の使い方

スキャンを開始するには、CLI ツールを設定してワークスペースを初期化します。

前提条件

CodeMender CLI を初期化する前に、環境が正しく準備されていることを確認してください。

  • Google Cloud プロジェクトを設定する: 必要な API と IAM ロールを使用して Google Cloud プロジェクトを設定します。
  • CodeMender CLI をダウンロードする: オペレーティング システム用の CodeMender CLI バイナリをダウンロードしてインストールします。
  • Google Cloud 認証情報を構成する: CLI を認証するように Google Cloud アプリケーションのデフォルト認証情報(ADC)を構成します。
  • ソースコードをプロビジョニングする: スキャンするプロジェクトのソースコードをワークスペースにクローンまたはコピーします。
  • サンドボックスを構成する: サンドボックス環境のディレクトリ マウント、ネットワーク アクセス プロファイル、セキュリティ例外を定義します。

モデルを指定する

デフォルトでは、CodeMender は Gemini 3.5 Flash を使用します。デフォルトのモデルをオーバーライドするには、対応するモデル ID を指定して --model フラグを渡します。

  • Gemini 3.5 Flash(デフォルト): --model gemini-3.5-flash
  • Gemini 3.1 Pro プレビュー: --model gemini-3.1-pro-preview
  • Gemini 3 Flash プレビュー: --model gemini-3-flash-preview

--model フラグは次のコマンドでサポートされています。

  • cm find
  • cm verify
  • cm fix

これらのコマンドのいずれかを実行するときにモデルを指定するには、次の構文を使用します。

cm COMMAND TARGET --model MODEL_NAME

セキュリティとデータ プライバシー

次のセクションでは、CodeMender のセキュリティ モデル、データ保持ポリシー、アクセス制御について説明します。

CodeMender はどのようなデータをクラウドに送信しますか?

CodeMender を使用すると、ローカル CLI ツールがコードへのアクセスを仲介するため、ソースコード リポジトリ全体が Google のサーバーにアップロードされることはありません。また、ホスト型エージェントが独自にクローンを作成することもありません。

代わりに、CLI は Google がホストするエージェントに送信するデータを厳密にローカライズします。このデータは次のとおりです。

  • ターゲット ファイルの内容またはコード スニペット、脆弱性情報、提案されたパッチ、コマンド実行結果。
  • メタデータ、診断、エラー、使用状況テレメトリー(消費されたトークンやコマンドの実行時間など)。

Google がお客様のソースコードを使用して、基盤となるモデルの重みをトレーニングすることはありません。

保持ポリシーとは何ですか?

CodeMender では、厳格な短期データ保持ポリシーが使用されます。

  • 最大 7 日間の保持: ユーザーが中断したスキャンをシームレスに再開できるように、コード スニペットやトラッキング状態などのセッション データは、Gemini Enterprise Agent Platform ストレージに最長 7 日間保持されます。7 日後に、システムは自動的に削除します(データの保持期間をゼロにするをご覧ください)。
  • 明示的な削除: お客様は 7 日間待つ必要はありません。DeleteInteraction を呼び出すことで、すべてのセッション データをすぐにクリーンアップできます。
  • 一時的な検出結果: 脆弱性の検出結果とパッチは、長期にわたるデータベースに保存されません。パイプラインの実行中にメモリに蓄積されます。

データにアクセスできるユーザー

CodeMender では、人間による可視性に関して「ゼロデータアクセス」アプローチが使用されます。

  • 人間によるアクセスなし: 人間のグループや Google エンジニアは、本番環境の顧客データを読み取ることはできません。
  • オペレーターの可視性なし: 本番環境のデバッグとエラー トラッキングの場合でも、Google オペレーターは制限されており、顧客のソースコード コンテキストや一時的なセッション状態を確認することはできません。
  • 厳格な分離: 共有インフラストラクチャ内のテナントのプライバシーを保護するため、組織とお客様の課金プロジェクトごとにすべてのデータを論理的に分離してアクセス制御します。
  • VPC Service Controls(VPC-SC): 環境をさらに保護するため、CodeMender のアーキテクチャは VPC Service Controls(VPC-SC)を完全にサポートしています。これにより、Google Cloud リソースの周囲に安全なセキュリティ境界を定義し、ローカライズされたデータがクラウド推論エンジンに送信される際のデータ漏洩のリスクを軽減できます。

次のステップ

詳細な手順については、次のガイドをご覧ください。