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

Hacker News Top 工具

摘要

Vex8s是一个实验性工具,通过分析Kubernetes安全上下文和漏洞数据,使用嵌入式机器学习模型生成VEX文档,以确定哪些CVE在集群中实际可被利用。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/09/19 09:24

alegrey91/vex8s

来源:https://github.com/alegrey91/vex8s

Vex8s

vex8s (此Logo非AI生成)

Vex8s通过关联容器漏洞与Kubernetes配置,生成VEX(https://www.ntia.gov/files/ntia/publications/vex_one_page_summary.pdf)文档,以判定哪些CVE在您的集群中实际可被利用。

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

工作原理

该项目旨在通过结合漏洞分类与securityContext(https://kubernetes.io/docs/tasks/configure-pod-container/security-context/)分析,评估Kubernetes工作负载中已知CVE的可利用性。

vex8s-logic

其核心概念如下:

  • 每个CVE被归类至一个或多个漏洞类型(CWE (https://cwe.mitre.org/index.html))
  • CVE描述通过内置ML模型(https://github.com/alegrey91/vex8s-model)处理,以预测其利用类别(https://github.com/alegrey91/vex8s-model?tab=readme-ov-file#classification)。
  • 结合CWE分类与预测的利用类别,判定该CVE是否可被缓解。
  • 每个利用类别对应一组可阻止或降低影响的Kubernetes配置。
  • 通过解析Kubernetes清单文件,可检查容器设置以评估相关配置是否到位。
  • 综合两项分析结果,系统可判断CVE在特定工作负载配置下是否可被利用。
  • 若判定CVE可被缓解,则将其加入最终的VEX文档。

如需深入了解,可查阅此论文:使用Kubernetes安全上下文与VEX实现环境感知漏洞抑制

安装方式

可从发布页面(https://github.com/alegrey91/vex8s/releases)下载最新二进制文件。

或手动构建:

make build

使用方法

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

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

  • 主动模式:使用trivy或grype引擎主动扫描镜像,然后基于结果生成文档。

被动模式(推荐)

使用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模型(https://github.com/alegrey91/vex8s-model),无需网络访问。
  • gemini:使用Google的Gemini大语言模型对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项目(https://github.com/AkihiroSuda/vexllm)。

相似文章

Vex 在 NixOS 中不可思议的有效性

Hacker News Top

博客文章探讨如何利用 VEX(Vulnerability Exploitability eXchange)与可达性分析在 NixOS 中自动化漏洞分类,以应对 LLM 辅助生成的海量 CVE 报告,减少误报并实现可扩展的漏洞排查流程。

构建你自己的漏洞测试框架

Hacker News Top

Cloudflare 介绍如何构建一个模型无关的漏洞扫描框架,将 AI 模型视为可互换的组件,从而实现跨仓库追踪和大规模减少误报。