Назад к обновлениям
New releaseAug 23, 2026

vex8s v0.5.0

Подавление уязвимостей с применением контекста Kubernetes к сканированиям

Поделиться

Vex8s

vex8s (этот логотип не создан с помощью ИИ)

Vex8s создаёт документы VEX, сопоставляя уязвимости контейнеров с настройками Kubernetes, чтобы определить, какие CVE действительно эксплуатируемы в вашем кластере.

Обратите внимание, это экспериментальный проект. Всё может быстро меняться.

Как это работает

Проект направлен на оценку эксплуатируемости известных CVE в рабочих нагрузках Kubernetes путём объединения классификации уязвимостей и анализа securityContext.

vex8s-logic

Он основан на следующей концепции:

  • Каждый CVE относится к одной или нескольким классам уязвимостей (CWE)
  • Описание CVE обрабатывается встроенной ML моделью для прогнозирования её категории эксплуатируемости.
  • И CWE, и прогнозируемые категории эксплуатируемости объединяются для определения того, можно ли смягчить CVE.
  • Каждая категория эксплуатируемости сопоставляется с набором настроек Kubernetes, которые могут заблокировать или снизить воздействие.
  • Анализируя манифест Kubernetes, мы можем проверить настройки контейнера, чтобы оценить, присутствуют ли соответствующие настройки.
  • Объединение обоих анализов позволяет системе определить, эксплуатируем ли CVE в данной конфигурации рабочей нагрузки.
  • Если это приводит к смягчению CVE, мы добавляем это в итоговый документ VEX.

Для более глубокого изучения вы можете ознакомиться с этой статьёй: Environment-Aware Vulnerability Suppression Using Kubernetes Security Contexts and VEX

Установка

Вы можете загрузить последний бинарный файл со страницы релизов.

Или вы можете собрать его вручную:

make build

Использование

vex8s в настоящее время поддерживает 2 способа создания документов 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

# сканировать sbom с документом VEX для подавления уязвимостей.
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

# сканировать sbom с документом VEX для подавления уязвимостей.
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 и полного справочника по флагам.

Ссылки

Этот проект был вдохновлён проектом Акихиро Суды vexllm.

Категории