Исключить размеченные уязвимости из отчетов (VulnerabilityReports)

Когда в кластере включен Модуль сканирования образов контейнеров Trivy, формируются отчеты о выявленных уязвимостях в образах контейнеров (VulnerabilityReports). В отчетах могут быть обнаружены уязвимости с критичностью HIGH, не относящиеся к образам контейнеров компонентов платформы “Штурвал” (известные размеченные уязвимости).

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

При необходимости вы можете исключить известные (размеченные) уязвимости из отчетов. Для этого необходимо:

Подготовка конфигурации и файла с уязвимостями

  1. Создайте конфигурационный YAML файл для Trivy с именем trivy.yaml.
trivy.yaml
vulnerability:
  vex:
    - /tmp/vex/openvex.json
  1. Загрузите по ссылке vex-updated.json для 2.12.0.

  2. Перейдите в кластер, где необходимо исключить размеченные уязвимости из отчета. Откройте раздел Сервисы и Репозитории, перейдите на страницу Установленные сервисы и найдите Модуль сканирования образов контейнеров shturval-scanner, перейдите к управлению.

Скриншот

vulnerabilities-trivy

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

vulnerabilities-ssctrivy

  1. Откройте загруженный файл 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"
        },

        ...
Скриншот до изменений

vulnerabilities-vex-json1

Пример 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"
        },

        ...
Скриншот после изменений

vulnerabilities-vex-json

Обратите внимание! Если в trivy.dbRegistry реджестри задан с портом, то в repository_url двоеточие необходимо заменить на %3A.

Пример

В ssc shturval-scanner trivy.dbRegistry:

trivy:
  dbRegistry: registry:443

Тогда в vex-updated.json:

repository_url=registry%3A443

Создание ConfigMaps

  1. В графическом интерфейсе платформы “Штурвал” перейдите в неймспейс trivy-system кластера, где необходимо исключить размеченные уязвимости из отчета. Откройте раздел Хранилище и перейдите на страницу ConfigMaps.
Скриншот

vulnerabilities-cm-trivy

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

vulnerabilities-trivy-config vulnerabilities-config2 vulnerabilities-trivy-config1

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

vulnerabilities-openvex vulnerabilities-openvex1 vulnerabilities-cms

Изменение ssc shturval-scanner

  1. Когда добавлены 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
  1. В кластер загрузите с помощью импорта манифестов подготовленный ShturvalServicePatch.
Скриншот

vulnerabilities-trivypatch

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

vulnerabilities-trivyupdated4 vulnerabilities-trivyupdated1 vulnerabilities-trivyupdated5

  1. После, в интерфейсе командной строки подключитесь к кластеру и удалите сформированные ранее отчеты по результатам сканирования - 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
Скриншот

vulnerabilities-delete

Сканирование образов контейнеров перезапустится автоматически.

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

vulnerabilities-get

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

vulnerabilities-example1

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

vulnerabilities-example

×