Agent Skills
返回列表
🔒

依赖漏洞扫描

IT 运维与安全 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/dependency-scanning-skillhub。

技能介绍

多语言依赖带来的安全盲区

现代项目几乎不可能只依赖少量包。一个典型的 Node.js 服务可能引入数百个传递依赖,Python 项目的依赖树同样复杂。当这些依赖中某个传递包被曝出 CVE,开发团队往往直到 CI 失败或安全通告发出后才发现。更棘手的是许可证合规问题——一个 GPL 许可证的传递依赖可能悄无声息地进入专有项目。

从清单到 SBOM 的完整扫描链路

此技能的工作流分为六个关键步骤:

  1. 识别生态系统 — 定位 package.json、requirements.txt、pom.xml、go.sum、Gemfile.lock 等清单文件,支持多语言单体仓库。
  2. 解析依赖树 — 从锁定文件构建完整的直接与传递依赖图,标记未声明的幻影依赖。
  3. 漏洞匹配 — 针对每个包和版本查询 NVD、GitHub Advisory、OSV,记录 CVE ID、CVSS 分数、严重级别和修复版本。
  4. 许可证审计 — 提取每个依赖的许可证声明,标记 copyleft 许可证(如 GPL、AGPL)和许可证冲突。
  5. 生成报告 — 输出 CycloneDX 或 SPDX 格式的 SBOM,以及按严重性排序的漏洞报告,包含依赖路径和修复建议。
  6. 推荐修复 — 建议满足修复要求的最小版本升级,尽可能自动生成更新后的清单和锁定文件。

适用边界与注意点

  • 私有包需要自定义数据源 — 托管在私有 npm 或内部 PyPI 上的包不会出现在公共漏洞库中,需配合 Trivy 等支持自定义源的工具。
  • 版本覆盖可能引入兼容性问题 — 通过 npm overrides 或 pip constraints 强制升级传递依赖后,务必运行完整测试套件。
  • 未维护的包本身就是风险 — 即使没有已知 CVE,缺乏活跃维护者的包也应被视为供应链隐患。
  • 混合仓库需独立扫描 — 包含多种语言服务的单体仓库应分别扫描后合并报告,避免清单解析混淆。

使用场景

  • 合并前检查新引入依赖是否带已知漏洞,并按依赖路径定位传递依赖问题
  • 发布前需要生成 CycloneDX 或 SPDX 格式的 SBOM 供安全审计留档
  • 排查 lockfile 中某个传递依赖的漏洞编号,确认修复版本并生成升级后的清单
  • 检查即将引入的依赖许可证,确认不会把 GPL 类许可证带入专有项目

适合人员

  • 后端工程师:合并依赖变更前需要确认是否引入已知漏洞
  • DevOps 工程师:在 CI 流水线中集成依赖扫描与 SBOM 生成
  • 开源维护者:发布前需要检查传递依赖的许可证合规
  • 安全工程师:需要按严重性和依赖路径输出漏洞修复建议