在現代軟體開發流程中,自動化漏洞掃描是確保安全性不可或缺的一環。然而,傳統的 AI 驅動代碼掃描工具經常面臨一個嚴重的挑戰:極高的誤報率(False Positives)以及 AI 幻覺(Hallucination)。所謂的 AI 幻覺,是指大型語言模型在分析代碼時,可能會自信地指出一個根本不存在的漏洞,導致開發人員耗費大量時間去追蹤虛假的錯誤。根據 Google 的觀察,部分 AI 掃描工具的真實正報率(True-positive rate)甚至低於 7%,這使得自動化安全分析在實務上難以大規模推行。
為了克服這些問題,Google 開源了 Mantis,這是一個專為自動化軟體漏洞生命週期設計的 AI Agent 框架。Mantis 的目標不僅僅是發現漏洞,而是將整個過程從識別、驗證、重現到修復完全自動化。它不再像傳統工具那樣採取暴力掃描所有文件的做法,而是引入了 Agentic 技術,也就是透過多個具有特定職能的 AI 代理人協作,來模擬安全專家的分析思維,從而大幅提升漏洞偵測的精準度。
核心運作機制與 Agent 協作
Mantis 的核心在於將漏洞分析拆解為多個模組化的技能組,包含超過 15 種工具,這些工具可以循序或並行執行。為了讓 AI 能夠在複雜的代碼庫中建立正確的認知,Mantis 首先會分析儲存庫的歷史記錄、過往的安全性修復紀錄、系統架構以及威脅模型(Threat Models,一種用來定義系統潛在攻擊面與風險的分析方法)。接著,它會將分析後的文件總結為一個層級樹狀結構,保留目錄與儲存庫層級的上下文資訊。這種做法能有效減少 85% 的 Token 使用量,在降低運算成本的同時,仍能讓 AI 掌握全局結構。
在實際分析過程中,Mantis 部署了多種職能不同的 Agent 來形成制衡機制。首先由策略師代理人(Strategist Agent)負責評估高層級的代碼結構、依賴關係圖與威脅模型;研究代理人(Research Agents)則深入探討原始源文件,追蹤數據流(Data Flows)與控制流(Control Flows),並檢查清理邏輯(Sanitization Logic,即防止惡意輸入進入系統的過濾機制)。
最關鍵的步驟在於驗證。為了剔除誤報,Mantis 引入了評論代理人(Critic Agent)與審查代理人(Reviewer Agent)。審查階段會應用基於規則的負向過濾器來剔除明顯的誤報。更重要的是,Mantis 具備在沙箱環境(Sandboxed Environment)中重現漏洞的能力。這意味著 AI 不再僅僅是根據機率預測「這裡可能有漏洞」,而是嘗試撰寫一個可執行的崩潰重現程式(Crash Reproducer),在受控的安全環境中證明漏洞確實存在。這種將 AI 的判斷與實際執行結果掛鉤的機制,稱為 Grounding,能有效解決 AI 幻覺問題。
模型分級策略與實務限制
在效能優化方面,Google 建議在 Mantis 框架中採取分級模型策略,而非在所有階段都使用最強大但最昂貴的前沿模型。對於不需要深層邏輯推理的任務,例如由 mantis-researcher 執行的快速分類或由 mantis-dedupe 執行的相似文本聚類,可以使用 Flash 或 Lite 等輕量化模型以提升速度。而對於需要深層上下文理解與零樣本問題解決(Zero-shot problem solving)的複雜任務,例如撰寫重現程式的 mantis-reproduce 或生成無副作用修復補丁的 mantis-patch,則應配置更強大的模型。
儘管 Mantis 透過多層過濾與沙箱驗證大幅降低了誤報,但 Google 同時提醒,在設定審查階段的負向過濾器時必須謹慎。如果過濾規則過於寬鬆,可能會將低風險但真實存在的漏洞誤判為誤報,進而降低系統的偵測能力。
Mantis 的推出代表了安全掃描從單純的模式匹配或單一 LLM 推論,轉向多 Agent 協作的範式轉移。透過將結構化分析、對抗性審查與實體環境驗證結合,安全團隊能夠以機器速度發現並修復漏洞,同時將開發者的注意力集中在真正具威脅的漏洞上,而非在海量的誤報噪音中掙扎。
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。