Содержание
- Интеграция со сторонними ресурсами
- Настройка интеграции с внешними реестрами образов
- Минимально достаточные права для интеграции с реестрами
- Работа с публичными реестрами образов без авторизации
- Создание интеграции с внешним реестром образов
- Просмотр информации об интеграциях с реестрами
- Удаление интеграции с внешним реестром
- Интеграция с Harbor
- Создание интеграции по запросу Harbor
- Просмотр и изменение параметров Harbor External Integration
- Повторное сканирование
- Интеграция с CI/CD
- Проверка артефактов в процессах CI/CD
- Настройка интеграции с GitLab CI/CD
- Настройка интеграции с Jenkins CI/CD
- Настройка интеграции с TeamCity CI/CD
- Определение пути до образов контейнеров
- Контроль целостности и происхождения образов
- Запуск сканера в режиме SBOM
- Запуск сканера в режиме lite SBOM
- Получение результатов сканирования в форматах .JSON и .HTML
- Указание секретов при запуске сканирования
- Настройка интеграции с модулями проверки подписей образов
- Настройка интеграции со средствами уведомления
- Настройка интеграции с LDAP-сервером
- Настройка интеграции с SIEM-системами
- Интеграция с хранилищем HashiCorp Vault
- Настройка интеграции с внешними реестрами образов
Интеграция со сторонними ресурсами
Для выявления проблем безопасности и обеспечения защиты контейнеризированных приложений Kaspersky Security для контейнеров осуществляет интеграции со следующими сторонними ресурсами:
- Внешние реестры образов. Решение позволяет проводить сканирование образов контейнеров и IaC, размещенных на платформах управления и хранения репозиториев, в том числе в рамках процесса CI/CD, на уязвимости, вредоносное ПО, ошибки конфигурации и наличие конфиденциальных данных.
- Модули проверки подписей образов. Kaspersky Security для контейнеров может осуществлять проверку подлинности и действительности цифровых подписей образов с помощью внешнего приложения для подписи.
- Средства уведомления. При реализации политик реагирования решение может уведомлять пользователей о событиях безопасности с помощью сообщений, направленных по электронной почте или Telegram.
- Внешние службы каталогов по протоколу LDAP. При определении ролей пользователей и областей применения решение позволяет настраивать учетные записи пользователей с учетом данных из внешней службы каталогов и соотносить роли пользователей с группами пользователей из Active Directory.
- SIEM-системы. Решение позволяет подключаться к системам управления событиями и информацией о безопасности, чтобы отправлять сообщения о событиях для их анализа и последующего реагирования на потенциальные угрозы.
- Внешнее хранилище HashiCorp Vault. Решение обеспечивает возможность безопасного хранения и использования паролей, токенов и секретов с помощью хранилища HashiCorp Vault.
Настройка интеграции с внешними реестрами образов
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 для контейнеров, могут сканироваться автоматически или вручную, в зависимости от настроенных параметров выгрузки и сканирования образов для каждого реестра.
Минимально достаточные права для интеграции с реестрами
Для осуществления интеграции с внешними реестрами образов учетной записи 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
. - Права, назначенные роли пользователя в проекте или группе: права на просмотр и чтение.
Работа с публичными реестрами образов без авторизации
В версии 2.0 Kaspersky Security для контейнеров не работает с публичными реестрами образов без авторизации. Например, вы не можете осуществлять проверку образов с помощью решения при анонимном доступе в Docker Hub.
Без процедуры авторизации в публичных реестрах образов вы можете использовать такие реестры образов в кластере, добавлять в Kaspersky Security для контейнеров и вручную назначать определенной области применения. Если область применения включает в себя только один или несколько публичных реестров, в которых вы не авторизованы, и вы попытаетесь добавить образ в разделе Ресурсы → Реестры, решение отображает ошибку о невозможности добавления образов в связи с отсутствием интеграции с реестрами образов.
В началоСоздание интеграции с внешним реестром образов
Интегрируемые реестры поддерживают только локальные репозитории образов, непосредственно содержащие в себе образы. В версии 2.0 Kaspersky Security для контейнеров не осуществляет поддержку работы с удаленными и виртуальными репозиториями.
Чтобы создать интеграцию с внешним реестром:
- В разделе Администрирование → Интеграции → Реестры образов нажмите на кнопку Добавить реестр.
Откроется окно ввода параметров интеграции.
- На вкладке Параметры реестра укажите параметры подключения к реестру:
- Введите название реестра.
- Если требуется, введите описание реестра.
- Выберите тип реестра из раскрывающегося списка поддерживаемых типов. Решение поддерживает следующие типы реестров:
- 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) не поддерживаются.
- Если вы настраиваете интеграцию с реестром типа JFrog Artifactory, для доступа к Docker Hub из раскрывающегося списка Метод Repository Path выберите один из следующих методов:
- Repository path.
- Поддомен.
- Порт.
- Если вы настраиваете интеграцию с реестром Sonatype Nexus Repository OSS, выберите режим выгрузки: Образы с тегами или Все образы. Если выбран режим Все образы, решение выгружает все образы реестра вне зависимости от наличия у них тегов. Образы без тегов отображаются по имени хеша сборки.
- Если вы настраиваете интеграцию с реестром типа 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) на узлах, где установлен сервер и сканер.
- Если вы настраиваете интеграцию с реестром типа JFrog Artifactory, Harbor, GitLab Registry, Sonatype Nexus Repository OSS и Red Hat Quay, введите полный веб-адрес (URL), который указывает на API реестра.
- Выберите метод аутентификации и укажите для него необходимые данные следующим образом:
- Если вы настраиваете интеграцию с реестром типа 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.
- Перейдите на вкладку Кеширование репозиториев и с помощью переключателя Выключено / Включено при необходимости включите кеширование репозиториев. Если кеширование выключено, репозитории и образы в разделе Реестры отображаются только при использовании поля Поиск. Если кеширование включено, решение отображает доступный список репозиториев и образов. По умолчанию кеширование репозиториев выключено.
При включенном кешировании репозиториев эффективность работы Kaspersky Security для контейнеров может быть снижена.
- Перейдите на вкладку Параметры сканирования образов и укажите следующие параметры сканирования образов:
- Максимальное время сканирования образов из этого реестра в минутах. По умолчанию установлено значение 60 минут.
Если сканирование образа продолжается дольше установленного времени, сканирование прекращается, и образ вновь помещается в очередь на сканирование. Решение будет отправлять этот образ на повторное сканирование максимум 3 раза. Соответственно, время сканирования образа из реестра может быть превышено в 3 раза.
Параметры выгрузки и сканирования образов для реестра. По умолчанию в блоке Выгрузка и сканирование образов выбран вариант Вручную: образы автоматически не выгружаются из реестра, но пользователь может вручную добавлять образы в список образов, подлежащих сканированию. Новые образы автоматически ставятся в очередь на сканирование.
Если вы хотите, чтобы образы выгружались из реестра и ставились в очередь на сканирование автоматически, в блоке Выгрузка и сканирование образов выберите вариант Автоматически и настройте параметры выгрузки и сканирования образов. Для настройки доступны следующие параметры:
- Интервал сканирования (дн.) – периодичность выгрузки образов из реестра для сканирования в днях. По умолчанию установлено значение 1 день.
- Время сканирования (по Гринвичу) – время осуществления сканирования образов из реестра.
- При необходимости установите флажок для повторного сканирования ранее выгруженных образов при каждом сканировании новых образов.
- При необходимости в блоке Расширенные настройки установите флажок Шаблоны имени/тега, чтобы с помощью шаблонов имен и/или тегов образов указать, какие образы нужно выгружать и сканировать. Если флажок установлен, Kaspersky Security для контейнеров будет выгружать для сканирования только те образы, которые соответствуют заданным шаблонам.
Вы можете использовать шаблоны следующих форматов:
- шаблон по имени и тегу образа – <имя><:тег>;
- шаблон только по имени образа – <имя>;
- шаблон только по тегу образа – <:тег>.
Например:
- по шаблону
alpine
будут выгружаться все образы с именем alpine, независимо от тега; - по шаблону
:4
будут выгружаться все образы с тегом 4, независимо от имени образа; - по шаблону
alpine:4
будут выгружаться все образы, с именем alpine и с тегом 4.
При формировании шаблонов вы можете использовать символ *, который заменяет любое количество символов.
Вы можете добавить один или несколько шаблонов.
- Выберите один из вариантов дополнительных условий для выгрузки образов:
- Если дополнительные условия не требуются, выберите вариант Без дополнительных условий.
- Если необходимо выгружать только образы, созданные за определенный период, выберите этот вариант и в полях справа укажите длительность периода и единицу измерения. По умолчанию установлено 60 дней.
- Если требуется выгружать только образы с последними тегами, считая от даты создания образа, выберите этот вариант и в поле справа укажите, сколько последних тегов из каждого репозитория требуется учитывать.
- При необходимости в блоке Исключения с помощью установки флажков определите исключения для выгрузки образов:
- Никогда не выгружать образы с шаблоном имени/тега – вы можете указать с помощью шаблонов имен и/или тегов образов, какие образы исключаются из выгрузки и сканирования.
- Всегда выгружать образы с шаблоном имени/тега – вы можете указать с помощью шаблонов имен и/или тегов образов, какие образы всегда выгружаются и сканируются, независимо от других условий, заданных выше.
- Максимальное время сканирования образов из этого реестра в минутах. По умолчанию установлено значение 60 минут.
- Нажмите на кнопку Проверить соединение, чтобы посмотреть, устанавливается ли соединение с реестром.
- Нажмите на кнопку Сохранить в верхней части окна, чтобы сохранить параметры интеграции с реестром.
Пример параметров интеграции с реестром Red Hat Quay
В началоПросмотр информации об интеграциях с реестрами
В разделе Администрирование → Интеграции → Реестры образов отображается таблица со списком всех реестров, интегрированных с Kaspersky Security для контейнеров.
В таблице отображаются следующие данные об интегрированных реестрах:
- Название интеграции с реестром образов.
- Описание, если оно указывалось при создании интеграции с реестром образов.
- Тип подключенного реестра.
- Веб-адрес реестра.
- Статус последнего соединения с реестром образов – Успешно или Ошибка. Если указывается Ошибка, решение также отображает краткое описание ошибки при соединении.
В таблице вы можете выполнять следующие действия:
- Добавлять новые интеграции с реестрами. Окно ввода параметров интеграции открывается с помощью кнопки Добавить реестр над таблицей.
- Просматривать и изменять параметры интеграции с реестром, в том числе параметры выгрузки и сканирования образов. Окно редактирования открывается по ссылке на названии реестра.
В этом окне с помощью кнопки Проверить соединение вы также можете посмотреть, устанавливается ли соединение с реестром.
- Удалять интеграции с реестром.
Удаление интеграции с внешним реестром
Чтобы удалить интеграцию с внешним реестром:
- В разделе Администрирование → Интеграции → Реестры образов выберите интеграцию для удаления, установив флажок в строке с названием реестра. Вы можете выбрать одну или несколько интеграций.
- Нажмите на кнопку Удалить, которая расположена над таблицей.
Кнопка Удалить становится активной после выбора одной или нескольких интеграций.
- Подтвердите удаление в открывшемся окне.
Kaspersky Security для контейнеров не сканирует образы из реестра, интеграция с которым удалена.
В началоИнтеграция с Harbor
Интеграция Kaspersky Security для контейнеров с внешним реестром Harbor осуществляется двумя способами:
Harbor рассматривает решение как дополнительный внешний сканер для проверки объектов на наличие в них уязвимостей. Интеграция с Kaspersky Security для контейнеров настраивается с помощью плагина интеграции со сканером для Harbor (Harbor scanner plugin). Решение присваивает такому автоматически созданному реестру образов название Harbor External Integration и отмечает репозиторий, в котором он находится, значком Harbor ().
Такая интеграция остается единственной автоматически созданной интеграцией с Harbor, а присвоенное реестру образов название невозможно изменить.
Для запуска процесса сканирования Harbor необходимо знать конечную точку API-интерфейса Kaspersky Security для контейнеров.
Для создания интеграции по запросу Harbor требуются права на просмотр и настройку сканирования в CI/CD. Если такие права отсутствуют, Harbor не сможет подключить решение в качестве сканера и проводить проверку объектов в рамках процесса CI/CD.
В началоСоздание интеграции по запросу Harbor
Для создания интеграции с реестром по запросу Harbor необходимо иметь учетную запись Harbor с правами администратора, а также права на просмотр и настройку сканирования в CI/CD в Kaspersky Security для контейнеров. Если такие права отсутствуют, Harbor не сможет подключить решение в качестве сканера.
Чтобы создать интеграцию с Harbor по запросу Harbor:
- В главном меню в левой панели в веб-интерфейсе Harbor выберите Administration → Interrogation Services.
- Нажмите на кнопку New Scanner.
- Введите следующую информацию:
- Уникальное имя интеграции с решением для отображения в интерфейсе Harbor.
- При необходимости, описание добавляемого внешнего сканера.
- Адрес конечной точки API-интерфейса Kaspersky Security для контейнеров, который показывается Harbor.
- В раскрывающемся списке Authorization выберите APIKey как способ авторизации при подключении реестра к решению.
- В поле APIKey введите значение токена API.
Если токен API меняется, необходимо указать его новое значение до запуска сканирования Harbor. Если новый токен API не будет добавлен в параметры внешнего сканера в Harbor, сканирование завершится с ошибкой.
- Установите флажок Skip certificate verification, чтобы пропустить проверку сертификата.
- При необходимости нажмите Test Connection, чтобы проверить, что Harbor может подключиться к решению.
- Нажмите Add, чтобы создать интеграцию.
В списке доступных сканеров в разделе Administration → Interrogation Services → Scanners Harbor отображается имя, присвоенное решению в Harbor.
Новый сканер используется для сканирования объектов, если в Harbor он указан как сканер по умолчанию или назначен проекту. Оба варианта требуют дополнительной настройки в Harbor.
После запуска сканирования во внешнем реестре создается интеграция с решением по запросу Harbor. Kaspersky Security для контейнеров отображает созданный реестр Harbor External Integration в списке реестров образов в разделе Администрирование → Интеграции → Реестры образов. Репозиторий, в котором находятся образы из внешнего реестра, отмечен значком Harbor (). Harbor External Integration обновляется после запуска и проведения другого сканирования во внешнем реестре.
В автоматически созданный реестр образов из Harbor невозможно добавить образ с помощью кнопки Добавить образы в консоли управления.
Сканирование Harbor External Integration может инициироваться вручную или запускаться автоматически из внешнего реестра. Вы не можете запустить сканирование или повторное сканирование образов из автоматически созданного реестра образов из Harbor в Kaspersky Security для контейнеров.
Сканирование реестра Harbor External Integration (как и реестра, созданного в рамках стандартной интеграции с Harbor) осуществляется на основе параметров соответствующей политики сканирования.
По окончанию сканирования решение формирует отчет по уязвимостям, найденным при проверке выбранных объектов, и отправляет его в Harbor. Если отправка отчета занимает более пяти секунд (например, из-за качества сетевого подключения), в интерфейсе внешнего реестра отображается ошибка получения результатов сканирования.
В началоПросмотр и изменение параметров Harbor External Integration
Реестр образов Harbor External Integration отображается в списке реестров, интегрированных с Kaspersky Security для контейнеров, в разделе Администрирование → Интеграции → Реестры образов.
Чтобы изменить параметры Harbor External Integration:
- Выберите реестр Harbor External Integration в списке реестров образов в разделе Администрирование → Интеграции → Реестры образов.
- Укажите значения следующих доступных для изменения параметров:
- Описание на вкладке Параметры реестра.
- Максимальное время сканирования на вкладке Параметры сканирования образов.
Вы не можете изменять другие параметры реестра Harbor External Integration.
- Нажмите Сохранить.
Повторное сканирование
После получения результатов сканирования объекты из реестра Harbor External Integration невозможно отправить на повторное сканирование из Kaspersky Security для контейнеров. Повторное сканирование можно инициировать только из Harbor.
Если вы создаете интеграцию с Harbor из Kaspersky Security для контейнеров и созданный реестр образов аналогичен Harbor External Integration, к повторному сканированию применяются следующие правила:
- Сканирование объектов в созданном в решении реестре не запускает повторное сканирование в Harbor External Integration.
- Сканирование объектов в Harbor External Integration не запускает повторное сканирование в созданном в решении реестре.
Интеграция с 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
С помощью решения вы можете сканировать образы, которые используются в процессах CI/CD. Для проверки образов из CI/CD вам требуется настроить интеграцию решения с процессами CI/CD.
Между средой CI/CD и решением должна быть обеспечена безопасность передачи данных от прослушивания и перехвата сетевого трафика.
Чтобы выполнять проверку образов или репозиториев (для сканирования конфигурационных файлов), используемых в процессе CI/CD, вам нужно добавить в пайплайн CI/CD отдельный этап, на котором запускается сканер Kaspersky Security для контейнеров.
Для проведения сканирования образов из CI/CD в конфигурационном файле интеграции с репозиторием сканеру требуется указать переменные окружения API_BASE_URL
(веб-адрес хост-сервера API Kaspersky Security для контейнеров) и API_TOKEN
(токен для доступа к API Kaspersky Security для контейнеров). Также необходимо указать API_CA_CERT
(сертификат для проверки хост-сервера API решения) или SKIP_API_SERVER_VALIDATION=true
для пропуска такой проверки.
Результаты сканирования передаются на сервер и отображаются в консоли управления в разделе Ресурсы → CI/CD. В представленной таблице перечислены образы, для которых проводилась проверка, указываются результаты оценки риска и выявленные уязвимости.
По ссылке в названии образа вы можете открыть страницу, содержащую подробную информацию о результатах сканирования образа. Страница аналогична странице с результатами сканирования образов из реестров.
Kaspersky Security для контейнеров также отображает тип артефакта для каждого объекта. Используются два основных артефакта:
- Файловая система – это репозиторий с содержащимися в нем конфигурационными файлами.
- Образ контейнера – это шаблон, на основе которого реализуется контейнер в среде выполнения.
Для каждого объекта проверки можно указывать номер сборки (BUILD_NUMBER
) и
BUILD_PIPELINE
). С помощью этих параметров можно определить, на каком этапе в объекте произошел сбой.
Для образов из CI/CD недоступно повторное сканирование.
В Kaspersky Security для контейнеров осуществляются следующие виды сканирования в CI/CD:
- Сканирование образов из реестра образов. Решение осуществляет проверку после успешной сборки и сохранения образа в реестр образов.
- Сканирование образов, помещенных в архивы в формате TAR. Созданный TAR-архив сохраняется как артефакт сборки, который сканер решения проверяет в следующем пайплайне сборки.
- Сканирование Git-репозитория, которое может проводиться одним из следующих способов:
- по ветке (отдельному направлению разработки) проекта в Git-репозитории;
- по коммиту (снимку состояния или контрольной точке на временной шкале проекта).
Чтобы провести сканирование образа из реестра образов,
выполните команду запуска сканирования в следующем формате:
/scanner [TARGET] --stdout
где:
<TARGET> –
полный адрес образа в реестре;<--stdout> –
вывод данных в журнал событий безопасности.
Для доступа к реестру необходимо установить в переменных окружения логин COMPANY_EXT_REGISTRY_USERNAME
и пароль (токен) COMPANY_EXT_REGISTRY_PASSWORD
.
Для использования сертификата для безопасного подключения к реестру необходимо указать данные сертификата в переменной окружения COMPANY_EXT_REGISTRY_TLS_CERT
в виде следующей строки в формате .PEM: -----BEGIN CERTIFICATE-----\n... <
данные сертификата
> ...\n-----END CERTIFICATE-----
.
Примеры сканирования образов в GitLab CI/CD и Jenkins CI/CD.
Чтобы провести сканирование образа из TAR-архива:
- Соберите образ и сохраните его в виде TAR-архива с помощью любого приложения для создания контейнеризированных образов.
- Выполните команду запуска сканирования в следующем формате:
/scanner [TARGET] --file --stdout
где:
<TARGET>
– путь к файлу образа для сканирования;<--file> –
флаг, указывающий на сканирование файлаTARGET
;<--stdout> –
вывод данных в журнал событий безопасности.
Пример конфигурационного файла со значениями параметров для сканирования TAR-архива
Чтобы провести сканирование Git-репозитория:
- В конфигурационном файле Git-репозитория в переменных окружения укажите токен для доступа к репозиторию (
GITHUB_TOKEN
илиGITLAB_TOKEN
). - Выполните команду запуска сканирования в следующем формате:
/scanner [TARGET] --repo [--branch BRANCH] [--commit COMMIT] --stdout
где:
<TARGET> –
веб-адрес (URL) Git-репозитория;<--repo>
–
флаг, указывающий на сканирование файлаTARGET
;<--branch BRANCH>
–
ветка репозитория для сканирования;<--commit COMMIT>
–
хеш коммита для сканирования;<--stdout> –
вывод данных в журнал событий безопасности.
Пример конфигурационного файла с переменными окружения для сканирования образа из Git-репозитория
Для сканирования файловой системы
требуется использовать образ сканера с базой данных vX.X.X-with-db. Для проверки файлов IaC сканеру необходимо предоставить доступ к этим файлам внутри контейнера (например, с помощью монтирования тома с файлами или копирования файлов в файловую систему контейнера).Чтобы провести сканирование файловой системы,
выполните команду запуска сканирования в следующем формате:
/scanner [TARGET] --sources --stdout
где:
<TARGET>–
путь к папке с файлами для сканирования;<--sources>
–
флаг, указывающий на необходимость проверки файлов, расположенных в файловой системе;<--stdout> –
вывод данных в журнал событий безопасности.
Пример конфигурационного файла с переменными окружения для сканирования файлов в файловой системе
Результаты сканирования можно посмотреть в разделе Ресурсы → CI/CD, а также получить в форматах .SPDX, .JSON и .HTML.
В началоНастройка интеграции с GitLab CI/CD
В этом примере используется специальный образ сканера со встроенными базами данных уязвимостей, размещенный в реестре образов производителя решения.
Для использования возможности сканирования образов в процессе GitLab CI/CD вам нужно включить использование GitLab Container Registry.
Настройка интеграции состоит из следующих этапов:
- Авторизация GitLab CI/CD в реестре образов производителя Kaspersky Security для контейнеров.
- На рабочей станции оператора кластера подготовьте хеш по алгоритму Base64 от авторизационных данных, выполнив команду:
printf "login:password" | openssl base64 -A
где login и password – имя и пароль учетной записи в реестре образов производителя Kaspersky Security для контейнеров.
- В переменных окружения GitLab CI/CD создайте переменную DOCKER_AUTH_CONFIG (в GitLab репозитории выберите Settings -> CI/CD, нажмите на кнопку Expand, чтобы развернуть блок Variables, затем нажмите на кнопку Add variable).
- Укажите содержимое переменной в следующем виде:
{
"auths": {
"repo.cloud.example.com": {
"auth": "base64hash"
}
}
}
где base64hash – строка, полученная на этапе 1a.
- На рабочей станции оператора кластера подготовьте хеш по алгоритму Base64 от авторизационных данных, выполнив команду:
- Авторизация запросов из GitLab CI/CD при отправке данных в Kaspersky Security для контейнеров.
- Скопируйте токен API на странице Мой профиль.
- Укажите скопированное значение токена API в переменной API_TOKEN в конфигурационном файле .gitlab-ci.yml.
- Добавление этапа сканирования образов в процесс CI/CD.
Чтобы добавить этап сканирования в пайплайн CI/CD, необходимо добавить в файл .gitlab-ci.yml следующие строки:
- Добавьте информацию по образу сканера, содержащего базы уязвимостей и других вредоносных объектов, после этапа сборки кода в следующем виде:
scan_image:
stage: scanner
image:
name: repo.cloud.example.com/repository/company/scanner:v2.0-with-db
entrypoint: [""]
pull_policy: always
Мы рекомендуем указывать always для параметра
pull_policy
, чтобы получать свежие сборки с обновленными базами уязвимостей и других вредоносных объектов при каждом сканировании. - Укажите тег, идентификатор сборки, идентификатор пайплайна и токен 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
, вы можете указать другой тег. - Если вы настраиваете сканирование для приватного репозитория, для доступа сканера к образу укажите авторизационные данные. Их можно задать в виде переменных.
COMPANY_EXT_REGISTRY_USERNAME: ${COMPANY_EXT_REGISTRY_USERNAME}
COMPANY_EXT_REGISTRY_PASSWORD: ${COMPANY_EXT_REGISTRY_PASSWORD}
- Для использования сертификата для безопасного подключения к реестру укажите данные сертификата в переменной окружения
COMPANY_EXT_REGISTRY_TLS_CERT
в виде строки в формате .PEM:-----BEGIN CERTIFICATE-----\n... <
данные сертификата
> ...\n-----END CERTIFICATE-----
. - Укажите следующие параметры, обеспечивающие взаимодействие через прокси-сервер:
HTTP_PROXY
:<прокси-сервер для запросов по протоколу HTTP>
HTTPS_PROXY
:<прокси-сервер для запросов по протоколу HTTPS>
NO_PROXY
:<домены или соответствующие им маски для исключения из проксирования>
- При необходимости укажите переменную для проверки сервера приема данных в 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'
- Укажите веб-адрес хост-сервера 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.
В началоНастройка интеграции с Jenkins CI/CD
Настройка интеграции с Jenkins CI/CD состоит из следующих этапов:
- Авторизация Jenkins CI/CD в реестре образов производителя Kaspersky Security для контейнеров. Для этого на рабочей станции оператора кластера подготовьте хеш по алгоритму Base64 от авторизационных данных, выполнив команду:
printf "login:password" | openssl base64 -A
где login и password – имя и пароль учетной записи в реестре образов производителя Kaspersky Security для контейнеров.
- Авторизация API Kaspersky Security для контейнеров. Для авторизации требуется выполнить следующие действия:
- Скопируйте токен API на странице Мой профиль.
- Укажите скопированное значение токена API в переменной API_TOKEN в конфигурационном файле Jenkinsfile.
- Проверка подлинности сервера приема данных в CI/CD с помощью СА-сертификата Ingress-контроллера. Для проведения проверки в конфигурационном файле Jenkinsfile укажите одну из следующих переменных:
-e API_CA_CERT=${KCS_CA_CERT}
– проверка будет проведена, и запускаемый в CI/CD сканер сможет убедиться в подлинности сервера приема данных.-e SKIP_API_SERVER_VALIDATION=true
– проверка сервера приема данных с помощью СА-сертификата Ingress-контроллера проводиться не будет.
- Создание переменных окружения Jenkins.
Чтобы создать переменные окружения, необходимо добавить в файл Jenkinsfile следующие строки:
- Добавьте информацию по реестру контейнеров, где находится сканер в следующем виде:
LOGIN
– имя учетной записи в реестре сканераPASS
– пароль для реестра сканера - Если вы настраиваете сканирование для приватного репозитория, для доступа сканера к образу укажите следующие авторизационные данные:
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
:<домены или соответствующие им маски для исключения из проксирования>
- Добавьте информацию по реестру контейнеров, где находится сканер в следующем виде:
- Добавление информации для запуска сканера. Информация для запуска сканера, содержащего базы уязвимостей и других вредоносных объектов, добавляется в конфигурационный файл Jenkinsfile в виде декларативного или скриптового пайплайна.
Пример информации для запуска сканера в виде декларативного пайплайна
Пример информации для запуска сканера в виде скриптового пайплайна
- Формирование артефакта для скачивания.
Для получения результатов сканирования вы можете сформировать артефакт для скачивания в формате .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.
Настройка интеграции с TeamCity CI/CD
Чтобы настроить интеграцию с TeamCity CI/CD:
- Скопируйте токен API на странице Мой профиль для авторизации API Kaspersky Security для контейнеров в TeamCity.
- В меню настройки параметров в веб-интерфейсе TeamCity выберите Build Configuration Home → Parameters.
- С помощью кнопки 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
– указываются домены или соответствующие им маски для исключения из проксирования.
- Перейдите в раздел Build Configuration Home → Build Step: Command Line и с помощью кнопки Add build step добавьте этап сборки.
- В открывшемся окне укажите следующие параметры этапа сборки:
- В раскрывающемся списке Runner type выберите Command Line.
- В раскрывающемся списке Run выберите Custom script.
- В поле Custom script укажите путь к контейнеру для сканирования (например,
/bin/sh /entrypoint.sh nginx:latest
).
- В блоке 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
.
- В поле Run step within Docker container укажите адрес сканера в реестре Docker. Например,
- Нажмите на кнопку Save, чтобы сохранить параметры.
- Нажмите на кнопку Run в верхнем правом углу страницы, чтобы запустить сборку.
- При необходимости скачайте артефакт с результатами сканирования, который доступен на вкладке Artifacts на странице с результатами проверки сборки в веб-интерфейсе TeamCity.
Определение пути до образов контейнеров
Для начала сканирования решению необходимо определить путь до образов контейнеров, которые требуется проверить. Путь до образов контейнеров может быть указан двумя способами:
- За названием реестра, репозитория и имени образа указывается тег образа. Тег представляет собой изменяемое легкочитаемое описание образа.
Путь в этом случае выглядит следующим образом:
<реестр>/<репозиторий>/<имя образа>:<тег>
. Например, http://docker.io/library/nginx:1.20.1. - За названием реестра, репозитория и имени образа указывается контрольная сумма образа. Контрольная сумма является неизменным внутренним свойством образа, а именно хешем его содержимого (используется хеш-алгоритм SHA256).
При использовании контрольной суммы путь представляет собой следующее:
<реестр>/<репозиторий>/<имя образа><контрольная сумма>
. Например, http://docker.io/library/nginx@sha256:af9c...69ce.
Тег может соответствовать различным контрольным суммам, а контрольные суммы уникальны для каждого образа.
В зависимости от способа указания пути до образа перед началом сканирования Kaspersky Security для контейнеров осуществляет одно из следующих действий:
- Преобразовывает тег в доверенную контрольную сумму.
- Проверяет, является ли указанная в пути до образа контрольная сумма доверенной. Контрольная сумма считается доверенной, если обеспечена необходимая степень уверенности в поддержании требуемого режима безопасности в отношении кодируемого с помощью хеш-алгоритма объекта.
В среду выполнения контейнера передаются только доверенные контрольные суммы.
Перед запуском контейнера содержимое образа сравнивается с полученной контрольной суммой. Для признания контрольной суммы доверенной, а образа неискаженным Kaspersky Security для контейнеров проверяет целостность и подлинность подписи образа.
В началоКонтроль целостности и происхождения образов
При сканировании образов в процессе CI/CD Kaspersky Security для контейнеров обеспечивает защиту от подмены образов на уровне реестров. Целостность и происхождение образов контейнеров, развертываемых в кластере оркестратора, контролируется при помощи проверки подписей образов, начиная с уровня сборки в CI.
Контроль целостности образов осуществляется в два этапа:
- Подписание образов контейнеров после создания. Этот процесс реализуется при помощи внешних приложений для подписи.
- Проверка подписей образов перед развертыванием.
Решение сохраняет ключ подписи, который создается на основе хеш-функции SHA-256 и используется в качестве кода проверки подлинности подписи. При развертывании в оркестраторе Kaspersky Security для контейнеров запрашивает у сервера подписей подтверждение подлинности подписи.
Kaspersky Security для контейнеров осуществляет проверку подписей образа в рамках следующего процесса:
- В разделе Администрирование → Интеграции → Модули проверки подписей образов настраиваются параметры интеграции решения с внешними модулями проверки подписей.
- В разделе Политики → Среда выполнения → Политики создается политика среды выполнения для защиты содержания образа, которая отвечает за проверку подлинности подписей. Проверка цифровых подписей осуществляется на основе настроенных модулей проверки подписей.
- Оркестратор запускает развертывание образа и при помощи делает запрос на развертывание агенту (kube-agent).
Для направления запроса агенту Kaspersky Security для контейнеров требуется настроить динамический контроллер доступа в конфигурационном файле values.yaml.
- На основании применимой политики среды выполнения агент проверяет параметры проверки подписи, настроенные в разделе Администрирование → Интеграции → Модули проверки подписей образов.
- Если проверка подтверждает подлинность и действительность подписи, решение разрешает развертывание образа. В ином случае развертывание запрещается.
Запуск сканера в режиме 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-файлу.
В началоЗапуск сканера в режиме lite SBOM
Kaspersky Security для контейнеров предоставляет возможность запуска сканера для проверки образов на наличие уязвимостей в режиме lite SBOM. В данном случае решение осуществляет сканирование специально созданного SBOM-файла, а результаты этого сканирования становятся доступны на этапе CI/CD.
Между средой CI/CD и решением должна быть обеспечена безопасность передачи данных от прослушивания и перехвата сетевого трафика.
Для получения результатов вы можете сформировать артефакт для скачивания в формате .SPDX, .HTML, .JSON или .CDX.
Результаты сканирования можно получить в указанном вами формате, а также посмотреть в разделе Ресурсы → CI/CD.
Запуск сканера в GitLab
Чтобы запустить сканер в режиме lite SBOM в GitLab, при настройке сканирования образов в процессе CI/CD измените конфигурационный файл .gitlab-ci.yml следующим образом:
- Добавьте информацию по образу сканера, запускаемого на этапе сканирования образов в процессе CI/CD в следующем виде:
scan_image:
stage: scanner
image:
name:repo.cloud.example.com/repository/company/scanner:v.2.0.0-lite
entrypoint: [""]
pull_policy: always
- Укажите тег платформы оркестрации в следующем виде:
k8s
В приведенном примере указан тег
k8s
для обозначения Kubernetes, вы можете указать тег для другой поддерживаемой платформы оркестрации. - Укажите такие переменные как идентификатор сборки, данные реестра сканируемого образа и сертификата для безопасного подключения к этому реестру, идентификатор пайплайна и токен API для авторизации запросов от CI/CD сканера в Kaspersky Security для контейнеров в следующем виде:
SCAN_TARGET: ${CI_REGISTRY_IMAGE}:master
COMPANY_EXT_REGISTRY_USERNAME: ${COMPANY_EXT_REGISTRY_USERNAME}
COMPANY_EXT_REGISTRY_PASSWORD: ${COMPANY_EXT_REGISTRY_PASSWORD}
COMPANY_EXT_REGISTRY_TLS_CERT: ${COMPANY_EXT_REGISTRY_TLS_CERT}
BUILD_NUMBER: ${CI_JOB_ID}
BUILD_PIPELINE: ${CI_PIPELINE_ID}
API_TOKEN:
<значение токена API>
HTTP_PROXY
:<прокси-сервер для запросов по протоколу HTTP>
HTTPS_PROXY
:<прокси-сервер для запросов по протоколу HTTPS>
NO_PROXY
:<домены или соответствующие им маски для исключения из проксирования>
Данные сертификата для безопасного подключения к реестру сканируемого образа в переменной
COMPANY_EXT_REGISTRY_TLS_CERT
указываются в виде строки в формате .PEM:
-----BEGIN CERTIFICATE-----\n... <
данные сертификата
> ...\n-----END CERTIFICATE-----
. - При необходимости укажите переменную для проверки сертификата API-интерфейса решения:
API_CA_CERT: ${KCS_CA_CERT}
Если переменная
API_CA_CERT
не задана, проверка будет запускаться, но не будет пройдена. - Укажите веб-адрес хост-сервера API Kaspersky Security для контейнеров:
API_BASE_URL:
<веб-адрес>
- Укажите команду для создания файла артефакта при запуске сканера в одном из следующих поддерживаемых форматов:
- Для создания артефакта в формате .JSON:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --stdout > artifact-result.json
artifacts:
paths:
- artifact-result.json
- Для создания артефакта в формате .HTML:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --html --stdout > artifact-result.html
artifacts:
paths:
- artifact-result.html
- Для создания артефакта SBOM в формате .SPDX:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --spdx --stdout > artifact-result.spdx
artifacts:
paths:
- artifact-result.spdx
- Для создания артефакта SBOM в формате .CDX:
script:
- /bin/sh /entrypoint.sh $SCAN_TARGET --cdx --stdout > artifact-result.cdx.json
artifacts:
paths:
- artifact-result.cdx.json
- Для создания артефакта в формате .JSON:
Пример настройки запуска сканера в режиме lite SBOM и создания артефакта в формате .HTML в GitLab
В началоЗапуск вне процесса CI/CD
В случае ограниченных ресурсов, вы можете запускать сканер Kaspersky Security для контейнеров отдельно от вычислительных узлов процесса CI/CD. Например, на Docker-узле с помощью команды docker run
или в виде объекта Job в кластере Kubernetes.
Для максимальной экономии ресурсов мы рекомендуем использовать образ scanner:2.0.0-lite, так как он не содержит баз уязвимостей и отправляет сформированный по результатам проверки целевого образа SBOM-файл на анализ в решение с помощью API.
Для запуска сканера Kaspersky Security для контейнеров вне процесса CI/CD необходимо указать следующие обязательные параметры:
API_TOKEN: <
значение токена API
>
– токен пользователя Kaspersky Security для контейнеров для аутентификации в API-интерфейсе решения.API_BASE_URL: <
веб-адрес
>
– ссылка для доступа к API-интерфейсу Kaspersky Security для контейнеров. Доступ может осуществляться по протоколам HTTP и HTTPS, в зависимости от настроек окружения развернутого решения.API_CA_CERT: <
сертификат в формате PEM
>
– переменная для проверки сертификата API-интерфейса решения.SKIP_API_SERVER_VALIDATION=true
– переменная, которую при необходимости можно указать для пропуска проверки сертификата API-интерфейса Kaspersky Security для контейнеров.
Вы также можете указать дополнительные параметры для работы сканера:
COMPANY_EXT_REGISTRY_USERNAME: <
имя пользователя реестра
>
– имя пользователя реестра, где хранится образ для проверки сканером.COMPANY_EXT_REGISTRY_PASSWORD: <
пароль пользователя реестра
>
– пароль пользователя реестра, где хранится образ для проверки сканером.BUILD_NUMBER: <
идентификатор номера сборк
и>
– идентификатор, который используется для отслеживания номера сборки в интерфейсе решения. Kaspersky Security для контейнеров отображает номер в результатах проверки в процессе CI\CD.BUILD_PIPELINE: <
идентификатор номера пайплайна
>
– идентификатор, который используется для отслеживания номера пайплайна в интерфейсе решения. Kaspersky Security для контейнеров отображает номер в результатах проверки в процессе CI\CD.HTTP_PROXY: <
прокси-сервер для запросов по протоколу HTTP
>
– переменная, которая указывает на использование HTTP-прокси сервера, когда вам требуется доступ к внешним ресурсам.HTTPS_PROXY: <
прокси-сервер для запросов по протоколу HTTPS
>
– переменная, которая указывает на использование HTTPS- прокси когда вам требуется доступ к внешним ресурсам.NO_PROXY: <
домены или соответствующие им маски для исключения из проксирования
>
– переменная, которая указывает на доступные локально ресурсы, если используется прокси-сервер.
Запуск сканера как объекта Job в кластере Kubernetes
В началоПолучение результатов сканирования в форматах .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:
Указание секретов при запуске сканирования
При запуске задания на сканирование в процессе CI/CD реестр, в котором находится образ сканера (сканер lite или сканер with-db для соответствующей версии Kaspersky Security для контейнеров), может быть доступен только после авторизации. Вы можете пройти авторизацию, указав требуемые секреты в задании на сканирование.
Чтобы пройти авторизацию для доступа в реестр при запуске задания на сканирование:
- Создайте секрет, выполнив следующую команду:
kubectl create secret docker-registry ci-creds --docker-server=client.repo.example.com --docker-username=username --docker-password=password
- В задании на сканирование укажите значение переменной
imagePullSecrets
следующим образом:imagePullSecrets:
- name: ci-creds
- Запустите задание на сканирование.
Пример задания на сканирование с указанием секретов для авторизации
В приведенном примере задание на сканирование содержит следующие секреты:
- Секрет для скачивания образа сканера (указан в переменной
imagePullSecrets
). - Пароль для скачивания образа для проверки с помощью сканера, если доступ к соответствующему реестру ограничен (указан в переменной
COMPANY_EXT_REGISTRY_PASSWORD
).
Вы можете не указывать эти пароли, если реестр, к которому обращается решение при выполнении задания на сканирование, доступен без авторизации.
В началоНастройка интеграции с модулями проверки подписей образов
Kaspersky Security для контейнеров может осуществлять проверку подлинности и действительности цифровых подписей образов. Чтобы использовать функцию этой проверки, вам требуется настроить интеграцию решения с одним или несколькими внешними приложениями для подписи. Особенности подписания контрольной суммы образа, место хранения подписей и особенности защиты подписей зависят от выбранного вами приложения для подписи. Решение поддерживает два настраиваемых внешних модуля проверки подписей:
- Notary v1 – разработанное Docker приложение, которое используется для обеспечения безопасности контейнеров на различных этапах их жизненного цикла, в том числе создания и последующего хранения подписей.
- Cosign – приложение, предназначенное для создания подписей для контейнеров, проверки подписей и размещения подписанных контейнеров в репозиториях. Приложение разработано в рамках проекта .
Вы можете настроить интеграцию с модулем проверки подписей в разделе Администрирование → Интеграции → Модули проверки подписей образов.
В началоПросмотр списка интеграций с модулями проверки подписей
В разделе Администрирование → Интеграции → Модули проверки подписей образов отображается таблица со списком всех настроенных интеграций с модулями проверки подписей образов.
В таблице отображаются следующие данные об интегрированных модулях проверки подписей образов:
- Название модуля проверки.
- Описание, если оно указывалось при создании интеграции.
- Тип задействованного модуля проверки подписей – Notary v1 или Cosign.
- Веб-адрес, к которому обращается модуль проверки подписи образов.
В таблице вы можете выполнять следующие действия:
- Добавлять новые интеграции с модулями проверки подписей. Окно ввода параметров интеграции открывается с помощью кнопки Добавить модуль проверки над таблицей.
- Просматривать и изменять параметры интеграции с модулем проверки подписей образов. Окно редактирования открывается по ссылке на названии модуля проверки.
- Удалять интеграцию с модулем проверки подписей образов.
Создание интеграции с модулем проверки подписей
Чтобы создать интеграцию с модулем проверки подписей образов:
- В разделе Администрирование → Интеграции → Модули проверки подписей образов нажмите на кнопку Добавить модуль проверки.
Откроется окно ввода параметров интеграции.
- В блоке Общая информация введите название политики и при необходимости ее описание.
- В блоке Тип выберите один из следующих модулей проверки подписей:
- Notary v1.
- Cosign.
- В зависимости от выбранного модуля проверки подписей укажите параметры для доступа на сервер:
- Для Notary v1 укажите следующие параметры:
- Веб-адрес – полный веб-адрес сервера, где хранятся подписи образов.
- Секрет для аутентификации на сервере подписей – название секрета оркестратора с учетными идентификационными данными для доступа к серверу, где хранятся подписи образов.
Секрет должен находиться в пространстве имен Kaspersky Security для контейнеров.
- Сертификат – самостоятельно сгенерированный сертификат сервера, где хранятся подписи. Сертификат предоставляется в формате .PEM.
- Делегирование – перечень владельцев подписи, которые принимают участие в процессе подписания.
- В блоке Доверенные корневые ключи укажите пары всех открытых ключей, которые решение будет проверять при проверке подписей. Пара ключа включает в себя имя и значение ключа.
При необходимости вы можете добавить дополнительные ключи, нажав на кнопку Добавить пару ключей. Решение поддерживает до 20 пар ключей.
- Для Cosign укажите следующие параметры:
- Секрет для аутентификации на сервере подписей – название секрета оркестратора с учетными идентификационными данными для доступа к серверу, где хранятся подписи образов.
Секрет должен находиться в пространстве имен Kaspersky Security для контейнеров.
- Сертификат – самостоятельно сгенерированный сертификат сервера, где хранятся подписи. Сертификат предоставляется в формате .PEM.
- В блоке Доверенные корневые ключи укажите пары всех открытых ключей, которые решение будет проверять при проверке подписей. Пара ключа включает в себя имя и значение ключа.
Для Cosign указываются открытые ключи для алгоритмов ECDSA или RSA, предоставленные ресурсом cosign.pub.
При необходимости вы можете добавить дополнительные ключи, нажав на кнопку Добавить пару ключей. Решение поддерживает до 20 пар ключей.
- В блоке Требования к подписи укажите минимально необходимое количество подписей и владельцев подписи, которые обязательно должны подписать образ.
- Секрет для аутентификации на сервере подписей – название секрета оркестратора с учетными идентификационными данными для доступа к серверу, где хранятся подписи образов.
- Для Notary v1 укажите следующие параметры:
- Нажмите на кнопку Сохранить в верхней части окна, чтобы сохранить параметры интеграции с модулем проверки подписей.
Настроенную интеграцию вы можете использовать в политиках среды выполнения для обеспечения защиты содержания образа.
В началоПросмотр и изменение информации об интеграции с модулем проверки подписей
Чтобы просмотреть и изменить параметры интеграции с модулем проверки подписей образов:
- В разделе Администрирование → Интеграции → Модули проверки подписей образов нажмите на ссылку на названии интеграции в списке интеграций с модулем проверки подписей.
- В открывшемся окне при необходимости в зависимости от выбранного модуля проверки подписей измените следующие параметры интеграции:
- Для Notary v1 вы можете изменить следующие параметры:
- Название модуля проверки.
- Описание.
- Веб-адрес.
- Секрет для аутентификации на сервере подписей.
- Сертификат.
- Делегирование.
- Имя ключа.
- Значение ключа.
- Для Cosign вы можете изменить следующие параметры:
- Секрет для аутентификации на сервере подписей.
- Сертификат.
- Имя ключа.
- Значение ключа.
- Порог подписания.
- Обязательные владельцы подписи.
- Для Notary v1 вы можете изменить следующие параметры:
- При необходимости добавьте пары ключей, нажав на кнопку Добавить пару ключей.
- Нажмите на кнопку Сохранить в верхней части окна.
Удаление интеграции с модулем проверки подписей
Чтобы удалить интеграцию с модулем проверки подписей:
- Откройте список настроенных интеграций с модулем проверки подписи.
- Выберите интеграцию, которую хотите удалить, установив флажок в строке с названием интеграции.
- Нажмите на кнопку Удалить, которая расположена над таблицей.
Кнопка Удалить становится активной после выбора одной или нескольких интеграций.
- Подтвердите удаление в открывшемся окне.
Настройка интеграции со средствами уведомления
Kaspersky Security для контейнеров может уведомлять пользователей о событиях в работе решения в соответствии с параметрами политики реагирования. Чтобы использовать функцию уведомления, вам нужно настроить интеграцию решения с одним или несколькими средствами уведомления.
Kaspersky Security для контейнеров может использовать следующие средства уведомления:
- электронная почта;
- система обмена мгновенными сообщениями Telegram.
Просмотр списка интеграций со средствами уведомления
Чтобы просмотреть список настроенных интеграций со средствами уведомления:
- Перейдите в раздел Администрирование → Интеграции → Уведомления.
- В зависимости от интересующего вас типа уведомления перейдите во вкладку Электронная почта или во вкладку Telegram.
В таблице со списком всех настроенных интеграций отображаются следующие данные о существующих интеграциях:
- Название интеграции.
- Автор обновления.
- Дата и время последнего обновления.
- Статус последнего соединения со средством уведомления – Успешно или Ошибка. Если указывается Ошибка, решение также отображает краткое описание ошибки при соединении.
В таблице вы можете выполнять следующие действия:
- Добавлять новые интеграции с электронной почтой и Telegram. Окно ввода параметров интеграции открывается с помощью кнопки Добавить интеграцию над таблицей.
- Просматривать и изменять параметры интеграции со средствами уведомления. Окно редактирования открывается по ссылке на названии интеграции.
В этом окне с помощью кнопки Проверить соединение вы также можете посмотреть осуществлена ли интеграция со средством уведомления.
- Удалять интеграцию со средствами уведомления.
Создание интеграции с электронной почтой
Чтобы создать интеграцию с электронной почтой:
- В разделе Администрирование → Интеграции → Уведомления в блоке Электронная почта нажмите на кнопку Добавить интеграцию.
Откроется окно ввода параметров интеграции.
- Укажите следующие параметры в полях формы:
- Название интеграции. Это название будет отображаться в параметрах политики реагирования.
- Имя пользователя и пароль учетной записи, которая используется для отправки сообщений.
- Имя сервера SMTP.
- Способ шифрования электронной почты.
- Порт, который использует сервер SMTP.
- Адрес электронной почты отправителя сообщений.
- Адреса электронной почты получателей сообщений. Вы можете указать в поле один или несколько адресов.
- Нажмите на кнопку Проверить соединение, чтобы посмотреть, устанавливается ли соединение с электронной почтой.
- Нажмите на кнопку Добавить, чтобы сохранить параметры интеграции с электронной почтой.
Пример параметров интеграции с электронной почтой
Настроенную интеграцию вы можете использовать в политиках реагирования.
В началоПросмотр информации об интеграции с электронной почтой
Чтобы просмотреть и изменить интеграцию с электронной почтой:
- В блоке Электронная почта в разделе Администрирование → Интеграции → Уведомления нажмите на ссылку на названии интеграции в списке интеграций.
- В открывшемся окне редактирования при необходимости измените следующие параметры интеграции:
- Название.
- Имя пользователя.
- Пароль учетной записи, которая используется для отправки сообщений.
- Имя сервера SMTP.
- Способ шифрования электронной почты.
- Порт, который использует сервер SMTP.
- Адрес электронной почты отправителя сообщений.
- Адрес электронной почты получателей сообщений.
- Нажмите на кнопку Проверить соединение, чтобы посмотреть, устанавливается ли соединение с электронной почтой.
- Нажмите Сохранить.
Создание интеграции с Telegram
Чтобы создать интеграцию с Telegram:
- В разделе Администрирование → Интеграции → Уведомления в блоке Telegram нажмите на кнопку Добавить интеграцию.
Откроется окно ввода параметров интеграции.
- Укажите следующие параметры в полях формы:
- Название интеграции. Это название будет отображаться в параметрах политики реагирования.
- Идентификатор чата, в котором будут публиковаться сообщения. Вы можете получить идентификатор следующим образом:
- Напишите первое сообщение боту, который будет публиковать сообщения. Идентификатор чата генерируется при первой отправке сообщения.
- Введите в адресной строке браузера:
https://api.telegram.org/bot
<токен>
/getUpdates
,где <токен> – токен бота, который будет публиковать сообщения.
- В полученном json-ответе найдите значение "id" из объекта "chat" – это идентификатор чата.
После изменения настроек видимости истории сообщений для новых участников в чате Telegram меняется идентификатор чата. В таком случае требуется изменить настройки интеграции с Telegram и указать новое значение идентификатора чата.
- Токен бота, который будет публиковать сообщения. Токен вы получаете в результате создания бота по команде
/newbot
в боте BotFather. Вы также можете получить токен ранее созданного бота по команде/token
.
- Нажмите на кнопку Проверить соединение, чтобы посмотреть, устанавливается ли соединение с Telegram.
- Нажмите на кнопку Добавить, чтобы сохранить параметры интеграции с Telegram.
Пример параметров интеграции с Telegram
Настроенную интеграцию вы можете использовать в политиках реагирования.
В началоПросмотр и изменение информации об интеграции с Telegram
Чтобы просмотреть и изменить интеграцию с Telegram:
- В блоке Telegram в разделе Администрирование → Интеграции → Уведомления нажмите на ссылку на названии интеграции в списке интеграций.
- В открывшемся окне редактирования при необходимости измените следующие параметры интеграции:
- Название.
- Идентификатор чата.
- Токен бота.
- Нажмите на кнопку Проверить соединение, чтобы посмотреть, устанавливается ли соединение с Telegram.
- Нажмите Сохранить.
Удаление интеграции со средством уведомления
Чтобы удалить интеграцию с электронной почтой или с Telegram:
- Откройте список настроенных интеграций с электронной почтой или с Telegram в разделе Администрирование → Интеграции → Уведомления.
- Выберите интеграцию, которую хотите удалить, установив флажок в строке с названием интеграции.
- Нажмите на кнопку Удалить, которая расположена над таблицей.
Кнопка Удалить становится активной после выбора одной или нескольких интеграций.
- Подтвердите удаление в открывшемся окне.
Невозможно удалить интеграцию, которая используется в одной или нескольких политиках реагирования.
В началоНастройка интеграции с LDAP-сервером
Kaspersky Security для контейнеров позволяет подключаться к серверам внешних
используемых в вашей организации, . Интеграция осуществляется с конкретной группой в .Соединение с внешней службой каталогов по протоколу LDAP предоставляет вам возможность выполнять следующие задачи:
- настраивать учетные записи пользователей с учетом данных из внешней службы каталогов для работы с Kaspersky Security для контейнеров;
- соотносить роли пользователей в Kaspersky Security для контейнеров с группами пользователей из Active Directory. Пользователи, принадлежащие к этим группам, смогут войти в веб-интерфейс решения со своими доменными учетными данными и получат доступ к функциональности приложения в соответствии с назначенной ролью.
Рекомендуется предварительно создать в Active Directory группы пользователей, которым вы хотите предоставить возможность проходить авторизацию с помощью доменной учетной записи в веб-интерфейсе Kaspersky Security для контейнеров.
В свойствах учетной записи пользователя в Active Directory обязательно должен быть указан адрес электронной почты.
Создание интеграции с LDAP-сервером
Чтобы создать интеграцию с LDAP-сервером:
- В разделе Администрирование → Интеграции → LDAP нажмите на кнопку Добавить сервер.
Откроется окно ввода параметров LDAP-сервера.
- Выберите режим проверки сертификатов для подключения к LDAP-серверу. По умолчанию указан режим Цепочка сертификатов и осуществляется проверка сертификатов, сохраненных Kaspersky Security для контейнеров при первом подключении к LDAP-серверу. Вы также можете выбрать режим Корневой сертификат и в соответствующем текстовом поле указать данные своего корневого сертификата.
Не изменяйте установленный по умолчанию режим проверки сертификатов, если вы не используете корневой сертификат для подключения к LDAP-серверу.
- Укажите следующие обязательные параметры:
- Веб-адрес (URL) LDAP-сервера вашей компании.
Веб-адрес LDAP-сервера указывается следующим образом:
ldap://<host>:<port>
. Например,ldap://ldap.example.com:389
. - Имя и пароль технической учетной записи.
Имя учетной записи – уникальное имя технической учетной записи, которое требуется для начальной аутентификации и поиска пользователя в каталоге Active Directory.
Вы можете указать имя технической учетной записи в полной форме без сокращений или в формате <
login@domen>
, если ваш LDAP-сервер поддерживает аутентификацию с помощью такого формата имени.В поле Пароль учетной записи необходимо ввести пароль, соответствующий указанному имени учетной записи.
Перед обновлением решения, убедитесь, что поля Имя учетной записи и Пароль учетной записи заполнены. Если значения этих параметров отсутствуют, интеграция с LDAP-сервером не будет функционировать.
- Базовое уникальное имя – имя, которое уникальным образом идентифицирует и описывает запись сервера каталогов LDAP.
Например, базовым уникальным именем для example.com является
dc=example,dc=com
.
- Веб-адрес (URL) LDAP-сервера вашей компании.
- При необходимости с помощью имеющихся у решения данных, Kaspersky Security для контейнеров может заполнить остальные поля формы создания интеграции. Для этого в зависимости от целей создания интеграции выполните одно из следующих действий:
- Если вы хотите создать интеграцию с сервером по протоколу LDAP, нажмите на кнопку Заполнить для LDAP.
- Если вы хотите настроить интеграцию непосредственно для группы в службе каталогов Active Directory, которая связана с вашей ролью в Kaspersky Security для контейнеров, нажмите на кнопку Заполнить для Active Directory.
Kaspersky Security для контейнеров указывает атрибуты значений параметров, а не сами значения. Например, решение указывает атрибут имени пользователя, по которому можно найти этого пользователя, а не непосредственно имя пользователя.
Решение подставит следующие атрибуты значений параметров в форму создания интеграции:
- Фильтр пользователя для определения параметров поиска пользователя в Active Directory.
- Фильтр группы для определения параметров поиска группы в Active Directory.
Kaspersky Security для контейнеров использует максимально обобщенные значения фильтров, чтобы обеспечить работу практически для всех возможных конфигураций. При настройке параметров Фильтр пользователя и Фильтр группы мы рекомендуем сохранять только те значения атрибутов, которые используются в Active Directory.
- В блоке Основные настройки решение указывает следующие параметры:
- Название организационной единицы.
- Уникальное имя.
- В блоке Настройки пользователя решение указывает следующие параметры:
- Имя пользователя.
- Фамилия пользователя.
- Название группы.
- Логин пользователя.
- Член группы.
- Адрес электронной почты пользователя.
- Группы, в которые входит пользователь.
При необходимости вы можете изменить значения, указанные решением в форме создания интеграции.
- Чтобы проверить корректность заполнения значений, нажмите на кнопку Проверить соединение.
Kaspersky Security для контейнеров отобразит уведомление о подключении к LDAP-серверу или о невозможности его установить.
- Нажмите Сохранить.
Если сертификат LDAP-сервера меняется, требуется перенастроить интеграцию.
Настроенную интеграцию вы можете использовать при создании и назначении ролей пользователей.
В началоПросмотр, изменение параметров и удаление интеграции с LDAP-сервером
Чтобы просмотреть подключение LDAP-сервера,
перейдите в раздел Администрирование → Интеграции → LDAP.
Kaspersky Security для контейнеров отображает следующую информацию о подключенном LDAP-сервере:
- Веб-адрес подключенного LDAP-сервера.
- Статус последнего соединения с сервером – Успешно, Недоступно или Ошибка. Если указывается Ошибка, решение также отображает краткое описание ошибки при соединении.
Чтобы изменить параметры интеграции с LDAP-сервером,
в разделе Администрирование → Интеграции → LDAP нажмите на кнопку Изменить параметры.
Kaspersky Security для контейнеров откроет страницу с формой данных для интеграции с LDAP-сервером.
Чтобы удалить интеграцию с LDAP-сервером:
- В разделе Администрирование → Интеграции → LDAP нажмите на кнопку Удалить интеграцию.
- Подтвердите удаление в открывшемся окне.
Проверка соединения с LDAP-сервером
Чтобы проверить соединение с LDAP-сервером,
- Перейдите в раздел Администрирование → Интеграции → LDAP.
- Выполните одно из следующих действий:
- Если интеграция с LDAP-сервером создана, нажмите на кнопку Проверить соединение.
- Если вы создаете интеграцию с LDAP-сервером или изменяете значения ее параметров, нажмите на кнопку Проверить соединение под формой данных для интеграции с LDAP-сервером.
Kaspersky Security для контейнеров отобразит уведомление о соединении с LDAP-сервером или о невозможности его установить.
В началоПолучение доступа к группе Active Directory
После интеграции с LDAP-сервером вы можете указать группу Active Directory для каждой роли Kaspersky Security для контейнеров. Пользователи из этой группы, пройдя авторизацию с помощью своих учетных данных, получат доступ к функциональности решения в соответствии с указанной ролью.
В началоНастройка интеграции с 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-сообщении
CEF-сообщения передаются на английском языке.
В таблице ниже перечислены основные компоненты заголовка и тела CEF-сообщения, которое передает Kaspersky Security для контейнеров.
Компоненты и значения компонентов CEF-сообщения
Компонент |
Значение |
Пример |
---|---|---|
Стандартный заголовок CEF-сообщения (англ. syslog header) |
Заголовок передается в следующем виде: |
|
Префикс и версия формата CEF |
|
|
Идентификатор события |
Производитель решения (англ. Device Vendor) Название решения (англ. Device Product) Версия решения (англ. Device Version) |
|
Уникальный идентификатор типа события (англ. Signature ID) |
Kaspersky Security для контейнеров передает следующие идентификаторы типов события:
|
Некоторые из передаваемых решением идентификаторов типов событий:
|
Описание события (англ. Name) |
Передаваемое описание должно быть понятным пользователю и соотноситься с идентификатором типа события. Например, ADM – администрирование или PM – управление процессом. |
Некоторые из передаваемых решением описаний событий:
|
Критичность (важность) события (англ. Severity) |
Критичность события определяется по шкале от 0 до 10 следующим образом:
Критичность события оценивается в зависимости от типа события и статуса выполнения (Успешно или Ошибка). |
Критичность оценивается, например, следующим образом:
|
Дополнительная информация о событии (англ. Extension) |
Дополнительная информация может включать в себя один или несколько наборов пар "ключ – значение". |
Информация о наборах пар "ключ – значение", которые передает Kaspersky Security для контейнеров, представлена по ссылке ниже. |
Дополнительная информация о событии, которую передает Kaspersky Security для контейнеров
В началоСоздание интеграции с SIEM-системой
Чтобы создать интеграцию с SIEM-системой:
- В разделе Администрирование → Интеграции → SIEM-системы нажмите на кнопку Добавить SIEM-систему.
Откроется боковая панель для ввода параметров SIEM-системы.
- На вкладке Общая информация укажите следующие обязательные параметры:
- Название подключаемой SIEM-системы.
- Протокол, по которому осуществляется подключение к SIEM-системе. По умолчанию выбрано TCP.
- Адрес сервера SIEM-системы в одном из следующих форматов:
- IPv4.
- IPv6.
- FQDN.
- Порт, через который осуществляется подключение к SIEM-системе. Значение порта можно указать в диапазоне от 1 до 65535. По умолчанию установлено значение 514.
- Категории событий, сообщения о которых будут экспортироваться в SIEM-систему. Для этого установите флажки рядом с одной или несколькими категориями событий из следующего списка:
- Администрирование.
- Обнаружение.
- CI/CD.
- Политики.
- Ресурсы.
- Сканеры.
- Контроллер доступа.
- События контейнеров.
- API.
Для просмотра событий в категориях Ресурсы, Сканеры, Контроллер доступа и События контейнеров требуется расширенная лицензия.
По умолчанию выбраны все категории событий.
Сообщения о выбранных категориях событий отправляются в указанную SIEM-систему вне зависимости от ее привязки к группам агентов.
- На вкладке События для групп агентов установите флажки рядом с одним или несколькими типами событий в рамках мониторинга состояния узлов в среде выполнения.
Объем журнала передаваемых сообщений о событиях в среде выполнения может быть очень большим и может повлиять на имеющееся свободное дисковое пространство и сетевую нагрузку.
- Если вы хотите проверить корректность введенных параметров интеграции с SIEM-системой, нажмите на кнопку Проверить соединение.
Решение проверяет соединение с SIEM-системой, если выбран протокол соединения TCP. Если выбран протокол соединения UDP, кнопка Проверить соединение неактивна.
- Нажмите на кнопку Сохранить.
Связывание групп агентов с SIEM-системой
Связывание групп агентов с SIEM-системами осуществляется при создании групп агентов или изменении их параметров в разделе Компоненты → Агенты.
Для связывания группы агентов в Kaspersky Security для контейнеров необходимо иметь права на управление группами агентов, а также создать и настроить хотя бы одну интеграцию с SIEM-системой.
В началоПросмотр и изменение параметров интеграции с SIEM-системой
Чтобы просмотреть интеграцию с SIEM-системой:
- Откройте список интеграций с SIEM-системами в разделе Администрирование → Интеграции → SIEM-системы.
- Нажмите на название интеграции в списке интеграций.
Чтобы изменить параметры интеграции с SIEM-системой:
- В разделе Администрирование → Интеграции → SIEM-системы нажмите на название интеграции в списке интеграций.
- В открывшейся боковой панели при необходимости измените параметры интеграции следующим образом:
- На вкладке Общая информация измените следующие обязательные параметры:
- Название SIEM-системы.
- Протокол подключения к SIEM-системе.
- Адрес сервера SIEM-системы.
- Порт для подключения к SIEM-системе.
- Категории экспортируемых событий.
- На вкладке События для групп агентов при необходимости измените список выбранных типов событий мониторинга сетевых узлов в среде выполнения.
- На вкладке Общая информация измените следующие обязательные параметры:
- Если используется протокол соединения TCP, нажмите на кнопку Проверить соединение, чтобы посмотреть, устанавливается ли соединение с SIEM-системой.
- Нажмите Сохранить.
Удаление интеграции с SIEM-системой
Чтобы удалить интеграцию с SIEM-системой:
- Откройте список настроенных интеграций с SIEM-системами в разделе Администрирование → Интеграции → SIEM-системы.
- Выберите интеграцию, которую хотите удалить, установив флажок в строке с названием интеграции.
- Нажмите на кнопку Удалить, которая расположена над таблицей.
Кнопка Удалить становится активной после выбора одной или нескольких интеграций.
- Подтвердите удаление в открывшемся окне.
Интеграция с хранилищем 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
Для работы 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
Ограничения при работе с хранилищем
При работе Kaspersky Security для контейнеров с внешним хранилищем HashiCorp Vault имеется ряд некритичных ограничений:
- Интеграция с HashiCorp Vault работает только с KV1/KV2-хранилищами и элементами Secrets Engine для ротации PKI-сертификатов.
- Решение не поддерживает работу с внешними элементами Secrets Engine, кроме PKI Secrets.
- Kaspersky Security для контейнеров не поддерживает динамическую обработку секретов. Для получения обновленного секрета необходимо повторно запустить решение.
- Если используется интеграция с Vault, в разделе
vault
можно указать учетные идентификационные данные только для внешней базы данных PostgreSQL. Для использования внутренней базы данных PostgreSQL эти данные должны оставаться закомментированными.