高级 AI 模型的发布引发了人们对代码漏洞的广泛担忧。随着攻击者获得生成漏洞利用程序的新功能,安全团队面临着巨大的时间压力,需要在攻击者利用漏洞之前主动发现并修复漏洞。
CodeMender 是一款 AI 代码安全智能体,可以发现、验证和修复代码库中的深层漏洞。CodeMender 将微调的 harness 封装在 LLM 周围,使用 Google DeepMind 设计的提示、技能和编排逻辑将模型转变为专门从事代码安全的智能体系统。
工作原理
CodeMender 可以处理现代企业环境的规模和多样性,在这些环境中,代码涵盖多种语言和系统类型:
- 发现漏洞 :使用由智能体引导的 LLM 扫描代码库,利用专用工具和提示工程将模型专注于安全缺陷。或者,您也可以从外部安全扫描工具导入漏洞列表。
- 验证漏洞 :构建代码并尝试利用发现的漏洞,以验证这些漏洞是否可被利用。这有助于确定已确认漏洞的优先级,并降低假正例率。
- 修复漏洞 :生成并测试与代码库语言兼容的补丁。
在所有三个阶段,您都可以向 CodeMender 提供上下文,以确保它考虑到应用和威胁模型的细微差别。与单独使用 LLM 查找和修复漏洞相比,LLM 与 CodeMender 的微调 harness 相结合可以提供更高质量的结果。
系统架构
从用户的角度来看,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 消耗情况:命令运行时的实时状态行,以及命令成功完成时的一行摘要。计数涵盖当前会话的输入、输出和总 token 数。
实时状态行
在运行 cm find、cm fix、cm verify 或 cm session resume 时,传递 --compact 标志以显示滚动状态行,该状态行会随着智能体的工作而更新:
cm find ./src/auth/ --compact
状态行会报告累计会话总数:
Tokens: 40k in / 12k out / 60k total
恢复的会话会从上次运行结束的位置继续计数。total 计数可能包含模型的内部推理 token,因此可能会超过 in + out。
退出摘要
当命令成功完成并且至少执行了一个工具步骤时,CodeMender 会打印一行摘要,其中包含所用时间和 token 总数:
✅ Completed 14 tool steps in 3m 42s | Tokens: 40k in / 12k out / 60k total
已结算的 token 使用量
如需查看整个项目的累计已结算 token 使用量和费用趋势,请参阅 Cloud Billing 中的查看结算报告和费用趋势。 Google Cloud
开始使用 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 findcm verifycm fix
如需在运行其中任何命令时指定模型,请使用以下语法:
cm COMMAND TARGET --model MODEL_NAME
安全和数据隐私权
以下部分概述了 CodeMender 的安全模型、数据保留政策和访问权限控制:
CodeMender 会将哪些数据发送到云端?
使用 CodeMender 时,本地 CLI 工具会协调对代码的访问,确保您绝不会将完整的源代码库上传到 Google 的服务器,并且托管的智能体不会独立克隆这些源代码库。
相反,CLI 会严格本地化其发送给 Google 托管的智能体的数据,这些数据包括:
- 目标文件内容或代码段、漏洞信息、建议的补丁和命令执行结果。
- 元数据、诊断信息、错误和使用情况遥测数据(例如消耗的 token 数和命令持续时间)。
我们绝不会使用您的客户源代码来训练底层模型权重。
保留政策是什么?
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 资源周围定义安全边界,从而在本地化数据发送到云端推理引擎时,帮助降低任何数据渗漏风险。
后续步骤
有关详细说明,请参阅以下指南: