关于 security-testing
面向防御性安全评估的编排技能,供测试自有或获授权系统的团队使用。它先核验授权,再按阶段路由至指定的专业技能,并要求明确报告覆盖情况。
主要功能
- 01测试前核验授权
- 02按评估阶段路由工作
- 03要求调用适用的专业技能
- 04依据攻击面选择安全技能
- 05报告覆盖情况与未覆盖项
- 06串联发现、修复和复测
适用场景
- 01规划获授权的应用安全评估
- 02按应用攻击面选择检查项目
- 03跟踪跳过或未覆盖的安全领域
- 04协调发现、修复与复测
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mn-youssef/ security-skills --skill security-testing安装后在 Claude Code 中输入/security-testing确认已加载。
详细介绍
安全测试(编排器)
概述
防御性安全工作的入口。它会强制执行授权关卡,然后引导你完成整个生命周期:PLAN → FIND → EXPLOIT → FIX。运用攻击者的思维寻找自身弱点,然后修复它们。
**核心原则:**攻击者思考的是路径,防御者思考的是清单。防御者必须在所有方面都做对;攻击者只需要找到一个薄弱环节。沿着路径寻找。
如何运行此编排器(必读——请先阅读)
此技能是一个路由器,而非其所提及技能的替代品。下方表格会告诉你每个阶段应打开哪个技能——你 MUST 使用 Skill 工具实际打开它。
**规则:**开展某个阶段的工作前,必须调用该阶段的技能并遵循其检查清单。只阅读路由表中的一句描述不等于运行该技能,也不算覆盖。此处要杜绝的错误,正是凭“自己的专业知识”开展工作,而不调用技能。
- RECON →
recon-and-osint· PLAN →threat-modeling - FIND/EXPLOIT → 测试相应领域前,调用每个适用的专业技能(
access-control-testing、authentication-testing、injection-testing、file-upload-and-ssrf、api-security-testing、client-side-exploitation、business-logic-testing、secrets-management-audit)——并调用security-code-audit(静态)和active-pentest(动态)。 - CHAIN →
vulnerability-chaining· FIX →security-hardening· REPORT →pentest-reporting
**如实报告覆盖情况:**在覆盖报告中,只有通过 Skill 工具调用的技能才能标记为 ✓。如果你没有调用技能,而是凭记忆运用了其方法,请写“仅运用方法论”。如果该技能与目标无关,请写“N/A — <原因>”。切勿仅因“做了类似的工作”就标记 ✓。
危险信号——停止并调用技能后再继续:
- “我已经知道它涵盖什么/我对这个领域非常熟悉”
- “路由表中的摘要就够了”
- “我先从最有价值的目标入手,直接开展工作”
- “我稍后会查阅专业技能/把它们当作参考”
- “这个技能太繁琐了——我已经发现过数百个这类漏洞”
- 时间紧迫:“用户想尽快看到结果,跳过加载步骤”
这些说法正是导致疏漏未被察觉的借口。地图并非疆域——开展工作前,先打开每一扇门(调用 Skill)。
授权关卡(每次都要先做)
开始任何测试前,先当面向用户确认:
- 所有权/授权——这是你拥有的应用,还是你已获得书面测试许可?
- 目标环境——测试是否限定在实验室/预发布/本地实例中(而非第三方生产环境)?
- 范围外事项——确认不执行破坏性操作、DoS 攻击,也不外传真实用户数据。
如果任何答案不明确或为“否”→停止,只对用户控制的代码进行代码审计。 未经书面授权,绝不测试第三方系统。
路由
digraph route {
"What do you need?" [shape=diamond];
"recon-and-osint" [shape=box];
"threat-modeling" [shape=box];
"FIND/EXPLOIT skills" [shape=box];
"security-hardening" [shape=box];
"pentest-reporting" [shape=box];
"What do you need?" -> "recon-and-osint" [label="discover the attack surface"];
"What do you need?" -> "threat-modeling" [label="plan / prioritize"];
"What do you need?" -> "FIND/EXPLOIT skills" [label="find & validate bugs"];
"What do you need?" -> "security-hardening" [label="fix findings"];
"What do you need?" -> "pentest-reporting" [label="report & track closure"];
"recon-and-osint" -> "threat-modeling" -> "FIND/EXPLOIT skills";
"FIND/EXPLOIT skills" -> "security-hardening" -> "pentest-reporting";
}
生命周期阶段(完整评估时按顺序执行):
| 阶段 | 技能 | 适用时机 |
|---|---|---|
| RECON | recon-and-osint | 在假设攻击面之前,先发现真实攻击面。 |
| PLAN | threat-modeling | 排定优先关注和测试的事项。 |
| FIND/EXPLOIT | 深度专项(见下文) | 发现并验证漏洞。 |
| FIX | security-hardening | 实施正确且经过验证的修复。 |
| REPORT | pentest-reporting | 对发现项评分、记录并跟踪,直至关闭。 |
FIND/EXPLOIT 深度专项(根据测试目标选择):
| 目标 | 技能 |
|---|---|
| 访问控制 / IDOR / 权限提升(OWASP #1) | access-control-testing |
| 登录 / 会话 / OAuth / JWT / MFA(账号接管) | authentication-testing |
| 工作流 / 定价 / 竞态条件 / 滥用 | business-logic-testing |
| REST / GraphQL / gRPC / WebSocket(OWASP API Top 10) | api-security-testing |
| 浏览器 / HTTP 层(DOM XSS、CSP/CORS、原型污染、请求走私) | client-side-exploitation |
| 输入到达解释器(SQLi/NoSQLi、命令、SSTI、XXE) | injection-testing |
| 文件上传、SSRF、不安全反序列化 | file-upload-and-ssrf |
| 密钥 / 令牌泄露(代码、git 历史、日志、配置) | secrets-management-audit |
然后综合分析: vulnerability-chaining 将上述发现串联为端到端攻击路径——这是影响最大的步骤,可将多个中危问题组合成一个严重问题。
专项技能使用的两个跨领域辅助工具:
security-code-audit— 静态(白盒)审查:阅读源码并搜索漏洞模式。active-pentest— 执行工具链:实验环境 / 代理 / 扫描器设置 + 安全运行 + PoC 捕获。 专项技能提供攻击方案;active-pentest用于在运行中的应用上执行方案。
推荐流程: recon → 威胁建模 → 深度专项发现 / 利用(从 access-control-testing 开始,它是现实世界中排名第一的风险)→ 加固 → 报告。每个阶段的结果都会输入下一阶段。
按攻击面路由(适用性与覆盖缺口)
不要运行所有技能——只运行目标具备的相关技能。根据 recon-and-osint + threat-modeling 建立攻击面清单,然后将现有攻击面映射到专项技能:
| 是否存在该攻击面? | 路由至 | 若不存在 |
|---|---|---|
| 浏览器 UI / 客户端 JS | client-side-exploitation | 跳过(不适用) |
| 登录 / 账号 / 令牌 | authentication-testing | 跳过 |
| 已认证 / 多用户数据 | access-control-testing | 跳过 |
| API(REST/GraphQL/gRPC/WS) | api-security-testing | 跳过 |
| DB / shell / 模板 / XML 接收点 | injection-testing | 跳过(按接收点) |
| 文件上传 / URL 获取 / 反序列化 | file-upload-and-ssrf | 跳过(按功能) |
| 工作流 / 资金 / 配额 | business-logic-testing | 跳过 |
| 任何代码 / 仓库 / 配置(≈始终存在) | secrets-management-audit | — |
每个专项技能还会通过自身的 适用情形 / 跳过情形 部分进行自检——因此,针对无头 API 的前端技能会报告 N/A 并停止,而不是产生无关结果。
覆盖缺口检查(反向检查——存在但没有专项技能覆盖的攻击面): 对清单中每个没有专项技能覆盖的攻击面(例如自定义二进制协议、消息总线、IoT/固件端点):
- 明确标记——绝不要将其视为“已覆盖”。
- 回退使用通用
security-code-audit(静态)+active-pentest(动态)方法。 - 建议新增专项技能来覆盖该攻击面。
始终输出覆盖报告,明确说明运行了什么、跳过了什么以及原因,以及哪些内容没有覆盖:
Frontend ...... none → client-side-exploitation: N/A (skipped)
API (REST) .... yes → api-security-testing, access-control-testing ✓
Uploads ....... none → file-upload-and-ssrf: N/A (skipped)
gRPC stream ... yes → ⚠ GAP: generic methodology + consider a new specialist
完整运行的输出
- 排序后的威胁模型(最重要的事项)
- 发现项登记表:严重性 ·
file:line· 可被利用的原因 · 状态 - 高严重性问题经过验证的 PoC
- 已实施的修复,每项均经过重新测试并确认问题已关闭
常见错误
- 阅读路由表,却不调用它所指向的技能 → 摘要是地图,不是疆域。开始工作前,先打开每扇门(调用
Skill工具),并且只有在实际调用后才标记为 ✓(请参阅“如何运行此编排器”)。 - 跳过威胁模型 → 随机测试,错过最重要的目标。
- 未经授权就审计线上系统 → 仅进行代码审计。
- 发现问题后不修复/不重新测试 → 无人采取行动的报告不构成安全保障。