mcpField
S
security-testing

security-testing

github.com/mn-youssef安全4944 次安装20 周前更新
代码仓库

关于 security-testing

面向防御性安全评估的编排技能,供测试自有或获授权系统的团队使用。它先核验授权,再按阶段路由至指定的专业技能,并要求明确报告覆盖情况。

主要功能

  1. 01测试前核验授权
  2. 02按评估阶段路由工作
  3. 03要求调用适用的专业技能
  4. 04依据攻击面选择安全技能
  5. 05报告覆盖情况与未覆盖项
  6. 06串联发现、修复和复测

适用场景

  1. 01规划获授权的应用安全评估
  2. 02按应用攻击面选择检查项目
  3. 03跟踪跳过或未覆盖的安全领域
  4. 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)。

授权关卡(每次都要先做)

开始任何测试前,先当面向用户确认:

  1. 所有权/授权——这是你拥有的应用,还是你已获得书面测试许可?
  2. 目标环境——测试是否限定在实验室/预发布/本地实例中(而非第三方生产环境)?
  3. 范围外事项——确认不执行破坏性操作、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";
}

生命周期阶段(完整评估时按顺序执行):

阶段技能适用时机
RECONrecon-and-osint在假设攻击面之前,先发现真实攻击面。
PLANthreat-modeling排定优先关注和测试的事项。
FIND/EXPLOIT深度专项(见下文)发现并验证漏洞。
FIXsecurity-hardening实施正确且经过验证的修复。
REPORTpentest-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 / 客户端 JSclient-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/固件端点):

  1. 明确标记——绝不要将其视为“已覆盖”。
  2. 回退使用通用 security-code-audit(静态)+ active-pentest(动态)方法。
  3. 建议新增专项技能来覆盖该攻击面。

始终输出覆盖报告,明确说明运行了什么、跳过了什么以及原因,以及哪些内容没有覆盖:

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 工具),并且只有在实际调用后才标记为 ✓(请参阅“如何运行此编排器”)。
  • 跳过威胁模型 → 随机测试,错过最重要的目标。
  • 未经授权就审计线上系统 → 仅进行代码审计。
  • 发现问题后不修复/不重新测试 → 无人采取行动的报告不构成安全保障。

评论

支持 Markdown