CodeMender 概览

高级 AI 模型的发布引发了人们对代码漏洞的广泛担忧。随着攻击者获得生成漏洞利用程序的新功能,安全团队面临着巨大的时间压力,必须在漏洞被利用之前主动发现并修复漏洞。

CodeMender 是一款 AI 代码安全智能体,能够发现、验证并修复代码库中的深层漏洞。CodeMender 会在 LLM 周围封装一个经过微调的框架,使用 Google DeepMind 设计的提示、技能和编排逻辑将模型转变为专门用于代码安全的智能体系统。

工作原理

CodeMender 旨在处理现代企业环境的规模和多样性,其中代码涵盖多种语言和系统类型:

  • 通过使用在智能体引导下运行的 LLM 扫描代码库来查找漏洞,利用专用工具和提示工程技术使模型专注于安全缺陷。或者,您也可以从外部安全扫描工具导入漏洞列表。
  • 通过构建代码并尝试利用发现的漏洞来验证漏洞是否可被利用。这有助于确定已确认漏洞的优先级,并降低假正例率。
  • 通过生成并测试与代码库语言兼容的补丁来修复漏洞

在所有这三个阶段,您都可以向 CodeMender 提供上下文,以确保它能考虑到您的应用和威胁模型的细微差别。与单独使用 LLM 来查找和修复漏洞相比,将 LLM 与 CodeMender 的微调后测试框架相结合可提供更高质量的结果。

系统架构

从用户角度来看,CodeMender 系统由两部分组成:

  • 代理:一种托管式多智能体系统,可运行核心业务逻辑和推理。
  • 客户端:在您的机器上运行的客户端,既充当 CLI(用于发出命令和查看输出),又充当守护程序(用于代表代理执行命令,可以选择在本地进程级沙盒中进行隔离,以安全地编译代码、运行测试和验证漏洞)。

支持的语言和框架

CodeMender 支持所有主要编程语言(C/C++、Go、Java、Python、TypeScript / JavaScript、Rust 和 Ruby)中的顶级漏洞类型。此外,它还广泛支持这些语言中的标准库以及常见的企业框架(例如 HTML/CSS、Django、Flask、React、Spring Boot 和 Express)。

支持的漏洞类型涵盖了应用逻辑、数据处理、内存管理和身份验证控制流中广泛的软件安全缺陷。

支持的模型

CodeMender 支持以下模型:

点击即可展开支持的型号

如需在运行 CodeMender CLI 命令时指定模型,请参阅指定模型

支持的区域

CodeMender 已在全球范围内推出。

跟踪 token 用量

CodeMender 会在两个位置显示令牌消耗情况:命令运行时的实时状态行,以及命令成功完成时的一行摘要。统计数据涵盖当前会话的输入、输出和总 token 数。

实时状态行

在运行 cm findcm fixcm verifycm session resume 时,传递 --compact 标志以显示一个滚动状态行,该状态行会随着代理的运行而更新:

cm find ./src/auth/ --compact

状态行会报告累计会话总数:

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

恢复的会话会从上次运行结束的地方继续计数。total 数量可能包含模型的内部推理 token,因此可能会超过 in + out

退出摘要

当命令成功完成且至少执行了一个工具步骤时,CodeMender 会打印一行摘要,其中包含所用时间和令牌总数:

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

已结算的 token 用量

如需查看 Google Cloud 项目的累计结算令牌使用量和费用趋势,请参阅 Cloud Billing 中的查看结算报告和费用趋势

开始使用 CLI

设置 CLI 工具并初始化工作区,即可开始扫描。

前提条件

在初始化 CodeMender CLI 之前,请确保您的环境已正确准备就绪:

  • 设置 Google Cloud 项目:设置包含所需 API 和 IAM 角色的 Google Cloud 项目。
  • 下载 CodeMender CLI:下载并安装适用于您操作系统的 CodeMender CLI 二进制文件。
  • 配置 Google Cloud 凭证:配置 Google Cloud 应用默认凭证 (ADC) 以对 CLI 进行身份验证。
  • 准备源代码:将要扫描的项目的源代码克隆或复制到工作区中。
  • 配置沙盒:为沙盒环境定义目录挂载、网络访问配置文件和安全例外情况。

指定模型

默认情况下,CodeMender 使用 Gemini 3.5 Flash。如需替换默认模型,请传递 --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 时,本地 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 资源定义一个安全边界,从而在将本地化数据发送到云推理引擎时,帮助降低任何数据渗漏风险。

后续步骤

如需查看详细说明,请参阅以下指南: