Agent Skills
返回列表
🔒

npm 依赖审计扫描器

IT 运维与安全 更新于 2026.08.29

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

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

技能介绍

要解决的问题

Node.js 项目的漏洞往往不是自己写的代码引入的,而是 node_modules 里成百上千个传递依赖带来的。项目跑了两年之后,package-lock.json 里锁定了某个带已知 CVE 的旧包,而团队既没有跑过 npm audit,也没有人清楚这些依赖到底暴露了什么。当安全团队或合规流程要求提供软件物料清单(SBOM)时,手工整理一份准确的依赖清单几乎不可能。

这个技能把「依赖漏洞扫描」和「SBOM 产出」收敛到一条命令行流程里,不需要额外安装扫描器,也不用去多个网站之间来回核对。

核心能力与工作流程

  • npm audit 初筛:对项目执行 npm 官方审计,拿到漏洞报告,包括严重级别、受影响版本范围和修复建议。
  • OSV.dev 交叉查询:通过 OSV.dev 的 REST API 补充漏洞元数据。OSV 聚合了多个来源的安全公告,覆盖面比单一数据源更广。
  • NVD 数据库比对:调用 National Vulnerability Database API v2.0 对 CVE 记录进行交叉核对,补充 CVE 编号、CVSS 评分等标准化字段。
  • 生成 CycloneDX SBOM:按 CycloneDX 规范输出物料清单,可直接交给下游安全工具或合规系统消费。

典型工作流是:在项目根目录触发扫描 → 技能自动调用 npm audit → 对命中的依赖逐一查询 OSV.dev → 有 CVE 的条目再向 NVD API v2.0 请求详情 → 汇总生成 CycloneDX 格式文档。整个过程不需要人工翻查漏洞公告。

适用边界与注意点

  • 锁文件是前提:npm audit 依赖 package-lock.json 或 npm-shrinkwrap.json。没有锁文件的项目,审计结果会不完整,SBOM 里的组件版本也只能是近似值。
  • npm 环境要求:需要 Node.js 与 npm 环境可用。上游文档建议使用最新稳定版 Node,私有仓库的访问权限也需要提前配置好。
  • 数据源时效:OSV.db 和 NVD 的数据都有更新延迟。刚被披露的新漏洞可能在 NVD 中尚未有记录,交叉比对的意义就在于此——两个源都不命中不代表绝对安全。
  • 漏洞 ≠ 可利用:扫描结果给出的是版本区间和严重级别,不判断你的代码是否真的调用到了有风险的路径。修复优先级要结合实际调用链来判断。
  • 产物是文档不是补丁:技能输出的是审计结果与 CycloneDX 文档,升级依赖和验证修复仍需要人工走完 npm update 与回归测试。

参考上游说明:https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities/

使用场景

  • Node.js 项目例行维护时,需要排查 package-lock.json 锁定的依赖里是否存在已知 CVE 漏洞并拿到修复建议
  • 安全合规流程要求为项目输出 CycloneDX 格式的 SBOM 文档,手工整理依赖清单成本太高
  • 项目上线前做安全自查,需要对 node_modules 里的传递依赖做一次完整的漏洞扫描
  • 接手一个长期未更新的 Node.js 项目,需要快速摸清当前依赖树中暴露了哪些已知安全风险

适合人员

  • Node.js 后端工程师——需要在项目交付或上线前对依赖做安全审查,确认不存在已知漏洞
  • 安全工程师 / DevSecOps——需要定期为多个 Node.js 项目生成 CycloneDX SBOM 以满足合规审计要求
  • 技术负责人 / 架构师——需要在项目迭代中评估依赖健康度,制定依赖升级与漏洞修复的优先级计划
  • 开源项目维护者——需要确保项目依赖不包含已知漏洞,并回应社区提出的安全关注