漏洞扫描 vulnerability-scanning

漏洞扫描技能用于自动化安全检测,通过工具如Trivy、Snyk、npm audit等扫描依赖项、代码和容器,以识别CVE漏洞、过时包、许可证合规问题,适用于CI/CD安全门、部署前审计和合规要求,提升软件供应链安全。关键词:漏洞扫描、Trivy、Snyk、npm-audit、CVE检测、安全审计、容器扫描、依赖项扫描、自动化安全。

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

name: 漏洞扫描 description: 自动化安全扫描,用于依赖项、代码和容器,使用Trivy、Snyk、npm audit。适用于CI/CD安全门、部署前审计、合规要求,或遇到CVE检测、过时包、许可证合规、SBOM生成错误。 keywords: Trivy, Snyk, npm-audit, OWASP, 依赖项扫描, CVE, 安全漏洞, 过时包, 许可证合规, SCA, SBOM, 容器扫描, 镜像扫描, 安全门, CI-CD安全, 部署前审计, 供应链安全, 漏洞检测, 安全合规, Docker扫描, Grype, 静态分析, 依赖项检查 license: MIT

漏洞扫描

自动化安全漏洞检测,覆盖代码、依赖项和容器。

依赖项扫描

# npm 审计
npm audit --audit-level=high

# Snyk
snyk test --severity-threshold=high

# Safety (Python)
safety check --full-report

容器扫描 (Trivy)

# 扫描容器镜像
trivy image myapp:latest --severity HIGH,CRITICAL

# 扫描文件系统
trivy fs --scanners vuln,secret .

GitHub Actions 集成

name: 安全扫描

on: [push, pull_request]

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: 运行 Trivy 漏洞扫描器
        uses: aquasecurity/trivy-action@master
        with:
          scan-type: 'fs'
          severity: 'CRITICAL,HIGH'
          exit-code: '1'

      - name: 运行 Snyk
        uses: snyk/actions/node@master
        env:
          SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
        with:
          args: --severity-threshold=high

      - name: npm 审计
        run: npm audit --audit-level=high

代码分析 (Python 的 Bandit)

bandit -r src/ -ll -ii

Node.js 扫描器

const { execSync } = require('child_process');

function runSecurityScan() {
  const results = {
    npm: JSON.parse(execSync('npm audit --json').toString()),
    trivy: JSON.parse(execSync('trivy fs --format json .').toString())
  };

  const critical = results.npm.metadata?.vulnerabilities?.critical || 0;
  if (critical > 0) {
    console.error(`找到 ${critical} 个严重漏洞`);
    process.exit(1);
  }
}

最佳实践

  • 在CI/CD管道中集成扫描
  • 对高/严重发现使构建失败
  • 扫描依赖项和容器
  • 跟踪漏洞随时间变化
  • 记录接受误报

工具

  • Trivy (容器, 文件系统)
  • Snyk (依赖项, 代码)
  • npm audit / yarn audit
  • Bandit (Python)
  • OWASP Dependency-Check