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

Содержание

Интеграция со сторонними ресурсами

Для выявления проблем безопасности и обеспечения защиты контейнеризированных приложений Kaspersky Security для контейнеров осуществляет интеграции со следующими сторонними ресурсами:

  • Внешние реестры образов. Решение позволяет проводить сканирование образов контейнеров и IaC, размещенных на платформах управления и хранения репозиториев, в том числе в рамках процесса CI/CD, на уязвимости, вредоносное ПО, ошибки конфигурации и наличие конфиденциальных данных.
  • Модули проверки подписей образов. Kaspersky Security для контейнеров может осуществлять проверку подлинности и действительности цифровых подписей образов с помощью внешнего приложения для подписи.
  • Средства уведомления. При реализации политик реагирования решение может уведомлять пользователей о событиях безопасности с помощью сообщений, направленных по электронной почте или Telegram.
  • Внешние службы каталогов по протоколу LDAP. При определении ролей пользователей и областей применения решение позволяет настраивать учетные записи пользователей с учетом данных из внешней службы каталогов и соотносить роли пользователей с группами пользователей из Active Directory.
  • SIEM-системы. Решение позволяет подключаться к системам управления событиями и информацией о безопасности, чтобы отправлять сообщения о событиях для их анализа и последующего реагирования на потенциальные угрозы.
  • Внешнее хранилище HashiCorp Vault. Решение обеспечивает возможность безопасного хранения и использования паролей, токенов и секретов с помощью хранилища HashiCorp Vault.

В этом разделе справки

Настройка интеграции с внешними реестрами образов

Интеграция с CI/CD

Настройка интеграции с модулями проверки подписей образов

Настройка интеграции со средствами уведомления

Настройка интеграции с LDAP-сервером

Настройка интеграции с SIEM-системами

Интеграция с хранилищем HashiCorp Vault

В начало
[Topic 282364]

Настройка интеграции с внешними реестрами образов

Kaspersky Security для контейнеров может сканировать образы из следующих внешних реестров образов:

  • Harbor.
  • GitLab Registry.
  • JFrog Artifactory.
  • Sonatype Nexus Repository OSS.
  • Yandex Registry.
  • Docker Hub.
  • Docker Registry.

    Интеграция с Docker Registry требует поддержки Docker Registry V2 API на стороне сервера внешнего реестра.

  • Red Hat Quay.
  • Amazon Elastic Container Registry.

Вам нужно настроить интеграцию решения с внешними реестрами, чтобы решение могло сканировать образы из внешних реестров. Образы из реестров, интегрированных с Kaspersky Security для контейнеров, могут сканироваться автоматически или вручную, в зависимости от настроенных параметров выгрузки и сканирования образов для каждого реестра.

В этом разделе справки

Минимально достаточные права для интеграции с реестрами

Работа с публичными реестрами образов без авторизации

Создание интеграции с внешним реестром образов

Просмотр информации об интеграциях с реестрами

Удаление интеграции с внешним реестром

Интеграция с Harbor

Создание интеграции по запросу Harbor

Просмотр и изменение параметров Harbor External Integration

Повторное сканирование

В начало
[Topic 292431]

Минимально достаточные права для интеграции с реестрами

Для осуществления интеграции с внешними реестрами образов учетной записи Kaspersky Security для контейнеров требуется обладать определенным набором прав, который различается в зависимости от типа реестра. Ниже для каждого типа реестра представлен перечень минимально достаточных для интеграции прав учетной записи.

GitLab

Для интеграции решения с реестром учетной записи пользователя GitLab требуется определить значения параметров следующим образом:

  • Роль пользователя в проекте или группе: Репортер (Reporter).
  • Уровень доступа к проекту: Репортер (Reporter).
  • Права, назначенные токену пользователя: read_api, read_registry.

JFrog Artifactory

Для интеграции решения с реестром учетной записи пользователя JFrog требуется определить значения параметров следующим образом:

  • Роль пользователя в проекте или группе: Управление отчетами (Manage Reports).
  • Вариант доступа к проекту: Полномочия на обновление профиля (Can Update Profile).
  • Права пользователя: право на чтение любого репозитория (репозиторий ANY).

Harbor

Для интеграции решения с реестром учетной записи пользователя Harbor требуется определить значения параметров следующим образом:

  • Тип участия в проекте: пользователь. Для этого в столбце Тип участия (Member Type) таблицы в разделе ПроектыУчастники требуется указать Пользователь (User).
  • Роль пользователя в проекте или группе: пользователь с ограниченными правами. Для этого в столбце Роль (Role) таблицы в разделе ПроектыУчастники требуется указать Гость (Guest).
  • Права пользователя: пользователь без прав администратора. Для этого в столбце Администратор таблицы в разделе Пользователи (Users) требуется выбрать Нет (No).

Nexus

Для интеграции решения с реестром учетной записи пользователя Nexus требуется определить значения параметров следующим образом:

  • Роль пользователя в проекте или группе: пользователь.
  • Права, назначенные роли пользователя в проекте или группе: nx-apikey-all, nx-repository-view-docker-*-browse, nx-repository-view-docker-*-read.

Docker Hub

Интеграция решения с реестром учетной записи пользователя Docker Hub осуществляется после авторизации с использованием имени пользователя и пароля.

Этот вариант интеграции с реестром Docker Hub применяется только для личного пространства имен.

RedHat Quay

Для интеграции решения с реестром учетной записи пользователя RedHat Quay требуются следующие права:

  • Права пользователя для правильной работы функции проверки соединения (англ. Test Connection): пользователь с правом администрирования (Administer Organization).
  • Права на просмотр всех видимых репозиториев (View all visible repositories).
  • Права на чтение и запись в доступных репозиториях (Read/Write to any accessible repositories).

Yandex

Для интеграции решения с реестром учетной записи пользователя Yandex требуется определить значения параметров следующим образом:

  • Роль пользователя в проекте или группе: container-registry.viewer.
  • Права, назначенные роли пользователя в проекте или группе: права на просмотр реестров в контейнере.

Amazon Elastic Container Registry

Для интеграции решения с реестром учетной записи пользователя Amazon Elastic Container Registry требуется определить значения параметров следующим образом:

  • Политика AWS для доступа к проекту или группе: AmazonEC2ContainerRegistryReadOnly.
  • Права, назначенные роли пользователя в проекте или группе: права на просмотр и чтение.

В начало
[Topic 295773]

Работа с публичными реестрами образов без авторизации

В версии 2.0 Kaspersky Security для контейнеров не работает с публичными реестрами образов без авторизации. Например, вы не можете осуществлять проверку образов с помощью решения при анонимном доступе в Docker Hub.

Без процедуры авторизации в публичных реестрах образов вы можете использовать такие реестры образов в кластере, добавлять в Kaspersky Security для контейнеров и вручную назначать определенной области применения. Если область применения включает в себя только один или несколько публичных реестров, в которых вы не авторизованы, и вы попытаетесь добавить образ в разделе РесурсыРеестры, решение отображает ошибку о невозможности добавления образов в связи с отсутствием интеграции с реестрами образов.

В начало
[Topic 294428]

Создание интеграции с внешним реестром образов

Интегрируемые реестры поддерживают только локальные репозитории образов, непосредственно содержащие в себе образы. В версии 2.0 Kaspersky Security для контейнеров не осуществляет поддержку работы с удаленными и виртуальными репозиториями.

Чтобы создать интеграцию с внешним реестром:

  1. В разделе АдминистрированиеИнтеграции → Реестры образов нажмите на кнопку Добавить реестр.

    Откроется окно ввода параметров интеграции.

  2. На вкладке Параметры реестра укажите параметры подключения к реестру:
    1. Введите название реестра.
    2. Если требуется, введите описание реестра.
    3. Выберите тип реестра из раскрывающегося списка поддерживаемых типов. Решение поддерживает следующие типы реестров:
      • Harbor (интеграция с использованием Harbor V2 API).
      • GitLab Registry (интеграция с использованием GitLab Container Registry API).
      • JFrog Artifactory (интеграция с использованием JFrog API).
      • Sonatype Nexus Repository OSS (интеграция с использованием Nexus API).
      • Yandex Registry (интеграция с использованием Yandex Container Registry API).
      • Docker Hub (интеграция с использованием Docker Hub API).
      • Docker Registry (интеграция с использованием Docker Registry V2 API).
      • Red Hat Quay (интеграция с использованием Red Hat Quay API).
      • Amazon Elastic Container Registry (интеграция с использованием Amazon Elastic Container Registry API).

      Доступ к реестру Docker Registry с использованием Docker Registry V2 API можно получить, если вы настраиваете интеграцию с Sonatype Nexus Repository OSS, Harbor, JFrog Artifactory (с помощью порта или поддомена) или Yandex Registry. Интеграции с GitLab Registry, Docker Hub и JFrog Artifactory (с помощью Repository Path) не поддерживаются.

    4. Если вы настраиваете интеграцию с реестром типа JFrog Artifactory, для доступа к Docker Hub из раскрывающегося списка Метод Repository Path выберите один из следующих методов:
      • Repository path.
      • Поддомен.
      • Порт.
    5. Если вы настраиваете интеграцию с реестром Sonatype Nexus Repository OSS, выберите режим выгрузки: Образы с тегами или Все образы. Если выбран режим Все образы, решение выгружает все образы реестра вне зависимости от наличия у них тегов. Образы без тегов отображаются по имени хеша сборки.
    6. Если вы настраиваете интеграцию с реестром типа JFrog Artifactory, Harbor, GitLab Registry, Sonatype Nexus Repository OSS, Docker Registry или Red Hat Quay, введите полный веб-адрес (URL) реестра, который указывает непосредственно на реестр контейнеров. Рекомендуется использовать подключение по протоколу HTTPS (также поддерживается подключение по HTTP).

      При использовании HTTP или HTTPS c самостоятельно подписанным или недействительным сертификатом нужно установить метку --insecure-registry для движка Docker (Docker engine) на узлах, где установлен сервер и сканер.

    7. Если вы настраиваете интеграцию с реестром типа JFrog Artifactory, Harbor, GitLab Registry, Sonatype Nexus Repository OSS и Red Hat Quay, введите полный веб-адрес (URL), который указывает на API реестра.
    8. Выберите метод аутентификации и укажите для него необходимые данные следующим образом:
      • Если вы настраиваете интеграцию с реестром типа GitLab Registry, выберите аутентификацию с помощью учетной записи или токена доступа.
      • Если вы настраиваете интеграцию с реестром типа Yandex Registry, выберите аутентификацию с помощью ключа API (OAuth-токен Yandex) или с помощью имени пользователя и токена. В качестве имени пользователя укажите oauth при использовании OAuth-токена Yandex или iam при использовании IAM-токена Yandex.
      • Для реестров типа Sonatype Nexus Repository OSS и Docker Hub аутентификация возможна только с помощью учетной записи.
      • Для реестров типа Harbor аутентификация возможна только с помощью учетной записи пользователя или робота.
      • Для реестров типа Docker Registry аутентификация возможна только с помощью имени пользователя и пароля, значения которых предоставляются Docker V2 API.
      • Для реестров типа Red Hat Quay аутентификация возможна только с помощью названия организации и токена доступа. Укажите значения этих параметров в полях Название организации и OAuth-токен.
      • Для реестров типа Amazon Elastic Container Registry аутентификация возможна с помощью указания региона, идентификатора ключа доступа (англ. Access key ID) и секретного ключа доступа (англ. Secret access key).

        В поле Регион требуется указать один из принятых в Amazon Web Services регионов (например, us-west-2 или us-east-2).

        Для параметров Идентификатор ключа доступа и Ключ доступа необходимо указать значения, полученные с помощью консоли управления AWS.

  3. Перейдите на вкладку Кеширование репозиториев и с помощью переключателя Выключено / Включено при необходимости включите кеширование репозиториев. Если кеширование выключено, репозитории и образы в разделе Реестры отображаются только при использовании поля Поиск. Если кеширование включено, решение отображает доступный список репозиториев и образов. По умолчанию кеширование репозиториев выключено.

    При включенном кешировании репозиториев эффективность работы Kaspersky Security для контейнеров может быть снижена.

  4. Перейдите на вкладку Параметры сканирования образов и укажите следующие параметры сканирования образов:
    • Максимальное время сканирования образов из этого реестра в минутах. По умолчанию установлено значение 60 минут.

      Если сканирование образа продолжается дольше установленного времени, сканирование прекращается, и образ вновь помещается в очередь на сканирование. Решение будет отправлять этот образ на повторное сканирование максимум 3 раза. Соответственно, время сканирования образа из реестра может быть превышено в 3 раза.

      Параметры выгрузки и сканирования образов для реестра. По умолчанию в блоке Выгрузка и сканирование образов выбран вариант Вручную: образы автоматически не выгружаются из реестра, но пользователь может вручную добавлять образы в список образов, подлежащих сканированию. Новые образы автоматически ставятся в очередь на сканирование.

      Если вы хотите, чтобы образы выгружались из реестра и ставились в очередь на сканирование автоматически, в блоке Выгрузка и сканирование образов выберите вариант Автоматически и настройте параметры выгрузки и сканирования образов. Для настройки доступны следующие параметры:

      • Интервал сканирования (дн.) – периодичность выгрузки образов из реестра для сканирования в днях. По умолчанию установлено значение 1 день.
      • Время сканирования (по Гринвичу) – время осуществления сканирования образов из реестра.
      • При необходимости установите флажок для повторного сканирования ранее выгруженных образов при каждом сканировании новых образов.
      • При необходимости в блоке Расширенные настройки установите флажок Шаблоны имени/тега, чтобы с помощью шаблонов имен и/или тегов образов указать, какие образы нужно выгружать и сканировать. Если флажок установлен, Kaspersky Security для контейнеров будет выгружать для сканирования только те образы, которые соответствуют заданным шаблонам.

        Вы можете использовать шаблоны следующих форматов:

        • шаблон по имени и тегу образа – <имя><:тег>;
        • шаблон только по имени образа – <имя>;
        • шаблон только по тегу образа – <:тег>.

        Например:

        • по шаблону alpine будут выгружаться все образы с именем alpine, независимо от тега;
        • по шаблону :4 будут выгружаться все образы с тегом 4, независимо от имени образа;
        • по шаблону alpine:4 будут выгружаться все образы, с именем alpine и с тегом 4.

        При формировании шаблонов вы можете использовать символ *, который заменяет любое количество символов.

        Вы можете добавить один или несколько шаблонов.

      • Выберите один из вариантов дополнительных условий для выгрузки образов:
        • Если дополнительные условия не требуются, выберите вариант Без дополнительных условий.
        • Если необходимо выгружать только образы, созданные за определенный период, выберите этот вариант и в полях справа укажите длительность периода и единицу измерения. По умолчанию установлено 60 дней.
        • Если требуется выгружать только образы с последними тегами, считая от даты создания образа, выберите этот вариант и в поле справа укажите, сколько последних тегов из каждого репозитория требуется учитывать.
      • При необходимости в блоке Исключения с помощью установки флажков определите исключения для выгрузки образов:
        • Никогда не выгружать образы с шаблоном имени/тега – вы можете указать с помощью шаблонов имен и/или тегов образов, какие образы исключаются из выгрузки и сканирования.
        • Всегда выгружать образы с шаблоном имени/тега – вы можете указать с помощью шаблонов имен и/или тегов образов, какие образы всегда выгружаются и сканируются, независимо от других условий, заданных выше.
  5. Нажмите на кнопку Проверить соединение, чтобы посмотреть, устанавливается ли соединение с реестром.
  6. Нажмите на кнопку Сохранить в верхней части окна, чтобы сохранить параметры интеграции с реестром.

Пример параметров интеграции с реестром Red Hat Quay

{

"form": {

"registryName": "http://quay.io ",

"registryType": "quay",

"description": "Test",

"repositoryPathMode": "",

"registryUrl": "https://quay.io ",

"apiUrl": "https://quay.io ",

"authenticationType": "access_token",

"apiKey": "",

"username": "test-organization",

"accessToken": "{{quayIOToken}}",

"scanTimeout": 100,

"scheduleType": "manual",

"schedulePeriod": 2,

"scheduleTime": 10,

"rescanExistingImages": true,

"pullAndScanTags": [],

"additionalConditions": 0,

"imagesCreatedWithinType": "days",

"imagesCreatedWithinCount": 1,

"latestTagsCount": 5,

"neverPullTags": [],

"alwaysPullTags": [],

"cacheRebuildPeriod": 15

}

}

В начало
[Topic 292488]

Просмотр информации об интеграциях с реестрами

В разделе АдминистрированиеИнтеграции → Реестры образов отображается таблица со списком всех реестров, интегрированных с Kaspersky Security для контейнеров.

В таблице отображаются следующие данные об интегрированных реестрах:

  • Название интеграции с реестром образов.
  • Описание, если оно указывалось при создании интеграции с реестром образов.
  • Тип подключенного реестра.
  • Веб-адрес реестра.
  • Статус последнего соединения с реестром образов – Успешно или Ошибка. Если указывается Ошибка, решение также отображает краткое описание ошибки при соединении.

В таблице вы можете выполнять следующие действия:

  • Добавлять новые интеграции с реестрами. Окно ввода параметров интеграции открывается с помощью кнопки Добавить реестр над таблицей.
  • Просматривать и изменять параметры интеграции с реестром, в том числе параметры выгрузки и сканирования образов. Окно редактирования открывается по ссылке на названии реестра.

    В этом окне с помощью кнопки Проверить соединение вы также можете посмотреть, устанавливается ли соединение с реестром.

  • Удалять интеграции с реестром.
В начало
[Topic 292566]

Удаление интеграции с внешним реестром

Чтобы удалить интеграцию с внешним реестром:

  1. В разделе АдминистрированиеИнтеграцииРеестры образов выберите интеграцию для удаления, установив флажок в строке с названием реестра. Вы можете выбрать одну или несколько интеграций.
  2. Нажмите на кнопку Удалить, которая расположена над таблицей.

    Кнопка Удалить становится активной после выбора одной или нескольких интеграций.

  3. Подтвердите удаление в открывшемся окне.

Kaspersky Security для контейнеров не сканирует образы из реестра, интеграция с которым удалена.

В начало
[Topic 274590]

Интеграция с Harbor

Интеграция Kaspersky Security для контейнеров с внешним реестром Harbor осуществляется двумя способами:

Harbor рассматривает решение как дополнительный внешний сканер для проверки объектов на наличие в них уязвимостей. Интеграция с Kaspersky Security для контейнеров настраивается с помощью плагина интеграции со сканером для Harbor (Harbor scanner plugin). Решение присваивает такому автоматически созданному реестру образов название Harbor External Integration и отмечает репозиторий, в котором он находится, значком Harbor (Значок реестра Harbor.).

Такая интеграция остается единственной автоматически созданной интеграцией с Harbor, а присвоенное реестру образов название невозможно изменить.

Для запуска процесса сканирования Harbor необходимо знать конечную точку API-интерфейса Kaspersky Security для контейнеров.

Для создания интеграции по запросу Harbor требуются права на просмотр и настройку сканирования в CI/CD. Если такие права отсутствуют, Harbor не сможет подключить решение в качестве сканера и проводить проверку объектов в рамках процесса CI/CD.

В начало
[Topic 272923]

Создание интеграции по запросу Harbor

Для создания интеграции с реестром по запросу Harbor необходимо иметь учетную запись Harbor с правами администратора, а также права на просмотр и настройку сканирования в CI/CD в Kaspersky Security для контейнеров. Если такие права отсутствуют, Harbor не сможет подключить решение в качестве сканера.

Чтобы создать интеграцию с Harbor по запросу Harbor:

  1. В главном меню в левой панели в веб-интерфейсе Harbor выберите AdministrationInterrogation Services.
  2. Нажмите на кнопку New Scanner.
  3. Введите следующую информацию:
    • Уникальное имя интеграции с решением для отображения в интерфейсе Harbor.
    • При необходимости, описание добавляемого внешнего сканера.
    • Адрес конечной точки API-интерфейса Kaspersky Security для контейнеров, который показывается Harbor.
  4. В раскрывающемся списке Authorization выберите APIKey как способ авторизации при подключении реестра к решению.
  5. В поле APIKey введите значение токена API.

    Если токен API меняется, необходимо указать его новое значение до запуска сканирования Harbor. Если новый токен API не будет добавлен в параметры внешнего сканера в Harbor, сканирование завершится с ошибкой.

  6. Установите флажок Skip certificate verification, чтобы пропустить проверку сертификата.
  7. При необходимости нажмите Test Connection, чтобы проверить, что Harbor может подключиться к решению.
  8. Нажмите Add, чтобы создать интеграцию.

В списке доступных сканеров в разделе AdministrationInterrogation ServicesScanners Harbor отображается имя, присвоенное решению в Harbor.

Новый сканер используется для сканирования объектов, если в Harbor он указан как сканер по умолчанию или назначен проекту. Оба варианта требуют дополнительной настройки в Harbor.

После запуска сканирования во внешнем реестре создается интеграция с решением по запросу Harbor. Kaspersky Security для контейнеров отображает созданный реестр Harbor External Integration в списке реестров образов в разделе АдминистрированиеИнтеграцииРеестры образов. Репозиторий, в котором находятся образы из внешнего реестра, отмечен значком Harbor (Значок реестра Harbor.). Harbor External Integration обновляется после запуска и проведения другого сканирования во внешнем реестре.

В автоматически созданный реестр образов из Harbor невозможно добавить образ с помощью кнопки Добавить образы в консоли управления.

Сканирование Harbor External Integration может инициироваться вручную или запускаться автоматически из внешнего реестра. Вы не можете запустить сканирование или повторное сканирование образов из автоматически созданного реестра образов из Harbor в Kaspersky Security для контейнеров.

Сканирование реестра Harbor External Integration (как и реестра, созданного в рамках стандартной интеграции с Harbor) осуществляется на основе параметров соответствующей политики сканирования.

По окончанию сканирования решение формирует отчет по уязвимостям, найденным при проверке выбранных объектов, и отправляет его в Harbor. Если отправка отчета занимает более пяти секунд (например, из-за качества сетевого подключения), в интерфейсе внешнего реестра отображается ошибка получения результатов сканирования.

В начало
[Topic 273008]

Просмотр и изменение параметров Harbor External Integration

Реестр образов Harbor External Integration отображается в списке реестров, интегрированных с Kaspersky Security для контейнеров, в разделе Администрирование → Интеграции → Реестры образов.

Чтобы изменить параметры Harbor External Integration:

  1. Выберите реестр Harbor External Integration в списке реестров образов в разделе Администрирование → Интеграции → Реестры образов.
  2. Укажите значения следующих доступных для изменения параметров:
    • Описание на вкладке Параметры реестра.
    • Максимальное время сканирования на вкладке Параметры сканирования образов.

    Вы не можете изменять другие параметры реестра Harbor External Integration.

  3. Нажмите Сохранить.
В начало
[Topic 273028]

Повторное сканирование

После получения результатов сканирования объекты из реестра Harbor External Integration невозможно отправить на повторное сканирование из Kaspersky Security для контейнеров. Повторное сканирование можно инициировать только из Harbor.

Если вы создаете интеграцию с Harbor из Kaspersky Security для контейнеров и созданный реестр образов аналогичен Harbor External Integration, к повторному сканированию применяются следующие правила:

  • Сканирование объектов в созданном в решении реестре не запускает повторное сканирование в Harbor External Integration.
  • Сканирование объектов в Harbor External Integration не запускает повторное сканирование в созданном в решении реестре.
В начало
[Topic 273010]

Интеграция с CI/CD

Kaspersky Security для контейнеров позволяет проводить сканирование образов контейнеров и IaC, размещенных в системах управления репозиториями кода в рамках

, на уязвимости, вредоносное ПО, ошибки конфигурации и наличие конфиденциальных данных.

На этапе сборки проекта в системе управления репозиториями можно запустить сканер Kaspersky Security для контейнеров для проверки содержащихся в репозитории объектов на соответствие требованиям включенных политик безопасности. Сканер запускается из реестра с помощью агента, например, GitLab Runner в GitLab. Данные о задании для сканирования и направлении результатов сканирования передаются посредством программного интерфейса приложения (API).

При запуске проверки объектов на этапе сборки проекта необходимо убедиться, что в настройках применимой политики безопасности образов не выбрано Блокировать этап CI/CD. Если эта настройка активирована, решение уведомит вас об ошибке при сканировании.

Результаты сканирования отображаются в таблице в разделе РесурсыCI/CDСканирование в CI/CD.

Для каждого из представленных в таблице объектов Kaspersky Security для контейнеров отображает следующее:

  • Дату и время последнего сканирования.
  • Название.
  • Оценку уровня риска.
  • Обобщенные результаты сканирования с указанием выявленных объектов, относящимся к уязвимостям, вредоносному ПО, конфиденциальным данным и ошибкам конфигурации.
  • Тип артефакта.
  • Номер и пайплайн сборки, в которой проводилось сканирование образа.

В разделе РесурсыCI/CDСканирование в CI/CD вы также можете сформировать отчет по образам, которые сканируются в рамках процесса CI/CD.

Отчеты формируются только для объектов с типом артефакта Образ. Для других типов артефактов формирование отчета недоступно.

В этом разделе справки

Проверка артефактов в процессах CI/CD

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

Настройка интеграции с Jenkins CI/CD

Настройка интеграции с TeamCity CI/CD

Определение пути до образов контейнеров

Контроль целостности и происхождения образов

Запуск сканера в режиме SBOM

Запуск сканера в режиме lite SBOM

Получение результатов сканирования в форматах .JSON и .HTML

Указание секретов при запуске сканирования

В начало
[Topic 267228]

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

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

    /scanner [TARGET] --file --stdout

    где:

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

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

    stages:

    - build_tar

    - scan_tar

    - push_image

    build_tar:

    stage: build_tar

    tags:

    - k8s

    - docker

    image:

    name: gcr.io/kaniko-project/executor:v1.9.0-debug

    entrypoint: [""]

    dependencies:

    - scan_source_branch

    - scan_source_commit

    script:

    - mkdir -p /kaniko/.docker

    - echo "${DOCKER_AUTH_CONFIG}" > /kaniko/.docker/config.json

    - /kaniko/executor

    --context "${CI_PROJECT_DIR}"

    --dockerfile "${CI_PROJECT_DIR}/Dockerfile"

    --destination "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}"

    --compressed-caching=false

    --build-arg GITLAB_USER=gitlab-ci-token

    --build-arg GITLAB_TOKEN=${CI_JOB_TOKEN}

    --no-push

    --tarPath=image.tar

    artifacts:

    paths:

    - image.tar

    expire_in: 2 hours

    scan_tar:

    stage: scan_tar

    tags:

    - k8s

    - docker

    dependencies:

    - build_tar

    image:

    name: "company.gitlab.cloud.net:5050/companydev/example/scanner:master-with-db"

    pull_policy: always

    entrypoint: [""]

    variables:

    API_BASE_URL: ${API_BASE_URL}

    API_TOKEN: ${API_TOKEN}

    API_CA_CERT: ${KCS_CA_CERT}

    script:

    - /scanner image.tar --file --stdout

    artifacts:

    paths:

    - image.tar

    expire_in: 2 hours

    push_image:

    stage: push_image

    tags:

    - k8s

    image:

    name: gcr.io/go-containerregistry/crane:debug

    entrypoint: [""]

    dependencies:

    - scan_tar

    script:

    - mkdir -p $HOME/.docker

    - echo "${DOCKER_AUTH_CONFIG}" > $HOME/.docker/config.json

    - /ko-app/crane push image.tar "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}"

Чтобы провести сканирование 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-репозитория

    stages:

    - scan_source_branch

    - scan_source_commit

    scan_source_branch:

    stage: scan_source_branch

    image:

    name: "company.gitlab.cloud.net:5050/companydev/example/scanner:master-with-db"

    pull_policy: always

    entrypoint: [""]

    tags:

    - k8s

    - docker

    variables:

    API_BASE_URL: ${API_BASE_URL}

    API_TOKEN: ${API_TOKEN}

    API_CA_CERT: ${KCS_CA_CERT}

    script:

    - GITLAB_TOKEN=${CI_JOB_TOKEN} /scanner --repo ${CI_REPOSITORY_URL} --branch ${CI_COMMIT_BRANCH} --stdout

    scan_source_commit:

    stage: scan_source_commit

    image:

    name: "company.gitlab.cloud.net:5050/companydev/example/scanner:master-with-db"

    pull_policy: always

    entrypoint: [""]

    tags:

    - k8s

    - docker

    variables:

    API_BASE_URL: ${API_BASE_URL}

    API_TOKEN: ${API_TOKEN}

    API_CA_CERT: ${KCS_CA_CERT}

    script:

    - GITLAB_TOKEN=${CI_JOB_TOKEN} /scanner --repo ${CI_REPOSITORY_URL} --commit ${CI_COMMIT_SHA} --stdout

Для сканирования файловой системы

требуется использовать образ сканера с базой данных vX.X.X-with-db. Для проверки файлов IaC сканеру необходимо предоставить доступ к этим файлам внутри контейнера (например, с помощью монтирования тома с файлами или копирования файлов в файловую систему контейнера).

Чтобы провести сканирование файловой системы,

выполните команду запуска сканирования в следующем формате:

/scanner [TARGET] --sources --stdout

где:

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

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

Далее представлены переменные окружения для ситуации, когда в процессе выполнения задачи сканер получает доступ к файлам проекта GitLab, расположенным в локальной файловой системе, через переменную CI_PROJECT_DIR.

scan_folder:

stage: scanner

image:

name: repo.kcs.kaspersky.com/images/scanner:v2.0.0-with-db

entrypoint: [""]

tags:

- k8s

variables:

SCAN_TARGET: ${CI_PROJECT_DIR}

BUILD_NUMBER: ${CI_JOB_ID}

BUILD_PIPELINE: ${CI_PIPELINE_ID}

API_BASE_URL: ${API_BASE_URL}

API_TOKEN: ${API_TOKEN}

SKIP_API_SERVER_VALIDATION: "true"

script:

- /bin/sh /entrypoint.sh $SCAN_TARGET --sources --stdout

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

В начало
[Topic 296997]

Настройка интеграции с 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:v2.0-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. Для использования сертификата для безопасного подключения к реестру укажите данные сертификата в переменной окружения COMPANY_EXT_REGISTRY_TLS_CERT в виде строки в формате .PEM:

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

    5. Укажите следующие параметры, обеспечивающие взаимодействие через прокси-сервер:

      HTTP_PROXY: <прокси-сервер для запросов по протоколу HTTP>

      HTTPS_PROXY: <прокси-сервер для запросов по протоколу HTTPS>

      NO_PROXY: <домены или соответствующие им маски для исключения из проксирования>

    6. При необходимости укажите переменную для проверки сервера приема данных в 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'

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

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

      variables:

      API_BASE_URL: ${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.

В начало
[Topic 297122]

Настройка интеграции с Jenkins CI/CD

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

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

    printf "login:password" | openssl base64 -A

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

  2. Авторизация API Kaspersky Security для контейнеров. Для авторизации требуется выполнить следующие действия:
    1. Скопируйте токен API на странице Мой профиль.
    2. Укажите скопированное значение токена API в переменной API_TOKEN в конфигурационном файле Jenkinsfile.
  3. Проверка подлинности сервера приема данных в CI/CD с помощью СА-сертификата Ingress-контроллера. Для проведения проверки в конфигурационном файле Jenkinsfile укажите одну из следующих переменных:
    1. -e API_CA_CERT=${KCS_CA_CERT} – проверка будет проведена, и запускаемый в CI/CD сканер сможет убедиться в подлинности сервера приема данных.
    2. -e SKIP_API_SERVER_VALIDATION=true – проверка сервера приема данных с помощью СА-сертификата Ingress-контроллера проводиться не будет.
  4. Создание переменных окружения Jenkins.

    Чтобы создать переменные окружения, необходимо добавить в файл Jenkinsfile следующие строки:

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

      LOGIN – имя учетной записи в реестре сканера

      PASS – пароль для реестра сканера

    2. Если вы настраиваете сканирование для приватного репозитория, для доступа сканера к образу укажите следующие авторизационные данные:

      COMPANY_EXT_REGISTRY_USERNAME – имя учетной записи в реестре сканируемого образа

      COMPANY_EXT_REGISTRY_PASSWORD – пароль для реестра сканируемого образа

    3. Для использования сертификата для безопасного подключения к реестру укажите данные сертификата в переменной окружения COMPANY_EXT_REGISTRY_TLS_CERT в виде строки в формате .PEM:

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

    4. Укажите значения следующих переменных, обеспечивающих взаимодействие через прокси-сервер:

      HTTP_PROXY: <прокси-сервер для запросов по протоколу HTTP>

      HTTPS_PROXY: <прокси-сервер для запросов по протоколу HTTPS>

      NO_PROXY: <домены или соответствующие им маски для исключения из проксирования>

  5. Добавление информации для запуска сканера. Информация для запуска сканера, содержащего базы уязвимостей и других вредоносных объектов, добавляется в конфигурационный файл Jenkinsfile в виде декларативного или скриптового пайплайна.

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

    pipeline {

    agent any

    stages {

    stage('run scanner') {

    steps {

    sh 'docker login -u ${LOGIN} -p ${PASS} company.example.com'

    sh 'docker run -e API_BASE_URL=https://kcs.cust02.int.example.com/ -e SKIP_API_SERVER_VALIDATION=true -e API_TOKEN=${API_TOKEN} -e COMPANY_EXT_REGISTRY_USERNAME=${COMPANY_EXT_REGISTRY_USERNAME} -e COMPANY_EXT_REGISTRY_PASSWORD=${COMPANY_EXT_REGISTRY_PASSWORD} company.example.com:5050/company/kcs/scanner:v2.0.0-with-db jfrog.company.com/demo-kcs/bad:bad-project-test --html --stdout > result.html'

    }

    }

    }

    }

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

    node {

    stage ('run scanner') {

    sh 'docker login -u ${LOGIN} -p ${PASS} company.example.com'

    sh 'docker run -e API_BASE_URL=https://kcs.cust02.int.company.com/ -e API_CA_CERT=${KCS_CA_CERT} -e API_TOKEN=${API_TOKEN} -e COMPANY_EXT_REGISTRY_USERNAME=${COMPANY_EXT_REGISTRY_USERNAME} -e COMPANY_EXT_REGISTRY_PASSWORD=${COMPANY_EXT_REGISTRY_PASSWORD} company.example.com:5050/company/kcs/scanner:v2.0.0-with-db jfrog.company.com/demo-kcs/bad:bad-project-test --html --stdout > result.html'

    }

    }

  6. Формирование артефакта для скачивания.

    Для получения результатов сканирования вы можете сформировать артефакт для скачивания в формате .HTML или .JSON. Формат артефакта вы можете указать в строке --stdout, например:

    pipeline {

    agent any

    stages {

    stage('run scanner') {

    steps {

    sh 'docker login -u ${LOGIN} -p ${PASS} company.example.com'

    sh 'docker run -e API_BASE_URL=https://kcs.int.company.com -e SKIP_API_SERVER_VALIDATION=true -e API_TOKEN=${API_TOKEN} -e COMPANY_EXT_REGISTRY_USERNAME=${COMPANY_EXT_REGISTRY_USERNAME} -e COMPANY_EXT_REGISTRY_PASSWORD=${COMPANY_EXT_REGISTRY_PASSWORD} company.example.com:5050/company/kcs/scanner:v2.0.1-lite jfrog.company.com/demo-kcs/bad:bad-project-test --html --stdout > result.html'

    }

    }

    stage('archive') {

    steps {

    archiveArtifacts artifacts: 'result.html'

    }

    }

    }

    }

    Если необходимо сформировать артефакт в формате .JSON, строку --html --stdout > result.html'из приведенного выше примера требуется указать следующим образом:

    --stdout > result.json',

    и в строке archiveArtifacts artifacts: необходимо указать название файла в заданном вами формате: 'result.json'.

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

В начало
[Topic 297198]

Настройка интеграции с TeamCity CI/CD

Чтобы настроить интеграцию с TeamCity CI/CD:

  1. Скопируйте токен API на странице Мой профиль для авторизации API Kaspersky Security для контейнеров в TeamCity.
  2. В меню настройки параметров в веб-интерфейсе TeamCity выберите Build Configuration HomeParameters.
  3. С помощью кнопки Add new parameters добавьте значения следующих переменных окружения:
    • API_TOKEN – укажите скопированное значение токена API Kaspersky Security для контейнеров.
    • API_BASE_URL – укажите URL Kaspersky Security для контейнеров.
    • RUST_BACKTRACE – при необходимости укажите значение full для использования обратной трассировки.
    • SKIP_API_SERVER_VALIDATION – укажите значение true, если используется самоподписанный сертификат или необходимо пропустить проверку сервера приема данных с помощью СА-сертификата Ingress-контроллера.
    • COMPANY_EXT_REGISTRY_USERNAME – укажите имя учетной записи в реестре сканируемого образа.
    • COMPANY_EXT_REGISTRY_PASSWORD – укажите пароль для реестра сканируемого образа.
    • COMPANY_EXT_REGISTRY_TLS_CERT – укажите данные сертификата для безопасного подключения к реестру.

      Данные сертификата указываются в виде строки в формате .PEM:
      -----BEGIN CERTIFICATE-----\n... <данные сертификата> ...\n-----END CERTIFICATE-----.

    • HTTP_PROXY – указывается прокси-сервер для запросов по протоколу HTTP.
    • HTTPS_PROXY – указывается прокси-сервер для запросов по протоколу HTTPS.
    • NO_PROXY – указываются домены или соответствующие им маски для исключения из проксирования.
  4. Перейдите в раздел Build Configuration HomeBuild Step: Command Line и с помощью кнопки Add build step добавьте этап сборки.
  5. В открывшемся окне укажите следующие параметры этапа сборки:
    • В раскрывающемся списке Runner type выберите Command Line.
    • В раскрывающемся списке Run выберите Custom script.
    • В поле Custom script укажите путь к контейнеру для сканирования (например, /bin/sh /entrypoint.sh nginx:latest).
  6. В блоке Docker Settings укажите следующие параметры:
    • В поле Run step within Docker container укажите адрес сканера в реестре Docker. Например, company.gitlab.cloud.net:5050/companydev/example/scanner:v2.0.0-with-db.
    • В поле Additional docker run arguments повысьте значение привилегий до --privileged.
  7. Нажмите на кнопку Save, чтобы сохранить параметры.
  8. Нажмите на кнопку Run в верхнем правом углу страницы, чтобы запустить сборку.
  9. При необходимости скачайте артефакт с результатами сканирования, который доступен на вкладке Artifacts на странице с результатами проверки сборки в веб-интерфейсе TeamCity.

В начало
[Topic 297409]

Определение пути до образов контейнеров

Для начала сканирования решению необходимо определить путь до образов контейнеров, которые требуется проверить. Путь до образов контейнеров может быть указан двумя способами:

  • За названием реестра, репозитория и имени образа указывается тег образа. Тег представляет собой изменяемое легкочитаемое описание образа.

    Путь в этом случае выглядит следующим образом: <реестр>/<репозиторий>/<имя образа>:<тег>. Например, http://docker.io/library/nginx:1.20.1.

  • За названием реестра, репозитория и имени образа указывается контрольная сумма образа. Контрольная сумма является неизменным внутренним свойством образа, а именно хешем его содержимого (используется хеш-алгоритм SHA256).

    При использовании контрольной суммы путь представляет собой следующее: <реестр>/<репозиторий>/<имя образа><контрольная сумма>. Например, http://docker.io/library/nginx@sha256:af9c...69ce.

Тег может соответствовать различным контрольным суммам, а контрольные суммы уникальны для каждого образа.

В зависимости от способа указания пути до образа перед началом сканирования Kaspersky Security для контейнеров осуществляет одно из следующих действий:

  • Преобразовывает тег в доверенную контрольную сумму.
  • Проверяет, является ли указанная в пути до образа контрольная сумма доверенной. Контрольная сумма считается доверенной, если обеспечена необходимая степень уверенности в поддержании требуемого режима безопасности в отношении кодируемого с помощью хеш-алгоритма объекта.

В среду выполнения контейнера передаются только доверенные контрольные суммы.

Перед запуском контейнера содержимое образа сравнивается с полученной контрольной суммой. Для признания контрольной суммы доверенной, а образа неискаженным Kaspersky Security для контейнеров проверяет целостность и подлинность подписи образа.

В начало
[Topic 265788]

Контроль целостности и происхождения образов

При сканировании образов в процессе CI/CD Kaspersky Security для контейнеров обеспечивает защиту от подмены образов на уровне реестров. Целостность и происхождение образов контейнеров, развертываемых в кластере оркестратора, контролируется при помощи проверки подписей образов, начиная с уровня сборки в CI.

Контроль целостности образов осуществляется в два этапа:

  • Подписание образов контейнеров после создания. Этот процесс реализуется при помощи внешних приложений для подписи.
  • Проверка подписей образов перед развертыванием.

    Решение сохраняет ключ подписи, который создается на основе хеш-функции SHA-256 и используется в качестве кода проверки подлинности подписи. При развертывании в оркестраторе Kaspersky Security для контейнеров запрашивает у сервера подписей подтверждение подлинности подписи.

Kaspersky Security для контейнеров осуществляет проверку подписей образа в рамках следующего процесса:

  1. В разделе АдминистрированиеИнтеграцииМодули проверки подписей образов настраиваются параметры интеграции решения с внешними модулями проверки подписей.
  2. В разделе ПолитикиСреда выполненияПолитики создается политика среды выполнения для защиты содержания образа, которая отвечает за проверку подлинности подписей. Проверка цифровых подписей осуществляется на основе настроенных модулей проверки подписей.
  3. Оркестратор запускает развертывание образа и при помощи делает запрос на развертывание агенту (kube-agent).

    Для направления запроса агенту Kaspersky Security для контейнеров требуется настроить динамический контроллер доступа в конфигурационном файле values.yaml.

  4. На основании применимой политики среды выполнения агент проверяет параметры проверки подписи, настроенные в разделе АдминистрированиеИнтеграцииМодули проверки подписей образов.
  5. Если проверка подтверждает подлинность и действительность подписи, решение разрешает развертывание образа. В ином случае развертывание запрещается.
В начало
[Topic 263762]

Запуск сканера в режиме SBOM

Kaspersky Security для контейнеров поддерживает возможность запуска сканера для проверки образов на наличие уязвимостей в режиме

. В данном случае решение осуществляет сканирование специально созданного SBOM-файла, а не TAR-архива.

Преимущества использования SBOM включают в себя:

  • Меньший объем ресурсов, необходимых для сканирования образов на уязвимости.
  • Экономия времени на сканирование за счет автоматической проверки корректности использования и функционирования компонентов решения.
  • Возможность сканирования всех имеющихся в образе уязвимостей без исключения.
  • Большая надежность получаемых результатов сканирования.

В рамках работы в CI/CD процесс сканирования состоит из двух этапов: получение SBOM-файла и последующее сканирование образа с использованием полученной спецификации программного обеспечения. Процесс сканирования образов реализуется следующим образом:

  • Сканер в CI/CD формирует перечень компонентов образа и направляет сгенерированный артефакт в Kaspersky Security для контейнеров.
  • При помощи приложения для обработки заданий на сканирование решение передает принятый SBOM-файл в сканер для сканирования.

    Для сканирования в режиме SBOM Kaspersky Security для контейнеров запускает сканер с предустановленными базами уязвимостей и других вредоносных объектов (scanner:v2.0-with-db, scanner:v2.0-with-db-java).

Для сканирования образов в CI/CD в файле требуется указать значения следующих переменных окружения:

  • API_TOKEN – указывается значение токена API Kaspersky Security для контейнеров.
  • API_BASE_URL – указывается URL Kaspersky Security для контейнеров.
  • API_CA_CERT – указывается СА-сертификат Ingress-контроллера, что позволяет запускаемому в CI/CD сканеру убедиться в подлинности сервера приема данных. Если вы используете самоподписанный сертификат или специально хотите пропустить проверку сервера приема данных с помощью СА-сертификата Ingress-контроллера, значение переменной для пропуска проверки указывается следующим образом:

    SKIP_API_SERVER_VALIDATION: 'true'

  • COMPANY_EXT_REGISTRY_USERNAME – указывается имя учетной записи в реестре сканируемого образа.
  • COMPANY_EXT_REGISTRY_PASSWORD – указывается пароль для реестра сканируемого образа.
  • COMPANY_EXT_REGISTRY_TLS_CERT – указываются данные сертификата для безопасного подключения к реестру.

    Данные сертификата указываются в виде строки в формате .PEM:
    -----BEGIN CERTIFICATE-----\n... <данные сертификата> ...\n-----END CERTIFICATE-----.

  • HTTP_PROXY – указывается прокси-сервер для запросов по протоколу HTTP.
  • HTTPS_PROXY – указывается прокси-сервер для запросов по протоколу HTTPS.
  • NO_PROXY – указываются домены или соответствующие им маски для исключения из проксирования.

Для последующего сканирования Kaspersky Security для контейнеров генерирует файл отчета в формате .JSON. Также вы можете сформировать артефакт c SBOM для скачивания в рамках процесса CI/CD в формате

или .

Чтобы сгенерировать SBOM-файл в формате .SPDX при работе сканера через создание SBOM,

в конфигурационном файле .gitlab-ci.yml укажите следующую команду:

- /bin/sh /entrypoint.sh $SCAN_TARGET --sbom --spdx --stdout > example.spdx

где:

<--sbom> – индикатор создания SBOM-файла;

<--spdx> – указание на сборку артефакта в формате .SPDX;

<--stdout > example.spdx> – индикатор вывода данных в файл в формате .SPDX.

Чтобы сгенерировать SBOM-файл в формате .СDX при работе сканера через создание SBOM,

в конфигурационном файле .gitlab-ci.yml укажите следующую команду:

- /bin/sh /entrypoint.sh $SCAN_TARGET --sbom --cdx --stdout > example.cdx.json

где:

<--sbom> – индикатор создания SBOM-файла;

<--cdx> – указание на сборку артефакта в формате .CDX

<--stdout > example.cdx.json> – индикатор вывода данных в файл в формате .JSON.

Полученный при этом файл (например, example.cdx.json) указывается как артефакт: artifacts: paths:

Сканирование при помощи создания SBOM-файла относится только к проверке образа на наличие уязвимостей. Если в процессе CI/CD требуется провести сканирование на другие риски и угрозы (например, на наличие ошибок конфигурации), требуется отдельно запускать соответствующее сканирование и добавлять полученные результаты в приложение для обработки заданий на сканирование в дополнение к SBOM-файлу.

В начало
[Topic 297411]

Запуск сканера в режиме lite SBOM

Kaspersky Security для контейнеров предоставляет возможность запуска сканера для проверки образов на наличие уязвимостей в режиме lite SBOM. В данном случае решение осуществляет сканирование специально созданного SBOM-файла, а результаты этого сканирования становятся доступны на этапе CI/CD.

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

Для получения результатов вы можете сформировать артефакт для скачивания в формате .SPDX, .HTML, .JSON или .CDX.

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

В этом разделе

Запуск сканера в GitLab

Запуск вне процесса CI/CD

В начало
[Topic 297412]

Запуск сканера в GitLab

Чтобы запустить сканер в режиме lite SBOM в GitLab, при настройке сканирования образов в процессе CI/CD измените конфигурационный файл .gitlab-ci.yml следующим образом:

  1. Добавьте информацию по образу сканера, запускаемого на этапе сканирования образов в процессе CI/CD в следующем виде:

    scan_image:

    stage: scanner

    image:

    name:repo.cloud.example.com/repository/company/scanner:v.2.0.0-lite

    entrypoint: [""]

    pull_policy: always

  2. Укажите тег платформы оркестрации в следующем виде:

    k8s

    В приведенном примере указан тег k8s для обозначения Kubernetes, вы можете указать тег для другой поддерживаемой платформы оркестрации.

  3. Укажите такие переменные как идентификатор сборки, данные реестра сканируемого образа и сертификата для безопасного подключения к этому реестру, идентификатор пайплайна и токен 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-----.

  4. При необходимости укажите переменную для проверки сертификата API-интерфейса решения:

    API_CA_CERT: ${KCS_CA_CERT}

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

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

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

  6. Укажите команду для создания файла артефакта при запуске сканера в одном из следующих поддерживаемых форматов:
    • Для создания артефакта в формате .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

Пример настройки запуска сканера в режиме lite SBOM и создания артефакта в формате .HTML в GitLab

scan_image:

stage: scanner

image:

name: repo.cloud.example.com/repository/company/scanner:v.2.0.0-lite

entrypoint: [""]

pull_policy: always

tags:

- k8s

variables:

SCAN_TARGET: ${CI_REGISTRY_IMAGE}:master

COMPANY_EXT_REGISTRY_USERNAME: ${COMPANY_EXT_REGISTRY_USERNAME}

COMPANY_EXT_REGISTRY_PASSWORD: ${COMPANY_EXT_REGISTRY_PASSWORD}

BUILD_NUMBER: ${CI_JOB_ID}

BUILD_PIPELINE: ${CI_PIPELINE_ID}

API_CA_CERT: ${KCS_CA_CERT}

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

# Demostand KCS.int API:

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

script:

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

artifacts:

paths:

- artifact-result.html

В начало
[Topic 301503]

Запуск вне процесса 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: <домены или соответствующие им маски для исключения из проксирования> – переменная, которая указывает на доступные локально ресурсы, если используется прокси-сервер.

Запуск сканера в Docker

Чтобы запустить сканер в режиме lite SBOM в Docker:

  1. Укажите обязательные параметры Kaspersky Security для контейнеров:

    -e API_TOKEN=<значение токена API>

    -e API_BASE_URL=https://company.com

    -e API_CA_CERT: <сертификат в формате PEM> или -e SKIP_API_SERVER_VALIDATION=true

  2. При необходимости укажите дополнительные параметры Kaspersky Security для контейнеров.
  3. Укажите образ сканера для запуска:

    repo.kcs.company.com/images/scanner:v2.0.0-lite

  4. Если необходимо сформировать артефакт для скачивания, укажите следующее:

    --<формат артефакта> --stdout > result.<формат файла>

    Например,

    --html --stdout > result.html

  5. Убедитесь, что конфигурационный файл .docker/config.json содержит данные для подключения к реестру с образом сканера. При необходимости выполните команду docker login repo.company.com или docker login repo.kcs.kaspersky.com.
  6. Запустите задачу сканирования.

    Если при вызове сканера появляется ошибка преобразования имени домена Name does not resolve, до переменной API_BASE_URL нужно указать адрес до внутреннего DNS сервера вашей организации. Например,

    --dns 10.0.xx.x

Если образ сканера и образ для проверки хранятся в вашем реестре и вам требуется сформировать артефакт с результатом работы сканера в формате .JSON, данные для запуска сканера заданы следующим образом:

docker run --dns 10.0.10.10 \

-e "API_BASE_URL=https://kcs.company.com" \

-e "SKIP_API_SERVER_VALIDATION=true" \

-e "API_TOKEN=${api_token}" \

-e "COMPANY_EXT_REGISTRY_USERNAME=${user}" \

-e "COMPANY_EXT_REGISTRY_PASSWORD=${password}"

repo.company.com/images/scanner:v2.0.0-lite \

repo.company.com/images/alpine:latest --stdout > result.json

Если образ сканера хранится в публично доступном реестре "Лаборатории Касперского" (узел скачивает этот образ с помощью вашего прокси сервера), образ для проверки хранится локально на узле в виде архива, и вам требуется сформировать артефакт с результатом работы сканера в формате .SPDX, данные для запуска сканера заданы следующим образом:

docker run --dns 10.0.10.10 \

-e "API_BASE_URL=https://kcs.company.com" \

-e "SKIP_API_SERVER_VALIDATION=true" \

-e "API_TOKEN=${api_token}" \

-e "HTTPS_PROXY=http://user:password@client.proxy.com:8080" \

-v ./image_to_scan.tar:/image.tar \

repo.kcs.kaspersky.com/images/scanner:v2.0.0-lite \

image.tar --file --spdx --stdout > result.spdx

Запуск сканера как объекта Job в кластере Kubernetes

Чтобы запустить сканер в режиме lite SBOM как объект Job в кластере Kubernetes:

  1. Убедитесь, что выполняющий команды узел содержит kubectl и конфигурационный файл kubeconfig для соответствующего кластера Kubernetes и они доступы в пользователю, запускающему команды.
  2. Убедитесь, что в соответствующем пространстве имен существует секрет для аутентификации и загрузки образа сканера из интересующего вас реестра.

    Вы можете создать такой секрет самостоятельно, например с помощью следующей команды:

    kubectl create secret docker-registry <имя секрета> --docker-server=<FQDN репозитория> --docker-username=username --docker-password=password

  3. Укажите значения обязательных и при необходимости дополнительных параметров для работы сканера в виде задачи в кластере Kubernetes.

    Параметры указываются в файле для запуска сканера в формате .YAML следующим образом:

    apiVersion: batch/v1

    kind: Job

    metadata:

    name: my-lite-job

    spec:

    template:

    spec:

    containers:

    - name: my-lite-container

    image: repo.company.com/images/scanner:v2.0.0-lite

    command: ["/bin/sh"]

    args: ["entrypoint.sh", "alpine:latest"]

    env:

    - name: COMPANY_EXT_REGISTRY_USERNAME

    value: <пользователь для аутентификации в реестре с образом для проверки>

    - name: COMPANY_EXT_REGISTRY_PASSWORD

    value: <пароль для аутентификации в реестре с образом для проверки>

    - name: API_BASE_URL

    value: https://kcs.company.local

    - name: API_TOKEN

    value: <токен для аутентификации в API решения>

    - name: SKIP_API_SERVER_VALIDATION

    value: 'true'

    imagePullPolicy: Always

    restartPolicy: Never

    imagePullSecrets:

    - name: <имя секрета для аутентификации и загрузки образа сканера>

    backoffLimit: 0

  4. Запустите задачу сканирования в кластере Kubernetes:

    kubectl apply -f my-lite-job.yaml

В начало
[Topic 301504]

Получение результатов сканирования в форматах .JSON и .HTML

При использовании Kaspersky Security для контейнеров для сканирования образов в рамках процесса CI/CD вы можете сформировать и сохранить артефакт с результатами сканирования внутри платформы CI/CD. Это может быть сделано с помощью конфигурационного файла внешней системы репозиториев, с которой интегрировано решение. Например, конфигурационного файла .gitlab-ci.yml в GitLab.

Способы формирования артефакта с результатами сканирования:

  • При работе сканера с полным сканированием в CI/CD. Файл с результатами сканирования может быть сформирован в форматах .HTML и .JSON.
  • При работе сканера через создание SBOM. В этом случае файл с результатами сканирования можно сгенерировать в форматах .SPDX и .JSON.

Чтобы сформировать файл с результатами сканирования в формате .HTML,

в конфигурационном файле .gitlab-ci.yml укажите следующую команду:

- /bin/sh /entrypoint.sh $SCAN_TARGET --html --stdout > example.html

где:

<--html> – указание на сборку артефакта в формате .HTML;

<--stdout > example.html> – индикатор вывода данных в файл в формате .HTML.

Чтобы сформировать файл с результатами сканирования в формате .JSON при работе сканера с полным сканированием в CI/CD,

в конфигурационном файле .gitlab-ci.yml укажите следующую команду:

- /bin/sh /entrypoint.sh $SCAN_TARGET --stdout > example.json

где:

<--stdout > example.json> – индикатор вывода данных в файл в формате .JSON.

Полученный при этом файл (например, example.json) указывается как артефакт: artifacts: paths:

В начало
[Topic 265362]

Указание секретов при запуске сканирования

При запуске задания на сканирование в процессе CI/CD реестр, в котором находится образ сканера (сканер lite или сканер with-db для соответствующей версии Kaspersky Security для контейнеров), может быть доступен только после авторизации. Вы можете пройти авторизацию, указав требуемые секреты в задании на сканирование.

Чтобы пройти авторизацию для доступа в реестр при запуске задания на сканирование:

  1. Создайте секрет, выполнив следующую команду:

    kubectl create secret docker-registry ci-creds --docker-server=client.repo.example.com --docker-username=username --docker-password=password

  2. В задании на сканирование укажите значение переменной imagePullSecrets следующим образом:

    imagePullSecrets:

    - name: ci-creds

  3. Запустите задание на сканирование.

    Пример задания на сканирование с указанием секретов для авторизации

    kind: Job

    metadata:

    name: my-job

    spec:

    template:

    spec:

    containers:

    - name: my-container

    image: client.repo.example.com/scanner:master

    command: ["/bin/sh"]

    args: ["entrypoint.sh", "apline:latest"]

    env:

    - name: COMPANY_EXT_REGISTRY_USERNAME

    value: another_username

    - name: COMPANY_EXT_REGISTRY_PASSWORD

    value: another_password

    - name: API_BASE_URL

    value: https://some.kcs.env.example

    - name: API_TOKEN

    value: kcs_blablabla

    - name: SKIP_API_SERVER_VALIDATION

    value: 'true'

    imagePullPolicy: Always

    restartPolicy: Never

    imagePullSecrets:

    - name: ci-creds

    backoffLimit: 0

В приведенном примере задание на сканирование содержит следующие секреты:

  • Секрет для скачивания образа сканера (указан в переменной imagePullSecrets).
  • Пароль для скачивания образа для проверки с помощью сканера, если доступ к соответствующему реестру ограничен (указан в переменной COMPANY_EXT_REGISTRY_PASSWORD).

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

В начало
[Topic 281598]

Настройка интеграции с модулями проверки подписей образов

Kaspersky Security для контейнеров может осуществлять проверку подлинности и действительности цифровых подписей образов. Чтобы использовать функцию этой проверки, вам требуется настроить интеграцию решения с одним или несколькими внешними приложениями для подписи. Особенности подписания контрольной суммы образа, место хранения подписей и особенности защиты подписей зависят от выбранного вами приложения для подписи. Решение поддерживает два настраиваемых внешних модуля проверки подписей:

  • Notary v1 – разработанное Docker приложение, которое используется для обеспечения безопасности контейнеров на различных этапах их жизненного цикла, в том числе создания и последующего хранения подписей.
  • Cosign – приложение, предназначенное для создания подписей для контейнеров, проверки подписей и размещения подписанных контейнеров в репозиториях. Приложение разработано в рамках проекта .

Вы можете настроить интеграцию с модулем проверки подписей в разделе АдминистрированиеИнтеграцииМодули проверки подписей образов.

В начало
[Topic 265760]

Просмотр списка интеграций с модулями проверки подписей

В разделе АдминистрированиеИнтеграции → Модули проверки подписей образов отображается таблица со списком всех настроенных интеграций с модулями проверки подписей образов.

В таблице отображаются следующие данные об интегрированных модулях проверки подписей образов:

  • Название модуля проверки.
  • Описание, если оно указывалось при создании интеграции.
  • Тип задействованного модуля проверки подписей – Notary v1 или Cosign.
  • Веб-адрес, к которому обращается модуль проверки подписи образов.

В таблице вы можете выполнять следующие действия:

В начало
[Topic 274593]

Создание интеграции с модулем проверки подписей

Чтобы создать интеграцию с модулем проверки подписей образов:

  1. В разделе АдминистрированиеИнтеграции → Модули проверки подписей образов нажмите на кнопку Добавить модуль проверки.

    Откроется окно ввода параметров интеграции.

  2. В блоке Общая информация введите название политики и при необходимости ее описание.
  3. В блоке Тип выберите один из следующих модулей проверки подписей:
    • Notary v1.
    • Cosign.
  4. В зависимости от выбранного модуля проверки подписей укажите параметры для доступа на сервер:
    • Для Notary v1 укажите следующие параметры:
      • Веб-адрес – полный веб-адрес сервера, где хранятся подписи образов.
      • Секрет для аутентификации на сервере подписей – название секрета оркестратора с учетными идентификационными данными для доступа к серверу, где хранятся подписи образов.

        Секрет должен находиться в пространстве имен Kaspersky Security для контейнеров.

      • Сертификат – самостоятельно сгенерированный сертификат сервера, где хранятся подписи. Сертификат предоставляется в формате .PEM.
      • Делегирование – перечень владельцев подписи, которые принимают участие в процессе подписания.
      • В блоке Доверенные корневые ключи укажите пары всех открытых ключей, которые решение будет проверять при проверке подписей. Пара ключа включает в себя имя и значение ключа.

        При необходимости вы можете добавить дополнительные ключи, нажав на кнопку Добавить пару ключей. Решение поддерживает до 20 пар ключей.

    • Для Cosign укажите следующие параметры:
      • Секрет для аутентификации на сервере подписей – название секрета оркестратора с учетными идентификационными данными для доступа к серверу, где хранятся подписи образов.

        Секрет должен находиться в пространстве имен Kaspersky Security для контейнеров.

      • Сертификат – самостоятельно сгенерированный сертификат сервера, где хранятся подписи. Сертификат предоставляется в формате .PEM.
      • В блоке Доверенные корневые ключи укажите пары всех открытых ключей, которые решение будет проверять при проверке подписей. Пара ключа включает в себя имя и значение ключа.

        Для Cosign указываются открытые ключи для алгоритмов ECDSA или RSA, предоставленные ресурсом cosign.pub.

        При необходимости вы можете добавить дополнительные ключи, нажав на кнопку Добавить пару ключей. Решение поддерживает до 20 пар ключей.

      • В блоке Требования к подписи укажите минимально необходимое количество подписей и владельцев подписи, которые обязательно должны подписать образ.
  5. Нажмите на кнопку Сохранить в верхней части окна, чтобы сохранить параметры интеграции с модулем проверки подписей.

Настроенную интеграцию вы можете использовать в политиках среды выполнения для обеспечения защиты содержания образа.

В начало
[Topic 265764]

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

Чтобы просмотреть и изменить параметры интеграции с модулем проверки подписей образов:

  1. В разделе АдминистрированиеИнтеграции → Модули проверки подписей образов нажмите на ссылку на названии интеграции в списке интеграций с модулем проверки подписей.
  2. В открывшемся окне при необходимости в зависимости от выбранного модуля проверки подписей измените следующие параметры интеграции:
    • Для Notary v1 вы можете изменить следующие параметры:
      • Название модуля проверки.
      • Описание.
      • Веб-адрес.
      • Секрет для аутентификации на сервере подписей.
      • Сертификат.
      • Делегирование.
      • Имя ключа.
      • Значение ключа.
    • Для Cosign вы можете изменить следующие параметры:
      • Секрет для аутентификации на сервере подписей.
      • Сертификат.
      • Имя ключа.
      • Значение ключа.
      • Порог подписания.
      • Обязательные владельцы подписи.
  3. При необходимости добавьте пары ключей, нажав на кнопку Добавить пару ключей.
  4. Нажмите на кнопку Сохранить в верхней части окна.
В начало
[Topic 265792]

Удаление интеграции с модулем проверки подписей

Чтобы удалить интеграцию с модулем проверки подписей:

  1. Откройте список настроенных интеграций с модулем проверки подписи.
  2. Выберите интеграцию, которую хотите удалить, установив флажок в строке с названием интеграции.
  3. Нажмите на кнопку Удалить, которая расположена над таблицей.

    Кнопка Удалить становится активной после выбора одной или нескольких интеграций.

  4. Подтвердите удаление в открывшемся окне.
В начало
[Topic 274595]

Настройка интеграции со средствами уведомления

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

Kaspersky Security для контейнеров может использовать следующие средства уведомления:

  • электронная почта;
  • система обмена мгновенными сообщениями Telegram.

В этом разделе справки

Просмотр списка интеграций со средствами уведомления

Создание интеграции с электронной почтой

Просмотр информации об интеграции с электронной почтой

Создание интеграции с Telegram

Просмотр и изменение информации об интеграции с Telegram

Удаление интеграции со средством уведомления

В начало
[Topic 250406]

Просмотр списка интеграций со средствами уведомления

Чтобы просмотреть список настроенных интеграций со средствами уведомления:

  1. Перейдите в раздел АдминистрированиеИнтеграции → Уведомления.
  2. В зависимости от интересующего вас типа уведомления перейдите во вкладку Электронная почта или во вкладку Telegram.

В таблице со списком всех настроенных интеграций отображаются следующие данные о существующих интеграциях:

  • Название интеграции.
  • Автор обновления.
  • Дата и время последнего обновления.
  • Статус последнего соединения со средством уведомления – Успешно или Ошибка. Если указывается Ошибка, решение также отображает краткое описание ошибки при соединении.

В таблице вы можете выполнять следующие действия:

  • Добавлять новые интеграции с электронной почтой и Telegram. Окно ввода параметров интеграции открывается с помощью кнопки Добавить интеграцию над таблицей.
  • Просматривать и изменять параметры интеграции со средствами уведомления. Окно редактирования открывается по ссылке на названии интеграции.

    В этом окне с помощью кнопки Проверить соединение вы также можете посмотреть осуществлена ли интеграция со средством уведомления.

  • Удалять интеграцию со средствами уведомления.
В начало
[Topic 274627]

Создание интеграции с электронной почтой

Чтобы создать интеграцию с электронной почтой:

  1. В разделе АдминистрированиеИнтеграции → Уведомления в блоке Электронная почта нажмите на кнопку Добавить интеграцию.

    Откроется окно ввода параметров интеграции.

  2. Укажите следующие параметры в полях формы:
    • Название интеграции. Это название будет отображаться в параметрах политики реагирования.
    • Имя пользователя и пароль учетной записи, которая используется для отправки сообщений.
    • Имя сервера SMTP.
    • Способ шифрования электронной почты.
    • Порт, который использует сервер SMTP.
    • Адрес электронной почты отправителя сообщений.
    • Адреса электронной почты получателей сообщений. Вы можете указать в поле один или несколько адресов.
  3. Нажмите на кнопку Проверить соединение, чтобы посмотреть, устанавливается ли соединение с электронной почтой.
  4. Нажмите на кнопку Добавить, чтобы сохранить параметры интеграции с электронной почтой.

Пример параметров интеграции с электронной почтой

Далее представлен пример параметров интеграции Kaspersky Security для контейнеров с электронной почтой.

{

"form": {

"type": "email",

"name": "Email integration",

"username": "username@example.com",

"password": "P@ssword!",

"host": "smtp.company.com",

"port": 465,

"encrypting": "ssl",

"sender": "sender@example.com",

"recipients": [

"user@company.com",

"user1@company.com"

]

}

}

Для параметра encrypting необходимо указать один из следующих вариантов:

  • tls
  • ssl
  • null

Настроенную интеграцию вы можете использовать в политиках реагирования.

В начало
[Topic 275119]

Просмотр информации об интеграции с электронной почтой

Чтобы просмотреть и изменить интеграцию с электронной почтой:

  1. В блоке Электронная почта в разделе АдминистрированиеИнтеграции → Уведомления нажмите на ссылку на названии интеграции в списке интеграций.
  2. В открывшемся окне редактирования при необходимости измените следующие параметры интеграции:
    • Название.
    • Имя пользователя.
    • Пароль учетной записи, которая используется для отправки сообщений.
    • Имя сервера SMTP.
    • Способ шифрования электронной почты.
    • Порт, который использует сервер SMTP.
    • Адрес электронной почты отправителя сообщений.
    • Адрес электронной почты получателей сообщений.
  3. Нажмите на кнопку Проверить соединение, чтобы посмотреть, устанавливается ли соединение с электронной почтой.
  4. Нажмите Сохранить.
В начало
[Topic 275120]

Создание интеграции с Telegram

Чтобы создать интеграцию с Telegram:

  1. В разделе АдминистрированиеИнтеграции → Уведомления в блоке Telegram нажмите на кнопку Добавить интеграцию.

    Откроется окно ввода параметров интеграции.

  2. Укажите следующие параметры в полях формы:
    • Название интеграции. Это название будет отображаться в параметрах политики реагирования.
    • Идентификатор чата, в котором будут публиковаться сообщения. Вы можете получить идентификатор следующим образом:
      1. Напишите первое сообщение боту, который будет публиковать сообщения. Идентификатор чата генерируется при первой отправке сообщения.
      2. Введите в адресной строке браузера:

        https://api.telegram.org/bot<токен>/getUpdates,

        где <токен> – токен бота, который будет публиковать сообщения.

      3. В полученном json-ответе найдите значение "id" из объекта "chat" – это идентификатор чата.

      После изменения настроек видимости истории сообщений для новых участников в чате Telegram меняется идентификатор чата. В таком случае требуется изменить настройки интеграции с Telegram и указать новое значение идентификатора чата.

    • Токен бота, который будет публиковать сообщения. Токен вы получаете в результате создания бота по команде /newbot в боте BotFather. Вы также можете получить токен ранее созданного бота по команде /token.
  3. Нажмите на кнопку Проверить соединение, чтобы посмотреть, устанавливается ли соединение с Telegram.
  4. Нажмите на кнопку Добавить, чтобы сохранить параметры интеграции с Telegram.

Пример параметров интеграции с Telegram

Далее представлен пример параметров интеграции Kaspersky Security для контейнеров с Telegram.

{

"form": {

"type": "telegram",

"name": "Telegram integration",

"chatId": "{{chatId}}",

"botToken": "{{botToken}}"

}

}

Настроенную интеграцию вы можете использовать в политиках реагирования.

В начало
[Topic 275121]

Просмотр и изменение информации об интеграции с Telegram

Чтобы просмотреть и изменить интеграцию с Telegram:

  1. В блоке Telegram в разделе АдминистрированиеИнтеграции → Уведомления нажмите на ссылку на названии интеграции в списке интеграций.
  2. В открывшемся окне редактирования при необходимости измените следующие параметры интеграции:
    • Название.
    • Идентификатор чата.
    • Токен бота.
  3. Нажмите на кнопку Проверить соединение, чтобы посмотреть, устанавливается ли соединение с Telegram.
  4. Нажмите Сохранить.
В начало
[Topic 275122]

Удаление интеграции со средством уведомления

Чтобы удалить интеграцию с электронной почтой или с Telegram:

  1. Откройте список настроенных интеграций с электронной почтой или с Telegram в разделе АдминистрированиеИнтеграцииУведомления.
  2. Выберите интеграцию, которую хотите удалить, установив флажок в строке с названием интеграции.
  3. Нажмите на кнопку Удалить, которая расположена над таблицей.

    Кнопка Удалить становится активной после выбора одной или нескольких интеграций.

  4. Подтвердите удаление в открывшемся окне.

Невозможно удалить интеграцию, которая используется в одной или нескольких политиках реагирования.

В начало
[Topic 274659]

Настройка интеграции с LDAP-сервером

Kaspersky Security для контейнеров позволяет подключаться к серверам внешних

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

Соединение с внешней службой каталогов по протоколу LDAP предоставляет вам возможность выполнять следующие задачи:

  • настраивать учетные записи пользователей с учетом данных из внешней службы каталогов для работы с Kaspersky Security для контейнеров;
  • соотносить роли пользователей в Kaspersky Security для контейнеров с группами пользователей из Active Directory. Пользователи, принадлежащие к этим группам, смогут войти в веб-интерфейс решения со своими доменными учетными данными и получат доступ к функциональности приложения в соответствии с назначенной ролью.

    Рекомендуется предварительно создать в Active Directory группы пользователей, которым вы хотите предоставить возможность проходить авторизацию с помощью доменной учетной записи в веб-интерфейсе Kaspersky Security для контейнеров.
    В свойствах учетной записи пользователя в Active Directory обязательно должен быть указан адрес электронной почты.

В этом разделе справки

Создание интеграции с LDAP-сервером

Просмотр, изменение параметров и удаление интеграции с LDAP-сервером

Проверка соединения с LDAP-сервером

Получение доступа к группе Active Directory

В начало
[Topic 254129]

Создание интеграции с LDAP-сервером

Чтобы создать интеграцию с LDAP-сервером:

  1. В разделе Администрирование → Интеграции → LDAP нажмите на кнопку Добавить сервер.

    Откроется окно ввода параметров LDAP-сервера.

  2. Выберите режим проверки сертификатов для подключения к LDAP-серверу. По умолчанию указан режим Цепочка сертификатов и осуществляется проверка сертификатов, сохраненных Kaspersky Security для контейнеров при первом подключении к LDAP-серверу. Вы также можете выбрать режим Корневой сертификат и в соответствующем текстовом поле указать данные своего корневого сертификата.

    Не изменяйте установленный по умолчанию режим проверки сертификатов, если вы не используете корневой сертификат для подключения к LDAP-серверу.

  3. Укажите следующие обязательные параметры:
    • Веб-адрес (URL) LDAP-сервера вашей компании.

      Веб-адрес LDAP-сервера указывается следующим образом: ldap://<host>:<port>. Например, ldap://ldap.example.com:389.

    • Имя и пароль технической учетной записи.

      Имя учетной записи – уникальное имя технической учетной записи, которое требуется для начальной аутентификации и поиска пользователя в каталоге Active Directory.

      Вы можете указать имя технической учетной записи в полной форме без сокращений или в формате <login@domen>, если ваш LDAP-сервер поддерживает аутентификацию с помощью такого формата имени.

      В поле Пароль учетной записи необходимо ввести пароль, соответствующий указанному имени учетной записи.

      Перед обновлением решения, убедитесь, что поля Имя учетной записи и Пароль учетной записи заполнены. Если значения этих параметров отсутствуют, интеграция с LDAP-сервером не будет функционировать.

    • Базовое уникальное имя – имя, которое уникальным образом идентифицирует и описывает запись сервера каталогов LDAP.

      Например, базовым уникальным именем для example.com является dc=example,dc=com.

  4. При необходимости с помощью имеющихся у решения данных, Kaspersky Security для контейнеров может заполнить остальные поля формы создания интеграции. Для этого в зависимости от целей создания интеграции выполните одно из следующих действий:
    • Если вы хотите создать интеграцию с сервером по протоколу LDAP, нажмите на кнопку Заполнить для LDAP.
    • Если вы хотите настроить интеграцию непосредственно для группы в службе каталогов Active Directory, которая связана с вашей ролью в Kaspersky Security для контейнеров, нажмите на кнопку Заполнить для Active Directory.

    Kaspersky Security для контейнеров указывает атрибуты значений параметров, а не сами значения. Например, решение указывает атрибут имени пользователя, по которому можно найти этого пользователя, а не непосредственно имя пользователя.

    Решение подставит следующие атрибуты значений параметров в форму создания интеграции:

    • Фильтр пользователя для определения параметров поиска пользователя в Active Directory.
    • Фильтр группы для определения параметров поиска группы в Active Directory.

      Kaspersky Security для контейнеров использует максимально обобщенные значения фильтров, чтобы обеспечить работу практически для всех возможных конфигураций. При настройке параметров Фильтр пользователя и Фильтр группы мы рекомендуем сохранять только те значения атрибутов, которые используются в Active Directory.

    • В блоке Основные настройки решение указывает следующие параметры:
      • Название организационной единицы.
      • Уникальное имя.
    • В блоке Настройки пользователя решение указывает следующие параметры:
      • Имя пользователя.
      • Фамилия пользователя.
      • Название группы.
      • Логин пользователя.
      • Член группы.
      • Адрес электронной почты пользователя.
      • Группы, в которые входит пользователь.

    При необходимости вы можете изменить значения, указанные решением в форме создания интеграции.

  5. Чтобы проверить корректность заполнения значений, нажмите на кнопку Проверить соединение.

    Kaspersky Security для контейнеров отобразит уведомление о подключении к LDAP-серверу или о невозможности его установить.

  6. Нажмите Сохранить.

Если сертификат LDAP-сервера меняется, требуется перенастроить интеграцию.

Настроенную интеграцию вы можете использовать при создании и назначении ролей пользователей.

В начало
[Topic 295783]

Просмотр, изменение параметров и удаление интеграции с LDAP-сервером

Чтобы просмотреть подключение LDAP-сервера,

перейдите в раздел Администрирование → Интеграции → LDAP.

Kaspersky Security для контейнеров отображает следующую информацию о подключенном LDAP-сервере:

  • Веб-адрес подключенного LDAP-сервера.
  • Статус последнего соединения с сервером – Успешно, Недоступно или Ошибка. Если указывается Ошибка, решение также отображает краткое описание ошибки при соединении.

Чтобы изменить параметры интеграции с LDAP-сервером,

в разделе Администрирование → Интеграции → LDAP нажмите на кнопку Изменить параметры.

Kaspersky Security для контейнеров откроет страницу с формой данных для интеграции с LDAP-сервером.

Чтобы удалить интеграцию с LDAP-сервером:

  1. В разделе Администрирование → Интеграции → LDAP нажмите на кнопку Удалить интеграцию.
  2. Подтвердите удаление в открывшемся окне.
В начало
[Topic 274660]

Проверка соединения с LDAP-сервером

Чтобы проверить соединение с LDAP-сервером,

  1. Перейдите в раздел Администрирование → Интеграции → LDAP.
  2. Выполните одно из следующих действий:

Kaspersky Security для контейнеров отобразит уведомление о соединении с LDAP-сервером или о невозможности его установить.

В начало
[Topic 286667]

Получение доступа к группе Active Directory

После интеграции с LDAP-сервером вы можете указать группу Active Directory для каждой роли Kaspersky Security для контейнеров. Пользователи из этой группы, пройдя авторизацию с помощью своих учетных данных, получат доступ к функциональности решения в соответствии с указанной ролью.

В начало
[Topic 254187]

Настройка интеграции с SIEM-системами

Kaspersky Security для контейнеров позволяет подключаться к

, чтобы отправлять сообщения о событиях для их анализа и последующего реагирования на потенциальные угрозы. В сообщениях передаются данные по тем же типам и категориям событий, которые регистрируются в журнале событий безопасности. Также передача данных о событиях мониторинга узлов кластера осуществляется путем интеграции с SIEM-системами и связывания с ними групп агентов.

Сообщение в SIEM-систему передается в формате

, например:

CEF:0|Kaspersky|Kaspersky Container Security|2.0|PM-002|Process management|7|dpid=1846367 spid=1845879 flexString2=0ce05246346b6687cb754cf716c57f20f226e159397e8e5985e55b448cb92e3f flexString2Label=Container ID cs6=alpine cs6Label=Container name outcome=Success

Передаваемое сообщение состоит из следующих компонентов:

  • Заголовок , в котором указывается дата, время и имя хост-узла.
  • Префикс и номер версии CEF.
  • Поставщик устройства.
  • Название решения.
  • Версия решения.
  • Генерируемый решением уникальный код типа события.
  • Описание события.
  • Оценка критичности события.
  • Дополнительная информация, которая может включать в себя IP-адрес устройства, причину возникновения события, а также результат или статус события.

Более подробная информация о компонентах представлена в таблице сопоставления значений CEF-сообщения.

В этом разделе справки

Сопоставление полей в CEF-сообщении

Создание интеграции с SIEM-системой

Связывание групп агентов с SIEM-системой

Просмотр и изменение параметров интеграции с SIEM-системой

Удаление интеграции с SIEM-системой

В начало
[Topic 293678]

Сопоставление полей в CEF-сообщении

CEF-сообщения передаются на английском языке.

В таблице ниже перечислены основные компоненты заголовка и тела CEF-сообщения, которое передает Kaspersky Security для контейнеров.

Компоненты и значения компонентов CEF-сообщения

Компонент

Значение

Пример

Стандартный заголовок CEF-сообщения (англ. syslog header)

Заголовок передается в следующем виде: <дата> <время> <имя хост-сервера>.

Feb 18 10:07:28 host

Префикс и версия формата CEF

<CEF>:<версия>

CEF:0

Идентификатор события

Производитель решения (англ. Device Vendor)

Название решения (англ. Device Product)

Версия решения (англ. Device Version)

Kaspersky

Kaspersky Container Security

2.0

Уникальный идентификатор типа события (англ. Signature ID)

Kaspersky Security для контейнеров передает следующие идентификаторы типов события:

  • ADM-ХХХ – событие администрирования.
  • CVE-ХХХ – принятие риска в отношении уязвимости или истечение срока действия принятия такого риска.
  • MLW-ХХХ – принятие риска в отношении вредоносного ПО или истечение срока действия принятия такого риска.
  • NCMP-001 – несоответствие образа требованиям.
  • CMP-001 – соответствие образа требованиям.
  • SD-ХХХ – принятие риска в отношении конфиденциальных данных или истечение срока действия принятия такого риска.
  • MS-ХХХ – принятие риска в отношении ошибок конфигурации или истечение срока действия принятия такого риска.
  • CI-ХХХ – событие в процессе CI/CD.
  • PLC-ХХХ – событие при применении политики безопасности.
  • BNCH-ХХХ – событие при проверке кластера и узлов.
  • AG-ХХХ – событие, связанное с агентом.
  • SJ-ХХХ – событие при работе сканера.
  • RT-ХХХ – событие при проверке на соответствие лучшим практикам.
  • API-ХХХ – запрос к API-серверу.
  • PM-ХХХ – событие при реализации процессов.
  • FM-ХХХ – событие доступа к объектам файловой системы контейнера.
  • NT-ХХХ – сетевое соединение.
  • FPM-XXX – событие нарушения политики среды выполнения при реализации процесса.
  • FNT-XXX – событие нарушения политики среды выполнения сетевого соединения.
  • FFM-XXX – событие нарушения политики среды выполнения доступа к объектам файловой системы контейнера.
  • FFTP-XXX – событие нарушения политики среды выполнения в рамках компонента Защита от файловых угроз.

Некоторые из передаваемых решением идентификаторов типов событий:

  • ADM-001: User 1 added user 2 (Пользователь 1 добавил пользователя 2).
  • CVE-001: User 1 accepted risk for image XXX (Пользователь 1 принял риск в отношении образа ХХХ).
  • AG-002: Agent XXX is disconnected (Агент ХХХ отключен).
  • BNCH-003: YYY was passed while scanning XXX (Проверка YYY успешно пройдена при сканировании кластера ХХХ).
  • PLC-001: YYY was applied to image XXX (Политика YYY применена к образу ХХХ).
  • NCMP-001: Image XXX was marked as non-compliant (Образ ХХХ признан несоответствующим требованиям).
  • SD-008: XXX risk acceptance expires (Срок действия для принятия риска ХХХ истекает).

Описание события (англ. Name)

Передаваемое описание должно быть понятным пользователю и соотноситься с идентификатором типа события. Например, ADM – администрирование или PM – управление процессом.

Некоторые из передаваемых решением описаний событий:

  • Process management
  • File management
  • Networking

Критичность (важность) события (англ. Severity)

Критичность события определяется по шкале от 0 до 10 следующим образом:

  • 0-3 – низкий уровень.
  • 4-6 – средний уровень.
  • 7-8 – высокий уровень.
  • 9–10 – очень высокий уровень.

Критичность события оценивается в зависимости от типа события и статуса выполнения (Успешно или Ошибка).

Критичность оценивается, например, следующим образом:

  • Для событий PM (Process management) и NT (Networking):
    • Если статус события Audited или Blocked, критичность 7.
    • Если у события другой статус, критичность 3.
  • Для событий AG (Agents):
    • Если событие выполнено успешно, критичность 5.
    • Если событие выполнено с ошибкой, критичность 10.
  • Для событий API:
    • Если событие выполнено успешно, критичность 3.
    • Если событие выполнено с ошибкой, критичность 8.

Дополнительная информация о событии (англ. Extension)

Дополнительная информация может включать в себя один или несколько наборов пар "ключ – значение".

Информация о наборах пар "ключ – значение", которые передает Kaspersky Security для контейнеров, представлена по ссылке ниже.

Дополнительная информация о событии, которую передает Kaspersky Security для контейнеров

Ключ

Значение

Использование

source

Домен (имя пода) источника события (англ. Source name).

Во всех событиях

src

Один из следующих IP-адресов в сети IPv4 (англ. Source IP):

  • для сетевого трафика – IP-адрес источника соединения;
  • для событий администрирования – IP-адрес инициатора действия.

Во всех событиях

reason

Описание причины статуса выполнения Ошибка (англ. Reason)

Во всех событиях со статусом выполнения Ошибка, кроме PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

fname

Имя образа (артефакта) (англ. Artifact name)

CI-ХХХ, SJ-ХХХ, ADM-ХХХ, CVE-ХХХ, MLW-ХХХ, SD-ХХХ, MS-ХХХ, CMP-001, PLC-ХХХ, NCMP-001

suser

Имя пользователя, который инициировал действие (англ. Username)

Во всех событиях кроме PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

dpid

Идентификатор процесса (англ. PID)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

spid

Идентификатор родительского процесса (англ. PPID)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

flexString1

Действующий идентификатор группы (англ. EGID)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

flexString2

Идентификатор контейнера (англ. Container ID)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

outcome

Статус или режим выполнения (англ. Status). Значение определяется следующим образом:

  • Для событий среды выполнения (PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX) указывается значение режима выполнения (Аудит, Блокирование или Другое).
  • Для остальных событий указывается статус выполнения (Успешно или Ошибка). При статусе выполнения Ошибка решение также передает текст ошибки или код ошибки (reason).

Во всех событиях

request

Имя образа (англ. Image name)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

fileHash

Хеш образа (англ. Image digest)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

act

Один из следующих типов операции (англ. Operation):

  • для файловых операций – тип операции (open, close, read, write, create, delete, chmod, chown, rename);
  • для сетевого трафика – направление и тип трафика (egress, ingress, egress_response, ingress_response);
  • для процессов – значение exec;
  • для операций компонента Защита от файловых угроз – значение ftp.

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

spt

Порт источника соединения (англ. Source port)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

dst

IP-адрес точки назначения соединения в сети IPv4 (англ. Destination IP)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

dpt

Порт точки назначения соединения (англ. Destination port)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

dproc

Название процесса (команда) (англ. Process name)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

duid

Действующий идентификатор пользователя (англ. EUID)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

filePermission

Права доступа к файлу (англ. mode_t mode)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

oldFilePath

Ранее использованный путь к файлу (англ. Old File Path)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

filePath

Путь к файлу (англ. Path)

Для событий доступа к объектам файловой системы контейнера filePath используется для передачи информации о новом пути к файлу (англ. New File Path).

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

deviceDirection

Тип соединения (англ. Traffic type)

Для входящих соединений указывается 0, для исходящих соединений – 1.

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

cn1

Новый идентификатор процесса (англ. New PID)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

cs1

Имя кластера (англ. Cluster name)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

cs2

Имя узла (англ. Node name)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

cs3

Название пространства имен (англ. Namespace name)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

cs4

Выполняемая команда (англ. Command)

Для событий доступа к объектам файловой системы контейнера cs4 используется для передачи информации о новом владельце (англ. NewOwner).

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

cs5

Имя пода (англ. Pod name)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

cs6

Имя контейнера (англ. Container name)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

cs7

IP адрес узла (англ. Node IP)

PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

В начало
[Topic 293652]

Создание интеграции с SIEM-системой

Чтобы создать интеграцию с SIEM-системой:

  1. В разделе Администрирование → Интеграции → SIEM-системы нажмите на кнопку Добавить SIEM-систему.

    Откроется боковая панель для ввода параметров SIEM-системы.

  2. На вкладке Общая информация укажите следующие обязательные параметры:
    • Название подключаемой SIEM-системы.
    • Протокол, по которому осуществляется подключение к SIEM-системе. По умолчанию выбрано TCP.
    • Адрес сервера SIEM-системы в одном из следующих форматов:
      • IPv4.
      • IPv6.
      • FQDN.
    • Порт, через который осуществляется подключение к SIEM-системе. Значение порта можно указать в диапазоне от 1 до 65535. По умолчанию установлено значение 514.
    • Категории событий, сообщения о которых будут экспортироваться в SIEM-систему. Для этого установите флажки рядом с одной или несколькими категориями событий из следующего списка:
      • Администрирование.
      • Обнаружение.
      • CI/CD.
      • Политики.
      • Ресурсы.
      • Сканеры.
      • Контроллер доступа.
      • События контейнеров.
      • API.

        Для просмотра событий в категориях Ресурсы, Сканеры, Контроллер доступа и События контейнеров требуется расширенная лицензия.

      По умолчанию выбраны все категории событий.

      Сообщения о выбранных категориях событий отправляются в указанную SIEM-систему вне зависимости от ее привязки к группам агентов.

  3. На вкладке События для групп агентов установите флажки рядом с одним или несколькими типами событий в рамках мониторинга состояния узлов в среде выполнения.

    Объем журнала передаваемых сообщений о событиях в среде выполнения может быть очень большим и может повлиять на имеющееся свободное дисковое пространство и сетевую нагрузку.

  4. Если вы хотите проверить корректность введенных параметров интеграции с SIEM-системой, нажмите на кнопку Проверить соединение.

    Решение проверяет соединение с SIEM-системой, если выбран протокол соединения TCP. Если выбран протокол соединения UDP, кнопка Проверить соединение неактивна.

  5. Нажмите на кнопку Сохранить.

В начало
[Topic 282786]

Связывание групп агентов с SIEM-системой

Связывание групп агентов с SIEM-системами осуществляется при создании групп агентов или изменении их параметров в разделе Компоненты → Агенты.

Для связывания группы агентов в Kaspersky Security для контейнеров необходимо иметь права на управление группами агентов, а также создать и настроить хотя бы одну интеграцию с SIEM-системой.

В начало
[Topic 283037]

Просмотр и изменение параметров интеграции с SIEM-системой

Чтобы просмотреть интеграцию с SIEM-системой:

  1. Откройте список интеграций с SIEM-системами в разделе Администрирование → Интеграции → SIEM-системы.
  2. Нажмите на название интеграции в списке интеграций.

Чтобы изменить параметры интеграции с SIEM-системой:

  1. В разделе Администрирование → Интеграции → SIEM-системы нажмите на название интеграции в списке интеграций.
  2. В открывшейся боковой панели при необходимости измените параметры интеграции следующим образом:
    1. На вкладке Общая информация измените следующие обязательные параметры:
      • Название SIEM-системы.
      • Протокол подключения к SIEM-системе.
      • Адрес сервера SIEM-системы.
      • Порт для подключения к SIEM-системе.
      • Категории экспортируемых событий.
    2. На вкладке События для групп агентов при необходимости измените список выбранных типов событий мониторинга сетевых узлов в среде выполнения.
  3. Если используется протокол соединения TCP, нажмите на кнопку Проверить соединение, чтобы посмотреть, устанавливается ли соединение с SIEM-системой.
  4. Нажмите Сохранить.
В начало
[Topic 283085]

Удаление интеграции с SIEM-системой

Чтобы удалить интеграцию с SIEM-системой:

  1. Откройте список настроенных интеграций с SIEM-системами в разделе АдминистрированиеИнтеграцииSIEM-системы.
  2. Выберите интеграцию, которую хотите удалить, установив флажок в строке с названием интеграции.
  3. Нажмите на кнопку Удалить, которая расположена над таблицей.

    Кнопка Удалить становится активной после выбора одной или нескольких интеграций.

  4. Подтвердите удаление в открывшемся окне.

В начало
[Topic 283084]

Интеграция с хранилищем HashiCorp Vault

Kaspersky Security для контейнеров обеспечивает возможность безопасной передачи паролей, токенов и секретов с помощью внешнего хранилища HashiCorp Vault. Решение генерирует аннотации подам, по которым инжектор Vault при старте пода монтирует необходимые секреты из хранилища.

Kaspersky Security для контейнеров поддерживает возможность интеграции с внешним хранилищем секретов Hashicorp Vault версии 1.7 или выше.

В версии 2.0 Kaspersky Security для контейнеров работа с внешним хранилищем HashiCorp Vault осуществляется только в режиме sidecar с использованием sidecar-контейнеров, при этом поддерживается только метод аутентификации Kubernetes.

Если учетные записи служб для работы подов не были определены и используются учетные записи служб, установленные по умолчанию, мы рекомендуем выполнять критичное требование по обеспечению безопасности и не назначать выделенные для работы хранилища роли таким учетным записям служб.

Значения параметров HashiCorp Vault указываются в конфигурационном файле values.yaml и разворачиваются при запуске пакета Helm Chart.

Параметры использования HashiCorp Vault в конфигурационном файле values.yaml настраиваются следующим образом:

  • Если в блоке vault параметр enabled имеет значение false, интеграция с хранилищем не используется.
  • Если в блоке vault параметр enabled имеет значение true, интеграция с хранилищем задействована, и для решения приоритетными становятся значения переменных в блоке параметров vault.

В блоке параметров vault содержатся следующие разделы:

  • secret – используется для указания секретов и учетных идентификационных данных.
  • certificate – предназначен для указания сертификатов и ключей к сертификатам.

В разделе secret приводятся пути к файлам, где содержатся секреты для следующих параметров:

  • Секреты прокси-серверов для запросов во внешнюю информационную среду.
  • Учетные данные для базы данных PostgreSQL.
  • Учетные данные для s3-совместимого файлового хранилища для хранения файлов, которые формируются в результате работы решения.
  • Учетные данные для системы управления базами данных ClickHouse.

Секреты указываются в следующем формате key:value

где:

  • <key> - имя переменной окружения;
  • <value> - полный путь до секрета в хранилище секретов, после которого через знак @ указывается имя ключа секрета, создаваемого в хранилище.

Например: POSTGRES_USER: kv/secret/kcs/psql@POSTGRES_USER

В разделе vault.certificate для получения сертификатов в значении полей необходимо указать следующее:

  • Для получения CA-сертификата параметру ca указывается значение true. При этом путь доступа к сертификату формируется на основе стандартного пути обращения cert/ca на основе имени в инфраструктуре открытых ключей (англ. Public Key Infrastructure, PKI). Если СА-сертификат не является корневым, с помощью параметра caList необходимо указать в виде списка все сертификаты, включая корневой сертификат. Например,

    cert-ca:

    ca: true

    tls.crt: pki_kcs/cert/ca

    caList:

    - pki/cert/ca

  • Для генерирования сертификатов и ключей нужно указать путь из имени PKI со стандартным путем обращения issue и именем созданной роли. В сертификат автоматически добавятся общее имя (cn) и все возможные альтернативные имена (altname). При необходимости, значения cn, altname и ipsans можно указать вручную как показано ниже для внешней базы данных:

    cert-pguser:

    cn: pguser

    altname: pguser,pguser.psql,pguser.psql.svc,pguser.psql.svc.cluster.local,localhost

    ipsans: 0.0.0.0,127.0.0.1

  • Для определения времени жизни сертификатов необходимо указать значение параметра ttl. По умолчанию установлено значение 8760 часов.

    Значение параметра не может быть больше значения, установленного в PKI HashiCorp Vault.

В разделе certificate также приводятся пути к файлам, где содержатся следующие сертификаты и ключи:

  • СА-сертификат и сертификат клиента для внешней базы данных PostgreSQL.
  • Сертификаты, необходимые для работы компонентов решения:
    • СА-сертификат и ключ к СА-сертификату для обеспечения работы контроллера доступа.
    • Сертификат и ключ к сертификату для функционирования модуля лицензирования Kaspersky Security для контейнеров.
    • Сертификат и ключ к сертификату для работы модуля основной бизнес-логики решения.
    • Сертификат и ключ к сертификату для платформы удаленного вызова процедур (GRPC).
    • Сертификат и ключ к сертификату для функционирования сканер-сервера.
    • Сертификат и ключ к сертификату для API сканер-сервера.
    • Сертификат и ключ к сертификату для работы файл-сервера обновлений для закрытых контуров.
    • Сертификат и ключ к сертификату для s3-совместимого файлового хранилища.
    • Сертификат и ключ к сертификату для брокера событий.
    • Сертификат и ключ к сертификату для брокера агентов.
    • Сертификат и ключ к сертификату для системы управления базами данных ClickHouse.

В этом разделе справки

Конфигурационные параметры хранилища HashiCorp Vault

Ограничения при работе с хранилищем

В начало
[Topic 294179]

Конфигурационные параметры хранилища HashiCorp Vault

Для работы Kaspersky Security для контейнеров с внешним хранилищем HashiCorp Vault в конфигурационном файле values.yaml необходимо указать значения следующих конфигурационных параметров:

  • enabled – флаг включения интеграции с хранилищем. Значение переменной vault.enabled = true указывает на то, что интеграция с HashiCorp Vault осуществлена, значения переменных окружения получаются из хранилища. По умолчанию указано значение false.
  • mountPath – путь монтирования секретов из хранилища Vault в под. По умолчанию указано значение /vault/secrets.
  • role – роль, под которой будет осуществляться аутентификация в хранилище.

    При создании роли в Vault требуется указать для нее все имеющиеся значения из раздела serviceAccount в файле values.yaml.

  • agentInitFirst – переменная для определения очереди инициализации init-контейнера. Значение переменной true указывает на то, что под сначала выполняет инициализацию init-контейнера Vault. Это значение необходимо задать, когда другим контейнерам инициализации нужны для работы предварительно загруженные секреты. Если установлено значение false, порядок инициализации контейнеров определяется случайным образом. По умолчанию указано значение true.
  • agentPrePopulate – переменная включения init-контейнера для предварительного заполнения общей памяти секретами перед запуском контейнеров. По умолчанию указано значение true.
  • agentPrePopulateOnly – переменная, которая указывает, будет ли init-контейнер единственным внедренным в под контейнером. Если задано значение true, sidecar-контейнер не добавляется при выполнении пода. По умолчанию установлено значение false.
  • preserveSecretCase – переменная сохранения регистра в именах секретов при создании файлов секретов. По умолчанию установлено значение true.
  • agentInjectPerms – переменная, определяющая права доступа к монтируемому файлу с секретами из хранилища. По умолчанию указано значение 0440 (владелец и группа имеют право на чтение).
  • annotations – инструкции по конфигурации правильной работы sidecar-контейнера. Вы можете добавить инструкции в блок vault для использования всеми компонентами Helm Chart или указать их в разделе Architecture отдельно для каждого компонента, например:

    kcs-middleware:

    enabled: true

    appType: deployment

    annotations:

    vault.hashicorp.com/agent-limits-cpu: 200m

В начало
[Topic 290082]

Ограничения при работе с хранилищем

При работе Kaspersky Security для контейнеров с внешним хранилищем HashiCorp Vault имеется ряд некритичных ограничений:

  • Интеграция с HashiCorp Vault работает только с KV1/KV2-хранилищами и элементами Secrets Engine для ротации PKI-сертификатов.
  • Решение не поддерживает работу с внешними элементами Secrets Engine, кроме PKI Secrets.
  • Kaspersky Security для контейнеров не поддерживает динамическую обработку секретов. Для получения обновленного секрета необходимо повторно запустить решение.
  • Если используется интеграция с Vault, в разделе vault можно указать учетные идентификационные данные только для внешней базы данных PostgreSQL. Для использования внутренней базы данных PostgreSQL эти данные должны оставаться закомментированными.
В начало
[Topic 290094]