進階 AI 模型推出後,程式碼安全漏洞引發廣泛關注。攻擊者能利用新功能生成攻擊程式,因此資安團隊面臨巨大的時間壓力,必須在攻擊者利用安全漏洞前,主動找出並修正漏洞。
CodeMender 是 AI 程式碼安全代理,可找出、驗證及修復程式碼集的深層安全漏洞。CodeMender 運用 Google DeepMind 設計的提示、技能和自動化調度管理邏輯,在 LLM 周圍建立經過微調的安全防護機制,將模型轉化為專門處理程式碼安全性的代理系統。
運作方式
CodeMender 可處理現代企業環境的規模和多樣性,其中程式碼涵蓋多種語言和系統類型:
- 找出安全漏洞:使用代理引導的 LLM 掃描程式碼集,並運用專門工具和提示工程,讓模型專注於安全漏洞。或者,您也可以從外部安全性掃描工具匯入安全漏洞清單。
- 驗證安全漏洞:建構程式碼並嘗試利用發現的安全漏洞,驗證是否可利用。這有助於優先處理已確認的安全漏洞,並降低偽陽率。
- 修正安全漏洞:生成並測試與程式碼集語言相容的修補程式。
在上述三個階段中,您都可以向 CodeMender 提供背景資訊,確保它能考量應用程式和威脅建模的細微差異。相較於單獨使用 LLM 找出及修正安全漏洞,結合 LLM 與 CodeMender 經過微調的防護機制,可提供更優質的結果。
系統架構
從使用者角度來看,CodeMender 系統包含兩個元件:
- 代理:託管的多代理系統,負責執行核心商業邏輯和推論。
- 用戶端:在機器上執行的用戶端,同時扮演 CLI (發出指令及查看輸出內容) 和 Daemon (代表代理執行指令,可選擇在本機程序層級沙箱中隔離,安全地編譯程式碼、執行測試及驗證安全漏洞)。
支援的語言和架構
CodeMender 預設支援下列語言:C/C++、C# / .NET、Go、Java、JavaScript 和 TypeScript、Kotlin、Python、Ruby、Rust 和 PHP。此外,Gemini Code Assist 也廣泛支援這些語言的標準程式庫,以及常見的企業架構 (例如 HTML/CSS、Django、Flask、React、Spring Boot、ASP.NET 和 Express)。
列出的程式設計語言並非硬性限制。CodeMender 是 AI 程式碼安全代理,可分析及修復基礎模型能理解的任何語言程式碼。一般來說,系統支援任何非專屬語言。
掃描其他程式設計語言
您可以透過下列任一方式,設定 CodeMender 掃描預設組合以外的程式設計語言:
- 全域設定:將程式設計語言的副檔名新增至全域 CodeMender
~/.codemender/config.yaml設定檔的scan.extensions.include區段。 - 個別存放區設定:將程式設計語言的副檔名,新增至存放區中 CodeMender
config.yaml設定檔的scan.extensions.include區段。
舉例來說,如要掃描其他語言或指令碼格式:
scan:
extensions:
include:
# Default languages
- .py
- .java
- .go
- .js
- .jsx
- .mjs
- .cjs
- .ts
- .tsx
- .c
- .cc
- .cpp
- .cxx
- .h
- .hpp
- .cs
- .rs
- .kt
- .kts
- .rb
- .php
# Additional / custom languages
- .swift
- .scala
- .sh
# Exclude build, dependency, cache, and artifact directories
exclude_dirs:
- node_modules
- vendor
- dist
- bin
- target
- obj
- build
- .gradle
如要進一步瞭解如何設定掃描選項,請參閱「設定參數 (config.yaml)」。
品質注意事項
CodeMender 不會發布正式的各語言評估結果。預設語言反映了我們基準涵蓋範圍最廣的語言,其他語言的結果可能有所不同。如果貴組織需要優先深入評估特定語言,或預設納入特定語言,請與 Google 帳戶團隊聯絡。
支援的模型
CodeMender 支援下列模型:
按一下即可展開支援的模型
CodeMender 也支援 Gemini 3.8 Flash Cyber 和 Gemini 4 Argon Cyber Permissive,適用於透過 Fairwind 計畫取得存取權的客戶。
Gemini 4 Argon (gemini-4-argon) 內建網路安全功能,可能會封鎖涉及產生漏洞利用或驗證安全漏洞的要求。如果 gemini-4-argon 觸發任何安全封鎖機制,系統會自動改用 Gemini 3.8 Flash Cyber (gemini-3.8-flash-cyber) 重試。如果專案無法存取 Gemini 3.8 Flash Cyber,則會改用 Gemini 3.8 Flash (gemini-3.8-flash)。
如要在執行 CodeMender CLI 指令時指定模型,請參閱「指定模型」。
支援的地區
CodeMender 已在全球推出。
追蹤權杖用量
CodeMender 會在兩個地方顯示權杖用量:指令執行時的即時狀態列,以及指令成功完成時的單行摘要。計數涵蓋目前工作階段的輸入、輸出和總詞元數。
即時狀態列
cm find、cm fix、cm verify 或 cm session resume 執行時,傳遞 --compact 旗標,即可顯示會隨著代理程式運作而更新的捲動狀態行:
cm find ./src/auth/ --compact
狀態行會回報累計工作階段總數:
Tokens: 40k in / 12k out / 60k total
恢復的工作階段會從上次執行的進度繼續計算。total 計數可能包含模型的內部推論詞元,因此可能會超過 in + out。
離開摘要
指令順利完成且至少執行一個工具步驟時,CodeMender 會列印一行摘要,其中包含經過時間和權杖總數:
✅ Completed 14 tool steps in 3m 42s | Tokens: 40k in / 12k out / 60k total
計費詞元用量
如要查看 Google Cloud 專案的累計計費詞元用量和費用趨勢,請參閱 Cloud Billing 的「查看帳單報表和費用趨勢」。
開始使用 CLI
設定 CLI 工具並初始化工作區,即可開始掃描。
必要條件
初始化 CodeMender CLI 前,請確認環境已正確設定:
- 設定 Google Cloud 專案:設定 Google Cloud 專案,並啟用必要的 API 和 IAM 角色。
- 下載 CodeMender CLI:下載並安裝適用於您作業系統的 CodeMender CLI 二進位檔。
- 設定 Google Cloud 憑證和專案:設定 Google Cloud 應用程式預設憑證 (ADC),並設定目標專案來驗證 CLI。
- 提供原始碼:複製或拷貝要掃描的專案原始碼,並放入工作區。
- 設定沙箱:定義沙箱環境的目錄掛接、網路存取設定檔和安全性例外狀況。
指定模型
CodeMender 預設使用 Gemini 3.8 Flash。如要覆寫預設模型,請傳遞 --model 旗標和對應的模型 ID:
- Gemini 3.8 Flash (預設):
--model gemini-3.8-flash - Gemini 3.8 Flash Cyber:
--model gemini-3.8-flash-cyber - Gemini 4 Argon:
--model gemini-4-argon - Gemini 4 Argon Cyber Permissive:
--model gemini-4-argon-cyber-permissive - Gemini 3.7 Flash:
--model gemini-3.7-flash(2027 年 1 月 28 日停用) - Gemini 3.6 Flash:
--model gemini-3.6-flash(已淘汰,2026 年 11 月 19 日停用) - Gemini 3.5 Flash:
--model gemini-3.5-flash - Gemini 3.1 Pro 預先發布版:
--model gemini-3.1-pro-preview
已淘汰的模型在淘汰日期前仍可運作,但使用時 CLI 會顯示警告。模型淘汰後,使用該模型的要求會失敗。請在淘汰日期前改用 Gemini 3.8 Flash。
下列指令支援 --model 旗標:
cm findcm verifycm fix
如要在執行上述任一指令時指定模型,請使用下列語法:
cm COMMAND TARGET --model MODEL_NAME
安全性與資料隱私權
以下各節將概述 CodeMender 的安全模型、資料保留政策和存取控管機制:
CodeMender 會將哪些資料傳送至雲端?
使用 CodeMender 時,本機 CLI 工具會控管程式碼存取權,確保您不會將完整的原始碼存放區上傳到 Google 伺服器,且託管代理不會獨立複製這些存放區。
相反地,CLI 會嚴格限制傳送至由 Google 代管代理程式的資料,包括:
- 目標檔案內容或程式碼片段、安全漏洞資訊、建議修補程式,以及指令執行結果。
- 中繼資料、診斷、錯誤和用量遙測資料 (例如使用的權杖和指令持續時間)。
我們絕不會使用客戶的原始碼訓練基礎模型權重。
保留政策是什麼?
CodeMender 採用嚴格的短期資料保留政策:
- 資料最多保留 7 天:我們會將工作階段資料 (包括程式碼片段和追蹤狀態) 保留在 Gemini Enterprise Agent Platform 儲存空間最多 7 天,方便使用者順利繼續執行中斷的掃描作業。7 天後,系統會自動刪除資料 (請參閱「不保留資料」)。
- 明確刪除:客戶不必等待 7 天,只要呼叫
DeleteInteraction,即可立即清除所有工作階段資料。 - 暫時性發現項目:我們不會將安全漏洞發現項目和修補程式儲存在長期資料庫中,而是在管道執行期間累積在記憶體中。
誰可以存取資料?
CodeMender 採用「零資料存取」做法,確保人類無法查看資料:
- 禁止人員存取:任何人員群組或 Google 工程師都無法在正式環境中讀取客戶資料。
- 操作人員無法查看:即使是正式環境偵錯和錯誤追蹤,Google 操作人員也受到限制,無法查看客戶原始碼內容或暫時工作階段狀態。
- 嚴格隔離:我們依機構和客戶帳單專案,對所有資料進行邏輯隔離和存取控管,在共用基礎架構中保護租戶隱私。
- VPC Service Controls (VPC-SC):CodeMender 的架構完全支援 VPC-SC,可進一步保護環境。您可以為 Google Cloud 資源定義安全邊界,降低本地化店面資料傳送至雲端推論引擎時的資料竊取風險。
後續步驟
如需詳細操作說明,請參閱下列指南: