应用Kubernetes上下文抑制漏洞扫描
摘要
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 中不可思议的有效性
博客文章探讨如何利用 VEX(Vulnerability Exploitability eXchange)与可达性分析在 NixOS 中自动化漏洞分类,以应对 LLM 辅助生成的海量 CVE 报告,减少误报并实现可扩展的漏洞排查流程。
构建你自己的漏洞测试框架
Cloudflare 介绍如何构建一个模型无关的漏洞扫描框架,将 AI 模型视为可互换的组件,从而实现跨仓库追踪和大规模减少误报。
@rauchg: 据内部评估,Kimi K3 在网络安全领域表现顶级。X 上有传言称 Moonshot 基准过拟合。这…
Vercel Labs 发布了 deepsec,一个开源的、基于代理的漏洞扫描器,它使用顶级 AI 模型按需审查大型代码库,并发现难以发现的漏洞。
@charliermarsh: 宣布 uv audit:原生支持扫描项目依赖中的漏洞
Charlie Marsh 宣布推出 uv audit,这是 uv 包管理器中用于项目依赖的原生漏洞扫描功能。
@reach_vb: 重新介绍 Codex Security 插件!将其指向代码库或差异,它可以构建威胁模型、映射攻击路径……
重新介绍 Codex Security 插件,这是一个开源工具,可以分析代码库中的安全威胁,生成修复,并将结果导出到多个平台。