Voltar às atualizações
New releaseAug 23, 2026

vex8s v0.5.0

Suprimir vulnerabilidades aplicando contexto Kubernetes a varreduras

Compartilhar

Vex8s

vex8s (este logotipo não é gerado por IA)

O Vex8s gera documentos VEX correlacionando vulnerabilidades de contêineres com configurações do Kubernetes para determinar quais CVEs são realmente exploráveis no seu cluster.

Observe que este é um projeto experimental. As coisas podem mudar rapidamente.

Como Funciona

O projeto visa avaliar a explorabilidade de CVEs conhecidas em cargas de trabalho do Kubernetes, combinando classificação de vulnerabilidades e análise do securityContext.

vex8s-logic

Baseia-se no seguinte conceito:

  • Cada CVE é categorizada em uma ou mais classes de vulnerabilidade (CWE)
  • A descrição da CVE é processada por um modelo de ML embutido para prever sua categoria de exploração.
  • Tanto as CWEs quanto as categorias de exploração previstas são combinadas para determinar se a CVE é mitigável.
  • Cada categoria de exploração mapeia para um conjunto de configurações do Kubernetes que podem bloquear ou reduzir o impacto.
  • Ao analisar um manifesto do Kubernetes, podemos inspecionar as configurações do contêiner para avaliar se as configurações relevantes estão em vigor.
  • A combinação de ambas as análises permite que o sistema determine se uma CVE é explorável em uma determinada configuração de carga de trabalho.
  • Se resultar em uma mitigação de CVE, adicionamos isso ao documento VEX final.

Para uma leitura mais aprofundada, você pode consultar este artigo: Environment-Aware Vulnerability Suppression Using Kubernetes Security Contexts and VEX

Instalação

Você pode baixar o binário mais recente na página de releases.

Ou você pode compilá-lo manualmente:

make build

Uso

O vex8s atualmente suporta 2 maneiras de gerar documentos VEX:

  • modo passivo: passando um relatório de vulnerabilidades já gerado criado por trivy ou grype.

  • modo ativo: escaneando ativamente as imagens usando os mecanismos trivy ou grype e depois gerando o documento com base nos resultados.

Modo passivo (recomendado)

Usando trivy:

# gerar relatório de vulnerabilidades.
trivy image --format json --output nginx.trivy.json nginx:1.21.0

# gerar documento VEX processando o relatório de vulnerabilidades.
vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json --output nginx.vex.json

# escanear novamente com o documento VEX para suprimir vulnerabilidades.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0

O mesmo pode ser aplicado usando grype:

# gerar relatório sbom.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0

# gerar relatório de vulnerabilidades.
grype sbom:./nginx.grype.json --output json --file nginx.grype-vr.json

# gerar documento VEX processando o relatório de vulnerabilidades.
vex8s generate --manifest examples/nginx.yaml --report nginx.grype-vr.json --output nginx.vex.json

# escanear sbom com o documento VEX para suprimir vulnerabilidades.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed

Modo ativo

Usando trivy:

# escanear a imagem e gerar automaticamente o documento VEX.
vex8s generate --manifest examples/nginx.yaml --scan.engine trivy --output nginx.vex.json

# escanear novamente com o documento VEX para suprimir vulnerabilidades.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0

O mesmo pode ser aplicado usando grype:

# gerar relatório sbom.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0

# escanear a imagem e gerar automaticamente o documento VEX.
vex8s generate --manifest examples/nginx.yaml --scan.engine grype --output nginx.vex.json

# escanear sbom com o documento VEX para suprimir vulnerabilidades.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed

Classificadores

Cada CVE é classificada em uma ou mais classes de exploração, que orientam a decisão de mitigação. O vex8s suporta dois mecanismos de classificação via --classifier:

  • embedded (padrão): um modelo de ML ONNX offline incluído no binário. Não requer acesso à rede.
  • gemini: usa o LLM Gemini do Google para classificar a descrição da CVE. Requer a variável de ambiente GEMINI_API_KEY (opcionalmente GEMINI_MODEL).
export GEMINI_API_KEY="sua-chave-de-api"

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

Consulte a documentação — em particular o Guia do Usuário — para um passo a passo completo, a configuração do classificador Gemini e uma referência completa de flags.

Referências

Este projeto foi inspirado no projeto vexllm de Akihiro Suda.

Categorias