Community程式設計與開發github.com

boshu2/security

審查程式碼或掃描安全漏洞、密碼、依賴項及提示風險。使用時機:需要具體暴露評估時;絕不靜默變更政策。

security 是什麼?

這個安全技能提供了一個可重複執行的安全檢查框架,適用於程式碼、腳本、授權的二進位檔以及儲存庫管理的提示面。它支援多種安全掃描場景,包括快速閘道檢查、完整掃描、排程掃描以及紅隊演練(redteam)。該技能嚴格遵循唯讀收集原則,不會外洩秘密或執行破壞性負載,並將缺失的掃描器視為覆蓋缺口而非乾淨結果。它支援多種平台,如 Claude Code、Cursor 和 Codex,並透過 `scripts/security-gate.sh`、`scripts/security_suite.py` 和 `scripts/prompt_redteam.py` 等腳本來實現。執行工作流程包括快速閘道、完整掃描、排程閘道、狩獵紀律(hunt discipline)和分類(triage),並產生標準化 JSON 格式的報告。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/boshu2/agentops/tree/main/skills/security

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

安全技能

目的: 對程式碼、腳本、授權的二進位檔以及由儲存庫管理的提示面執行可重複的安全檢查。

當呼叫者要求進行儲存庫掃描、授權二進位檔保證、依賴風險、秘密,或離線提示面紅隊演練時,使用此技能。

關鍵限制

  • 僅掃描操作者擁有或明確授權評估的儲存庫、二進位檔和提示面。原因: 安全審查不會授予存取第三方系統或專有材料的權限。
  • 預設保持讀取唯讀;不要外洩秘密、執行破壞性負載,或變更政策/基準線以製造通過的假象。原因: 評估不得變成事故或抹去其證據。
  • 將缺失/錯誤的掃描器視為覆蓋缺口,絕非乾淨的發現;當需要完整工具覆蓋時,請使用 --require-tools。原因: 缺乏證據並非證據的缺席。
  • 使用目前的代理程式和本機外殼;除非明確要求,否則不要啟動另一個執行時期或編排平台。原因: 儲存庫掃描是一個受限的操作,不是向外擴散的權限。
  • 執行選定的掃描一次,並報告發現結果加上覆蓋缺口。修復、風險接受、重新執行和升級是呼叫者的決定。

提示

對 fleet-router 儲存庫中的 cli/ 執行完整安全掃描:依賴風險、秘密和靜態分析。保持收集為唯讀,將任何缺失的掃描器視為覆蓋缺口,並報告發現結果和覆蓋缺口,而不是修復它們。

成功標準

  • 報告列出哪些掃描器已執行,例如 gosec ./...,並將任何缺失的工具標記為覆蓋缺口,絕非乾淨通過。
  • 收集過程始終保持唯讀:記錄中沒有出現 curl、rm 或讀取憑證的操作。
  • 發現結果引用檔案和行號,例如 cli/internal/auth/token.go:42,絕非模糊的類別。
  • 回應中的 findings 和 coverage gaps 與任何修復步驟保持分離,留待呼叫者決定。

安全評估面

  1. 儲存庫閘道: scripts/security-gate.sh 編排可用的掃描器,用於快速/完整/發布檢查。
  2. 可組合套件: scripts/security_suite.py 為授權的二進位檔提供靜態、動態、合約、基準線和政策原始功能。
  3. 離線紅隊演練: scripts/prompt_redteam.py 根據攻擊套件檢查由儲存庫擁有的提示和工具控制面。

這是標準的安全操作手冊。套件政策閘道會產生機器可消費的輸出,包括在提供政策檔案時的 policy/policy-verdict.json。

在進行二進位檔、政策、基準線或紅隊演練工作之前,請閱讀套件操作手冊。進行程式碼層級審查時,請使用 OWASP 檢查清單。

執行工作流程

1) 快速閘道

執行:

scripts/security-gate.sh --mode quick

檢查點: 保留退出碼,並在分類前驗證報告的 security-gate-summary.json 存在且可解析。

2) 完整掃描

執行:

scripts/security-gate.sh --mode full

當跳過的掃描器會使保證聲明無效時,請加入 --require-tools。檢查點: 除非選定的成品驗證器和流程都成功,否則將結果報告為不完整。

3) 排程閘道

排程自動化針對預期的分支執行完整閘道,並保留其成品目錄。失敗的排程執行會建立可追蹤的待辦工作;AgentOps 本身不提供排程器。

4) 狩獵紀律

對於腳本化閘道之外的審查工作(程式碼層級或紅隊演練),請根據完整分類進行狩獵,而不是依賴你的第一個直覺:

  • 完整分類狩獵。 遍歷 OWASP 檢查清單(或針對提示面的攻擊套件)中的每個適用類別,並記錄每個類別的結果:發現、乾淨或未評估。未訪問的類別是覆蓋缺口,而非乾淨。追逐一個可疑線索而忽略分類是第一嗅覺固著的失敗模式。
  • 每個發現的實證證明。 一個發現是真實的,當它可以重現:一個具體的輸入、請求或命令,展示了該行為,並被捕獲在成品中。僅基於模式匹配的發現被報告為懷疑點,排在已證明的發現之下。
  • 故障開放探測。 對於評估面上的每個防護、閘道或逾時,詢問當它出錯或掛起時會發生什麼——然後在安全的地方進行探測。一個在錯誤情況下故障開放的控管,即使其快樂路徑是正確的,也是一個發現。
  • 身份鏈追蹤。 對於已認證或委派的流程,追蹤每個跳躍點的有效身份是誰(使用者、服務、令牌、鉤子)。身份被假定而非驗證的跳躍點——借用身份的失敗模式——就是一個發現。
  • 靜默回合收斂。 重複完整遍歷,直到一個完整的回合沒有產生任何新內容:沒有新的發現,沒有新的覆蓋缺口。那個靜默回合就是停止條件。在一個嘈雜的回合後停止(發現仍在出現)是過早的;如果預算在靜默回合結束前耗盡,請將狩獵報告為未收斂。

5) 分類

  1. 打開最新的成品,識別掃描器、嚴重性、檔案和覆蓋缺口。
  2. 使用最窄的安全命令重現該發現。
  3. 對具體發現進行排序,並保留覆蓋缺口。
  4. 停止。修復、風險接受以及任何後續掃描都是新的呼叫者決定。不要為了通過而降級、抑制或更新基準線。

輸出規範

成品目錄: 儲存庫閘道寫入 ${SECURITY_GATE_OUTPUT_DIR:-${TMPDIR:-/tmp}/agentops-security}/<run-id>/;可組合套件和紅隊演練使用它們明確的 --out-dir。

檔案命名慣例: 儲存庫閘道要求 security-gate-summary.json(以及原始的 summary.json);套件執行要求 suite-summary.json;紅隊演練要求 redteam/redteam-results.json。

序列化/結構格式: security-gate-summary.json 是 JSON 格式,包含非空的 mode、run_id、output_dir 和 gate_status,數值型 missing_tool_count,布林型 require_tools,以及物件型 toolchain。

驗證器命令: 使用 OUT=<security-gate-run-dir>,執行 jq -e '(.mode|type)=="string" and (.mode|length)>0 and (.run_id|type)=="string" and (.run_id|length)>0 and (.output_dir|type)=="string" and (.output_dir|length)>0 and .gate_status=="PASS" and (.missing_tool_count|type)=="number" and (.require_tools|type)=="boolean" and (.toolchain|type)=="object"' "$OUT/security-gate-summary.json" >/dev/null。

輸出: 報告成品路徑、命令/退出碼、模式、閘道狀態、缺失工具覆蓋、排序後的發現和授權邊界。不要添加擁有者、下一步行動、核准、發布或重試決定。

品質檢查清單

  • 目標和授權邊界明確;收集保持在這些範圍內。
  • 掃描器可用性和跳過/錯誤的覆蓋在報告中可見。
  • 發現結果包含嚴重性、位置、可重現的證據以及有限的修復指導。
  • 成品中不包含新暴露的秘密或未經編輯的敏感負載。
  • 報告區分通過的掃描與推進或發布的權限。
  • 抑制、政策變更、基準線和風險接受需要明確的判斷。
  • 報告在提供證據後停止,不包含任何繼續決策。

驗證

執行此技能和紅隊演練驗證器:

bash skills/security/scripts/validate.sh
bash tests/scripts/test-security-suite-redteam.sh

如需進行有限的套件冒煙測試,請使用擁有的二進位檔和臨時的輸出目錄,如套件操作手冊所示。

範例

  • 一個快速安全請求會執行儲存庫閘道一次,並報告覆蓋範圍和發現。
  • 一個完整安全請求會執行完整掃描一次,並保留其成品。
  • 一個授權二進位檔請求可能會在明確的臨時輸出目錄中捕獲基準線。
  • 一個紅隊演練請求可能會針對儲存庫擁有的面執行離線攻擊套件。

故障排除

問題回應
掃描器缺失/錯誤記錄覆蓋缺口;安裝它或在必要時使用 --require-tools 重新執行
本地/CI 不匹配比較掃描器版本、設定、模式和兩個成品目錄
懷疑誤報狹義重現;記錄任何授權的抑制及其擁有者
套件/基準線失敗檢查指定的比較/政策成品;切勿反射性地重新整理基準線
措辭變更後的紅隊演練失敗判斷控管是否回歸,或者攻擊套件匹配器是否需要有意的修訂

參考文件

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

相關技能