
claude-howto 的 secure-reviewer 子代理用最小權限設計構建只讀安全審計 Agent【免費下載鏈接】claude-howtoA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.項目地址: https://gitcode.com/GitHub_Trending/cl/claude-howto本文以 claude-howto 倉庫中的 secure-reviewer 子代理 為核心完整解析這個最小權限安全審計 Agent的設計與配置從 YAML frontmatter 的權限聲明、五類安全審查焦點、可直接復制的漏洞檢索命令到標準化的漏洞報告輸出格式。讀完之后你可以把它復制到自己的項目.claude/agents/目錄中立即在 Claude Code 里獲得一個只能讀、不能改、不能執(zhí)行的安全審查員。角色定位一個被鎖死權限的安全專家secure-reviewer是一個 Claude Code 子代理subagent的完整定義文件它由 YAML frontmatter 加 Markdown 系統(tǒng)提示詞兩部分構成。frontmatter 聲明了 Agent 的身份與能力邊界--- name: secure-reviewer description: Security-focused code review specialist with minimal permissions. Read-only access ensures safe security audits. tools: Read, Grep model: inherit ---幾個關鍵字段的含義可對照倉庫中 子代理完全參考指南 的配置字段表name: secure-reviewer唯一標識符遵循小寫字母加連字符的命名規(guī)范調(diào)用時用它指名道姓。description自然語言說明該 Agent 何時被調(diào)用。description不僅描述用途還會影響 Claude 的自動委派判斷——在 claude-howto 的其他示例中description里寫入 use PROACTIVELY 之類的措辭可以促進自動調(diào)用。本例的 description 強調(diào)最小權限 只讀點明了它的審計屬性。tools: Read, Grep這是整個設計的靈魂。根據(jù)子代理參考文檔tools字段省略時會繼承全部工具而這里顯式收窄為僅兩個只讀工具。model: inherit繼承主會話的模型避免為一個純審查任務單獨指定模型。系統(tǒng)提示詞部分開宗明義地聲明了能力清單原文即是一份權限說明書你是一名只專注于識別漏洞的安全專家。本 Agent 按設計只擁有最小權限可以讀取文件進行分析可以搜索模式不能執(zhí)行代碼不能修改文件不能運行測試這確保審查者在安全審計期間不會意外破壞任何東西。為什么要把權限鎖死從源碼結構看子代理在獨立于主會話的上下文窗口中運行其工具集完全由 frontmatter 決定。安全審計是典型的長流程任務——要逐個文件地讀、逐條模式地搜一旦 Agent 被賦予Write、Edit、Bash等工具就存在兩類風險一是審計過程中誤改代碼污染了本應原樣取證的代碼庫二是審查工具本身可能被被審代碼中的陷阱內(nèi)容誤導而執(zhí)行危險操作。把工具面收窄到ReadGrep等于從機制上排除了這兩類風險——這也是 ja/04-subagents/README.md 在最佳實踐中強調(diào)的工具訪問要限制——只授予 Agent 目的所需的工具這一原則的落地范例。安全審查的五大焦點系統(tǒng)提示詞給secure-reviewer劃定了五個審查領域這基本對齊 OWASP 的經(jīng)典分類。以下是原文檔的完整清單認證問題Authentication Issues弱密碼策略缺少多因素認證MFA會話管理缺陷授權問題Authorization Issues破損的訪問控制權限提升缺失的角色檢查數(shù)據(jù)暴露Data Exposure日志中的敏感數(shù)據(jù)未加密的存儲API 密鑰暴露PII個人身份信息處理注入漏洞Injection VulnerabilitiesSQL 注入命令注入XSS跨站腳本LDAP 注入配置問題Configuration Issues生產(chǎn)環(huán)境開啟調(diào)試模式默認憑據(jù)不安全的默認值這五個類別覆蓋了安全審計中人和配置層面的多數(shù)入口認證與授權決定誰能動數(shù)據(jù)暴露決定秘密藏得深不深注入決定輸入邊界守不守得住配置問題則是最常見也最容易被忽視的低垂果實。審查時按此清單逐項過能保證報告不遺漏常見類別。漏洞檢索模式可直接運行的 grep 命令包原文檔給出了一組針對硬編碼密鑰、SQL 注入與命令注入的檢索命令。這些命令同時服務于兩種場景Claude 的Grep工具內(nèi)部檢索時的模式參考以及開發(fā)者手動對倉庫做快速掃描時的現(xiàn)成腳本# 硬編碼密鑰Hardcoded secrets grep -r password\s* --include*.js --include*.ts grep -r api_key\s* --include*.py grep -r SECRET --include*.env* # SQL 注入風險 grep -r query.*\$ --include*.js grep -r execute.*% --include*.py # 命令注入風險 grep -r exec( --include*.js grep -r os.system --include*.py逐條拆解這些模式背后的意圖命令目標語言命中的風險信號grep -r password\s* --include*.js --include*.tsJS/TS源碼里直接給密碼變量賦值而非從環(huán)境變量讀取grep -r api_key\s* --include*.pyPython硬編碼 API key 的賦值語句grep -r SECRET --include*.env*環(huán)境文件.env系列文件中的密鑰定義用于核對是否被提交進了版本庫grep -r query.*\$ --include*.jsJS字符串拼接構造查詢\$匹配美元符號即模板插值/拼接痕跡SQL 注入的經(jīng)典形態(tài)grep -r execute.*% --include*.pyPython用%格式化直接拼進execute參數(shù)未走占位符綁定grep -r exec( --include*.jsJSexec/execSync類調(diào)用輸入不可信時即命令注入grep -r os.system --include*.pyPythonos.system直接走 shell 解析是注入高發(fā) API需要說明適用前提這些模式是高召回、低精度的初篩——例如password 空值、測試夾具里的假密鑰都會命中最終定性要結合上下文由 Agent或人判斷。這正是secure-reviewer采用ReadGrep雙工具的原因Grep負責快速縮小包圍圈Read負責打開命中的文件確認上下文。標準化的漏洞報告輸出格式一個只讀審查 Agent 的最終產(chǎn)物是報告。原文檔為每條漏洞規(guī)定了固定的六字段輸出結構Severity嚴重度Critical / High / Medium / LowType類型OWASP 分類Location位置文件路徑與行號Description描述該漏洞是什么Risk風險被利用后的潛在影響Remediation修復建議如何修復這套格式的價值在于可機讀、可排序按 Severity 降序排列即可得到修復優(yōu)先級Location 字段讓每條發(fā)現(xiàn)都能直接跳轉定位Type 字段則讓不同審查報告可以按 OWASP 類別聚合統(tǒng)計。對團隊來說這意味著安全審計結果可以直接進入 issue 跟蹤流程而不是散落在自由文本里。安裝與調(diào)用方式根據(jù) ja/04-subagents/README.md 的安裝步驟把該子代理用起來有三種途徑推薦前兩種方式一復制進項目項目級作用域# 進入你的項目 cd /path/to/your/project mkdir -p .claude/agents cp /path/to/claude-howto/ja/04-subagents/secure-reviewer.md .claude/agents/方式二復制進用戶目錄全局作用域mkdir -p ~/.claude/agents cp /path/to/claude-howto/ja/04-subagents/secure-reviewer.md ~/.claude/agents/驗證安裝在 Claude Code 中運行/agents應能看到secure-reviewer與內(nèi)置代理一同列出。同名代理同時存在于多級作用域時加載優(yōu)先級為CLI--agents定義僅當前會話 項目級.claude/agents/ 用戶級~/.claude/agents/ 插件級agents/高優(yōu)先級覆蓋低優(yōu)先級claude agents命令還會標出被覆蓋override的項。三種調(diào)用方式自動委派——主 Agent 根據(jù)任務描述與description字段自行決定是否轉交顯式指名——對話中直接說用 secure-reviewer 子代理審查這個模塊-mention 強制調(diào)用——secure-reviewer可繞過自動委派的啟發(fā)式判斷確保該 Agent 被喚起。此外還可以用claude --agent secure-reviewer把整個會話跑成以它為主代理的模式或ctrlscrollback場景下把長審計任務CtrlB轉入后臺執(zhí)行。倉庫縱深與它配套的兩類安全組件在 claude-howto 倉庫中secure-reviewer并不是孤立存在還有兩個值得對照的安全組件分別代表更寬的權限面和更自動的觸發(fā)時機。1. pr-review 插件中的 security-reviewer權限更寬pr-review 插件 自帶一個 security-reviewer 代理frontmatter 為tools: Read, Grep, Bash——比secure-reviewer多了一個Bash。它的審查清單與本文介紹的五大焦點一致認證/授權、數(shù)據(jù)暴露、注入、安全配置配套的 check-security 命令 還會追加加密弱點與日志中的敏感數(shù)據(jù)兩項??梢酝茢喽喑龅腂ash是為了讓代理在 PR 審查時運行 git diff、調(diào)用外部掃描器之類需要命令行的動作。這正好構成一組對照做純靜態(tài)只讀審計用secure-reviewerRead, Grep做需要執(zhí)行檢測工具的 PR 安全門禁用插件版Read, Grep, Bash——權限面與任務需求精確匹配這正是子代理設計的核心紀律。2. security-scan.shPostToolUse 鉤子時機更早security-scan.sh 是一個綁定在PostToolUsematcher 為Write事件上的鉤子腳本在每次文件寫入之后自動運行與事后審查的secure-reviewer形成互補。它的檢測面更細可以對照原文檔的 grep 包來看硬編碼密碼同時匹配 JSON 形式password: value與代碼形式password valueAPI 密鑰匹配api_key/apikey/access_token的 JSON 賦值通用 secret/token 賦值私鑰文件BEGIN.*PRIVATE KEY特征AWS 訪問密鑰AKIA[0-9A-Z]{16}格式若環(huán)境中裝有semgrep或trufflehog還會靜默調(diào)用它們做深度掃描。發(fā)現(xiàn)可疑內(nèi)容時腳本按 Claude Code 鉤子協(xié)議輸出hookSpecificOutput.additionalContext的 JSON向 Agent 注入一條非阻斷式警告提示改用環(huán)境變量而不是中斷流程。腳本開頭還刻意跳過二進制文件與node_modules、.git、dist、build等目錄避免噪音。兩者組合起來是一條完整的安全防線security-scan.sh在寫入瞬間攔截新引入的密鑰secure-reviewer在審計時點對整個代碼庫做結構化深查pr-review 插件則把審查動作固化進 PR 流程。設計啟示最小權限如何落到一行 frontmatter回到secure-reviewer這個文件本身它示范了子代理安全設計的三個要點能力即聲明tools: Read, Grep一行就把不能執(zhí)行、不能改、不能跑測試從口頭約定變成了機制約束——Agent 連嘗試破壞的入口都沒有提示詞即審計清單五大審查焦點 檢索模式 六字段輸出格式讓每次審計的范圍和產(chǎn)物格式都確定可預期不同項目間結果可比審計者與被審者隔離審計過程對代碼庫零寫入保證審查不留痕與主會話的上下文也相互隔離長審計不污染主對話。如果你需要在自己的項目里落地這套實踐最直接的路徑就是把 ja/04-subagents/secure-reviewer.md 復制為項目內(nèi).claude/agents/secure-reviewer.md用/agents驗證加載再按需追加 OWASP 之外與你技術棧相關的檢索模式——權限聲明保持Read, Grep不動這是它全部安全性的來源?!久赓M下載鏈接】claude-howtoA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.項目地址: https://gitcode.com/GitHub_Trending/cl/claude-howto創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考