返回更新列表
新发布Aug 23, 2026

vex8s v0.5.0

将Kubernetes上下文应用于扫描以抑制漏洞

分享

Vex8s

vex8s (此徽标并非 AI 生成)

Vex8s 通过将容器漏洞与 Kubernetes 设置相关联,生成 VEX 文档,以确定哪些 CVE 在您的集群中实际可利用。

请注意,这是一个实验性项目。内容可能会快速变化。

工作原理

该项目旨在通过结合漏洞分类和 securityContext 分析,评估 Kubernetes 工作负载中已知 CVE 的可利用性。

vex8s-logic

它基于以下概念:

  • 每个 CVE 被归类为一个或多个漏洞类别(CWE
  • CVE 描述由嵌入式 ML 模型 处理,以预测其 利用类别
  • CWE 和预测的 利用类别 相结合,以确定 CVE 是否可缓解。
  • 每个 利用类别 映射到一组可以阻止或降低影响的 Kubernetes 设置。
  • 通过解析 Kubernetes 清单,我们可以检查容器设置,以评估相关设置是否到位。
  • 结合两种分析,系统可以确定 CVE 在给定工作负载配置中是否可利用。
  • 如果导致 CVE 缓解,我们会将其添加到最终的 VEX 文档中。

如需更深入的阅读,您可以查阅本文:环境感知的 Kubernetes 安全上下文与 VEX 漏洞抑制

安装

您可以从 release 页面下载最新的二进制文件。

或者您可以手动构建:

make build

使用方法

vex8s 目前支持 2 种生成 VEX 文档的方式:

  • 被动模式:传入由 trivygrype 生成的现有漏洞报告。

  • 主动模式:使用 trivygrype 引擎主动扫描镜像,然后根据结果生成文档。

被动模式(推荐)

使用 trivy

# 生成漏洞报告。
trivy image --format json --output nginx.trivy.json nginx:1.21.0

# 通过处理漏洞报告生成 VEX 文档。
vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json --output nginx.vex.json

# 使用 VEX 文档再次扫描以抑制漏洞。
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0

同样的操作也可以使用 grype

# 生成 SBOM 报告。
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0

# 生成漏洞报告。
grype sbom:./nginx.grype.json --output json --file nginx.grype-vr.json

# 通过处理漏洞报告生成 VEX 文档。
vex8s generate --manifest examples/nginx.yaml --report nginx.grype-vr.json --output nginx.vex.json

# 使用 VEX 文档扫描 SBOM 以抑制漏洞。
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed

主动模式

使用 trivy

# 扫描镜像并自动生成 VEX 文档。
vex8s generate --manifest examples/nginx.yaml --scan.engine trivy --output nginx.vex.json

# 使用 VEX 文档再次扫描以抑制漏洞。
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0

同样的操作也可以使用 grype

# 生成 SBOM 报告。
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0

# 扫描镜像并自动生成 VEX 文档。
vex8s generate --manifest examples/nginx.yaml --scan.engine grype --output nginx.vex.json

# 使用 VEX 文档扫描 SBOM 以抑制漏洞。
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed

分类器

每个 CVE 被归类为一个或多个 利用类别,这些类别驱动缓解决策。vex8s 通过 --classifier 支持两种分类器引擎:

  • embedded(默认):一个捆绑在二进制文件中的离线 ONNX ML 模型。无需网络访问。
  • gemini:使用 Google 的 Gemini LLM 对 CVE 描述进行分类。需要 GEMINI_API_KEY 环境变量(可选 GEMINI_MODEL)。
export GEMINI_API_KEY="your-api-key"

vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json \
  --output nginx.vex.json --classifier gemini

请参阅 文档 — 特别是 用户指南 — 以获取完整的操作说明、Gemini 分类器设置以及完整的标志参考。

参考

此项目的灵感来源于 Akihiro Suda 的项目 vexllm

分类