Kaspersky Security для контейнеров

Настройка сканирования образов и конфигурационных файлов

27 марта 2024

ID 263676

Чтобы выполнять проверку образов или репозиториев (для сканирования конфигурационных файлов), используемых в процессе CI/CD, вам нужно добавить в пайплайн CI/CD отдельный этап, на котором запускается сканер Kaspersky Security для контейнеров. Результаты сканирования передаются на сервер решения и отображаются в консоли управления в разделе Ресурсы → CI/CD.

Между средой CI/CD и решением должна быть обеспечена безопасность передачи данных от прослушивания и перехвата сетевого трафика.

Пример настройки интеграции с GitLab CI/CD

В этом примере используется специальный образ сканера со встроенными базами данных уязвимостей, размещенный в реестре образов производителя решения.

Для использования возможности сканирования образов в процессе GitLab CI/CD вам нужно включить использование GitLab Container Registry.

Настройка интеграции состоит из следующих этапов:

  1. Авторизация GitLab CI/CD в реестре образов производителя Kaspersky Security для контейнеров.
    1. На рабочей станции оператора кластера подготовьте хеш по алгоритму Base64 от авторизационных данных, выполнив команду:

      printf "login:password" | openssl base64 -A

      где login и password – имя и пароль учетной записи в реестре образов производителя Kaspersky Security для контейнеров.

    2. В переменных окружения GitLab CI/CD создайте переменную DOCKER_AUTH_CONFIG (в GitLab репозитории выберите Settings -> CI/CD, нажмите на кнопку Expand, чтобы развернуть блок Variables, затем нажмите на кнопку Add variable).
    3. Укажите содержимое переменной в следующем виде:

      {

      "auths": {

      "repo.cloud.example.com": {

      "auth": "base64hash"

      }

      }

      }

      где base64hash – строка, полученная на этапе 1a.

  2. Авторизация запросов из GitLab CI/CD при отправке данных в Kaspersky Security для контейнеров.
    1. Скопируйте токен API на странице Мой профиль.
    2. Укажите скопированное значение токена API в переменной API_TOKEN в конфигурационном файле .gitlab-ci.yml.
  3. Добавление этапа сканирования образов в процесс CI/CD.

    Чтобы добавить этап сканирования в пайплайн CI/CD, необходимо добавить в файл .gitlab-ci.yml следующие строки:

    1. Добавьте информацию по образу сканера, содержащего базы уязвимостей и других вредоносных объектов, после этапа сборки кода в следующем виде:

      scan_image:

      stage: scanner

      image:

      name: repo.cloud.example.com/repository/company/scanner:v1.1.1-with-db

      entrypoint: [""]

      pull_policy: always

      Мы рекомендуем указывать always для параметра pull_policy, чтобы получать свежие сборки с обновленными базами уязвимостей и других вредоносных объектов при каждом сканировании.

    2. Укажите тег, идентификатор сборки, идентификатор пайплайна и токен API для авторизации запросов от CI/CD сканера в Kaspersky Security для контейнеров в следующем виде:

      SCAN_TARGET: ${CI_REGISTRY_IMAGE}:master

      BUILD_NUMBER: ${CI_JOB_ID}

      BUILD_PIPELINE: ${CI_PIPELINE_ID}

      API_TOKEN: <значение токена API>

      В приведенном примере указан тег master, вы можете указать другой тег.

    3. Если вы настраиваете сканирование для приватного репозитория, для доступа сканера к образу укажите авторизационные данные. Их можно задать в виде переменных.

      COMPANY_EXT_REGISTRY_USERNAME: ${COMPANY_EXT_REGISTRY_USERNAME}

      COMPANY_EXT_REGISTRY_PASSWORD: ${COMPANY_EXT_REGISTRY_PASSWORD}

    4. При необходимости укажите переменную для проверки сервера приема данных в CI/CD с помощью СА-сертификата Ingress-контроллера:

      API_CA_CERT: ${KCS_CA_CERT}

      СА-сертификат Ingress-контроллера указывается в текстовом поле в виде строки в формате .PEM:

      -----BEGIN CERTIFICATE-----\n... <данные сертификата> ...\n-----END CERTIFICATE-----

      Если переменная API_CA_CERT не задана, проверка будет запускаться, но не будет пройдена.

      Использование СА-сертификата Ingress-контроллера позволяет запускаемому в CI/CD сканеру убедиться в подлинности сервера приема данных.

      Если вы используете самоподписанный сертификат или специально хотите пропустить проверку сервера приема данных с помощью СА-сертификата Ingress-контроллера, укажите значение переменной для пропуска проверки следующим образом:

      SKIP_API_SERVER_VALIDATION: 'true'

    5. Укажите веб-адрес хост-сервера API Kaspersky Security для контейнеров:

      API_BASE_URL: <веб-адрес>

      script:

      - /bin/sh /entrypoint.sh $SCAN_TARGET --stdout > artifact-result.json

      artifacts:

      paths:

      - artifact-result.json

После настройки интеграции с внешним реестром вы можете проводить сканирование образов в процессе CI/CD, в том числе осуществлять сканирование в режиме SBOM. Результаты сканирования можно посмотреть в разделе РесурсыCI/CD, а также получить в форматах .SPDX, .JSON и .HTML.

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!