快速开始#
当用户提出以下需求时,使用本 Skill:
场景示例扫描项目依赖漏洞"扫描我的 Spring Boot 项目依赖漏洞"核实特定依赖"log4j-core 2.14.1 是否有漏洞?"分析 CVE 影响"CVE-2021-44228 对我的项目有什么影响?"检查传递依赖"分析项目中 commons-lang3 的依赖路径"检查 JAR 内嵌依赖"分析这个第三方 JAR 包里的依赖"生成安全报告"生成依赖安全扫描报告"
核心工作流程#
text
收集证据 → 界定范围 → 匹配漏洞 → 输出报告
1. 收集证据(按优先级)#
优先级证据类型说明1lockfilegradle.lockfile、libs.versions.toml2dependency:treemvn dependency:tree / gradlew dependencies3构建文件pom.xml / build.gradle 声明4用户输入依赖清单、扫描报告
2. 界定扫描范围#
默认扫描:
- Maven:
compile、 runtime scope
- Gradle:
runtimeClasspath、 implementation 配置
- 第三方 JAR 中实际携带的内嵌依赖
默认排除:
test、 testImplementation 等测试依赖
provided、 compileOnly 等容器提供依赖
3. 匹配漏洞#
确认漏洞需同时满足:
- ✅ 依赖坐标明确(groupId:artifactId:version)
- ✅ 版本落入 CVE 公告的受影响范围
- ✅ 运行时实际生效(非被覆盖/排除)
4. 输出报告#
按以下结构输出:
- 扫描概况:项目信息、依赖数量、漏洞统计
- 漏洞明细:按严重级别分组,包含 CVE、修复版本
- 修复方案:优先级排序的具体修复建议
- 剩余风险:未验证的假设和不确定性
关键原则#
- 先收集证据,再下结论:优先使用 lockfile 和 dependency:tree
- 双重验证:扫描器结果只是线索,需人工核实版本和受影响范围
- 明确不确定性:无法确认的信息要标注"需要验证"或"证据不足"
- 关注运行时:默认只关注实际进入运行时类路径的依赖
- 执行原则与环境 - 证据权重、漏洞匹配标签、严重级别
- Maven 项目分析 - Maven 依赖树分析、scope 对照、传递依赖机制
- Gradle 项目分析 - Gradle 依赖分析、配置对照、版本目录
- 漏洞扫描工具 - OWASP DC、OSV、Grype、Trivy 等工具使用
- 命令示例 - 常用命令速查手册
- 输出与修复模板 - 报告模板、修复代码示例
- 参考与常见问题 - 速查表、FAQ、参考链接