关于 security
面向已获授权的代码、仓库、二进制文件、设计和提示词界面的安全审查技能。它结合人工威胁审查与可选扫描,区分已证实和疑似问题,并记录覆盖缺口。
主要功能
- 01审查获授权的代码与设计
- 02检查失效开放和身份路径
- 03按弱点类别记录覆盖情况
- 04区分已证实与疑似问题
- 05运行可用扫描并记录缺口
适用场景
- 01检查仓库中的安全弱点
- 02在实现前评估设计
- 03审查获授权的二进制文件或提示词界面
- 04报告扫描发现和覆盖限制
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ boshu2/ agentops --skill security安装后在 Claude Code 中输入/security确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/agentops-redteam-pack.jsonattacker-path-evidence.mdowasp-checklist.mdpolicy-example.jsonsecurity-suite-runbook.mdscripts/prompt_redteam.pysecurity_suite.pyvalidate.sh详细介绍
安全技能
用途: 检查并报告代码、脚本、经授权的二进制文件以及仓库管理的提示词界面中的安全弱点,并如实说明覆盖范围。
将此技能用于调用者要求的代码安全审查、代码尚不存在时对计划或设计的审查、仓库扫描、经授权的二进制文件保障、依赖风险、机密信息检查或离线提示词界面红队测试。
关键约束
- 仅扫描操作人员拥有或明确获准评估的仓库、二进制文件和提示词界面。**原因:**安全审查并不授予访问第三方系统或专有资料的权限。
- 默认只读收集;不得外泄机密信息、执行破坏性载荷,或篡改策略/基线来伪造通过结果。**原因:**评估本身不应演变成安全事件,也不应抹去相关证据。
- 将缺失或出错的扫描器视为覆盖缺口,而非安全通过;需要完整工具覆盖时,使用
--require-tools。**原因:**没有证据不代表不存在问题。 - 使用当前 Agent 和本地 Shell;除非明确要求,否则不得启动其他运行时或编排基底。**原因:**仓库扫描是范围有限的操作,不代表可以扩大执行范围。
- 报告发现项和覆盖缺口,然后停止。修复、风险接受、重新扫描、晋级,以及任何发布或合并决策均由调用者决定。若被问及是否发布、合并或部署,请提供发现项和覆盖范围,然后用一句话说明,基于这些证据作出是否推进的决定属于调用者;以任何措辞建议发布、暂缓或阻止,都属于代替调用者作出决定。用简短措辞说明每项发现的修复类别;不要编写补丁、计划、负责人或优先级。
每次审查都必须报告的内容
对每次审查都应用以下规则,无论是脚本审查还是人工审查。这些规则最常被忽略:
- 默认放行路径。 对表面上的每个防护、检查、超时和异常处理程序,都要询问:发生错误或挂起时会怎样?如果某项控制在出错时授予访问权限、跳过检查或继续按成功处理,即使正常路径正确,也应列为发现项。
- 借用身份。 跟踪每一跳的有效身份(用户、服务、令牌、默认值、钩子)。如果某一跳的身份是被假定、设为默认值或继承而非经过验证,这就是借用身份故障模式,应列为发现项。
- 按类别覆盖情况账本。 检查类别检查清单中的每个适用类别,以及默认放行、身份和列表中缺少但该审查范围需要的任何类别,并为每项给出结果:发现项、无问题或未评估。未检查的类别属于覆盖缺口,绝不能标记为无问题。只追查一个线索而忽略分类体系,就是首个线索固着故障模式。
- 已证实与疑似。 只有在运行了具体输入、请求或命令并观察到行为后,发现项才算已证实;要记录这些证据。根据代码推断出的发现项属于疑似,即使已有候选输入;要提供该输入,并将其排在已证实的发现项之后。
- 快照范围。 指明确切的快照(提交、注明 HEAD 的工作树,或文档修订版本)和路径范围。单独列出未读取的输入,并标明为未读取、已删除或在范围之外;这些都不能算作无问题。影响范围必须限定在快照内:如果某项发现需要不存在的代码、未来的更改或未读取的路径,则它属于假设,并须如此标注。如果剩余预算不足以完成另一轮完整检查,就停止开启新线索,并报告此次排查尚未收敛。
- 关于共享或发布问题的已交付范围。 当被问及内容是否适合公开或交给另一方(例如仓库、导出文件、软件包)时,快照就是接收方将获得的内容:构建产物或输出树、随其一同交付的历史中可达的每个提交,以及派生副本(例如索引、缓存和生成文件)。在 HEAD 中已删除的内容仍可能暴露于更早的提交中。报告历史暴露情况及其修复类别(轮换凭据、创建全新历史或经所有者授权重写历史),并且不要执行这些修复。
对于每项发现,请在下方字段中说明攻击者路径和相关防护控制。只有当某项发现的可达性、控制有效性或声称的测试完成情况需要进一步佐证时,才阅读攻击者路径证据。
target: <paths, endpoints, or binary>; authorization: <boundary>
snapshot: <commit | working tree on HEAD | document revision>; unread: <paths> | deleted: <paths> | outside scope: <paths>
findings: <id> <severity> <file:line> <class>: <what>
proven: <input run> | suspected: <candidate input, why not run>
path: <attacker input> -> <reachable behavior> -> <trust boundary> -> <impact>
control: <relevant protection challenged and outcome, or none identified>
fix class: <a few words>
coverage: <class> -> finding <ids> | clean | not assessed (<why>)
tools: <scanner or command> -> ran | missing | error
hunt: converged after <n> passes | unconverged | not run
人工排查
代码级审查和红队测试适用于任何仓库,无论是否使用 AgentOps 工具。对照完整审查范围逐项检查账本,并在安全的情况下探测默认放行行为。重复完整审查,直到某一轮完整审查没有新增发现项,也没有新增覆盖缺口;这一轮无新增的轮次就是停止条件。如果预算先耗尽,就报告此次排查尚未收敛。无新增轮次规则仅适用于人工排查。
对于尚无代码的计划、规格说明或设计,也要进行同样的排查,但要针对文档提出的内容。列出它新增的端点、数据存储、集成和输入,然后只报告攻击者在按文档所述构建后能够利用的弱点,例如:未指定主体或访问决策的能力;未说明如何处理传输中、静态存储、日志记录或删除时敏感数据;未说明信任、存储、轮换或遭到入侵时处理方式的第三方或秘密;或本身不安全的明确选择,包括输入处理方式。引用相关章节。文档所提方案中的弱点属于其修订范围,不属于规则 5 所说的假设;由于没有可运行的内容,这些弱点都属于疑似。
脚本化扫描
每次请求中,每个选定的扫描只运行一次;重新运行属于调用方的新决定。
<skill-dir> 是包含此 SKILL.md 的目录。Claude Code 将其显示为“此技能的基目录”;Codex 会列出此技能的 SKILL.md 路径;在 AgentOps 源代码检出中,它是 skills/security。运行命令前,请将 <skill-dir> 替换为该目录的绝对路径。工作目录仍为用户的仓库。如果宿主未显示此技能的安装位置,请使用你读取的 SKILL.md 所在目录。如果无法确定,请勿猜测路径,也不要运行当前仓库中同名的脚本;请说明捆绑脚本不可用,运行项目已有的扫描器,将套件或 redteam 扫描记录为覆盖缺口,并进行人工排查。
| 表面 | 入口点 | 位置 |
|---|---|---|
| 仓库门禁(快速或完整) | bash scripts/security-gate.sh | 仅限 AgentOps 仓库根目录 |
| 面向已授权二进制文件的可组合套件 | python3 "<skill-dir>/scripts/security_suite.py" | 与此技能捆绑 |
| 离线提示词表面 redteam | python3 "<skill-dir>/scripts/prompt_redteam.py" | 与此技能捆绑 |
- 没有门禁脚本(其他任何仓库):运行项目已有的扫描器,例如依赖审计、密钥扫描或静态分析;将每项缺失的扫描器记录为覆盖缺口,并进行人工排查。
- **Redteam 测试包:**捆绑的攻击测试包针对 AgentOps 控制面。在其他仓库中,其用例会因“no files matched target globs”而失败;这是测试包不匹配,并非发现问题。PASS 表示控制措施已有书面记录,并不意味着 Agent 能抵御攻击。
- 在执行门禁、二进制文件、策略、基线或 redteam 工作前,请阅读套件运行手册。其中包含命令、门禁退出代码、制品规范,以及动态运行的限制;该运行采用抽样方式,且未隔离。
分类处理
- 打开最新的制品,确认扫描器、严重性、文件和覆盖缺口。
- 使用范围尽可能小且安全的命令复现发现的问题;未能复现的命中仍视为疑似问题。
- 对具体发现的问题排序,并保留覆盖缺口。
- 停止。修复、接受风险以及之后的任何扫描都属于调用方的新决定。切勿仅为通过检查而降低评级、抑制问题或更新基线。
输出规范
- **制品目录:**套件和 redteam 运行会将文件写入其显式指定的
--out-dir;仓库门禁的目录见运行手册。 - 文件名约定:
security-gate-summary.json(门禁)、suite-summary.json(套件)、redteam/redteam-results.json(redteam)。 - **序列化/架构格式:**JSON。**验证器命令:**门禁摘要的字段规范和
jq检查见运行手册;未通过检查的摘要会导致结果不完整。
**下游交接:**上述审查报告;对于脚本化扫描,还需提供制品路径、命令和退出代码、模式及门禁状态。报告应在证据处结束:不得包含负责人、后续操作、批准、发布、上线或重试决定,也不得包含新暴露的密钥或未经脱敏的敏感内容。