Проверка артефактов в процессах CI/CD
С помощью решения вы можете сканировать образы, которые используются в процессах 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
.
Для использования сертификата для безопасного подключения к реестру необходимо указать данные сертификата в переменной окружения COMPANY_EXT_REGISTRY_TLS_CERT
в виде следующей строки в формате .PEM: -----BEGIN CERTIFICATE-----\n... <
данные сертификата
> ...\n-----END CERTIFICATE-----
.
Примеры сканирования образов в GitLab CI/CD и Jenkins CI/CD.
Чтобы провести сканирование образа из TAR-архива:
- Соберите образ и сохраните его в виде TAR-архива с помощью любого приложения для создания контейнеризированных образов.
- Выполните команду запуска сканирования в следующем формате:
/scanner [TARGET] --file --stdout
где:
<TARGET>
– путь к файлу образа для сканирования;<--file> –
флаг, указывающий на сканирование файлаTARGET
;<--stdout> –
вывод данных в журнал событий безопасности.
Чтобы провести сканирование Git-репозитория:
- В конфигурационном файле Git-репозитория в переменных окружения укажите токен для доступа к репозиторию (
GITHUB_TOKEN
илиGITLAB_TOKEN
). - Выполните команду запуска сканирования в следующем формате:
/scanner [TARGET] --repo [--branch BRANCH] [--commit COMMIT] --stdout
где:
<TARGET> –
веб-адрес (URL) Git-репозитория;<--repo>
–
флаг, указывающий на сканирование файлаTARGET
;<--branch BRANCH>
–
ветка репозитория для сканирования;<--commit COMMIT>
–
хеш коммита для сканирования;<--stdout> –
вывод данных в журнал событий безопасности.
Для сканирования файловой системы
требуется использовать образ сканера с базой данных vX.X.X-with-db. Для проверки файлов IaC сканеру необходимо предоставить доступ к этим файлам внутри контейнера (например, с помощью монтирования тома с файлами или копирования файлов в файловую систему контейнера).Чтобы провести сканирование файловой системы,
выполните команду запуска сканирования в следующем формате:
/scanner [TARGET] --sources --stdout
где:
<TARGET>–
путь к папке с файлами для сканирования;<--sources>
–
флаг, указывающий на необходимость проверки файлов, расположенных в файловой системе;<--stdout> –
вывод данных в журнал событий безопасности.
Результаты сканирования можно посмотреть в разделе Ресурсы → CI/CD, а также получить в форматах .SPDX, .JSON и .HTML.