搬瓦工 VPS Grype 漏洞扫描工具教程

Grype 是由 Anchore 开源的容器镜像和文件系统漏洞扫描工具,与 Syft(SBOM 生成工具)配合使用可以实现完整的软件供应链安全分析。Grype 的特点是扫描速度快、漏洞数据库覆盖广(包括 NVD、GitHub Advisories、Alpine SecDB 等多个数据源),并且支持对 SBOM 文件进行离线扫描。本文将介绍如何在搬瓦工 VPS 上使用 Grype 进行漏洞扫描。

一、安装 Grype 和 Syft

# 安装 Grype
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin

# 安装 Syft(SBOM 生成工具)
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin

# 验证安装
grype version
syft version

二、扫描容器镜像

# 扫描 Docker Hub 镜像
grype nginx:latest

# 扫描并按严重程度过滤
grype nginx:latest --only-fixed --fail-on critical

# 以 JSON 格式输出
grype nginx:latest -o json > scan-results.json

# 以表格格式输出
grype nginx:latest -o table

# 扫描本地 Docker 镜像
grype docker:myapp:latest

# 扫描 OCI 镜像存档
grype oci-archive:myapp.tar

三、使用 Syft 生成 SBOM

# 生成容器镜像的 SBOM
syft nginx:latest -o spdx-json > nginx-sbom.json

# 生成 CycloneDX 格式的 SBOM
syft nginx:latest -o cyclonedx-json > nginx-cyclonedx.json

# 生成文件系统的 SBOM
syft dir:/var/www -o spdx-json > www-sbom.json

# 使用 Grype 扫描 SBOM
grype sbom:nginx-sbom.json

四、扫描文件系统

# 扫描项目目录
grype dir:/opt/myproject

# 扫描指定目录并忽略低严重度漏洞
grype dir:/opt/myproject --only-fixed --fail-on high

五、数据库管理

# 更新漏洞数据库
grype db update

# 查看数据库状态
grype db status

# 列出数据库信息
grype db list

# 删除数据库缓存
grype db delete

六、配置忽略规则

# 创建 .grype.yaml 配置文件
cat > .grype.yaml <<'EOF'
ignore:
  - vulnerability: CVE-2023-12345
    reason: "Accepted risk - not exploitable in our configuration"
  - vulnerability: CVE-2023-67890
    fix-state: unknown
    reason: "No fix available, monitoring"
  - package:
      name: openssl
      version: 1.1.1*
      type: deb
EOF

# 使用配置文件扫描
grype nginx:latest -c .grype.yaml

七、自动化扫描脚本

cat > /opt/grype-scan.sh <<'EOF'
#!/bin/bash
DATE=$(date +%Y%m%d)
REPORT_DIR="/var/log/grype"
mkdir -p $REPORT_DIR

# 更新数据库
grype db update

# 扫描所有运行中的容器
for IMAGE in $(docker ps --format '{{.Image}}' | sort -u); do
    SAFE_NAME=$(echo $IMAGE | tr '/:' '_')
    grype "$IMAGE" -o json > "$REPORT_DIR/${SAFE_NAME}-${DATE}.json" 2>/dev/null

    CRITICAL=$(grype "$IMAGE" --only-fixed --fail-on critical 2>&1 | grep -c "CRITICAL")
    if [ "$CRITICAL" -gt 0 ]; then
        echo "Critical vulnerabilities in $IMAGE"
    fi
done
EOF
chmod +x /opt/grype-scan.sh

八、Grype 与 Trivy 对比

  • 数据源:Grype 和 Trivy 使用不同的漏洞数据库,建议两者配合使用进行交叉验证。
  • SBOM 支持:Grype 与 Syft 深度集成,SBOM 工作流更完善。
  • 扫描范围:Trivy 额外支持 Kubernetes 和 IaC 配置扫描。
  • 建议:两者互补使用可以最大程度减少漏洞遗漏。

总结

Grype 是搬瓦工 VPS 上容器安全扫描的优秀工具,配合 Syft 的 SBOM 能力可以实现完整的软件供应链安全管理。建议同时使用 Trivy 进行交叉验证,并使用 Cosign 对验证通过的镜像进行签名。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,通过 bwh81.net 进入官网购买。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。