AI 工程

Claude Code 新增 Claude Security 外掛:跑在終端的多 agent 漏洞掃描器,實戰拆解

你在 git commit 前那 30 秒,通常沒空做安全審查。你知道該檢查 SQL injection、該看看那段新加的認證邏輯有沒有繞過空間、該確認剛塞進 env 的 secret 沒被 log 出去——但真正動手的次數,大概跟你寫 changelog 的次數差不多。Anthropic 在 2026 年 7 月釋出的 Claude Security 外掛(beta) 想補的就是這個縫:它把「一整支安全研究團隊」塞進你正在跑的 Claude Code session,掃完整個 repo 或只掃這條 branch 的 diff,把它有把握的漏洞寫成 .patch 檔,剩下的——要不要套用——留給你決定。

這篇拆給你看它到底怎麼跑、跟你已經在用的 /security-review 差在哪、什麼時候值得開、什麼時候別浪費 token。安裝與指令都照官方文件(code.claude.com/docs/en/claude-security);六階段流程與複驗機制的細節,另外標註來自 MarkTechPost 的報導與官方 repo 的拆解。

它不是 /security-review 的加大版

先把定位講清楚,因為 Claude Code 現在的安全工具有四層,很容易搞混:

  • Security guidance 外掛:Claude 一邊寫你一邊修,同 session 內攔常見漏洞。
  • /security-review:對當前 branch 跑「單趟」掃描,快、輕。
  • Claude Security 外掛(本文主角):多 agent 深掃,會建威脅模型、獨立複驗每一條 finding,再產出經審過的 patch。
  • Code Review(Team/Enterprise):PR 時的多 agent 審查。

差別是「深度」。/security-review 是一趟過;Claude Security 外掛是派一組分工的 agent,先測繪架構、再建威脅模型、然後分頭獵漏、最後每條 finding 都要通過獨立驗證才會出現在報告裡。官方明講它不取代 SAST、依賴掃描或 code review——它是那種「像人類安全研究員一樣推理你的程式碼」的補位層,跟你 CI 裡那些確定性規則互補。

六階段:從盤點到對抗複驗

Claude Security 外掛的六階段掃描流程

官方文件把流程描述成「測繪架構 → 建威脅模型 → 獵漏 → 獨立複驗 → 產 patch」。MarkTechPost 與 repo 拆解則把它攤成六個更細的階段,值得知道,因為這決定了你付出的 token 花在哪:

  1. Inventory(盤點):把 repo 切成一個個 component。
  2. Threat model(威脅建模):對每個 component 找 entry point、sink、trust boundary。
  3. Research(研究):分四類漏洞平行下手——injection-and-input(注入與輸入)、auth-and-access(認證與存取)、memory-and-unsafe(記憶體與不安全操作)、crypto-and-secrets(加密與機密)。
  4. Sweep(補漏):針對覆蓋不到的地方補掃。
  5. Panel(陪審):三方 lens 的對抗式驗證。
  6. Adversarial(對抗):對「邊緣、可疑但不確定」的 finding 做最大力度的再驗證。

這裡的關鍵是第 2 階段的威脅建模:它不是拿一份漏洞清單去逐條比對,而是先問「資料從哪裡進來(entry point)、流到哪個危險操作(sink)、中間跨過哪些信任邊界(trust boundary)」。對每個 component 建出這張圖之後,第 3 階段的獵漏才有方向——researcher 不是漫無目的地讀 code,而是沿著「不可信輸入 → 危險 sink」的路徑走。這也是它跟 regex 型 SAST 最大的差別:SAST 看的是「這行 code 長得像不像漏洞」,它看的是「這條資料流實際上打不打得通」。

模型分工上,報導指出:Opus 當 orchestrator(總指揮)Sonnet 負責架構測繪與 code 探索——把貴的模型用在調度與判斷,把量大的探索交給便宜快的那顆。這也是你自己設計多 agent 系統時可以抄的分工原則:不是每個 sub-agent 都要用最強的模型,把「決策層」與「勞動層」拆開,成本會差一個量級。

值得留意的一個坑:官方 troubleshooting 提到,用 Fable 5 時它的資安安全分類器會擋掉某些模型動作並自動降級到 Opus,這是預期行為,掃描仍會完成。

為什麼它的誤報比較少:2/3 法定人數

finding 要通過 2/3 獨立驗證才會進報告,patch 要過三道審查才會產出

多 agent 掃漏最怕的不是漏,是「一堆看起來很像但根本打不到」的誤報淹沒你。這外掛的解法是投票:每條候選 finding 交給獨立的 verifier,從三個角度評——REACHABILITY(可達性)、IMPACT(影響)、DEFENSES(既有防禦)

據 MarkTechPost 報導,判定採 2/3 法定人數:三票全過(3/3),confidence 上限才能標到 high;只有 2/3,就封頂在 medium。而且票數是用程式算出來的,不是讓模型自己嘴一句「我很有信心」——這點很關鍵,等於把「信心」從模型的修辭變成可稽核的計數。沒過門檻的候選直接丟掉,所以報告會短,短到你真的會讀完。

effort 分四級(low / medium / high / max),報導指出它會影響:component 上限(12 vs 24)、每個矩陣格分派的 researcher 數(1–2)、補漏 sweep 次數(0–2)。想快就 low,想狠就 max,代價是 token。

Patch 也要過審才生出來

finding 之後如果你選 Suggest patches,每個 patch 是在你 repo 的暫存複本(scratch clone)裡改的,你的原始檔在你親手 git apply 之前完全不動。更重要的是:patch 產出前要被一個跟寫它的 agent 不同的獨立 agent 審過——有測試就跑你專案的測試,並自己讀 diff 看有沒有引入新東西。只有當它能擔保三件事——確實修掉那條 finding、沒引入新漏洞、其餘行為不變——才會真的寫出 patch。擔保不了,你拿到的是一張「為什麼不給你 patch」的短說明,而不是一個你不敢套的 diff。

輸出落在 repo 裡一個帶時間戳的 CLAUDE-SECURITY-<timestamp>/ 目錄:

  • CLAUDE-SECURITY-RESULTS.md:人讀的報告,每條 finding 有 ID(F1…)、影響、exploit 情境、嚴重度、confidence、建議。
  • CLAUDE-SECURITY-RESULTS.jsonl:同樣內容的機器可讀版,一行一個 JSON。
  • CLAUDE-SECURITY-REVISION-<commit>.jsonrevision stamp,記錄掃了哪個 commit、什麼 effort、工作樹是否有未提交變更、驗到多徹底——讓每份報告都綁死在它描述的那份程式碼上。沒版控就蓋 UNVERSIONED

這個目錄自帶 .gitignore,所以你手滑 git add . 也不會把報告掃進 commit。要留存做稽核?刪掉那個 .gitignore、正常 commit 就好。

三分鐘上手:實際指令

# 1. 從官方 marketplace 安裝(找不到 marketplace 就先跑下一行)
/plugin install claude-security@claude-plugins-official
# (必要時)/plugin marketplace add anthropics/claude-plugins-official

# 2. 當前 session 生效,免重啟
/reload-plugins

# 3. 開選單,三個工作:掃 repo / 掃 diff / 產 patch
/claude-security

最省事的用法其實不是走選單,而是直接把工作當引數或用白話丟給它。例如你有一條要合併的 branch,想在開 PR 前先體檢,可以直接說:

/claude-security scan my branch

或者對某個特定 commit:scan commit abc1234;甚至「scan 我 API 層的認證相關程式碼,effort high」這種混合自然語言的講法它也吃。掃完先讀 CLAUDE-SECURITY-RESULTS.md,挑出你認同的 F1F3,再跑一次 /claude-securitySuggest patches 只針對這幾條產 patch——不用一次修完所有 finding,這樣每個 PR 的 diff 才小得可審。

幾個照做的重點:

  • 前置條件:Claude Code v2.1.154+付費方案(掃描用到 dynamic workflows;Pro 要去 /config 把 Dynamic workflows 那列打開);python3 3.9.6+ 在 PATH 上(只用標準庫,不會裝任何東西,python3 --version 確認);改動掃描與產 patch 需要 Git
  • 只掃這次改的:branch 有領先 base 的 commit 時,選單會問你要不要只掃那段 diff;也能掃某個 open PR,或直接講「scan commit abc1234」。只掃已提交的——工作區還沒 commit 的 edit 要先 commit 或 stash,不然改用會讀工作樹的 full scan。
  • 大 repo 別整棵掃:一次挑一塊(例如 API 層、認證碼),報告的 coverage 段會告訴你掃了什麼、漏了什麼。
  • 開 auto mode:讓 agent 不用每步都跟你要權限,掃起來才順;工作啟動時它會提醒你怎麼開。
  • 套用是你的事git apply CLAUDE-SECURITY-<timestamp>/patches/F1.patch,而且一個 patch 一個 PR,各自被 review、被測。

什麼時候該開、什麼時候別

該開:合併前想對一條 branch 做深度體檢、季度性對整個服務做一次徹底掃、或你接手一份不熟的 codebase 想先摸清攻擊面。它的強項是「推理型」漏洞——邏輯上的認證繞過、IDOR(拿別人的 id 就能存取別人的資料)、trust boundary 沒守好、把使用者輸入直接拼進 shell 或 SQL——這些都是要「順著資料流讀懂上下文」才抓得到的,正是 regex-based SAST 最弱、也最容易漏的地方。反過來,純語法規則能抓的東西(硬編碼密鑰的字面樣式、已知 CVE 的依賴版本),交給你 CI 裡便宜又確定的工具就好,不必花這外掛的 token。

別開/別誤用

  • 它掃的不是不信任的程式碼。外掛在你的權限下、你的 session 裡跑,沒有任何隔離;要掃來路不明的 repo,請自己套外部沙箱。
  • 結果是非確定性的。同一份 code 掃兩次可能冒出不同 finding——所以要定期掃,並靠 revision stamp 把每份報告對回它涵蓋的確切程式碼與設定,別把單次結果當「全部漏洞已清」。
  • 它不取代 CI 裡的確定性檢查。SAST、依賴掃描、supply-chain 檢查該留著,跟它並行。
  • 它吃 token。每次掃都算進你方案的用量,大掃前先用 effort 分級和 scope 控制花費。

對工程團隊的意義

把它擺進 defense-in-depth 的正確位置,你會得到一個過去很貴的能力:隨叫隨到、會自己複驗、產出綁死 commit 的深度安全掃描,而且跑在終端、不用把 code 送出去(外掛還能碰到託管版碰不到的 GitLab / Bitbucket / 內網 repo)。

更值得注意的是它把「安全掃描」這件事的門檻拉到跟跑一次測試差不多低。過去要做一次像樣的威脅建模 + 人工 code audit,要嘛外包給資安顧問、要嘛占掉資深工程師好幾天;現在它變成一個 /claude-security 加一段等待時間。這不代表你可以裁掉資安流程,而是代表「掃描的頻率」可以從「一季一次的大活動」變成「每條重要 branch 合併前的例行動作」——而頻率往往比單次深度更能抓到問題,因為漏洞常常是新 code 帶進來的,早掃早發現的邊際成本遠低於上線後才修。

實務上我會這樣接:/security-review 當每次 commit 的輕量守門,Claude Security 外掛當合併前或週期性的深掃,CI 的 SAST 繼續守確定性規則。三層各司其職,不要指望任何一層包辦全部。它最值得偷師的其實是那套方法論——把「信心」做成可稽核的 2/3 計數、把 patch 交給不同 agent 複審、每份報告都蓋 revision stamp——這幾招你完全可以搬進自己的 agent pipeline,不管你用不用這個外掛。

目前是 beta,官方明說要收社群回饋。從文件與 changelog 看,該實測的點是:在你自己中大型的 repo 上,highmax 兩級的 token 成本差多少、誤報率實際感受如何——這兩個數字沒有一份報導能替你的 codebase 回答,只能自己開一次跑看看。

來源

  • 官方文件:Claude Code Docs — Scan your codebase for vulnerabilities(code.claude.com/docs/en/claude-security)
  • 官方 repo:anthropics/claude-plugins-official — plugins/claude-security(github.com,v0.10.0)
  • 產品頁:Claude Security(claude.com/product/claude-security)
  • 報導:MarkTechPost — "Anthropic Releases Claude Security Plugin for Claude Code in Beta"(2026-07-22)

整理:DataAgent · Coding Agent 實戰教學

發表迴響

%d 位部落客按了讚: