Проверка образов в процессах CI/CD
03 июля 2024
ID 273843
С помощью решения вы можете сканировать образы, которые используются в процессах CI/CD. Для проверки образов из CI/CD вам требуется настроить интеграцию решения с процессами CI/CD.
Между средой CI/CD и решением должна быть обеспечена безопасность передачи данных от прослушивания и перехвата сетевого трафика.
Чтобы выполнять проверку образов или репозиториев (для сканирования конфигурационных файлов), используемых в процессе CI/CD, вам нужно добавить в пайплайн CI/CD отдельный этап, на котором запускается сканер Kaspersky Security для контейнеров.
Для проведения сканирования образов из CI/CD в конфигурационном файле интеграции с репозиторием сканеру требуется указать переменные окружения API_BASE_URL
(веб-адрес хост-сервера API Kaspersky Security для контейнеров) и API_TOKEN
(токен для доступа к API Kaspersky Security для контейнеров). Также необходимо указать API_CA_CERT
(сертификат для проверки хост-сервера API решения) или SKIP_API_SERVER_VALIDATION=true
для пропуска такой проверки.
Результаты сканирования передаются на сервер и отображаются в консоли управления в разделе Ресурсы → CI/CD. В представленной таблице перечислены образы, для которых проводилась проверка, указываются результаты оценки риска и выявленные уязвимости.
По ссылке в названии образа вы можете открыть страницу, содержащую подробную информацию о результатах сканирования образа. Страница аналогична странице с результатами сканирования образов из реестров.
Kaspersky Security для контейнеров также отображает тип артефакта для каждого объекта. Используются два основных артефакта:
- Файловая система – это репозиторий с содержащимися в нем конфигурационными файлами.
- Образ контейнера – это шаблон, на основе которого реализуется контейнер в среде выполнения.
Для каждого объекта проверки можно указывать номер сборки (BUILD_NUMBER
) и пайплайн сборки (BUILD_PIPELINE
). С помощью этих параметров можно определить, на каком этапе в объекте произошел сбой.
Для образов из CI/CD недоступно повторное сканирование.
В Kaspersky Security для контейнеров осуществляются следующие виды сканирования в CI/CD:
- Сканирование образов из реестра образов. Решение осуществляет проверку после успешной сборки и сохранения образа в реестр образов.
- Сканирование образов, помещенных в архивы в формате TAR. Созданный TAR-архив сохраняется как артефакт сборки, который сканер решения проверяет в следующем пайплайне сборки.
- Сканирование Git-репозитория, которое может проводиться одним из следующих способов:
- по ветке (отдельному направлению разработки) проекта в Git-репозитории;
- по коммиту (снимку состояния или контрольной точке на временной шкале проекта).
Чтобы провести сканирование образа из реестра образов,
выполните команду запуска сканирования в следующем формате:
/scanner [TARGET] --stdout
где:
<TARGET> –
полный адрес образа в реестре;<--stdout> –
вывод данных в журнал событий безопасности.
Для доступа к реестру необходимо установить в переменных окружения логин COMPANY_EXT_REGISTRY_USERNAME
и пароль (токен) COMPANY_EXT_REGISTRY_PASSWORD
.
Примеры сканирования образов в GitLab CI/CD и Jenkins CI/CD.
Чтобы провести сканирование образа из TAR-архива:
- Соберите образ и сохраните его в виде TAR-архива с помощью любого приложения для создания контейнеризированных образов.
- Выполните команду запуска сканирования в следующем формате:
/scanner [TARGET] --file --stdout
где:
<TARGET>
– путь к файлу образа для сканирования;<--file> –
флаг, указывающий на сканирование файлаTARGET
;<--stdout> –
вывод данных в журнал событий безопасности.
Пример конфигурационного файла со значениями параметров для сканирования TAR-архива
Чтобы провести сканирование Git-репозитория:
- В конфигурационном файле Git-репозитория в переменных окружения укажите токен для доступа к репозиторию (
GITHUB_TOKEN
илиGITLAB_TOKEN
). - Выполните команду запуска сканирования в следующем формате:
/scanner [TARGET] --repo [--branch BRANCH] [--commit COMMIT] --stdout
где:
<TARGET>–
веб-адрес (URL) Git-репозитория;<--repo>
–
флаг, указывающий на сканирование файлаTARGET
;<--branch BRANCH>
–
ветка репозитория для сканирования;<--commit COMMIT>
–
хеш коммита для сканирования;<--stdout> –
вывод данных в журнал событий безопасности.
Пример конфигурационного файла с переменными окружения для сканирования образа из Git-репозитория
Результаты сканирования можно посмотреть в разделе Ресурсы → CI/CD, а также получить в форматах .SPDX, .JSON и .HTML.