Запуск сканера в режиме lite SBOM
Kaspersky Security для контейнеров предоставляет возможность запуска сканера для проверки образов на наличие уязвимостей в режиме lite SBOM. В данном случае решение осуществляет сканирование специально созданного SBOM-файла, а результаты этого сканирования становятся доступны на этапе CI/CD.
Между средой CI/CD и решением должна быть обеспечена безопасность передачи данных от прослушивания и перехвата сетевого трафика.
Для получения результатов вы можете сформировать артефакт для скачивания в формате .SPDX, .HTML, .JSON или .CDX.
Результаты сканирования можно получить в указанном вами формате, а также посмотреть в разделе Ресурсы → CI/CD.
Запуск сканера в GitLab
Чтобы запустить сканер в режиме lite SBOM в GitLab, при настройке сканирования образов в процессе CI/CD измените конфигурационный файл .gitlab-ci.yml следующим образом:
- Добавьте информацию по образу сканера, запускаемого на этапе сканирования образов в процессе CI/CD в следующем виде:
scan_image:
stage: scanner
image:
name:repo.cloud.example.com/repository/company/scanner:v.2.0.0-lite
entrypoint: [""]
pull_policy: always
- Укажите тег платформы оркестрации в следующем виде:
k8s
В приведенном примере указан тег
k8s
для обозначения Kubernetes, вы можете указать тег для другой поддерживаемой платформы оркестрации. - Укажите такие переменные как идентификатор сборки, данные реестра сканируемого образа и сертификата для безопасного подключения к этому реестру, идентификатор пайплайна и токен API для авторизации запросов от CI/CD сканера в Kaspersky Security для контейнеров в следующем виде:
SCAN_TARGET: ${CI_REGISTRY_IMAGE}:master
COMPANY_EXT_REGISTRY_USERNAME: ${COMPANY_EXT_REGISTRY_USERNAME}
COMPANY_EXT_REGISTRY_PASSWORD: ${COMPANY_EXT_REGISTRY_PASSWORD}
COMPANY_EXT_REGISTRY_TLS_CERT: ${COMPANY_EXT_REGISTRY_TLS_CERT}
BUILD_NUMBER: ${CI_JOB_ID}
BUILD_PIPELINE: ${CI_PIPELINE_ID}
API_TOKEN:
<значение токена API>
HTTP_PROXY
:<прокси-сервер для запросов по протоколу HTTP>
HTTPS_PROXY
:<прокси-сервер для запросов по протоколу HTTPS>
NO_PROXY
:<домены или соответствующие им маски для исключения из проксирования>
Данные сертификата для безопасного подключения к реестру сканируемого образа в переменной
COMPANY_EXT_REGISTRY_TLS_CERT
указываются в виде строки в формате .PEM:
-----BEGIN CERTIFICATE-----\n... <
данные сертификата
> ...\n-----END CERTIFICATE-----
. - При необходимости укажите переменную для проверки сертификата API-интерфейса решения:
API_CA_CERT: ${KCS_CA_CERT}
Если переменная
API_CA_CERT
не задана, проверка будет запускаться, но не будет пройдена. - Укажите веб-адрес хост-сервера API Kaspersky Security для контейнеров:
API_BASE_URL:
<веб-адрес>
- Укажите команду для создания файла артефакта при запуске сканера в одном из следующих поддерживаемых форматов:
- Для создания артефакта в формате .JSON:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --stdout > artifact-result.json
artifacts:
paths:
- artifact-result.json
- Для создания артефакта в формате .HTML:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --html --stdout > artifact-result.html
artifacts:
paths:
- artifact-result.html
- Для создания артефакта SBOM в формате .SPDX:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --spdx --stdout > artifact-result.spdx
artifacts:
paths:
- artifact-result.spdx
- Для создания артефакта SBOM в формате .CDX:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --cdx --stdout > artifact-result.cdx.json
artifacts:
paths:
- artifact-result.cdx.json
- Для создания артефакта в формате .JSON:
Пример настройки запуска сканера в режиме lite SBOM и создания артефакта в формате .HTML в GitLab
В началоЗапуск вне процесса CI/CD
В случае ограниченных ресурсов, вы можете запускать сканер Kaspersky Security для контейнеров отдельно от вычислительных узлов процесса CI/CD. Например, на Docker-узле с помощью команды docker run
или в виде объекта Job в кластере Kubernetes.
Для максимальной экономии ресурсов мы рекомендуем использовать образ scanner:2.0.0-lite, так как он не содержит баз уязвимостей и отправляет сформированный по результатам проверки целевого образа SBOM-файл на анализ в решение с помощью API.
Для запуска сканера Kaspersky Security для контейнеров вне процесса CI/CD необходимо указать следующие обязательные параметры:
API_TOKEN: <
значение токена API
>
– токен пользователя Kaspersky Security для контейнеров для аутентификации в API-интерфейсе решения.API_BASE_URL: <
веб-адрес
>
– ссылка для доступа к API-интерфейсу Kaspersky Security для контейнеров. Доступ может осуществляться по протоколам HTTP и HTTPS, в зависимости от настроек окружения развернутого решения.API_CA_CERT: <
сертификат в формате PEM
>
– переменная для проверки сертификата API-интерфейса решения.SKIP_API_SERVER_VALIDATION=true
– переменная, которую при необходимости можно указать для пропуска проверки сертификата API-интерфейса Kaspersky Security для контейнеров.
Вы также можете указать дополнительные параметры для работы сканера:
COMPANY_EXT_REGISTRY_USERNAME: <
имя пользователя реестра
>
– имя пользователя реестра, где хранится образ для проверки сканером.COMPANY_EXT_REGISTRY_PASSWORD: <
пароль пользователя реестра
>
– пароль пользователя реестра, где хранится образ для проверки сканером.BUILD_NUMBER: <
идентификатор номера сборк
и>
– идентификатор, который используется для отслеживания номера сборки в интерфейсе решения. Kaspersky Security для контейнеров отображает номер в результатах проверки в процессе CI\CD.BUILD_PIPELINE: <
идентификатор номера пайплайна
>
– идентификатор, который используется для отслеживания номера пайплайна в интерфейсе решения. Kaspersky Security для контейнеров отображает номер в результатах проверки в процессе CI\CD.HTTP_PROXY: <
прокси-сервер для запросов по протоколу HTTP
>
– переменная, которая указывает на использование HTTP-прокси сервера, когда вам требуется доступ к внешним ресурсам.HTTPS_PROXY: <
прокси-сервер для запросов по протоколу HTTPS
>
– переменная, которая указывает на использование HTTPS- прокси когда вам требуется доступ к внешним ресурсам.NO_PROXY: <
домены или соответствующие им маски для исключения из проксирования
>
– переменная, которая указывает на доступные локально ресурсы, если используется прокси-сервер.
Запуск сканера как объекта Job в кластере Kubernetes
В начало