动态应用安全测试
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/dynamic-application-security-testing。
技能介绍
为什么代码审查不够
静态分析只能告诉你源码里可能有什么问题,但一个应用真正暴露风险是在它跑起来的时候:错误的服务器配置、登录后才存在的越权接口、JavaScript 渲染后才出现的 SPA 路由,这些只有通过实际发送请求才能发现。动态应用安全测试(DAST)的思路是把应用当作一个黑盒攻击目标——向运行中的 Web 应用和 API 发送构造的 HTTP 请求、对输入参数做模糊测试,然后分析响应来确认漏洞是否真实存在。
核心能力与工作流程
该技能让 Agent 能够完成一次完整的 DAST 流程:
- 定义扫描范围:指定目标 URL、应用类型(传统 Web、SPA、REST API、GraphQL)与扫描边界,避免扫描器误伤第三方域名
- 配置认证:支持表单登录、
Bearer令牌、API 密钥、OAuth 2.0 等方式,让扫描器能进入认证后的区域 - 执行扫描:调用
OWASP ZAP、Burp Suite、Nuclei等工具,先爬取端点再注入攻击载荷 - 降噪与分类:按 CVSS 严重性、置信度、CWE 编号和 OWASP 类别整理发现,过滤误报
- 输出修复报告:生成包含请求/响应证据、修复指导的报告,可导出
HTML、JSON或SARIF格式并接入 CI/CD 流水线
适用边界与注意点
- 先在预发布环境跑:主动扫描会发送攻击载荷,可能破坏数据或触发告警,不要直接打生产环境
- SPA 需要特殊爬取:React、Angular、Vue 的路由靠 JavaScript 渲染,普通爬虫发现不了,要使用 AJAX 爬虫或无头浏览器
- API-only 场景要给规范:没有 UI 的应用,直接导入
OpenAPI/Swagger文档或 Postman 集合来定义端点 - 注意速率限制与 WAF:激进扫描会触发限流或拦截,导致假阴性,需要降低速率或放行扫描器 IP
- DAST 不是替代品:它与 SAST 互补——前者抓运行时配置和部署问题,后者抓代码级缺陷,两者结合才有完整覆盖
使用场景
- 新功能上线前,安全工程师在预发布环境执行主动 DAST,确认不存在 SQL 注入、XSS 等高危漏洞再放行
- 测试人员需要对登录后才可见的内部管理系统配置表单认证,扫描认证流程之后的隐藏端点
- 后端工程师拿到 OpenAPI 规范,对无 UI 的 REST API 做接口级越权与不安全端点检测
- DevOps 在 GitLab CI 中为每次部署触发 ZAP 扫描,并把 SARIF 结果接入问题跟踪器
适合人员
- 应用安全工程师:需要在版本发布前对预发布环境做漏洞验证并给出修复建议
- 后端开发工程师:需要对自己负责的 REST API 做认证与越权层面的接口安全测试
- QA 测试工程师:需要在功能测试中验证登录、改密等多步流程是否存在注入或配置缺陷
- DevOps 平台工程师:需要把 DAST 扫描接入 CI/CD 流水线,让安全问题在部署阶段被拦住