Исключить размеченные уязвимости из отчетов (VulnerabilityReports)
Когда в кластере включен Модуль сканирования образов контейнеров Trivy, формируются отчеты о выявленных уязвимостях в образах контейнеров (VulnerabilityReports). В отчетах могут быть обнаружены уязвимости с критичностью HIGH, не относящиеся к образам контейнеров компонентов платформы “Штурвал” (известные размеченные уязвимости).
В графическом интерфейсе отчеты представлены в разделе Безопасность, на странице Анализ образов.
При необходимости вы можете исключить известные (размеченные) уязвимости из отчетов. Для этого необходимо:
- Подготовить конфигурацию для Trivy и загрузить файл vex-updated.json с размеченными уязвимостями в формате VEX;
- Создать в кластере ConfigMaps с конфигурацией для Trivy и файлом vex-updated.json;
- Подготовить и загрузить ShturvalServicePatch для применения к ssc shturval-scanner.
Подготовка конфигурации и файла с уязвимостями
- Создайте конфигурационный YAML файл для Trivy с именем trivy.yaml.
trivy.yaml
vulnerability:
vex:
- /tmp/vex/openvex.json
-
Загрузите по ссылке vex-updated.json для 2.12.0.
-
Перейдите в кластер, где необходимо исключить размеченные уязвимости из отчета. Откройте раздел Сервисы и Репозитории, перейдите на страницу Установленные сервисы и найдите Модуль сканирования образов контейнеров
shturval-scanner, перейдите к управлению.
Скриншот

- В блоке Спецификация сервиса найдите параметр
trivy.dbRegistryи скопируйте его значение.
Скриншот

- Откройте загруженный файл vex-updated.json и найдите
repository_url. По умолчанию вrepository_urlуказан реджестри r.shturval.tech. Замените r.shturval.tech на значение изtrivy.dbRegistryи сохраните изменения.
Пример vex-updated.json до изменений
{
"@context": "https://openvex.dev/ns/v0.2.0",
"@id": "https://openvex.dev/docs/public/vex/ee517aa7-57db-4d0b-9909-90aabf452bce",
"author": "Лаборатория Числитель",
"timestamp": "2025-08-18T08:32:53.692213Z",
"version": 1,
"statements": [
{
"vulnerability": {
"name": "CVE-2025-47907"
},
"products": [
{
"@id": "pkg:oci/csi-snapshotter@sha256%3Aed26fa61da16cefa307ce5761f6208ec4cf88ec4efde20f0d0fba47e83e54f18?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-snapshotter\npkg:oci/csi-snapshotter@sha256%3Aed26fa61da16cefa307ce5761f6208ec4cf88ec4efde20f0d0fba47e83e54f18?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-snapshotter\npkg:oci/csi-snapshotter@sha256%3Aed26fa61da16cefa307ce5761f6208ec4cf88ec4efde20f0d0fba47e83e54f18?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-snapshotter\npkg:oci/csi-snapshotter@sha256%3Aed26fa61da16cefa307ce5761f6208ec4cf88ec4efde20f0d0fba47e83e54f18?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-snapshotter\npkg:oci/csi-snapshotter@sha256%3Aed26fa61da16cefa307ce5761f6208ec4cf88ec4efde20f0d0fba47e83e54f18?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-snapshotter\npkg:oci/csi-snapshotter@sha256%3Aed26fa61da16cefa307ce5761f6208ec4cf88ec4efde20f0d0fba47e83e54f18?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-snapshotter"
},
{
"@id": "pkg:oci/cinder-csi-plugin@sha256%3A2c197dce4b635a170a1c5c0c040761e7b83ab8affd4e1c4edaed813bad65d268?arch=amd64&repository_url=r.shturval.tech%2Fprovider-os%2Fcinder-csi-plugin\npkg:oci/cinder-csi-plugin@sha256%3A2c197dce4b635a170a1c5c0c040761e7b83ab8affd4e1c4edaed813bad65d268?arch=amd64&repository_url=r.shturval.tech%2Fprovider-os%2Fcinder-csi-plugin"
},
{
"@id": "pkg:oci/csi-attacher@sha256%3A66ab827e23958d971a5e29219a2d4cff2e873fd1b2a9b7c6d4d30c61928e8ecf?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-attacher\npkg:oci/csi-attacher@sha256%3A66ab827e23958d971a5e29219a2d4cff2e873fd1b2a9b7c6d4d30c61928e8ecf?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-attacher\npkg:oci/csi-attacher@sha256%3A66ab827e23958d971a5e29219a2d4cff2e873fd1b2a9b7c6d4d30c61928e8ecf?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-attacher\npkg:oci/csi-attacher@sha256%3A66ab827e23958d971a5e29219a2d4cff2e873fd1b2a9b7c6d4d30c61928e8ecf?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-attacher\npkg:oci/csi-attacher@sha256%3A66ab827e23958d971a5e29219a2d4cff2e873fd1b2a9b7c6d4d30c61928e8ecf?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-attacher"
},
{
"@id": "pkg:oci/csi-node-driver-registrar@sha256%3Ad544f280fb3b683b6d15ddd5371bbeee5ce6295721bfcf684706453a755c6d9f?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-node-driver-registrar\npkg:oci/csi-node-driver-registrar@sha256%3Ad544f280fb3b683b6d15ddd5371bbeee5ce6295721bfcf684706453a755c6d9f?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-node-driver-registrar\npkg:oci/csi-node-driver-registrar@sha256%3Ad544f280fb3b683b6d15ddd5371bbeee5ce6295721bfcf684706453a755c6d9f?arch=amd64&repository_url=r.shturval.tech%2Fsig-storage%2Fcsi-node-driver-registrar"
},
...
Скриншот до изменений

Пример vex-updated.json после изменений
{
"@context": "https://openvex.dev/ns/v0.2.0",
"@id": "https://openvex.dev/docs/public/vex/ee517aa7-57db-4d0b-9909-90aabf452bce",
"author": "Лаборатория Числитель",
"timestamp": "2025-08-18T08:32:53.692213Z",
"version": 1,
"statements": [
{
"vulnerability": {
"name": "CVE-2025-47907"
},
"products": [
{
"@id": "pkg:oci/csi-snapshotter@sha256%3Aed26fa61da16cefa307ce5761f6208ec4cf88ec4efde20f0d0fba47e83e54f18?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-snapshotter\npkg:oci/csi-snapshotter@sha256%3Aed26fa61da16cefa307ce5761f6208ec4cf88ec4efde20f0d0fba47e83e54f18?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-snapshotter\npkg:oci/csi-snapshotter@sha256%3Aed26fa61da16cefa307ce5761f6208ec4cf88ec4efde20f0d0fba47e83e54f18?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-snapshotter\npkg:oci/csi-snapshotter@sha256%3Aed26fa61da16cefa307ce5761f6208ec4cf88ec4efde20f0d0fba47e83e54f18?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-snapshotter\npkg:oci/csi-snapshotter@sha256%3Aed26fa61da16cefa307ce5761f6208ec4cf88ec4efde20f0d0fba47e83e54f18?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-snapshotter\npkg:oci/csi-snapshotter@sha256%3Aed26fa61da16cefa307ce5761f6208ec4cf88ec4efde20f0d0fba47e83e54f18?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-snapshotter"
},
{
"@id": "pkg:oci/cinder-csi-plugin@sha256%3A2c197dce4b635a170a1c5c0c040761e7b83ab8affd4e1c4edaed813bad65d268?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fprovider-os%2Fcinder-csi-plugin\npkg:oci/cinder-csi-plugin@sha256%3A2c197dce4b635a170a1c5c0c040761e7b83ab8affd4e1c4edaed813bad65d268?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fprovider-os%2Fcinder-csi-plugin"
},
{
"@id": "pkg:oci/csi-attacher@sha256%3A66ab827e23958d971a5e29219a2d4cff2e873fd1b2a9b7c6d4d30c61928e8ecf?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-attacher\npkg:oci/csi-attacher@sha256%3A66ab827e23958d971a5e29219a2d4cff2e873fd1b2a9b7c6d4d30c61928e8ecf?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-attacher\npkg:oci/csi-attacher@sha256%3A66ab827e23958d971a5e29219a2d4cff2e873fd1b2a9b7c6d4d30c61928e8ecf?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-attacher\npkg:oci/csi-attacher@sha256%3A66ab827e23958d971a5e29219a2d4cff2e873fd1b2a9b7c6d4d30c61928e8ecf?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-attacher\npkg:oci/csi-attacher@sha256%3A66ab827e23958d971a5e29219a2d4cff2e873fd1b2a9b7c6d4d30c61928e8ecf?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-attacher"
},
{
"@id": "pkg:oci/csi-node-driver-registrar@sha256%3Ad544f280fb3b683b6d15ddd5371bbeee5ce6295721bfcf684706453a755c6d9f?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-node-driver-registrar\npkg:oci/csi-node-driver-registrar@sha256%3Ad544f280fb3b683b6d15ddd5371bbeee5ce6295721bfcf684706453a755c6d9f?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-node-driver-registrar\npkg:oci/csi-node-driver-registrar@sha256%3Ad544f280fb3b683b6d15ddd5371bbeee5ce6295721bfcf684706453a755c6d9f?arch=amd64&repository_url=mirror.ip-xx-xx-xx-xx.shturval.link%2Fsig-storage%2Fcsi-node-driver-registrar"
},
...
Скриншот после изменений

Обратите внимание! Если в trivy.dbRegistry реджестри задан с портом, то в repository_url двоеточие необходимо заменить на %3A.
Пример
В ssc shturval-scanner trivy.dbRegistry:
trivy:
dbRegistry: registry:443
Тогда в vex-updated.json:
repository_url=registry%3A443
Создание ConfigMaps
- В графическом интерфейсе платформы “Штурвал” перейдите в неймспейс
trivy-systemкластера, где необходимо исключить размеченные уязвимости из отчета. Откройте раздел Хранилище и перейдите на страницу ConfigMaps.
Скриншот

- Создайте ConfigMap с именем trivy-config. В блоке Бинарные ключи загрузите конфигурационный файл trivy.yaml, сформированный на шаге подготовки. В окне загрузки в правом нижнем углу выберите
Все файлы (*.*), чтобы появилась возможность найти trivy.yaml. Когда файл загружен, нажмите Сохранить.
Скриншот

- Создайте ConfigMap с именем openvex. В блоке Бинарные ключи загрузите vex-updated.json. В окне загрузки в правом нижнем углу выберите
Все файлы (*.*), чтобы появилась возможность найти vex-updated.json. Когда файл загружен, нажмите Сохранить.
Скриншот

Изменение ssc shturval-scanner
- Когда добавлены ConfigMaps, в кластере подготовьте ShturvalServicePatch для применения к спецификации (ssc) Модуля сканирования образов контейнеров (
shturval-scanner), где добавьте customvalues, как представлено далее.
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: shturval-scanner-vex
spec:
shturvalServiceConfigName: shturval-scanner
customvalues:
trivyOperator:
scanJobCustomVolumes:
- configmap:
name: trivy-config
name: config
- configmap:
name: openvex
name: openvex
scanJobCustomVolumesMount:
- mountPath: /trivy.yaml
name: config
subPath: trivy.yaml
- mountPath: /tmp/vex/openvex.json
name: openvex
subPath: vex-updated.json
- В кластер загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

- Когда добавлен ShturvalServicePatch, в кластере откройте раздел Сервисы и Репозитории, перейдите на страницу Установленные сервисы и найдите Модуль сканирования образов контейнеров
shturval-scanner. Переведите тумблер модуля в выключенное состояние. Дождитесь, когда удалятся все нагрузки из неймспейса trivy-system, после чего переведите тумблер во включенное состояние, выберите режим управления Автоматический и сохраните изменения.
Скриншот

- После, в интерфейсе командной строки подключитесь к кластеру и удалите сформированные ранее отчеты по результатам сканирования - VulnerabilityReport.
Пример команды
kubectl get vulnerabilityreports -A -o json | jq -r '.items[] | "\(.metadata.namespace) \(.metadata.name)"' | while read namespace name; do
kubectl delete VulnerabilityReport $name -n $namespace
done
Скриншот

Сканирование образов контейнеров перезапустится автоматически.
- Проверьте запуск сканирования и формирования новых отчетов VulnerabilityReports.
Команда
kubectl get vulnerabilityreports -A
Скриншот

- В графическом интерфейсе кластера откройте раздел Безопасность и перейдите на страницу Анализ образов. Убедитесь, что размеченные уязвимости отсутствуют.
Скриншот примера анализа уязвимостей до загрузки

Скриншот примера анализа уязвимостей после загрузки
