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

Проверка образов в процессах 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-архива:

  1. Соберите образ и сохраните его в виде TAR-архива с помощью любого приложения для создания контейнеризированных образов.
  2. Выполните команду запуска сканирования в следующем формате:

    /scanner [TARGET] --file --stdout

    где:

    • <TARGET> – путь к файлу образа для сканирования;
    • <--file> – флаг, указывающий на сканирование файла TARGET;
    • <--stdout> – вывод данных в журнал событий безопасности.

    Пример конфигурационного файла со значениями параметров для сканирования TAR-архива

Чтобы провести сканирование Git-репозитория:

  1. В конфигурационном файле Git-репозитория в переменных окружения укажите токен для доступа к репозиторию (GITHUB_TOKEN или GITLAB_TOKEN).
  2. Выполните команду запуска сканирования в следующем формате:

    /scanner [TARGET] --repo [--branch BRANCH] [--commit COMMIT] --stdout

    где:

    • <TARGET>– веб-адрес (URL) Git-репозитория;
    • <--repo> флаг, указывающий на сканирование файла TARGET;
    • <--branch BRANCH> ветка репозитория для сканирования;
    • <--commit COMMIT> хеш коммита для сканирования;
    • <--stdout> – вывод данных в журнал событий безопасности.

    Пример конфигурационного файла с переменными окружения для сканирования образа из Git-репозитория

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

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