【免费下载链接】sast-skills
Collection of agent skills to find vulnerabilities inside your web/mobile apps.
sast-skills 是一组能让 LLM 编程助手变身 SAST 扫描器的 agent skills,用于自动查找 Web/移动应用代码中的漏洞。它最核心的设计是:在漏洞检测阶段为 13 项检测任务各启动一个 Subagent 并行执行,让大型代码库的扫描速度成倍提升。本文带你拆解这套多 Subagent 编排架构。
三阶段工作流总览:从侦察到报告
整个评估流程由入口编排文件 sast-files/AGENTS.md(Claude Code 使用 sast-files/CLAUDE.md)自动驱动,分三步进行:
| 阶段 | 执行方式 | 输出文件 |
|---|---|---|
| ① 代码库分析 | 单线程(主会话内运行) | sast/architecture.md |
| ② 漏洞检测 | 13 个 Subagent 并行 | sast/*-results.md |
| ③ 报告生成 | 单个 Subagent 汇总 | sast/final-report.md |
整套架构的精髓在于基于文件的编排:每个阶段的输入输出都是 Markdown 文件,主 Agent 只需检查文件是否存在,就能决定执行还是跳过某个步骤。
第一步:为什么代码库分析必须单线程?
sast-files/AGENTS.md 中有一条关键说明:
Run the sast-analysis skill directly (this one stays in-session since later steps depend on reading its output).
sast-analysisskill 负责摸清技术栈、架构、入口点、数据流和信任边界,产出sast/architecture.md。由于后续所有检测任务都要读取这份"地图",它被特意保留在主会话中执行,并强制等待其完成——这是整个并行流程的前置依赖。
第二步核心:13个Subagent如何并行协作
sast-files/AGENTS.md 中的指令非常直接:
每项检查启动一个 Subagent,全部并行运行,每个 Subagent 负责一个专属任务。
所有 Subagent 共享同一套指令模板,只需替换 skill 名称和文件路径:
先读取
sast/architecture.md获取上下文,然后运行指定的 SAST skill,将发现写入对应的结果文件,完成后清理该 skill 的中间侦察文件。
每个 Subagent 内部再执行两阶段检测:先用侦察(recon)阶段发现候选代码段,再在验证阶段确认漏洞是否真实可利用,最后把带证据链和修复建议的发现写入结果文件。
13项检测任务与结果文件对照
| Skill | 检测目标 | 结果文件 |
|---|---|---|
| sast-sqli | SQL 注入 | sast/sqli-results.md |
| sast-xss | 跨站脚本(XSS) | sast/xss-results.md |
| sast-rce | 远程代码执行 | sast/rce-results.md |
| sast-ssrf | 服务端请求伪造 | sast/ssrf-results.md |
| sast-idor | 不安全直接对象引用 | sast/idor-results.md |
| sast-xxe | XML 外部实体注入 | sast/xxe-results.md |
| sast-ssti | 服务端模板注入 | sast/ssti-results.md |
| sast-jwt | JWT 不安全实现 | sast/jwt-results.md |
| sast-missingauth | 缺失认证/越权 | sast/missingauth-results.md |
| sast-pathtraversal | 路径穿越 | sast/pathtraversal-results.md |
| sast-fileupload | 不安全文件上传 | sast/fileupload-results.md |
| sast-businesslogic | 业务逻辑缺陷 | sast/businesslogic-results.md |
| sast-graphql | GraphQL 注入 | sast/graphql-results.md |
💡 小提示:如果使用 Claude Code,sast-files/CLAUDE.md 还会额外并行运行sast-hardcodedsecrets(硬编码密钥检测),共计 14 项。
幂等重跑:文件已存在就跳过
并行编排中最实用的一处设计是基于输出文件的跳过机制。sast-files/AGENTS.md 为每项任务列出了跳过条件,例如:
Skip SQLi if
sast/sqli-results.mdalready exists.
这意味着:修复完部分漏洞后重新运行扫描,只会有尚未完成的任务被补充执行,不会重复劳动。同时每个 Subagent 完成后会清理自己的中间文件(如sast/sqli-recon.md、sast/rce-batch-*.md等),保持sast/目录整洁。
第三步:单个Subagent汇总最终报告
所有并行 Subagent 结束后,编排流程会再启动单个 Subagent:读取全部sast/*-results.md与sast/architecture.md,运行sast-reportskill,生成按严重程度和机密性影响排序的 sast/final-report.md,附带完整修复指导和动态测试步骤。
快速上手步骤
1️⃣ 将你的项目复制到sast-files/目录:
cp -r /path/to/your/project sast-files/2️⃣ 用 AI 编程助手(推荐 Claude Code + Opus 模型,也支持 Codex、Opencode、Cursor 等)以sast-files为工作区打开项目
3️⃣ 直接输入 "Run vulnerability scan" 或 "Find vulnerabilities in this codebase",编排文件会自动接管整个流程
⚠️ 注意:如果你的项目自带CLAUDE.md或AGENTS.md,运行前需先移除,否则会与 sast-files/ 提供的编排文件冲突。
产出物一览
运行结束后,项目根目录会生成sast/文件夹:
| 文件 | 说明 |
|---|---|
sast/architecture.md | 技术栈、架构、入口点、数据流 |
sast/*-results.md | 各漏洞类别的发现,含利用证明与修复建议 |
sast/final-report.md | 按严重程度排序的汇总报告 |
总结
sast-skills 的多 Subagent 编排架构可以归纳为三点:前置分析单线程保证上下文完整、检测阶段 13 路并行提速、基于 Markdown 文件实现解耦与幂等重跑。无需安装任何第三方工具,把这套 skills 放进你的 AI 编程助手,就拥有一个可重复运行的 SAST 扫描器。更多说明可参考 README.md。
【免费下载链接】sast-skills
Collection of agent skills to find vulnerabilities inside your web/mobile apps.
相关推荐
Spacedrive 并行任务执行设计:从 JobContext 接入 TaskDispatcher 的多线程任务派发架构
Spacedrive 并行任务执行设计:从 JobContext 接入 TaskDispatcher 的多线程任务派发架构 本文基于 .tasks/core/J
桌面应用移动开发后端存储数据同步vibe-tools并发执行:如何同时运行多个AI任务
vibe tools并发执行:如何同时运行多个AI任务 想要让AI团队工作效率翻倍?vibe tools的并发执行功能正是你需要的解决方案!🚀 这款强大的工具
AI Agent开发工具MCP 服务浏览器控制GSD-2 并行 Milestone 编排:多 Worktree 隔离并行执行的架构与实战指南
GSD 2 并行 Milestone 编排:多 Worktree 隔离并行执行的架构与实战指南 导读 GSD 2(gsd 2)是一个以 meta prompti
人工智能AI Agent代码智能体Agent 编排CLIAI 应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考