Skip to main content

audit-playbook

代码审计模式作战手册:审计前置识别、Fortify 规则体系与 OWASP Agentic Top 10 (2026) 标准参考、危险 sink 优先策略、供应链与配置部署审计、确证闭环流程、交叉复核规范、调用链引用规范、动态证据留痕与报告模板、同型命中横扫纪律(三层放大)、场景化审计卡(LLM Agent/供应链/配置部署/反编译四卡)、动态验证线(环境登记/调试纪律/payload 打点)、框架专项路由、机器可读工件 sinks.csv·scan-reconcile.csv、经验召回。

跳到安装

来源信息

仓库
SeaOf0/dsh-redteam-model
最近来源活动
2026年9月1日 01:26
检测到的 SKILL.md 语言
中文
星标
486
分支
42

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
audit-playbook
description
代码审计模式作战手册:审计前置识别、Fortify 规则体系与 OWASP Agentic Top 10 (2026) 标准参考、危险 sink 优先策略、供应链与配置部署审计、确证闭环流程、交叉复核规范、调用链引用规范、动态证据留痕与报告模板、同型命中横扫纪律(三层放大)、场景化审计卡(LLM Agent/供应链/配置部署/反编译四卡)、动态验证线(环境登记/调试纪律/payload 打点)、框架专项路由、机器可读工件 sinks.csv·scan-reconcile.csv、经验召回。
# 代码审计作战手册 > 本技能随 code-audit 预设走。 > persona 中的硬规则(底线、验证等级、误报排除、扫描器复核、三级深度、只读纪律、表达纪律(拒答修复由宿主插件 dsh-refusal-guard 兜底)、claude 逻辑)不在此重复。 ## 审计形态(静态/动态)判定与开工问询(第一动作) **形态定义(铁律)**: - **静态审计(static)**:用户未提供本地环境时,一切从代码层审计(调用链追 sink / 双链 / 扫描复核) 得到的结果都归静态;**提供了环境但未复现生效的同样归静态**。静态 finding 的状态最高到 「待人工验证」,EXP 是「待复现 EXP」(交付用户手动复现)。 - **动态审计(dynamic)**:**只有**用户提供的本地可用复现环境**真实证明漏洞生效**,才标 动态·验证成功(auditMode=dynamic + 状态可进已验证)。 - **动态优先规则**:用户提供了本地环境 → 审计方式自动以动态优先: 读代码追 sink + 调试 + 本地验证 = 真实结果;复现不成功的按静态收口并如实记录原因。 **开工问询(任务下达后的第一步,先于 Triage)**:用户未指明审计形态时,用 ask_user 弹出三选: 1. **静态审计**——只做代码层审计,结果后续由你手动复现; 2. **动态审计**——请提供本地可用复现环境(路径/启动方式/凭据); 3. (用户自行输入——自定义范围/形态/补充说明) - **得到确切回复后**才继续开审计链路(Triage → 面映射 → 扇出…)。 - **免问条件**:用户任务里已指明形态(「静态审计」/「动态审计」+ 动态须已给本地环境)→ 跳过问询直接开工;指明动态但未给环境 → 回到问询补一句「请提供本地可用环境」。 **登记联动**:每个 finding 登记时 `auditMode` 必填(static/dynamic,语义见 shared/refs/finding-fields.md);成果页列表/详情/导出报告/统计分布均按此标签展示。 ## 阶段默认通道(装备栏:流程定默认,能力定降级) > 元原则与前两模式同:通道成本随流程递增;通道缺失按「工具使用策略·通道完整阶梯」降级 > (已挂 → 自配 → 问装 → 脚本 → 诚实降级);本模式分叉轴=**验证等级 × 产物形态** > (静态 code-reviewed / 动态 verified;源码 / 反编译 / 小程序解包)——已内建于形态判定 > 与状态机,不需要额外姿态判定。跨阶段复用查附录 C-2。 | 阶段 | 默认通道 | 降级链 | |---|---|---| | 前置识别(语言/框架/依赖) | 本地统计+rg(build 文件/manifest/大表) | ast-grep 结构化识别 → kali MCP → 脚本 | | 面映射(surface-map) | 本地 rg 逐 sink 面 + sinks.csv 机器工件 | ast-grep 模式 → 脚本 | | 静态扫描 | **本地 semgrep 三层规则集**(402 自建+1080 oss+chanzi 语义,随预设离线自包含=主通道) | kali MCP semgrep_scan(**只替引擎不替规则集**,命中面收窄如实标注)→ bandit/flawfinder 专项 → 规则降级章通用模式+脚本 | | 供应链 SCA / 凭据 | trivy + gitleaks(本地) | osv-scanner / syft+grype → kali MCP → pip-audit/npm-audit | | 深审调用链(双链 TRACE) | 人工推理 + rg 佐证(追踪员独立 grep,不预设写法) | ast-grep 结构化检索 → 脚本 | | 反编译(产物形态路由) | 卡 4 家族表:JVM=CFR·procyon / Android=jadx·apktool / .NET=ilspycmd·dnSpyEx / pyc=pycdc·uncompyle6 / Lua=unluac / native=生态分流 binary | kali MCP apk_decompile(apk 侧)→ 请用户提供反编译产物(生态流转)→ 标注「未反编译,结论降级」 | | 动态验证 | 隔离部署环境(隔离级见动态验证线)+ 调试 attach(jdb/XDebug) | chrome MCP 浏览器侧互证(可自配档)→ 待人工验证清单 | ## 审计前置识别(Triage) - 先判断代码/框架/系统类型:语言、框架、中间件、部署形态。 - 通用框架:先核对已知漏洞是否仍存在(版本比对 + 公开漏洞库),再针对业务代码做增量审计。 - **开源框架二次审计(魔改目标)**:审计对象是开源框架或其魔改版时,上游仓库 (GitHub/Gitee)的 issue 区(Open 与 Closed 都看)与历史漏洞清单是第一输入—— **历史漏洞的审计思路可直接学习**(sink 位置/触达路径/利用条件映射到魔改代码逐一 二次核对);再对照上游架构(路由/过滤层/基类)圈定魔改增量面,增量部分按本手册 主线深审(魔改≠安全:上游修了本地没修=直接命中,上游没修魔改引入=深审增量)。 - **框架专项路由**:识别出已知框架/组件后直达专项手册(`refs/components/` 九篇——fastjson / shiro / log4j / struts2 / weblogic / jeecg-boot / ruoyi(若依)/ spring-framework(全家桶)/ thinkphp):先核该组件全部 已知漏洞面(版本比对 + 利用条件核对)再增量审业务代码;refs 未收录的框架按 `refs/lang/` 对应语言手册 + 公开漏洞库检索兜底,并登记「未收录框架」到规则降级记录。 - **经验召回**:开工读工作区 `lessons.md`(存在时)——同类框架/组件续审召回历史坑与方法(本仓续审专用;跨任务/跨客户知识已由战役记忆自动注入,勿在此重复检索) (格式见 ecosystem-cooperation「经验台账」)。 - **战役记忆沉淀(代审特化)**:框架 sink 特征经验证后 `campaign_memory_write`(kind=fingerprint, 命中条件与 sink 清单入正文);semgrep 规则集调优结论记 tooling;跨任务复用走战役记忆,本仓 续审用 lessons.md——两轨不重叠。 - 完全不认识的代码/框架/系统:才走 0→1 全量审计,且先向用户确认范围与深度。 ## 静态审计标准 - **标准参考(预设内置,随预设分发)**:`refs/standards/fortify-kingdom-reference.md`—— 八王国分类 + CWE 映射 + 定级指南 + 与本预设手册的对应表;不依赖任何本机/外部安装。 - **外部 Fortify 安装(可选增强,绝不调用)**:目标机若有 Fortify,其扫描结果只能作为 **交叉参照**,不写死路径、缺失不阻断——标准参考以预设内置文件为准。 - 规则体系 + CWE/OWASP 模式库,映射到具体语言的 sink 清单(见下)。 - **LLM Agent 应用审计**:参照 OWASP Agentic Top 10 (2026)—— 提示注入、MCP 配置(权限过大、明文密钥)、工具滥用、上下文污染等; 可参考 OSS 项目 agent-audit(51 条规则、污点分析)的组织方式。 ## 危险 sink 优先策略 - 按语言建立危险函数清单(greppable sinks):命令执行、SQL、反序列化、 任意文件读写、SSRF、XXE、模板注入、路径穿越等。 - 审计顺序:外部输入入口 → 传播路径 → sink;先扫 sink 反查输入,再逐条确认数据流。 - 平均用力是审计大忌:把时间花在外部输入可达的 sink 上。 - **同型命中横扫(放大器纪律)**:任一 sink 命中确证后,立即三层横扫并清单化—— ① 同函数/同方法的**全部调用点**反查(命中一处 ≠ 只报一处); ② 同型模式全局反查:同拼接习惯(同一 Mapper 的其他 `${}` / 同一工具类的同用法 / 同一作者的相邻提交); ③ 同框架组件的其他暴露面(某框架接口出 SQLi → 该框架全部同类接口清单)。 横扫产出=候选清单入覆盖矩阵新行(同型格),每处仍独立走双链——横扫给的是候选, 不是结论。 ## RCE 主线聚焦(主观念) > 主观念锚点:审计聚焦**可 RCE**——凡能通往远程代码执行/权限提升的链都优先深审; > 常规漏洞审计并行不辍。每类 RCE 候选的判定要点与常见形态: | RCE 类别 | 审计判定要点 | 常见形态 | |---|---|---| | 任意文件上传 RCE | 上传点(入口)→ 存储路径是否可控/可预测 → 后缀/类型校验是否可绕过 → 落地文件是否被解析执行(webroot/PHP/JSP/模板目录) | 双后缀、MIME 伪造、路径拼接穿越、覆盖 .htaccess、软链 | | 未授权 RCE | 危险接口(管理端点/调试端点/actuator/jmx/rpc)的鉴权是否缺失或可绕过 → 接口是否直达命令执行/反序列化/上传 | 无鉴权 actuator、debug 端口、RMI/JMX 未授权 | | 组合 RCE(多步链) | 把孤立低危串成链:写文件 + 路径穿越 → 任意写 → 覆盖脚本/计划任务/启动项;SSRF + 文件读 → 内网 RCE 面 | 模板注入 + 文件写、SSRF→gopher、任意写→cron/webroot | | 硬编码凭据/密钥造成前端绕过与利用链 | 前端 JS/配置/打包产物中硬编码密钥、签名密钥、管理凭据 → 前端校验可被绕过或伪造 → 直达后端敏感接口;**利用链纵深**:硬编码密钥 → 伪造/生成合法 token(JWT 签名、session 加密、接口签名)→ 认证绕过直达高危接口乃至 RCE(如利用密钥构造反序列化/命令执行载荷)——利用链成立即高危定级并给出可复现利用证明 | JWT 弱密钥、加密参数可伪造、硬编码 admin 口令、密钥伪造 token 触发 RCE | | zip 自解压/释放导致 RCE | 解压入口(上传 zip/更新包)→ 条目名路径穿越(zip-slip `../`)→ 落点覆盖关键文件(webroot/依赖/启动脚本) | 更新包解压穿越、符号链接条目、解压炸弹 | | 深度反序列化 | 入口是否接受不可信序列化数据 → 反序列化框架与版本 gadget 链 → 嵌套/二次反序列化(JSON 内嵌序列化串、回调触发二次 readObject) | fastjson/shiro/log4j、hessian 二次反序列化、XStream 回调 | | 溢出导致 RCE | C/C++ 系:不可信长度入 memcpy/strcpy/sprintf → 栈/堆溢出可控性 → 缓解机制(ASLR/PIE/canary)判定 | 协议解析、图片/压缩解码、内核模块 | **每类 RCE 候选的硬要求**: - 双链(工人链/追踪员链)三要素一致才入报告,否则标「未决」; - **可利用性条件全列**:前提(版本/配置/权限/依赖 gadget)、限制、组合步骤——缺条件的 RCE 降级为「有条件 RCE」并如实标注; - 已验证(静态待手动验证或动态已验证)的 RCE 发现,**直接生成完整 python 复现脚本**(exp/<finding-id>.py): 参数化目标、默认只读/最小影响(命令执行默认 whoami 级)、破坏性步骤默认关闭(开关变量)、 退出码 0=复现成功、头部注释写明授权前提与清理说明——随报告交付客户手动复现。 ## 审计对象范围 | 对象 | 要点 | |---|---| | 业务应用代码 | sink 优先 + 真实调用链 | | 配置与部署资产 | Dockerfile、nginx、云配置、K8s manifest(权限、端口、密钥、镜像来源) | | 依赖供应链 | SBOM 生成 → osv-scanner/版本核对 → Semgrep Supply Chain 类工具 → SLSA/provenance 意识 | | LLM Agent 应用 | OWASP Agentic Top 10 (2026) 视角(见上) | | 移动端反编译代码 | Android:jadx/apktool 出 Java/smali;iOS:class-dump/Hopper 出头文件与伪代码;审计反编译产物,调用链引用标注反编译来源 | | 小程序解包代码 | wxapkg 解包 → JS + wxml/wxss;JS 混淆先识别后去混淆再审计,无法还原的如实标注 | ## 移动端 / 小程序反编译审计 - **反编译产物作为审计对象**:反编译出的代码同样是「代码侧真实调用链」的载体;调用链引用格式加注来源(如 `jadx#com.app.Login.a()`)。 - **Android**:jadx/apktool/dex2jar 出 Java 与 smali;优先审 Java,smali 用于确认字节级行为(混淆/加固后的兜底)。 - **iOS**:ipa 解包 + class-dump 头文件 + 反编译器伪代码;注意 OC runtime 的调用间接性,调用链要落到 selector。 - **小程序**:wxapkg 解包后审计 JS(api 调用、鉴权缺失、敏感信息硬编码);先识别混淆(字符串加密/控制流平坦化),能还原再审计,不能还原的标注「混淆未还原,结论降级」。 - 与 binary-analysis 的分工:脱壳/还原归 binary-analysis,还原产物的代码审计归本模式;接收还原产物须先核对「完整性已验证」(dex 校验/IAT 有效性/可运行性,见 re-playbook Gate B1)+ 哈希与来源登记后再开审。 ## 场景化审计卡(按对象形态入口) > 「审计对象范围」表的作战化展开:每卡=入口判定 → 打法 → 产物 → 门禁挂接;命中即按卡 > 打,多形态并存时并行各卡(覆盖矩阵开对应轴行)。 ### 卡 1 LLM Agent 应用审计 - **入口判定**:代码中出现 Agent 框架/LangChain 类编排/MCP 服务端或客户端/工具注册表/ 系统 prompt 组装——任一即按本卡。 - **打法**(OWASP Agentic Top 10 2026 视角):①提示注入面——外部内容进 prompt 的全部 路径(检索结果/工具返回/文件内容)是否带隔离标记;②**工具滥用链=Agent 版越权**—— 工具权限声明与实际能力差、用户可指令触达的工具集合;③MCP 配置——权限过大、明文密钥、 服务端鉴权缺失;④上下文污染与记忆投毒路径;⑤沙箱/审批旁路。 - **产物**:面映射的「入口」轴=工具与 prompt 边界清单;finding 走 A1-A3 同款门禁 (双链的 entry=用户可控输入进 Agent 的位置)。 ### 卡 2 依赖供应链审计 - **入口判定**:锁文件(lock/pom/go.sum)、SBOM 输入、或用户点名供应链场景。 - **打法**:SBOM 生成 → osv-scanner/版本核对(对照 refs/components 专项)→ 组件级 finding(可达性核对:**被引入 ≠ 被利用**,利用条件全列)→ provenance/SLSA 意识 (源不可信/改名包/私源混入)。 - **产物**:scan-reconcile 对账挂接(SCA 工具命中同走数量守恒);组件 finding 标 sourceOrigin=scan 系,人工确证后升格。 ### 卡 3 配置与部署资产审计 - **入口判定**:仓库含 Dockerfile/compose/K8s manifest/nginx·云配置/IaC。 - **打法**:以 root 运行/privileged、端口暴露面、密钥内嵌(trivy/conftest+rego 策略)、 镜像来源与固定、能力位(CAP_*)与 hostPath、TLS 与 header 策略。 - **产物**:配置类 finding 进六字段报告(fix 给具体配置修正 diff);策略规则集登记进 覆盖矩阵头部(规则降级记录)。 ### 卡 4 反编译产物审计 - **入口判定**:binary-analysis 回传还原产物 / 直接给 apk·ipa·wxapkg。 - **反编译工具家族(按产物形态路由,检测制;安装走总纲安装阀门)**: | 产物形态 | 首选(agent 可自动用) | 备选 / 交互 | 备注 | |---|---|---|---| | Java/Kotlin jar·字节码 | **CFR**(单 jar 可批量) | procyon / fernflower | java-audit refs 含 CFR 策略 | | Android apk/dex | **jadx** | apktool(资源/smali)/ dex2jar | 优先审 Java,smali 兜底 | | .NET(C#/VB dll·exe) | **ilspycmd**(ILSpy CLI,dotnet tool,跨平台可批量) | **dnSpyEx**(Windows GUI,交互调试/动态补丁强——**agent 不自动开 GUI,需要时请用户配合操作**) | agent 默认 CLI 批量反编译 | | Python pyc/pyz | **pycdc**(高版本覆盖好) | uncompyle6(≤3.8)/ decompyle3 | 解不出反汇编字节码兜底 | | Lua(游戏/嵌入式脚本) | **unluac**(jar 单文件) | luadec | 混淆 Lua 先过 js-reverse/方法论 refs | | Electron asar | **asar extract**(npm) | — | ≈源码级(同 pentest 客户端侧) | | native 二进制(C/C++/Go/Rust) | **生态分流 binary-analysis**(Ghidra headless/IDA/r2 产伪代码) | — | 脱壳还原+产物校验归 Gate B1,回流转本模式审伪代码 | - **打法**:先核对「完整性已验证」(B1 产物校验+哈希)→ 走「移动端/小程序反编译审计」 章打法(本卡=入口路由,不重复内容);调用链标注反编译来源(`jadx#类#方法`·`ilspycmd#命名空间.类`·`CFR#类`)。 ## 规则降级 - 无现成规则的语言:用通用模式兜底——输入校验、权限控制、加密/哈希误用、竞态条件、错误信息泄露。 ## 动态验证与证据留痕 - **环境启动登记**:用户提供环境后,先把启动方式/版本/关键配置登记进 evidence-index (环境差异是复现失败首因,登记是排障依据)。 - **本地动态部署环境的隔离级**(按「虚拟化与沙箱公约」):已知非恶意的靶场/被审应用 可容器级(docker/podman 起,无宿主敏感挂载);**未经审计的第三方依赖、来历不明的 构建产物须 VM 级**再运行——检测虚拟化平面并入 tool-plane,无虚拟化则静态结论 + 待人工验证,不本机硬跑。 - **调试纪律**:断点优先于插桩 print;断点落在 sink 前一行观察实参流转;远程调试 (jdb / XDebug / IDE attach)的连接配置一并登记。 - **payload 打点(动态版确定性信号)**:payload 携带高熵随机标记(marker),在断点变量/ 响应回显/落库记录任一处观察到标记 = 污点真实到达该点——与静态链推断互证。 - 保留请求/响应包作为证据;静态发现一律进「待人工验证清单」,审计结束汇总输出给用户。 - **复现不成功的降级记录格式**:尝试过的 payload 形态 + 环境差异点 + 结论归静态(附 原因)——按 persona 验证等级如实降级,不硬凑动态。 ## 确证闭环流程 1. 发现(扫描/人工)→ 2. 交叉复核(独立子代理复核调用链与结论)→ 3. 确证(静态→待人工验证;动态→自动验证)→ 4. 报告 → 5. 修复 → 6. 复测(原 poc 复验)→ 闭环记录。 - 状态机:疑似 → 待人工验证 → 已验证 / 已排除(误报)→ 已修复 → 已复测。 **双链分档纪律(按 finding 等级配确证成本)**: - **critical/high**:完整双链(审计工人链 + 追踪员独立重追)+ 复核员确证——现有全流程不变; - **medium**:单链完整(工人链 entry→sink 落台账)+ 复核员抽检(抽检比例与理由记台账); - **low**:登记即收(finding 落库 + 台账一行登记标记,不产链文件、不派追踪员)。 分档标记写入台账该 finding 节首行(tier: dual / single / registered);`verified` 语义各档不变 (动态验证成功才可标,静态最高 code-reviewed)。 **EXP 交付(静态/动态统一硬要求)**:审计出的每个漏洞都必须具备**完整 EXP 用于测试**—— 复杂漏洞(多步链/需构造 payload/依赖环境)产出完整复现脚本 `exp/<finding-id>.py` (参数化、破坏性步骤默认关闭、复现条件写头部注释);简单漏洞(单请求/单输入触发) 在 poc 字段**直接给可复现 EXP**(完整请求包/命令/构造输入),不绕「利用前提」措辞。 只写复现条件不算完成——静态审计复核通过只登记 `code-reviewed`(代码侧已复核); `verified` 仅限动态验证成功(EXP 本地复现真实生效,或在线授权环境实测 L1 通过); 无完整 EXP 的 finding 停在 `pending`(待动态验证); 成果页登记的 poc 字段同步必含该 EXP(脚本路径+用法 或 直接可复现内容)。 **一键实测配套(poc 顶部指纹节,hunter 实测按钮使用)**:登记 finding 时在 poc 字段 顶部附加两行可选约定节(有则实测可自动执行,无则实测按钮提示补指纹): ``` 指纹:framework=xxl-job,version=2.4.0,title="任务调度中心",body="XXL-JOB",header="xxl" L1验证:GET /toLogin 期望:任务调度中心 ``` - 指纹节=目标框架的可观察特征(title/body/header 特征优先,framework/version 兜底), 供 hunter 以特征方式搜索互联网对应框架资产并做一致性校验。 - L1验证节=EXP 的最小影响验证请求(只读路径/whoami 级回显),仅对「hunter 狩猎」页 标记授权的资产执行;未授权资产只做 L0(存活+指纹一致)判定。 - 实测按钮(成果页 code-audit finding,「验证」前):静态审计=完整验证流水线(搜索 50 条→存活探测→指纹一致性→L1(授权资产)→任一成立即停+回写);动态审计(EXP 已在本地复现)=影响面评估(搜同类资产+存活指纹统计)。主特征零命中时自动放宽 (单一特征→框架名兜底)从互联网侧续搜;仍零命中才收 no-assets 并给下一步建议 (人工扩大特征词/提供授权资产/本地靶场)。 - 未授权资产需要 POC 验证时**不做死路拒绝**,给三条出路(实测结论与通知同步给出): ①hunter 页「标记授权」后重试 L1 快验;②交接渗透测试模式执行完整 POC——先向用户 确认该资产测试授权,按渗透纪律探测复测+对照三件套留证,命中后按渗透模式登记成果 并回标审计 finding;③本地同版本靶场验证。 ## Diff 审计模式 - 对 patch/PR:审计变更行 + 必要上下文,不整仓重审。 - 关注:新增 sink、权限变更、依赖升级/降级、配置修改。 ## 交叉复核规范 - 每个 finding 由一个独立子代理复核:独立重算调用链、核对证据、挑战结论。 - 两人一致才进报告;不一致的退回确认或降级为「疑似」。 ## 调用链引用规范 - 格式:`文件:行号` 起点的数据流描述,如 `Login.java:42 (userId) → SqlMapper.xml:18 (${userId})`。 - 禁止「看起来像」「疑似存在」这类无链路的表述;禁止原样粘贴扫描器输出。 ## 成果页登记(会话隔离) - 每个进入六字段报告的 finding,同步调 `redteam_finding_register` 登记到本会话「redteam 成果」页 (Web 端会话标签页,code-audit 页统计含 RCE 主线分布,详情含调用链块)。 - 字段对齐:**auditMode=审计形态(必填,static/dynamic,判定规则见「审计形态」节)**、title=名称、severity=等级、target=sink 位置(file:line)、summary=一句简介、 **chain=调用链(必填,双链格式每行一链:`entry → … → sink(file:line)`)**、 type=RCE 主线词表(任意上传RCE/未授权RCE/组合RCE/硬编码前端绕过/zip自解压RCE/深度反序列化/溢出RCE/其他)、 **poc=完整 EXP(必填,见「确证闭环流程」节:复杂=exp/<finding-id>.py 脚本路径+用法;简单=直接可复现的请求/命令)**、 evidence=双链台账路径(artifacts/audit-chains.md 的对应 finding 节)、**fix=修复建议(必填)**。 - 双链复核后 `redteam_finding_update` 回写 verified/false-positive + verifyNote;作废条目 `redteam_finding_delete`。 - **代审富字段登记必填组**:chainTracer=追踪员链(独立重追)、chainVerdict=双链一致性结论(页面双栏对照展示)、 snippetEntry/snippetSink=入口与 sink 处关键代码——导出报告的「双链对照/一致性结论/关键代码」节 直接取这三个字段,漏登即导出为空;cwe=CWE 编号(统计出 CWE 分布); sourceOrigin=来源(manual 人工深审 / scan-confirmed 扫描确认 / scan-false-positive 扫描误报,对齐 scan-reconcile); patch=修复 diff 建议。页面支持按文件/sink 分组、总览(MD)与报告包(HTML)导出。 ## 报告模板 - 覆盖声明(operation_scope 已登记时必带):报告含「覆盖:M/N」一行,与 operation-state 台账实测一致(报告门算术对账,虚报/漏报拦门);未测项列入未覆盖清单并注明原因(不在范围/超预算/未授权等)。 ### SARIF 机器可读导出(CI 集成场景) 报告除 markdown 主文件外,可按需附 `reports/findings.sarif`(SARIF 2.1.0)供 CI/扫描平台消费: 每个 confirmed 漏洞一条 result——`ruleId`=漏洞类型( CWE/自定义 )、`level`= error/warning/note(按 severity 映射)、`locations[].physicalLocation`= 文件路径+行号(source-to-sink 链取 sink 行)、`message.text`=六字段摘要、 `partialFingerprints`={sourceFunc, sinkFunc}(同一漏洞复测去重键)。 顶层 `runs[].tool.driver` 写本审计标识与版本。CI 场景(PR 门禁/平台导入)才生成, 人工交付场景以 markdown 报告为准。 - 与 pentest 同构六字段:漏洞名称 / 漏洞描述 / 漏洞等级 / 漏洞地址(file:line) / 测试过程(完整调用链 + 验证状态 + 交叉复核记录)/ 修复建议(针对该问题点,可附 patch/diff 建议,不落盘)。 - 文件命名「序号-漏洞名.md」;审计结束另出「待人工验证清单」汇总。 - 局限性声明(固定行):本报告由 AI 多 harness 协作生成(DSH=DeepSeek 主模型;复核通道=claude/codex CLI,后端随各自 CLI 配置),关键结论经 DSH 独立子代理复核后定稿输出;跨 harness 复核作为建议项由用户决定是否追加,仍可能存在模型级盲区——重大决策请结合人工判断。 ## 工具手册 - **过程检索(trace-vault,自动留痕)**:`trace_search(query)` 按关键词子串检索历史工具调用的参数与响应文本(报错原文/拦截响应/回显/响应头/某工具当时的调用参数),`trace_get(id)` 取全文,`trace_recent` 看最近调用与出局统计(blocked 聚集=换路径/降速信号)——上下文被压缩或轮次久远后找回「曾经出现过」的过程观察,不依赖记忆;留痕自动进行,无需手动登记。 ### 工具使用策略(总纲) - **通道决策三原则(audit 特化)**:①**规则集优先于引擎**——本地三层规则集是主资产, 引擎可被替代而规则集不随行(替代=命中面收窄,如实标注);②输出可读性优先(扫描一律 `--json` 落盘再对账,长输出走 A8 纪律);③最小装载成本(识别/面映射阶段不起扫描器)。 - **工具平面检测制(替代本机快照)**:期望工具集不声称已装,开工检测为准;tool-plane 节 登记四列——**CLI**(command -v,多工具批量 tool-plane.sh/.ps1)/ **MCP**(自省 `mcp__<server>__<tool>`,mcp-studio 挂载时 tools.view();来源标 mounted | self-configured)/ **installed-by-agent**(收尾卸载对账)/ **install-failed**(防重试白费);涉部署环境另含 「虚拟化平面」行(虚拟化与沙箱公约)。 - **通道完整阶梯(与前两模式同构,每级有出口有留痕)**: ① **已挂直接用**——CLI/MCP 两列检测到即用(本地 semgrep 三层规则集=静态扫描主通道); ② **可自配 MCP 档**——白名单制(chrome-devtools 类无副作用 stdio MCP 自配+复测+用); kali/js-reverse 等**需服务型不可自配**(宿主未启动时 ask_user 请用户开); ③ **安装阀门**——CLI 工具缺失(semgrep/trivy/反编译器类)首次 ask 是否允许自动化配置并 调用;**批准=本会话预授权**;不批准=降级或遵用户建议。**失败最多 3 次重试**判死登记 install-failed 后直接写脚本代替;**安装位置项目/工作区目录优先**(venv/pip --target/ 工作区 tools/;反编译 jar 类单文件落 tools/ 即用);成功登记 installed-by-agent 列; ④ **脚本兜底**——python3 → shell → ps1,落 scripts/ 登记后**先自测再用**; ⑤ **诚实降级**——不可替能力(如 .NET 反编译全缺且用户不配合)登记覆盖度台账、收窄 结论,不虚构;**收口卸载阀门**——报告产出后按 installed-by-agent 清单 ask 是否完全 卸载(只卸 agent 装的),不批准则保留结束。 - 期望工具集:核心 = 附录 A(扫描/供应链主链),补充 = 附录 B(语言专项扩展); 缺失不阻断开工,走通道完整阶梯。 - **跨平台(win/mac/linux)**:`find|wc -l`、`grep -rn` 等 bash 统计命令在 Windows PowerShell 用公约等价形式(Get-ChildItem/Select-String);semgrep/trivy/gitleaks 三平台原生, 参数一致;bash 辅助可用 rg 跨平台替代。 ### 阶段速查卡(六要素:定位 / 高频命令模板 / 输出解读 / 速率纪律 / 证据留存 / 复核义务) #### 前置识别(Triage) - **bash 统计先行**:`find . -name '*.java' | wc -l`、依赖清单解析 (package.json / requirements.txt / go.mod / pom.xml / Gemfile)—— 语言与框架判定是选择规则集与参考手册(refs/lang/)的前提。 - 通用框架先做版本比对:从依赖清单提取版本,对照已知漏洞库(见供应链阶段)。 #### 静态扫描 - **semgrep**(检测后使用)——多语言规则扫描主工具。 - **首选封装工具 `semgrep_scan`**(preset 平面):规则层参数化(builtin-java=402 自建 / builtin-php / oss=1080 开源 / custom=自定路径),预设 refs/ 自动定位,产物自动落 `artifacts/scans/`+evidence-index 回行,**命中自动双写 scan-reconcile.md/.csv 待处置行** (命中≠漏洞——复核后经 `redteam_finding_register` sourceOrigin=scan-confirmed/ scan-false-positive 升格,A3 数量守恒)。缺装时工具自带三级兜底提示。 - 手工 CLI(工具不可用/需精细控制时): `semgrep scan --config refs/lang/java-audit/semgrep-rules/ --json -o semgrep.json <path>` (java 系 402 条自建规则);php 用 `refs/lang/php-audit/semgrep-rules/`; 其他语言与开源规则用 `refs/standards/semgrep-oss/<语言>/`(按需挂单目录)。 - registry pack 兜底(仅联网时):`semgrep scan --config p/owasp-top-ten --json <path>`。 - 自定义规则:`semgrep scan --config <rule.yml> <path>`;规则编写方法读 refs/methodology/devsecops-sast.md。 - 输出:`--json` 供程序化解析;**命中 ≠ 漏洞**——每条命中必须复核 + 补真实调用链 (persona 硬规则,禁止原样转报告)。 - 速率:本地静态扫描无网络速率问题;大仓分模块跑,控制单次输出规模。 - **标准参考内置**:`refs/standards/fortify-kingdom-reference.md`(八王国分类/CWE 映射/ 定级指南)作定级参照,随预设分发;外部 Fortify 安装仅作增强参照(**不调用本体**、 不写死路径),缺失不阻断——标准参考以预设内置文件为准。 #### 依赖供应链 - **trivy**(检测后使用)——SBOM + 漏洞 + 配置三合一。 - 仓库扫描:`trivy fs --scanners vuln,secret,config --format json -o trivy.json <path>` - 单镜像:`trivy image <image>`(容器资产场景) - 输出:漏洞 ID/版本/修复版本三要素,回填「待人工验证清单」的依赖部分。 - **gitleaks**(检测后使用)——凭据硬编码检测。 - `gitleaks detect --source <path> --report-path gitleaks.json --report-format json -v` - 命中复核:区分真实凭据 / 测试样例 / 假阳性(误报排除义务)。 - 供应链方法论与投毒检测读 refs/sca/devsecops-supply-chain.md、devsecops-secrets.md。 **gitleaks 自定义 toml 规则模板**(检测内部/业务特有凭据形态):
在 GitHub 查看
这个 SKILL.md 很大,SkillsMP 这里只预览前一段内容。 在 GitHub 查看