依赖审计Skill dependency-audit

依赖审计技能用于分析和修复项目依赖中的安全漏洞,通过工具如npm audit和pip-audit,帮助开发者识别和更新易受攻击的包,确保软件安全。关键词:依赖审计、安全漏洞、npm audit、pip-audit、CVE检查、漏洞修复、安全审计、DevOps集成。

安全审计 0 次安装 0 次浏览 更新于 3/9/2026

name: dependency-audit description: 使用 npm audit、pip-audit 或类似工具分析项目依赖的已知安全漏洞。用于审计包、检查CVE或更新易受攻击的依赖。

依赖性审计

快速开始

根据项目类型审计依赖:

# Node.js
npm audit

# Python
pip-audit

# Go
govulncheck ./...

指令

步骤 1:识别包管理器

检查清单文件:

  • package.json / package-lock.json → npm/yarn
  • requirements.txt / pyproject.toml → pip
  • go.mod → Go 模块
  • Cargo.toml → Cargo (Rust)
  • Gemfile → Bundler (Ruby)

步骤 2:运行审计

Node.js (npm):

npm audit
npm audit --json  # 机器可读输出

Node.js (yarn):

yarn audit
yarn audit --json

Python:

pip install pip-audit
pip-audit
pip-audit -r requirements.txt

Go:

govulncheck ./...

Ruby:

bundle audit check --update

步骤 3:分析结果

按严重性分类:

严重性 CVSS 行动
严重 9.0+ 立即更新
7.0-8.9 24小时内更新
中等 4.0-6.9 本冲刺内更新
< 4.0 方便时更新

步骤 4:修复漏洞

npm - 自动修复:

npm audit fix
npm audit fix --force  # 允许破坏性更改

npm - 手动更新:

npm update vulnerable-package
# 或指定版本
npm install vulnerable-package@2.0.0

Python - 更新包:

pip install --upgrade vulnerable-package
# 或在 requirements.txt 中固定安全版本
vulnerable-package>=2.0.0

步骤 5:验证修复

重新运行审计以确认:

npm audit  # 应显示 0 个漏洞
pip-audit  # 应显示无问题

常见场景

传递性依赖

当漏洞位于子依赖中时:

# 检查依赖树
npm ls vulnerable-package

# 强制解决 (npm)
# 添加到 package.json:
{
  "overrides": {
    "vulnerable-package": "2.0.0"
  }
}

无修复可用

当不存在修复版本时:

  1. 检查漏洞是否影响你的使用
  2. 考虑替代包
  3. 如可能,实施变通办法
  4. 监控更新

破坏性更改

当修复需要主要版本升级时:

  1. 查看变更日志以了解破坏性更改
  2. 更新代码以适应更改
  3. 彻底运行测试
  4. 考虑逐步推出

报告格式

## 依赖性审计报告

**项目:** my-app
**日期:** 2024-01-15
**总依赖:** 245
**发现漏洞:** 3

### 严重 (1)

**lodash** - 原型污染
- 已安装: 4.17.15
- 修复于: 4.17.21
- CVE: CVE-2021-23337
- 修复: `npm install lodash@4.17.21`

### 高 (1)

**axios** - SSRF 漏洞
- 已安装: 0.21.0
- 修复于: 0.21.2
- CVE: CVE-2021-3749
- 修复: `npm install axios@0.21.2`

### 中等 (1)

**minimist** - 原型污染
- 已安装: 1.2.5
- 修复于: 1.2.6
- CVE: CVE-2021-44906
- 修复: `npm audit fix`

CI/CD 集成

GitHub Actions

- name: 审计依赖
  run: |
    npm audit --audit-level=high
    # 如果发现高或严重漏洞,则失败

Pre-commit

# package.json 脚本
{
  "scripts": {
    "precommit": "npm audit --audit-level=moderate"
  }
}