
vex8s v0.5.0
Подавление уязвимостей с применением контекста Kubernetes к сканированиям
Vex8s
(этот логотип не сгенерирован AI)
Vex8s генерирует документы VEX, сопоставляя уязвимости контейнеров с настройками Kubernetes, чтобы определить, какие CVE действительно эксплуатируемы в вашем кластере.
Пожалуйста, обратите внимание, это экспериментальный проект. Всё может быстро меняться.
Как это работает
Проект направлен на оценку эксплуатируемости известных CVE в рабочих нагрузках Kubernetes путем объединения классификации уязвимостей и анализа securityContext.

Он основан на следующей концепции:
- Каждый CVE классифицируется по одному или нескольким классам уязвимостей (CWE)
- Описание CVE обрабатывается встроенной ML моделью для прогнозирования его категории эксплуатации.
- Как CWEs, так и прогнозируемые категории эксплуатации объединяются, чтобы определить, является ли CVE устранимым.
- Каждая категория эксплуатации сопоставляется с набором настроек Kubernetes, которые могут блокировать или снижать воздействие.
- Анализируя манифест Kubernetes, мы можем проверить настройки контейнера, чтобы оценить, присутствуют ли соответствующие настройки.
- Объединение обоих анализов позволяет системе определить, является ли CVE эксплуатируемым в данной конфигурации рабочей нагрузки.
- Если это приводит к смягчению CVE, мы добавляем это в итоговый документ VEX.
Для более глубокого изучения вы можете ознакомиться с этой статьей: Environment-Aware Vulnerability Suppression Using Kubernetes Security Contexts and VEX
Установка
Вы можете загрузить последний бинарный файл со страницы релиза.
Или вы можете собрать его вручную:
make build
Использование
vex8s в настоящее время поддерживает 2 способа генерации документов VEX:
-
passive-mode: передача уже сгенерированного отчета об уязвимостях, созданного с помощью
trivyилиgrype. -
active-mode: активное сканирование образов с использованием движков
trivyилиgrype, а затем генерация документа на основе результатов.
Пассивный режим (рекомендуется)
Using trivy:
# generate vulnerability report.
trivy image --format json --output nginx.trivy.json nginx:1.21.0
# generate VEX document by processing vulnerability report.
vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json --output nginx.vex.json
# scan again with VEX document to suppress vulnerabilities.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0
The same can be applied using grype:
# generate sbom report.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0
# generate vulnerability report.
grype sbom:./nginx.grype.json --output json --file nginx.grype-vr.json
# generate VEX document by processing vulnerability report.
vex8s generate --manifest examples/nginx.yaml --report nginx.grype-vr.json --output nginx.vex.json
# scan sbom with VEX document to suppress vulnerabilities.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed
Активный режим
Using trivy:
# scan the image and automatically generate VEX document.
vex8s generate --manifest examples/nginx.yaml --scan.engine trivy --output nginx.vex.json
# scan again with VEX document to suppress vulnerabilities.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0
The same can be applied using grype:
# generate sbom report.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0
# scan the image and automatically generate VEX document.
vex8s generate --manifest examples/nginx.yaml --scan.engine grype --output nginx.vex.json
# scan sbom with VEX document to suppress vulnerabilities.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed
Ссылки
Этот проект был вдохновлен проектом Akihiro Suda vexllm.