Kaspersky Container Security

Contenido

Integración a recursos de terceros

Para identificar problemas de seguridad y garantizar la protección de las aplicaciones en contenedores, Kaspersky Container Security puede integrarse a los siguientes recursos de terceros:

  • Registros de imágenes externos. La solución permite analizar contenedores e imágenes de IaC alojados en plataformas de almacenamiento y gestión de repositorios, incluso como parte de un proceso de CI/CD, en busca de vulnerabilidades, malware, configuraciones incorrectas y datos confidenciales.
  • Validadores de firmas en imágenes. Kaspersky Container Security puede validar firmas digitales presentes en imágenes con una aplicación externa de firmas.
  • Servicios de notificaciones. Al implementar directivas de respuesta, la solución puede enviar notificaciones a usuarios acerca de eventos de seguridad mediante mensajes por correo electrónico o Telegram.
  • Servicios externos de directorios LDAP. Al definir alcances y roles de usuarios, la solución permite configurar cuentas de usuarios sobre la base de los datos en un servicio externo de directorio y asignar roles de usuarios a grupos de usuarios de Active Directory.
  • Sistemas SIEM. Kaspersky Container Security permite conectarse a sistemas de gestión de eventos e información de seguridad para enviar notificaciones de eventos para su análisis y responder ante posibles amenazas.
  • Almacenamiento externo HashiCorp Vault. La solución permite almacenar y usar de forma segura contraseñas, tokens y secretos mediante HashiCorp Vault.

Contenido de esta sección:

Configurar la integración a registros externos de imágenes

Integración al proceso de CI/CD

Configurar la integración a validadores de firmas en imágenes

Configurar una integración a servicios de notificaciones

Configurar la integración a un servidor LDAP

Configurar la integración a sistemas SIEM

Integración a HashiCorp Vault

Inicio de página
[Topic 282364]

Configurar la integración a registros de imágenes externos

Kaspersky Container Security puede analizar imágenes desde los siguientes registros externos:

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

    La integración a Docker Registry exige compatibilidad con la API de Docker Registry V2 del lado del servidor del registro externo.

  • Red Hat Quay
  • Amazon Elastic Container Registry

Debe configurar la integración a registros externos para que la solución pueda analizar las imágenes de esos registros. Las imágenes de registros integrados a Kaspersky Container Security pueden analizarse de forma automática o manual, según la configuración de la extracción y el análisis de imágenes de cada registro.

Contenido de esta sección:

Derechos mínimos para la integración a registros

Trabajar con registros públicos sin autorización

Añadir integraciones a registros de imágenes externos

Visualizar información sobre integraciones a registros

Eliminar la integración a registros externos

Integración a Harbor

Crear una integración a partir de una solicitud de Harbor

Visualizar y editar la configuración de la integración Harbor External Integration

Reanálisis

Inicio de página
[Topic 292431]

Derechos mínimos para la integración a registros

Para integrarse a registros de imágenes externos, la cuenta de Kaspersky Container Security debe tener determinados derechos, que variarán según el tipo de registro. A continuación podrá consultar la lista de los derechos mínimos que necesita la cuenta para la integración a cada tipo de registro.

GitLab

Para integrar la solución a un registro del usuario en GitLab, debe definir los parámetros con los siguientes valores:

  • Rol de usuario en el proyecto o grupo: Reporter
  • Nivel de acceso al proyecto: Reporter
  • Derechos asignados al token del usuario: read_api, read_registry

JFrog Artifactory

Para integrar la solución a un registro del usuario en JFrog, debe definir los parámetros con los siguientes valores:

  • Rol de usuario en el proyecto o grupo: Manage Reports
  • Acceso al proyecto: Can Update Profile
  • Derechos del usuario: derecho a leer cualquier repositorio (ANY)

Harbor

Para integrar la solución a un registro del usuario en Harbor, debe definir los parámetros con los siguientes valores:

  • Tipo de miembro: user. Para ello, en la sección ProjectsMembers, debe especificar el valor User en la columna tipo de miembro de la tabla.
  • Rol del usuario en el proyecto o el grupo: usuario con derechos limitados. Para ello, en la sección ProjectsMembers, debe especificar el valor Guest en la columna rol de la tabla.
  • Derechos del usuario: usuario sin derechos de administrador. Para ello, en la sección Usuarios , debe elegir No en la columna Administrator de la tabla.

Nexus

Para integrar la solución a un registro del usuario en Nexus, debe definir los parámetros con los siguientes valores:

  • Rol de usuario en el proyecto o grupo: user
  • Derechos asignados al rol del usuario en el proyecto o grupo: nx-apikey-all, nx-repository-view-docker-*-browse, nx-repository-view-docker-*-read

Docker Hub

La solución se integra al registro del usuario en Docker Hub después de autorizarse con nombre de usuario y contraseña.

La opción de integración al registro de Docker Hub solo es posible en un espacio de nombres personal.

RedHat Quay

Para integrar la solución a un registro del usuario en RedHat Quay, debe tener los siguientes derechos y permisos:

  • Permisos del usuario para el funcionamiento correcto de la función Probar conexión: usuario con permisos de administración de la organización
  • Permisos para ver todos los repositorios visibles
  • Permisos de lectura y escritura en cualquier repositorio accesible

Yandex

Para integrar la solución a un registro del usuario en Yandex, debe definir los parámetros con los siguientes valores:

  • Rol de usuario en el proyecto o grupo: container-registry.viewer
  • Permisos otorgados al rol del usuario en un proyecto o grupo: visualización de registros en contenedores

Amazon Elastic Container Registry

Para integrar la solución a un registro del usuario en Amazon Elastic Container Registry, debe definir los parámetros con los siguientes valores:

  • Directiva de AWS para acceder a un proyecto o grupo: AmazonEC2ContainerRegistryReadOnly
  • Permisos otorgados al rol del usuario en un proyecto o grupo: visualización y lectura

Inicio de página

[Topic 295773]

Trabajar con registros públicos sin autorización

Kaspersky Container Security 2.0 no funciona con registros públicos sin una autorización. Por ejemplo, no puede usar la solución para analizar imágenes si accede a Docker Hub de forma anónima.

Si no autoriza los registros públicos, puede usar dichos registros de imágenes en un clúster, añadirlos a Kaspersky Container Security y asignarlos manualmente a un alcance determinado. Si el alcance incluye uno o diversos registros públicos sobre los cuales no tenga autorización e intenta añadir una imagen desde la sección ResourcesRegistries, la solución mostrará un error que indica que es imposible añadir imágenes porque la solución no cuenta con la integración al registro.

Inicio de página
[Topic 294428]

Añadir integraciones a registros de imágenes externos

Los registros integrados admiten solo repositorios locales que contienen las imágenes directamente. En la versión 2.0, Kaspersky Container Security no admite el uso de repositorios remotos o virtuales.

Para añadir una integración a un registro externo:

  1. En la sección AdministrationIntegrationsImage registries, haga clic en el botón Add registry.

    Se abre la ventana de configuración de la integración.

  2. En la pestaña Registry details, configure la conexión con el registro:
    1. Introduzca el nombre del registro.
    2. De ser necesario, introduzca una descripción del registro.
    3. Elija el tipo de registro en la lista desplegable. Kaspersky Container Security admite los siguientes tipos de registros:
      • Harbor (integración mediante la API de Harbor V2)
      • GitLab Registry (integración mediante la API de GitLab Container Registry)
      • JFrog Artifactory (integración mediante la API de JFrog)
      • Sonatype Nexus Repository OSS (integración mediante la API de Nexus)
      • Yandex Registry (integración mediante la API de Yandex Container Registry)
      • Docker Hub (integración mediante la API de Docker Hub)
      • Docker Registry (integración mediante la API de Docker Registry V2)
      • Red Hat Quay (integración mediante la API de Red Hat Quay)
      • Amazon Elastic Container Registry (integración mediante la API de Amazon Elastic Container Registry)

      Puede acceder a Docker Registry mediante la API de Docker Registry V2 si ha configurado la integración a Sonatype Nexus Repository OSS, Harbor, JFrog Artifactory (con un puerto o un subdominio) o Yandex Registry. Las integraciones a GitLab Registry, Docker Hub y JFrog Artifactory (con la ruta al repositorio) no son compatibles.

    4. Si configura la integración al registro de JFrog Artifactory, elija uno de los siguientes métodos en la lista desplegable Repository Path method para acceder a Docker:
      • Repository path
      • Subdomain
      • Port
    5. Si configura la integración al registro de Sonatype Nexus Repository OSS, elija el modo de extracción Tagged images o All images. Si elige el modo All images, la solución extrae todas las imágenes del registro, tengan o no etiquetas. Las imágenes sin etiquetas se mostrarán con el hash de compilación.
    6. Si configura una integración a un registro de JFrog Artifactory, Harbor, GitLab Registry, Sonatype Nexus Repository OSS, Docker Registry o Red Hat Quay, introduzca la dirección URL completa del registro que dirige al registro del contenedor. Recomendamos que utilice una conexión HTTPS (la conexión HTTP también es compatible).

      Si utiliza una conexión HTTP o HTTPS con un certificado autofirmado o no válido, debe elegir la casilla de registro no seguro para el motor de Docker en los nodos donde se instale el servidor y se realice el análisis.

    7. Si configura una integración a un registro de JFrog Artifactory, Harbor, GitLab Registry, Sonatype Nexus Repository OSS o Red Hat Quay, introduzca la dirección URL completa que dirige a la API del registro.
    8. Elija un método de autenticación y especifique los datos necesarios de la siguiente manera:
      • Si configura una integración a un registro de GitLab Registry, elija la autenticación mediante una cuenta o un token de acceso.
      • Si configura una integración a un registro de Yandex Registry, elija la autenticación mediante una clave de API (token OAuth de Yandex) o un nombre de usuario con contraseña. Al usar el token de OAuth de Yandex, debe especificar el nombre de usuario oauth o iam si usa el token de Yandex IAM.
      • Para los registros de Sonatype Nexus Repository OSS y Docker Hub, la autenticación solo se realiza con una cuenta.
      • Para un registro de Harbor, la autenticación solo está permitida con una cuenta de usuario o robot.
      • Para un registro de Docker, la autenticación solo está permitida con un usuario con contraseña, que proporciona la API de Docker V2.
      • Para los registros de Red Hat Quay, el único método de autenticación es mediante el nombre de la organización y el token de acceso. Especifique estos parámetros en los campos Organization name y OAuth token.
      • En el caso de Amazon Elastic Container Registry, puede autenticar una cuenta especificando la región, el ID de la clave de acceso y la clave de acceso a los secretos.

        En el campo Region, debe especificar una de las regiones de Amazon Web Services (por ejemplo, us-west-2 o us-east-2).

        Para la configuración de Access key ID y Access key, debe especificar los valores que puede recibir con la consola de administración de AWS.

  3. Diríjase a la pestaña Repository caching y utilice los botones Disabled/Enabled para activar la copia en caché de repositorios si es necesario. Si la copia en caché está desactivada, los repositorios y las imágenes en la sección Registry solo se mostrarán si se usa el campo Search. Si la copia en caché está activada, la solución muestra la lista de los repositorios e imágenes disponibles. De forma predeterminada, la copia en caché de repositorios está desactivada.

    Activar la copia en caché de repositorios podría afectar al rendimiento de Kaspersky Container Security.

  4. Diríjase a la pestaña Image scan details y configure los siguientes parámetros para el análisis de imágenes:
    • Tiempo de espera del análisis, en minutos, para las imágenes de este registro. El tiempo de espera predeterminado de análisis es de 60 minutos.

      Si el análisis de la imagen tiene una duración mayor del tiempo especificado, el análisis se detiene y la imagen se devuelve a la cola de análisis. La solución pondrá la imagen en cola un máximo de 3 veces. Esto significa que el tiempo necesario para analizar una imagen del registro podría triplicarse.

      Configuración de extracción y análisis de imágenes del registro. De forma predeterminada, la opción Manual está seleccionada en Pull and scan images: las imágenes no se extraen automáticamente del registro, sino que el usuario puede añadir imágenes de forma manual a la lista de imágenes para su análisis. Las nuevas imágenes se ponen en cola para su análisis automáticamente.

      Si desea que las imágenes se extraigan del registro y se coloquen en cola para su análisis de forma automática, elija Automatic en Pull and scan images y configure la extracción y el análisis de imágenes. Las siguientes opciones están disponibles:

      • Scan interval (days): período, en días, para la extracción de imágenes del registro para su análisis. El valor predeterminado es 1 día.
      • Scan time (GMT): tiempo durante el cual se analizan las imágenes del registro.
      • De ser necesario, debe elegir la casilla de verificación para volver a hacer un análisis de las imágenes extraídas anteriormente siempre que se analicen nuevas imágenes.
      • De ser necesario, en Advanced settings, elija la casilla de verificación Name / tag criteria para usar el nombre de la imagen o los patrones de etiquetas a fin de especificar las imágenes que desee extraer y analizar. Si elige la casilla de verificación, Kaspersky Container Security solo extraerá las imágenes que coincidan con los patrones especificados para análisis.

        Puede utilizar los siguientes patrones:

        • nombre de imagen y etiqueta: <nombre><:etiqueta>
        • solo nombre de imagen: <nombre>
        • solo etiqueta: <:etiqueta>

        Por ejemplo:

        • Para el patrón alpine, se extraen todas las imágenes con el nombre "alpine", no importa cuál sea su etiqueta.
        • Para el patrón 4, se extraen todas las imágenes con la etiqueta "4", no importa cuáles sean los nombres de las imágenes.
        • Para el patrón alpine:4, se extraen todas las imágenes que tengan el nombre "alpine" y la etiqueta "4".

        Al generar patrones, puede usar el carácter * para reemplazar cualquier cantidad de caracteres.

        Puede añadir uno o más patrones.

      • Elija una de las siguientes condiciones para extraer imágenes:
        • Si no desea aplicar ninguna condición adicional, elija No additional conditions.
        • Si solo desea extraer las imágenes creadas en un plazo específico, elija esta opción y, en los campos a la derecha, especifique la duración del plazo y la unidad de medida. De forma predeterminada, el período es de 60 días.
        • Si desea extraer únicamente las imágenes que tengan las etiquetas más recientes (a partir de la fecha de creación de la imagen), elija esta opción y, en el campo a la derecha, especifique la cantidad de etiquetas recientes de cada repositorio que desee considerar.
      • De ser necesario, en Exceptions, elija las casillas de verificación para especificar las excepciones de la extracción de imágenes:
        • Never pull images with the name/tag pattern: con los patrones nombre de imagen y etiqueta puede especificar las imágenes que se excluyen de la extracción y el análisis.
        • Always pull images with the name/tag pattern: con los patrones nombre de imagen y etiqueta puede especificar las imágenes que se extraen y analizan siempre, sin importan otras condiciones establecidas anteriormente.
  5. Haga clic en Test connection para verificar si se puede establecer una conexión con el registro.
  6. Haga clic en el botón Save, en la parte superior de la ventana, para guardar la configuración de la integración al registro.

Ejemplo de la configuración de la integración al registro de Red Hat Quay

{

"form": {

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

"registryType": "quay",

"description": "Test",

"repositoryPathMode": "",

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

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

"authenticationType": "access_token",

"apiKey": "",

"username": "test-organization",

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

"scanTimeout": 100,

"scheduleType": "manual",

"schedulePeriod": 2,

"scheduleTime": 10,

"rescanExistingImages": true,

"pullAndScanTags": [],

"additionalConditions": 0,

"imagesCreatedWithinType": "days",

"imagesCreatedWithinCount": 1,

"latestTagsCount": 5,

"neverPullTags": [],

"alwaysPullTags": [],

"cacheRebuildPeriod": 15

}

}

Inicio de página
[Topic 292488]

Visualizar información sobre integraciones a registros

Puede visualizar la tabla que contiene todos los registros integrados a Kaspersky Container Security en la sección AdministrationIntegrationsImage registries.

En la tabla, se observa la siguiente información sobre los registros integrados:

  • Nombre de la integración al registro de imágenes.
  • Descripción (si se ha especificado una al crear la integración al registro de imágenes).
  • Tipo de registro conectado.
  • Dirección URL del registro.
  • Estado de la última conexión con el registro de imágenes: Success o Error. Si aparece el estado Error, la solución también muestra una descripción breve del error de conexión.

En la tabla, puede realizar las siguientes acciones:

  • Añadir nuevas integraciones a registros. Haga clic en Add registry, que se encuentra encima de la tabla, para abrir la ventana de configuración de integraciones.
  • Ver y modificar la configuración de integraciones a registros, incluso la configuración de extracción y análisis de imágenes. Haga clic en el enlace del nombre del registro para abrir la ventana de edición.

    En esta ventana, también puede hacer clic en Test connection para verificar si se puede establecer una conexión al registro.

  • Eliminar integraciones a registros.
Inicio de página
[Topic 292566]

Eliminar la integración a registros externos

Para eliminar la integración a un registro externo:

  1. En la sección AdministrationIntegrationsImage registries, elija la integración que desee eliminar; para ello haga clic en la casilla de verificación en la fila del nombre del registro. Puede elegir una o más integraciones.
  2. Haga clic en Delete por encima de la tabla.

    Podrá hacer clic en el botón Delete después de elegir al menos una integración.

  3. En la ventana que se abre, confirme la eliminación.

Kaspersky Container Security no analiza imágenes de un registro con el cual ya no existe ninguna integración.

Inicio de página
[Topic 274590]

Integración a Harbor

Puede integrar Kaspersky Container Security al registro externo de Harbor de una de las siguientes formas:

Harbor considera que la solución es una herramienta de análisis externa que busca vulnerabilidades en objetos. Debe configurar la integración de Kaspersky Container Security con el complemento de análisis de Harbor. La solución identificará el registro de imágenes creado automáticamente como Harbor External Integration y marcará el repositorio donde se encuentre con el icono de Harbor (Icono del registro de Harbor).

Esta integración sigue siendo la única integración a Harbor creada automáticamente y el nombre que recibe el registro no puede modificarse.

Para comenzar el análisis de Harbor, debe conocer el endpoint de la API de Kaspersky Container Security.

Para crear una integración a partir de una solicitud de Harbor, es necesario tener derechos para visualizar y configurar el análisis de CI/CD. Si no tiene estos derechos, Harbor no podrá conectarse con la solución para el análisis ni analizar objetos como parte del proceso de CI/CD.

Inicio de página
[Topic 272923]

Crear una integración a partir de una solicitud de Harbor

Para crear una integración al registro a partir de una solicitud de Harbor, debe tener una cuenta de Harbor y derechos de administrador y derechos para visualizar y configurar análisis en CI/CD en Kaspersky Container Security. Si no tiene estos derechos, Harbor no podrá conectarse con la solución para realizar análisis.

Para crear una integración a Harbor a partir de una solicitud de Harbor:

  1. En el menú principal, en el panel izquierdo de la interfaz web de Harbor, elija Administración (Administration)Servicios de consultas (Interrogation Services).
  2. Haga clic en el botón Nuevo análisis (New Scanner).
  3. Introduzca la siguiente información:
    • El nombre único de la integración a la solución que se mostrará en la interfaz de Harbor
    • Una descripción, de ser necesaria, de la herramienta externa de análisis que se añadirá
    • La dirección del endpoint de la API de Kaspersky Container Security que mostrará Harbor
  4. En la lista desplegable Autorización (Authorization), elija APIKey como método de autorización al conectar el registro con la solución.
  5. En el campo APIKey, introduzca el token de la API.

    Si el token de la API cambiara, debería declarar su nuevo valor antes de iniciar un análisis con Harbor. Si no se añade el nuevo token de la API a la configuración de la herramienta externa de análisis en Harbor, el análisis finalizará con un error.

  6. Elija la casilla Omitir verificación del certificado (Skip certificate verification) para omitir esta verificación.
  7. De ser necesario, haga clic en Probar conexión (Test Connection) para verificar que Harbor pueda conectarse con la solución.
  8. Haga clic en Añadir (Add) para crear la integración.

En la lista de herramientas de análisis disponibles en Administración (Administration)Servicios de consulta (Interrogation Services)Análisis (Scanners), se mostrará el nombre que ha asignado a la solución en Harbor.

La nueva herramienta de análisis se utilizará para analizar objetos si se especifica como la herramienta predeterminada en Harbor o se asigna al proyecto. Ambas opciones requieren una configuración adicional en Harbor.

Después de iniciar el análisis, en el registro externo se crea una integración a la solución a partir de la solicitud de Harbor. Kaspersky Container Security mostrará el registro de Harbor External Integration en la lista de registros de imágenes en la sección AdministrationIntegrationsImage registries. El repositorio que contiene las imágenes del registro externo se marcará con el icono de Harbor (Icono del registro de Harbor). Harbor External Integration se actualiza después de iniciar y ejecutar otro análisis en el registro externo.

No puede añadir una imagen a un registro de imágenes creado automáticamente desde Harbor con el botón Add images en la Consola de administración.

Los análisis de Harbor External Integration pueden iniciarse manualmente o ejecutarse automáticamente desde el registro externo. No puede iniciar el análisis o el reanálisis de imágenes desde el registro de imágenes de Harbor creado automáticamente en Kaspersky Container Security.

El registro de Harbor External Integration (y el registro creado como parte de la integración estándar a Harbor) se analiza según la directiva de análisis pertinente.

Al finalizar el análisis, la solución genera un informe de las vulnerabilidades halladas durante el análisis de los objetos elegidos y lo envía a Harbor. Si el envío del informe demora más de 5 segundos (por ejemplo, debido a la calidad de la conexión de red), verá un error en los resultados de recepción del análisis en la interfaz del registro externo.

Inicio de página
[Topic 273008]

Visualizar y editar la configuración de la integración Harbor External Integration

En la sección Administration → Integrations Image registries, se muestra el registro de imágenes de Harbor External Integration en la lista de registros integrados a Kaspersky Container Security.

Para modificar la configuración de Harbor External Integration:

  1. Elija el registro de Harbor External Integration en la lista de registros de imágenes en la sección Administration → Integrations Image registries.
  2. Especifique los valores de los siguientes parámetros de configuración:
    • Description en la pestaña Registry details
    • Scan timeout en la pestaña Image scan details

    No puede modificar otros datos del registro de Harbor External Integration.

  3. Haga clic en Save.
Inicio de página
[Topic 273028]

Reanálisis

Después de recibir los resultados de los análisis, los objetos del registro de Harbor External Integration no pueden enviarse para un reanálisis desde Kaspersky Container Security. Solo puede solicitarlo desde Harbor.

Si crea una integración a Harbor desde Kaspersky Container Security y el registro de imágenes creado es similar a Harbor External Integration, se aplican las siguientes reglas en un reanálisis:

  • Los objetos de análisis en el registro creado en la solución no ejecutan un reanálisis en Harbor External Integration.
  • Los objetos de análisis en Harbor External Integration no ejecutan un reanálisis en el registro creado en la solución.
Inicio de página
[Topic 273010]

Integración al proceso de CI/CD

Kaspersky Container Security le permite analizar imágenes en contenedores e IaC que residen en sistemas de gestión de repositorios de código en el

para detectar vulnerabilidades, malware, configuraciones incorrectas y datos confidenciales.

Durante la compilación de un proyecto en el sistema de gestión de repositorios, puede ejecutar el componente Kaspersky Container Security Scanner para verificar el cumplimiento de los objetos con las directivas de seguridad activas. Scanner se inicia desde un registro mediante un agente, como GitLab Runner in GitLab. Los datos sobre la tarea de análisis y los resultados del análisis se reenvían mediante una interfaz de programación de aplicaciones (API).

Al analizar un objeto durante la compilación de un proyecto, debe asegurarse de no elegir el paso Fail CI/CD en la configuración de la directiva de certeza aplicada. Si esta configuración está activa, la solución le enviará una notificación del error durante el análisis.

En la sección InventoryCI/CDScanning in CI/CD, podrá ver los resultados del análisis en la lista de imágenes.

Kaspersky Container Security muestra la siguiente información para cada objeto en la tabla:

  • Fecha y hora del último análisis.
  • Nombre.
  • Calificación de riesgo.
  • Resumen de los resultados del análisis y objetos identificados con vulnerabilidades, malware, datos confidenciales y configuraciones incorrectas.
  • Tipo de artefacto.
  • Número y canalización de la compilación donde se analiza la imagen.

En la sección ResourcesCI/CDScanning in CI/CD, también puede generar un informe de las imágenes que se analizan en un proceso de CI/CD.

Los informes se generan solo para los objetos que tienen el tipo de artefacto Image. En esta sección, no puede generar un informe para otros tipos de artefactos.

Contenido de esta sección:

Análisis de artefactos en procesos de CI/CD

Configurar la integración al proceso de CI/CD de GitLab

Configurar la integración al proceso de CI/CD de Jenkins

Configurar la integración al proceso de CI/CD de TeamCity

Definir la ruta a imágenes de contenedores

Supervisar la integridad y el origen de las imágenes

Ejecutar análisis en modo SBOM

Ejecutar análisis en modo SBOM básico

Obtener resultados del análisis en formato JSON o HTML

Especificar secretos al iniciar un análisis

Inicio de página
[Topic 267228]

Análisis de artefactos en procesos de CI/CD

Kaspersky Container Security le permite analizar imágenes usadas en CI/CD. Para analizar imágenes de CI/CD, debe configurar la integración de Kaspersky Container Security a los procesos de CI/CD.

Los datos al escuchar e interceptar el tráfico de red deben transferirse de forma segura entre el entorno de CI/CD y la solución.

Para analizar los repositorios e imágenes (para realizar el análisis de los archivos de configuración) utilizados en el proceso de CI/CD, debe añadir una fase a la canalización de CI/CD que ejecute Kaspersky Container Security Scanner.

Para analizar imágenes de CI/CD, en el archivo de configuración usado para integrar al repositorio, especifique los valores de las variables de entorno API_BASE_URL (dirección web del servidor de la API de Kaspersky Container Security) y API_TOKEN (token de acceso a la API de Kaspersky Container Security) de Scanner. También debe especificar el valor de API_CA_CERT (certificado que verifica el servidor host de la solución API) o SKIP_API_SERVER_VALIDATION = true para omitir el análisis.

Los resultados del análisis se reenviarán al servidor y se mostrarán en la Consola de administración, en la sección ResourcesCI/CD. En la tabla, verá una lista de las imágenes analizadas, los resultados de la calificación de riesgos y las vulnerabilidades detectadas.

Puede hacer clic en el enlace del nombre para abrir una página que contiene información detallada sobre los resultados de los análisis de las imágenes. Esta página es similar a la página que muestra los resultados de los análisis de las imágenes del registro.

Kaspersky Container Security también mostrará el tipo de artefacto de cada objeto. Se utilizan dos artefactos principales:

  • El sistema de archivos es el repositorio que contiene los archivos de configuración.
  • La imagen de contenedor es la plantilla utilizada para la implementación del contenedor en el entorno de ejecución.

Para cada objeto de análisis, debe especificar el número de compilación (BUILD_NUMBER) y la

de la compilación (BUILD_PIPELINE). Puede usar estos parámetros para determinar la etapa puntual en la que el objeto dio un error.

En el caso de las imágenes de CI/CD, no es posible volver a hacer un análisis.

Kaspersky Container Security realiza los siguientes tipos de análisis en CI/CD:

  • Análisis de imágenes del registro de imágenes. La solución ejecuta un análisis después de que la compilación sea correcta y guarda la imagen en el registro de imágenes.
  • Análisis de imágenes de archivos comprimidos TAR. Un archivo comprimido TAR se almacena como el artefacto de compilación que la solución analizará en la siguiente canalización de compilación.
  • Análisis de un repositorio de Git, que puede realizarse de las siguientes maneras:
    • para la rama de un proyecto (ruta de desarrollo individual) en el repositorio de Git
    • para un commit (punto de control o captura del estado en la escala de tiempo de un proyecto)

Para analizar una imagen de un registro de imágenes:

Ejecute un comando, con el siguiente formato, para iniciar el análisis:

/scanner [TARGET] --stdout

donde:

  • <TARGET> es la dirección completa de la imagen en el registro
  • <--stdout> es el servicio de notificaciones para el registro de eventos de seguridad

Para acceder al registro, debe configurar el nombre de usuario COMPANY_EXT_REGISTRY_USERNAME y la contraseña (token) COMPANY_EXT_REGISTRY_PASSWORD en las variables de entorno.
Para usar un certificado y establecer una conexión segura con el registro, debe especificar los datos del certificado en la variable de entorno COMPANY_EXT_REGISTRY_TLS_CERT como la siguiente cadena en el formato .PEM : -----BEGIN CERTIFICATE-----\n... <datos del certificado > ...\n-----END CERTIFICATE----- .

Ejemplos del análisis de imágenes en el CI/CD de GitLab y CI/CD de Jenkins.

Para analizar una imagen de un archivo comprimido TAR:

  1. Compile una imagen y guárdela como archivo comprimido TAR con cualquier aplicación para crear imágenes en contenedores.
  2. Ejecute un comando, con el siguiente formato, para iniciar el análisis:

    /scanner [TARGET] --file --stdout

    donde:

    • <TARGET> es la ruta al archivo que tiene la imagen que se analizará
    • <--file> es la marca que indica el análisis del archivo TARGET
    • <--stdout> es el servicio de notificaciones para el registro de eventos de seguridad

    Ejemplo de un archivo de configuración con parámetros para analizar un archivo comprimido TAR:

    stages:

    - build_tar

    - scan_tar

    - push_image

    build_tar:

    stage: build_tar

    tags:

    - k8s

    - docker

    image:

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

    entrypoint: [""]

    dependencies:

    - scan_source_branch

    - scan_source_commit

    script:

    - mkdir -p /kaniko/.docker

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

    - /kaniko/executor

    --context "${CI_PROJECT_DIR}"

    --dockerfile "${CI_PROJECT_DIR}/Dockerfile"

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

    --compressed-caching=false

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

    --build-arg GITLAB_TOKEN=${CI_JOB_TOKEN}

    --no-push

    --tarPath=image.tar

    artifacts:

    paths:

    - image.tar

    expire_in: 2 hours

    scan_tar:

    stage: scan_tar

    tags:

    - k8s

    - docker

    dependencies:

    - build_tar

    image:

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

    pull_policy: always

    entrypoint: [""]

    variables:

    API_BASE_URL: ${API_BASE_URL}

    API_TOKEN: ${API_TOKEN}

    API_CA_CERT: ${KCS_CA_CERT}

    script:

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

    artifacts:

    paths:

    - image.tar

    expire_in: 2 hours

    push_image:

    stage: push_image

    tags:

    - k8s

    image:

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

    entrypoint: [""]

    dependencies:

    - scan_tar

    script:

    - mkdir -p $HOME/.docker

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

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

Para analizar el repositorio de Git:

  1. En el archivo de configuración del repositorio de Git, en las variables de entorno debe especificar el token para acceder al repositorio (GITHUB_TOKEN o GITLAB_TOKEN).
  2. Ejecute un comando, con el siguiente formato, para iniciar el análisis:

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

    donde:

    • <DESTINO> es la dirección web (URL) del repositorio de Git
    • <--repo> es la marca que indica el análisis del archivo TARGET
    • <--branch BRANCH> es la rama del repositorio que se analizará
    • <--commit COMMIT> es el hash del commit que se analizará
    • <--stdout> es el servicio de notificaciones para el registro de eventos de seguridad

    Ejemplo del archivo de configuración con variables de entorno para analizar una imagen de un repositorio Git

    stages:

    - scan_source_branch

    - scan_source_commit

    scan_source_branch:

    stage: scan_source_branch

    image:

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

    pull_policy: always

    entrypoint: [""]

    tags:

    - k8s

    - docker

    variables:

    API_BASE_URL: ${API_BASE_URL}

    API_TOKEN: ${API_TOKEN}

    API_CA_CERT: ${KCS_CA_CERT}

    script:

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

    scan_source_commit:

    stage: scan_source_commit

    image:

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

    pull_policy: always

    entrypoint: [""]

    tags:

    - k8s

    - docker

    variables:

    API_BASE_URL: ${API_BASE_URL}

    API_TOKEN: ${API_TOKEN}

    API_CA_CERT: ${KCS_CA_CERT}

    script:

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

Para analizar el sistema de archivos

, debe usar la imagen de análisis con la base de datos vX.XX-with-db. Para analizar archivos IaC, la herramienta de análisis debe tener acceso a los archivos dentro del contenedor (por ejemplo, tras montar un volumen con archivos o copiar archivos al sistema de archivos del contenedor).

Pasos para analizar el sistema de archivos:

Ejecute un comando, con el siguiente formato, para iniciar el análisis:

/scanner [TARGET] --sources --stdout

donde:

  • <DESTINO> es la ruta a la carpeta del archivo a analizar
  • <--sources> es el indicador que señala la necesidad de analizar archivos en el sistema de archivos
  • <--stdout> es el servicio de notificaciones para el registro de eventos de seguridad

Ejemplo de un archivo de configuración con variables utilizadas para analizar archivos en el sistema de archivos

A continuación, se muestran las variables para la siguiente situación: durante el análisis, la herramienta de análisis accede a los archivos del proyecto de GitLab ubicados en el sistema de archivos local mediante la variable CI_PROJECT_DIR.

scan_folder:

stage: scanner

image:

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

entrypoint: [""]

tags:

- k8s

variables:

SCAN_TARGET: ${CI_PROJECT_DIR}

BUILD_NUMBER: ${CI_JOB_ID}

BUILD_PIPELINE: ${CI_PIPELINE_ID}

API_BASE_URL: ${API_BASE_URL}

API_TOKEN: ${API_TOKEN}

SKIP_API_SERVER_VALIDATION: 'true'

script:

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

Puede ver los resultados de los análisis en ResourcesCI/CD o puede descargarlos en formatos .SPDX, .JSON o .HTML.

Inicio de página
[Topic 296997]

Configurar la integración al proceso de CI/CD de GitLab

En este ejemplo, se utiliza una imagen específica para el análisis con bases de datos de vulnerabilidades incorporadas ubicadas en el registro de imágenes del fabricante de Kaspersky Container Security.

Para usar la funcionalidad de análisis de imágenes en el proceso de CI/CD de GitLab, debe activar el uso de GitLab Container Registry.

Configurar la integración comprende los pasos siguientes:

  1. Autorizar la CI/CD de GitLab en el registro de imágenes del fabricante de Kaspersky Container Security:
    1. En la estación de trabajo del operador del clúster, debe ejecutar el siguiente comando para preparar un hash Base64 de los datos de autorización:

      printf "login:password" | openssl base64 -A

      donde "login" y "password" equivalen al nombre de usuario y la contraseña de la cuenta en el registro de imágenes del fabricante de Kaspersky Container Security.

    2. En las variables de entorno de CI/CD de GitLab, debe crear la variable DOCKER_AUTH_CONFIG (en el repositorio de GitLab, elija Configuración [Settings] → CI/CD, haga clic en el botón Expandir [Expand] para expandir Variables y luego haga clic en el botón Añadir variable [Add variable]).
    3. Especifique la variable de la siguiente forma:

      {

      "auths": {

      "repo.cloud.example.com": {

      "auth": "base64hash"

      }

      }

      }

      donde base64hash es la cadena obtenida en el paso 1.1.

  2. Autorizar las solicitudes de CI/CD de GitLab al enviar datos a Kaspersky Container Security:
    1. Copie el token de la API en la página My profile.
    2. Pegue el valor copiado del token de la API en la variable API_TOKEN en el archivo de configuración .gitlab-ci.yml.
  3. Añadir la etapa de análisis de imágenes en el proceso de CI/CD

    Para añadir el análisis a la canalización CI/CD, debe añadir las siguientes líneas al archivo .gitlab-ci.yml:

    1. Añada información sobre la imagen de análisis que contiene las bases de datos de vulnerabilidades y otros objetos maliciosos después de la etapa de compilación del código, de la siguiente forma:

      scan_image:

      stage: scanner

      image:

      name: repo.cloud.example.com/repository/company/scanner:v2.0-with-db

      entrypoint: [""]

      pull_policy: always

      Recomendamos que siempre determine el parámetro pull_policy para recibir las compilaciones relevantes que contienen las bases de datos actualizadas de vulnerabilidades y otros objetos maliciosos para cada análisis.

    2. Debe especificar la etiqueta, el ID de compilación y el token de la API para autorizar las solicitudes de análisis de CI/CD a Kaspersky Container Security de la siguiente manera:

      SCAN_TARGET: ${CI_REGISTRY_IMAGE}:master

      BUILD_NUMBER: ${CI_JOB_ID}

      BUILD_PIPELINE: ${CI_PIPELINE_ID}

      API_TOKEN: <API token value>

      En este ejemplo, verá la etiqueta master; también puede especificar otra etiqueta.

    3. Si configura el análisis de un repositorio privado, debe especificar los datos de autorización para asegurarse de que Scanner pueda acceder a la imagen. Los datos para realizar la autorización pueden configurarse como variables.

      COMPANY_EXT_REGISTRY_USERNAME: ${COMPANY_EXT_REGISTRY_USERNAME}

      COMPANY_EXT_REGISTRY_PASSWORD: ${COMPANY_EXT_REGISTRY_PASSWORD}

    4. Para usar un certificado y establecer una conexión segura con el registro, debe especificar los datos del certificado en la variable de entorno COMPANY_EXT_REGISTRY_TLS_CERT como una cadena con el formato .PEM:

      -----BEGIN CERTIFICATE-----\n... <datos del certificado> ...\n-----END CERTIFICATE-----.

    5. Specify the following parameters of communication using a proxy server:

      HTTP_PROXY<proxy server for HTTP requests>

      HTTPS_PROXY<proxy server for HTTPS requests>

      NO_PROXY<domains or appropriate domain masks to be excluded from proxying>

    6. De ser necesario, especifique la variable que usará para verificar el servidor de recepción de datos en CI/CD con un certificado de CA en el controlador de entrada:
      API_CA_CERT: ${KCS_CA_CERT}

      El certificado de CA del controlador de entrada se determina en el campo de texto como cadena con el formato .PEM:

      ----- BEGIN CERTIFICATE ----- \ n... <datos del certificado> ...\ n ----- END CERTIFICATE -----

      Si no se configura la variable API_CA_CERT, el análisis comenzará, pero no podrá completarse.

      Usar el certificado de CA del controlador de entrada permite al componente Scanner ejecutado en CI/CD verificar la autenticidad del servidor de recepción de datos.

      Si utiliza un certificado autofirmado o desea omitir la verificación del servidor de recepción de datos con el certificado de CA del controlador de entrada, debe especificar el valor de la variable para omitir la verificación:

      SKIP_API_SERVER_VALIDATION: 'true'

    7. Especifique la dirección web del servidor host de la API de Kaspersky Container Security:

      API_BASE_URL<web address>

      variables:

      API_BASE_URL: ${API_BASE_URL}

      script:

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

      artifacts:

      paths:

      - artifact-result.json

Después de configurar la integración a un registro externo, podrá analizar las imágenes en el proceso de CI/CD, incluso un análisis en el modo SBOM. Puede ver los resultados de los análisis en ResourcesCI/CD o puede descargarlos en formatos .SPDX, .JSON o .HTML.

Inicio de página
[Topic 297122]

Configurar la integración al proceso de CI/CD de Jenkins

Configurar la integración a CI/CD de Jenkins comprende los pasos siguientes:

  1. Autorizar la CI/CD de Jenkins en el registro de imágenes del fabricante de Kaspersky Container Security. Para ello, en la estación de trabajo del operador del clúster, debe ejecutar el siguiente comando para preparar un hash Base64 de los datos de autorización:

    printf "usuario:contraseña" | openssl base64 -A

    donde "usuario" y "contraseña" equivalen al nombre de usuario y la contraseña de la cuenta en el registro de imágenes del fabricante de Kaspersky Container Security.

  2. Autorizar la API de Kaspersky Container Security. Para ello, siga los siguientes pasos:
    1. Copie el token de la API en la página My profile.
    2. Pegue el valor copiado del token de la API en la variable API_TOKEN en el archivo de configuración Jenkinsfile.
  3. Autenticar el servidor de recepción de datos en CI/CD con el certificado de CA del controlador de entrada. Para autenticarlo, en el archivo de configuración Jenkinsfile, especifique una de las siguientes variables:
    1. -e API_CA_CERT=${KCS_CA_CERT} implica la realización de la autenticación y que Scanner iniciado en CI/CD puede garantizar que el servidor de recepción es auténtico.
    2. -e SKIP_API_SERVER_VALIDATION=true implica la no realización de la autenticación del servidor de recepción con el certificado de CA del controlador de entrada.
  4. Crear las variables de entorno de Jenkins:

    Para crear las variables de entorno, añada las siguientes líneas a Jenkinsfile:

    1. Añada información sobre el registro de contenedores donde se encuentra Scanner, de la siguiente manera:

      LOGIN: nombre de la cuenta en el registro de Scanner

      PASS: contraseña del registro de Scanner

    2. Si configura el análisis de un repositorio privado, debe especificar los siguientes datos de autorización para asegurarse de que Scanner pueda acceder a una imagen:

      COMPANY_EXT_REGISTRY_USERNAME: nombre de la cuenta del registro de la imagen analizada

      COMPANY_EXT_REGISTRY_PASSWORD: contraseña del registro de la imagen analizada

    3. Para usar un certificado y establecer una conexión segura con el registro, debe especificar los datos del certificado en la variable de entorno COMPANY_EXT_REGISTRY_TLS_CERT como una cadena con el formato .PEM:

      -----BEGIN CERTIFICATE-----\n... <datos del certificado> ...\n-----END CERTIFICATE-----.

    4. Especifique las siguientes variables de la comunicación con un servidor proxy:

      HTTP_PROXY: <servidor proxy para solicitudes HTTP>

      HTTPS_PROXY: <servidor proxy para solicitudes HTTPS>

      NO_PROXY: <dominios o máscaras de dominio adecuadas que se excluirán del redireccionamiento>

  5. Añadir información para iniciar Scanner. Se añade la información para iniciar Scanner (esta contiene las bases de datos de vulnerabilidades y otros objetos maliciosos) al archivo de configuración Jenkinsfile como una canalización declarativa o de script.

    Ejemplo de la información para iniciar Scanner como una canalización declarativa

    pipeline {

    agent any

    stages {

    stage('run scanner') {

    steps {

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

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

    }

    }

    }

    }

    Ejemplo de los datos para iniciar Scanner como una canalización de script

    node {

    stage ('run scanner') {

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

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

    }

    }

  6. Generar un artefacto para su descarga

    Puede generar un artefacto para descargar y recibir los resultados del análisis en los formatos .HTML o .JSON. Puede especificar el formato del artefacto en --stout de la siguiente manera:

    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'

    }

    }

    }

    }

    Para generar un artefacto .JSON, vuelva a escribir la línea --html --stdout> result.html' en el ejemplo anterior de la siguiente manera:

    --stdout > result.json',

    y en la línea archiveArtifacts artifacts, especifique el nombre del archivo en el formato definido: 'result.json'.

    Puede obtener los resultados de los análisis en el formato que especificó y también puede visualizarlos desde la sección ResourcesCI/CD.

Inicio de página
[Topic 297198]

Configurar la integración al proceso de CI/CD de TeamCity

Para configurar la integración a CI/CD de TeamCity:

  1. Copie el token de la API en la página My profile para autorizar la API de Kaspersky Container Security en TeamCity.
  2. En el menú de configuración de la interfaz web de TeamCity, elija Build Configuration HomeParameters.
  3. Haga clic en Add new parameters para añadir los valores de las siguientes variables de entorno:
    • API_TOKEN: determine el valor copiado del token de la API de Kaspersky Container Security.
    • API_BASE_URL: determine la dirección URL de Kaspersky Container Security.
    • RUST_BACKTRACE: de ser necesario, escriba full para hacer el seguimiento de la pila.
    • SKIP_API_SERVER_VALIDATION: escriba true si usa un certificado autofirmado o si necesita omitir la autenticación del servidor de recepción con el certificado de CA del controlador de entrada.
    • COMPANY_EXT_REGISTRY_USERNAME: determine el nombre de la cuenta del registro de la imagen analizada.
    • COMPANY_EXT_REGISTRY_PASSWORD: determine la contraseña del registro de la imagen analizada.
    • COMPANY_EXT_REGISTRY_TLS_CERT: determine los datos del certificado para establecer una conexión segura con el registro.

      Los datos del certificado se declaran como una cadena en el formato .PEM:
      -----BEGIN CERTIFICATE-----\n... <datos del certificado> ...\n-----END CERTIFICATE-----.

    • HTTP_PROXY: servidor proxy para solicitudes HTTP
    • HTTPS_PROXY: servidor proxy para solicitudes HTTPS
    • NO_PROXY: dominios o máscaras de dominio adecuadas que se excluirán del redireccionamiento
  4. Diríjase a la sección Build Configuration HomeBuild Step: Command Line y haga clic en Add build step para añadir el paso de compilación.
  5. En la ventana que se abre, defina los siguientes parámetros del paso de compilación:
    • En la lista desplegable Runner type, elija Command Line.
    • En la lista desplegable Run, elija Custom script.
    • En el campo Custom script, detalle la ruta al contenedor para el análisis (por ejemplo, /bin/sh /entrypoint.sh nginx:latest).
  6. En Docker Settings, especifique los siguientes parámetros de la configuración:
    • En el campo Run step within Docker container, introduzca la dirección del análisis para el registro de Docker. Por ejemplo, company.gitlab.cloud.net:5050/companydev/example/scanner:v2.0.0-with-db.
    • En el campo Additional docker run arguments, aumente el valor de privilegios a --privileged.
  7. Haga clic en Save para guardar la configuración.
  8. Haga clic en Run, en la esquina superior derecha de la página, para comenzar la compilación.
  9. De ser necesario, descargue el artefacto con los resultados del análisis, que estará disponible en la pestaña Artifacts, en la página de resultados de análisis en la interfaz web de TeamCity.

Inicio de página

[Topic 297409]

Definir la ruta a imágenes de contenedores

Para iniciar un análisis, la solución debe determinar la ruta a las imágenes del contenedor que deben analizarse. Esta ruta puede especificarse de dos formas:

  • Detallando la etiqueta de la imagen después del nombre del registro, el nombre del repositorio y el nombre de la imagen. La etiqueta es una descripción de la imagen modificable y fácil de leer.

    En este caso, la ruta tendrá el siguiente formato: <registro>/<repositorio>/<nombre de la imagen>:<etiqueta>. Por ejemplo, http://docker.io/library/nginx:1.20.1.

  • Detallando el código hash de la imagen después del nombre del registro, el nombre del repositorio y el nombre de la imagen. El código hash es una propiedad interna e integral de una imagen, en particular, el hash de su contenido (se utiliza un algoritmo de hash SHA256).

    Al usar un código hash, la ruta será la siguiente: <registro>/<repositorio>/<nombre de la imagen><código hash>. Por ejemplo, http://docker.io/library/nginx@sha256:af9c...69ce.

Una etiqueta puede asignarse a diferentes códigos hash, mientras que el código hash es exclusivo de cada imagen.

Según el método usado para especificar la ruta a la imagen, Kaspersky Container Security realiza una de las siguientes acciones antes del análisis:

  • Convierte la etiqueta en un código hash de confianza.
  • Verifica si el código hash especificado en la ruta de la imagen es de confianza. Se considerará que un código hash es de confianza si garantiza cierto nivel de seguridad para mantener la protección deseada respecto del objeto codificado con el algoritmo de hash.

Solo se envían códigos hash de confianza al entorno de ejecución del contenedor.

Antes de ejecutar un contenedor, el contenido de la imagen se compara con el código hash recibido. Para reconocer un código hash como de confianza y una imagen como no dañada, Kaspersky Container Security verifica la integridad y la autenticidad de la firma de la imagen.

Inicio de página

[Topic 265788]

Supervisar la integridad y el origen de las imágenes

Al analizar imágenes en CI/CD, Kaspersky Container Security ofrece protección frente a la suplantación de imágenes a nivel del registro. Para controlar la integridad y el origen de las imágenes de los contenedores desplegados en el clúster del orquestador, se verifican las firmas de las imágenes, comenzando en la etapa de compilación en CI.

La integridad de las imágenes se controla en dos etapas:

  • Las imágenes de contenedores se firman después de crearse. Para ello se utilizan aplicaciones externas de firmas.
  • Las firmas de las imágenes se verifican antes de desplegar las imágenes.

    La solución guarda una clave de firma, que se basa en la función hash SHA256 y se utiliza como el código para validar la firma. Al desplegarse en un orquestador, Kaspersky Container Security consulta al servidor de firmas para confirmar la autenticidad de la firma.

Kaspersky Container Security verifica las firmas de las imágenes de la siguiente manera:

  1. En la sección AdministrationIntegrationsImage signature validators, puede configurar la integración de la solución a aplicaciones externas de validación de firmas en imágenes.
  2. En la sección PoliciesRuntimePolicies, se añade una directiva referente a la ejecución para proteger el contenido de la imagen. La directiva referente a la ejecución valida la autenticidad de las firmas. Las firmas digitales se validan sobre la base de la configuración de los validadores de firmas en imágenes.
  3. El orquestador inicia el despliegue de imágenes y utiliza un para ejecutar una solicitud de despliegue al agente (kube-agent).

    Para enviar la solicitud al agente de Kaspersky Container Security, configure el controlador de admisión dinámica en el archivo de configuración values.yaml.

  4. Sobre la base de la directiva referente a la ejecución pertinente, el agente verifica la configuración de la validación de firmas en la sección AdministrationIntegrationsImage signature validators.
  5. Si dicha verificación confirma la autenticidad y la validez de la firma, la solución permite que la imagen se despliegue. De lo contrario, se bloqueará el despliegue.
Inicio de página
[Topic 263762]

Ejecutar análisis en modo SBOM

Kaspersky Container Security le permite iniciar Scanner para verificar las imágenes en busca de vulnerabilidades en el modo

. En este caso, la solución analiza el archivo SBOM creado en lugar del archivo comprimido TAR.

Usar una SBOM plantea las siguientes ventajas:

  • Menos recursos necesarios para analizar imágenes en busca de vulnerabilidades
  • Menor tiempo de análisis debido a la verificación automática del funcionamiento y el uso correctos de los componentes de la solución
  • Capacidad de análisis de todas las vulnerabilidades existentes en una imagen sin excepciones
  • Alta fiabilidad en los resultados de los análisis

En CI/CD, el proceso de análisis comprende dos etapas: la recepción de un archivo SBOM y el análisis de una imagen sobre la base del archivo SBOM recibido. El análisis de las imágenes se realiza de la siguiente manera:

  • Durante el análisis de CI/CD se genera la lista de los componentes de la imagen y se envía el artefacto generado a Kaspersky Container Security.
  • Con el controlador de la imagen, la solución reenvía el archivo SBOM recibido para su análisis.

    Para analizar en el modo SBOM, Kaspersky Container Security inicia un análisis con bases de datos preinstaladas que contienen información sobre vulnerabilidades y otros objetos maliciosos (scanner:v2.0-with-db, scanner:v2.0-with-db-java).

Para analizar imágenes en CI/CD, debe especificar los valores de las siguientes variables de entorno en el archivo:

  • API_TOKEN: valor del token de la API de Kaspersky Container Security
  • API_BASE_URL: URL de Kaspersky Container Security
  • API_CA_CERT: datos del certificado de CA del controlador de entrada que permite al componente Scanner ejecutado en CI/CD verificar la autenticidad del servidor de recepción de datos. Si utiliza un certificado autofirmado o desea omitir la verificación del servidor de recepción de datos con el certificado de CA del controlador de entrada, debe proporcionar el valor de la variable para omitir la verificación:

    SKIP_API_SERVER_VALIDATION: 'true'

  • COMPANY_EXT_REGISTRY_USERNAME: determine el nombre de la cuenta del registro de la imagen analizada.
  • COMPANY_EXT_REGISTRY_PASSWORD: determine la contraseña del registro de la imagen analizada.
  • COMPANY_EXT_REGISTRY_TLS_CERT: determine los datos del certificado para establecer una conexión segura con el registro.

    Los datos del certificado se declaran como una cadena en el formato .PEM:
    -----BEGIN CERTIFICATE-----\n... <datos del certificado> ...\n-----END CERTIFICATE-----.

  • HTTP_PROXY: servidor proxy para solicitudes HTTP
  • HTTPS_PROXY: servidor proxy para solicitudes HTTPS
  • NO_PROXY: dominios o máscaras de dominio adecuadas que se excluirán del redireccionamiento

Para los siguientes análisis, Kaspersky Container Security generará un informe en el formato CycloneDX. También puede generar un artefacto con la SBOM para descargarlo desde el proceso de CI/CD en los formatos

o .

Para generar un archivo SBOM con formato .SPDX cuando Scanner opera en la creación de la SBOM:

Introduzca el siguiente comando en el archivo de configuración .gitlab-ci.yml:

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

donde:

<--sbom> indica la creación de un archivo SBOM.

<--spdx> indica que el artefacto se genera con el formato .SPDX.

<--stdout > example.spdx> indica la salida de los datos a un archivo con el formato .SPDX.

Para generar un archivo SBOM con formato .CDX cuando Scanner opera en la creación de la SBOM:

Introduzca el siguiente comando en el archivo de configuración .gitlab-ci.yml:

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

donde:

<--sbom> indica la creación de un archivo SBOM.

<--cdx> indica que el artefacto se genera con el formato .CDX.

<--stdout > example.cdx.json> indica la salida de los datos a un archivo con el formato .JSON.

El archivo resultante (por ejemplo, example.cdx.json) se especifica como un artefacto artifacts: paths:

El análisis con un archivo SBOM solo es posible al analizar imágenes en busca de vulnerabilidades. Si el proceso de CI/CD exige analizar en busca de otros riesgos y amenazas (como configuraciones incorrectas), debe ejecutar el análisis correspondiente de forma independiente y añadir los resultados al controlador de la imagen junto al archivo SBOM.

Inicio de página
[Topic 297411]

Ejecutar análisis en modo SBOM básico

Kaspersky Container Security le permite iniciar Scanner para verificar las imágenes en busca de vulnerabilidades en el modo SBOM básico. En este caso, la solución analiza un archivo SBOM creado especialmente y los resultados estarán disponibles en la etapa de CI/CD.

Los datos al escuchar e interceptar el tráfico de red deben transferirse de forma segura entre el entorno de CI/CD y la solución.

Puede generar un artefacto para descargar y recibir los resultados en los formatos .SPDX, .HTML, .JSON o .CDX.

Puede obtener los resultados de los análisis en el formato que especificó y también puede visualizarlos desde la sección ResourcesCI/CD.

En esta sección

Ejecutar un análisis en GitLab

Ejecutar un análisis fuera del proceso de CI/CD

Inicio de página
[Topic 297412]

Ejecutar un análisis en GitLab

Para iniciar el análisis en el modo SBOM básico en GitLab, al configurar el análisis de imágenes en el proceso de CI/CD, debe editar el archivo de configuración .gitlab-ci.yml de la siguiente manera:

  1. Añada información sobre la imagen que se analizará en CI/CD de la siguiente manera:

    scan_image:

    stage: scanner

    image:

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

    entrypoint: [""]

    pull_policy: always

  2. Detalle la etiqueta de la plataforma de orquestación:

    k8s

    En el ejemplo, la etiqueta k8s se utiliza para Kubernetes, pero también puede especificar otra etiqueta para otra plataforma de orquestación compatible.

  3. Especifique el ID de compilación, los datos del registro de imágenes de la imagen analizada y del certificado para establecer una conexión segura con el registro, el ID de la canalización y el token de la API para autorizar las solicitudes del análisis de CI/CD en Kaspersky Container Security de la siguiente manera:

    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 token value>

    HTTP_PROXY: <servidor proxy para solicitudes HTTP>

    HTTPS_PROXY<proxy server for HTTPS requests>

    NO_PROXY<domains or appropriate domain masks to be excluded from proxying>

    Los datos del certificado para establecer una conexión segura con el registro de imágenes en la variable COMPANY_EXT_REGISTRY_TLS_CERT se especifican como una cadena en el formato .PEM:
    -----BEGIN CERTIFICATE-----\n... <datos del certificado> ...\n-----END CERTIFICATE----- .

  4. Si es necesario, especifique una variable para analizar el certificado de la API de la solución:

    API_CA_CERT: ${KCS_CA_CERT}

    Si no se configura la variable API_CA_CERT, el análisis comenzará, pero no podrá completarse.

  5. Especifique la dirección web del servidor host de la API de Kaspersky Container Security:

    API_BASE_URL – <web address>

  6. Especifique el comando para crear un artefacto en uno de los siguientes formatos cuando se inicie el análisis:
    • Para generar un artefacto en el formato .JSON:

      script:

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

      artifacts:

      paths:

      - artifact-result.json

    • Para generar un artefacto en el formato .HTML:

      script:

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

      artifacts:

      paths:

      - artifact-result.html

    • Para generar un artefacto SBOM en el formato .SPDX:

      script:

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

      artifacts:

      paths:

      - artifact-result.spdx

    • Para generar un artefacto SBOM en el formato .JSON:

      script:

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

      artifacts:

      paths:

      - artifact-result.cdx.json

Ejemplo de un análisis configurado para ejecutarse en el modo SBOM básico y la generación de un artefacto en el formato .HTML en GitLab

scan_image:

stage: scanner

image:

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

entrypoint: [""]

pull_policy: always

tags:

- k8s

variables:

SCAN_TARGET: ${CI_REGISTRY_IMAGE}:master

COMPANY_EXT_REGISTRY_USERNAME: ${COMPANY_EXT_REGISTRY_USERNAME}

COMPANY_EXT_REGISTRY_PASSWORD: ${COMPANY_EXT_REGISTRY_PASSWORD}

BUILD_NUMBER: ${CI_JOB_ID}

BUILD_PIPELINE: ${CI_PIPELINE_ID}

API_CA_CERT: ${KCS_CA_CERT}

API_TOKEN: <API token value>

# Demostand KCS.int API:

API_BASE_URL: <web address>

script:

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

artifacts:

paths:

- artifact-result.html

Inicio de página

[Topic 301503]

Ejecutar un análisis fuera del proceso de CI/CD

En caso de recursos limitados, puede ejecutar la herramienta de análisis de Kaspersky Container Security independientemente de los nodos de trabajo en el proceso de CI/CD. Por ejemplo, mediante el comando docker run en un nodo de Docker o como un Job en un clúster de Kubernetes.

Para ahorrar la mayor cantidad de recursos, recomendamos utilizar la imagen scanner: 2.0.0-lite, ya que no contiene bases de datos de vulnerabilidades y envía el archivo SBOM en función de los resultados del análisis de la imagen de destino a la solución que utiliza la API.

Para iniciar la herramienta de análisis de Kaspersky Container Security fuera del proceso de CI/CD, debe especificar los siguientes parámetros obligatorios:

  • API_TOKEN: el <valor del token de la API> es el token del usuario de Kaspersky Container Security para la autenticación en la interfaz de la API de la solución.
  • API_BASE_URL: la <dirección web> es un enlace para acceder a la interfaz de la API de Kaspersky Container Security. Se puede acceder a la interfaz mediante los protocolos HTTP y HTTPS, según las variables de entorno de la solución desplegada.
  • API_CA_CERT: el <certificado en formato .PEM> es una variable para la validación del certificado de la API de la solución.
  • SKIP_API_SERVER_VALIDATION = true es una variable que, de ser necesario, se puede especificar para omitir la validación del certificado de la API de Kaspersky Container Security.

También puede especificar parámetros adicionales para el funcionamiento de la herramienta de análisis:

  • COMPANY_EXT_REGISTRY_USERNAME: el <nombre de usuario del registro> es el nombre de usuario del registro donde se almacena la imagen que se va a analizar.
  • COMPANY_EXT_REGISTRY_PASSWORD: la <contraseña del usuario del registro> es la contraseña del usuario del registro donde se almacena la imagen que se va a analizar.
  • BUILD_NUMBER: el <ID del número de compilación> es el ID que se usa para rastrear el número de compilación en la interfaz de la solución. Kaspersky Container Security muestra el número en los resultados del análisis del proceso de CI/CD.
  • BUILD_PIPELINE: el <ID del número de canalización> es el identificador que se utiliza para rastrear el número de canalización en la interfaz de la solución. Kaspersky Container Security muestra el número en los resultados del análisis del proceso de CI/CD.
  • HTTP_PROXY: el <servidor proxy para solicitudes HTTP> es una variable que indica el uso de un servidor proxy HTTP cuando se requiere acceso a recursos externos.
  • HTTPS_PROXY: el <servidor proxy para solicitudes HTTPS> es una variable que indica el uso de un servidor proxy HTTPS cuando se requiere acceso a recursos externos.
  • NO_PROXY: los <dominios o máscaras correspondientes a dominios utilizados para la exclusión de proxy> son una variable que indica los recursos disponibles de manera local cuando se utiliza un servidor proxy.

Ejecutar un análisis en Docker

Para iniciar un análisis en el modo SBOM básico en Docker:

  1. Especifique los parámetros obligatorios para Kaspersky Container Security:

    -e API_TOKEN=<valor del token de la API>

    -e API_BASE_URL=https://company.com

    -e API_CA_CERT: <certificado en formato .PEM> o -e SKIP_API_SERVER_VALIDATION=true

  2. Si es necesario, especifique parámetros adicionales para Kaspersky Container Security.
  3. Especifique la imagen de análisis que se ejecutará:

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

  4. Si necesita generar un artefacto para descargar, detalle la siguiente información:

    --<formato del artefacto --stdout > result.<file format>

    Por ejemplo:

    --html --stdout > result.html

  5. Asegúrese de que el archivo de configuración .docker/config.json contenga los datos para conectarse al registro de imágenes con la imagen de análisis. Si es necesario, ejecute uno de los siguientes comandos: docker login repo.company.com o docker login repo.kcs.kaspersky.com.
  6. Inicie el análisis.

    Si aparece el mensaje de error de resolución de nombre de dominio (Name does not resolve) al llamar al análisis, debe especificar la dirección antes de la variables API_BASE_URL, antes del servidor interno DNS de la organización. Por ejemplo:

    --dns 10.0.xx.x

Si la imagen de análisis y la imagen que se analizará están guardadas en su registro y necesita generar un artefacto con los resultados del análisis en formato .JSON, las variables iniciales del análisis se especifican de la siguiente manera:

docker run --dns 10.0.10.10 \

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

-e "SKIP_API_SERVER_VALIDATION=true" \

-e "API_TOKEN=${api_token}" \

-e "COMPANY_EXT_REGISTRY_USERNAME=${user}" \

-e "COMPANY_EXT_REGISTRY_PASSWORD=${password}"

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

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

Si la imagen de análisis se almacena en un registro público de Kaspersky (el nodo extrae esta imagen a través de su servidor proxy), la imagen analizada se almacena localmente en el nodo como un archivo comprimido y usted necesita generar un artefacto con los resultados del análisis en formato .SPDX, las variables iniciales del análisis se especifican de la siguiente manera:

docker run --dns 10.0.10.10 \

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

-e "SKIP_API_SERVER_VALIDATION=true" \

-e "API_TOKEN=${api_token}" \

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

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

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

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

Ejecutar el análisis como un Job en un clúster de Kubernetes

Pasos para ejecutar el análisis en modo SBOM lite como un Job en un clúster de Kubernetes:

  1. Asegúrese de que el nodo que ejecuta los comandos contenga kubectl y el archivo de configuración para el clúster de Kubernetes correspondiente, y que sean accesibles para el usuario que ejecuta los comandos.
  2. Asegúrese de que exista un secreto en el espacio de nombres correspondiente para autenticar y descargar la imagen de análisis desde el registro en cuestión.

    Puede crear el secreto usted mismo; por ejemplo, con el siguiente comando:

    kubectl create secret docker-registry <nombre del secreto> --docker-server=<FQDN del repositorio> --docker-username=nombre de usuario --docker-password=contraseña

  3. Especifique los valores de los parámetros obligatorios y adicionales (si corresponde) para que el análisis se ejecute como una tarea en el clúster de Kubernetes.

    Los parámetros se especifican en el archivo usado para ejecutar el análisis en formato .YAML de la siguiente manera:

    apiVersion: batch/v1

    kind: Job

    metadata:

    name: my-lite-job

    spec:

    template:

    spec:

    containers:

    - name: my-lite-container

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

    command: ["/bin/sh"]

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

    env:

    - name: COMPANY_EXT_REGISTRY_USERNAME

    value: <usuario para la autenticación en el registro de imágenes donde se encuentra la imagen a analizar >

    - name: COMPANY_EXT_REGISTRY_PASSWORD

    value: <contraseña para la autenticación en el registro de imágenes donde se encuentra la imagen a analizar >

    - name: API_BASE_URL

    value: https://kcs.company.local

    - name: API_TOKEN

    value: <token para la autenticación en la API de Kaspersky Container Security >

    - name: SKIP_API_SERVER_VALIDATION

    value: 'true'

    imagePullPolicy: Always

    restartPolicy: Never

    imagePullSecrets:

    - name: <nombre del secreto para la autenticación y extracción de la imagen de análisis>

    backoffLimit: 0

  4. Inicie el análisis en el clúster de Kubernetes:

    kubectl apply -f my-lite-job.yaml

Inicio de página
[Topic 301504]

Obtener resultados del análisis en formato JSON o HTML

Al usar Kaspersky Container Security para analizar imágenes en CI/CD, debe generar y guardar un artefacto que contenga los resultados del análisis en la plataforma de CI/CD. Para ello, debe usar un archivo de configuración del sistema de repositorios externo integrado a la solución. Por ejemplo, puede usar un archivo de configuración .gitlab-ci.yml en GitLab.

Puede generar un artefacto que contenga los resultados del análisis en las siguientes situaciones:

  • Cuando se realiza un análisis completo de CI/CD, se puede generar un archivo de los resultados del análisis en los formatos .HTML o .JSON.
  • Cuando se analiza y se crea una SBOM, se puede generar un archivo que contenga los resultados del análisis en los formatos .SPDX o .JSON.

Para generar un archivo de los resultados del análisis en el formato .HTML:

Introduzca el siguiente comando en el archivo de configuración .gitlab-ci.yml:

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

donde:

<--html> indica que el artefacto se genera con el formato .HTML.

<--stdout > example.html> indica la salida de los datos a un archivo con el formato .HTML.

Para generar un archivo de los resultados del análisis completo de CI/CD en formato .JSON:

Introduzca el siguiente comando en el archivo de configuración .gitlab-ci.yml:

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

donde:

<--stdout > example.json> indica la salida de los datos a un archivo con el formato .JSON.

El archivo resultante (por ejemplo, example.json) se especifica como un artefacto: artifacts: paths:

Inicio de página

[Topic 265362]

Especificar secretos al iniciar un análisis

Al iniciar una tarea de análisis en el proceso de CI/CD, se puede acceder al registro que contiene la imagen de análisis (análisis básico o with-db para la versión correspondiente de Kaspersky Container Security) solo después de una autorización correcta. Para ello, puede pasar los secretos necesarios a la tarea de análisis.

Para autorizar el acceso al registro al iniciar una tarea de análisis:

  1. Cree un secreto:

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

  2. En la tarea de análisis, especifique el valor de la variable imagePullSecrets:

    imagePullSecrets:

    - name: ci-creds

  3. Inicie la tarea de análisis.

    Ejemplo de una tarea de análisis y secretos para la autorización

    kind: Job

    metadata:

    name: my-job

    spec:

    template:

    spec:

    containers:

    - name: my-container

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

    command: ["/bin/sh"]

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

    env:

    - name: COMPANY_EXT_REGISTRY_USERNAME

    value: another_username

    - name: COMPANY_EXT_REGISTRY_PASSWORD

    value: another_password

    - name: API_BASE_URL

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

    - name: API_TOKEN

    value: kcs_blablabla

    - name: SKIP_API_SERVER_VALIDATION

    value: 'true'

    imagePullPolicy: Always

    restartPolicy: Never

    imagePullSecrets:

    - name: ci-creds

    backoffLimit: 0

En este ejemplo, la tarea de análisis contiene los siguientes secretos:

  • El secreto para descargar la imagen de análisis (especificado en la variable imagePullSecrets)
  • La contraseña para descargar la imagen de análisis si el acceso al registro pertinente está limitado (especificada en la variable COMPANY_EXT_REGISTRY_PASSWORD)

Puede omitir estas contraseñas si puede acceder sin autorización al registro al que la solución obtiene acceso al ejecutar una tarea de análisis.

Inicio de página
[Topic 281598]

Configurar la integración a validadores de firmas en imágenes

Kaspersky Container Security puede verificar la autenticidad y la validez de las firmas digitales de las imágenes. Para ello, debe configurar la integración de la solución a una o más aplicaciones externas de firmas. Los detalles específicos de la firma de un código hash de la imagen, la ubicación de las firmas y la protección de las firmas dependen de la aplicación de firmas que haya elegido. La solución admite dos aplicaciones externas de validación de firmas:

  • Notary v1 es un servicio web desarrollado por Docker que se utiliza para garantizar la seguridad de los contenedores en diferentes etapas del ciclo de vida, que incluyen la creación y el posterior almacenamiento de las firmas.
  • Cosign es un servicio web diseñado para crear firmas en contenedores, verificarlas y colocar contenedores firmados en repositorios. La herramienta se desarrolló durante el proyecto .

En la sección AdministrationIntegrationsImage signature validators, puede configurar la integración a un validador de firmas en imágenes.

Inicio de página
[Topic 265760]

Visualizar lista de integraciones a validadores de firmas

En la sección AdministrationIntegrationsImage signature validators, verá una tabla que contiene todas las integraciones configuradas a validadores de firmas en imágenes.

En la tabla, verá la siguiente información sobre los validadores de firmas en imágenes incorporados:

  • Nombre del validador
  • Descripción (si se ha especificado una al crear la integración)
  • Tipo de validador de firmas en imágenes: Notary v1 o Cosign
  • Dirección web a la cual se conecta el validador de firmas en imágenes

En la tabla, puede realizar las siguientes acciones:

Inicio de página
[Topic 274593]

Añadir una integración a un validador de firmas en imágenes

Para añadir una integración a un validador de firmas en imágenes:

  1. En la sección AdministrationIntegrationsImage signature validators, haga clic en el botón Add signature validator.

    Se abre la ventana de configuración de la integración.

  2. En la sección General information, introduzca el nombre de la directiva y, de ser necesario, una descripción.
  3. En la sección Type, elija uno de los siguientes validadores de firmas:
    • Notary v1
    • Cosign
  4. Según el validador de firmas que elija, deberá especificar las credenciales de autenticación del servidor:
    • En el caso de Notary v1, especifique lo siguiente:
      • Web address: dirección web completa del servidor donde se almacenan las firmas en las imágenes.
      • Signature server authentication secret name: nombre del secreto del orquestador y credenciales para acceder al servidor donde se almacenan las firmas en las imágenes.

        El secreto debe estar en el espacio de nombres de Kaspersky Container Security.

      • Certificate: certificado autogenerado para el servidor donde se almacenan las firmas. El certificado se genera en formato .PEM.
      • Delegations: lista de titulares de firmas que participan en el proceso de firma.
      • Trusted roots: pares de todas las claves públicas que la solución verificará durante la verificación de firmas. Un par de clave incluye el nombre y el valor de la clave.

        De ser necesario, puede hacer clic en el botón Add key pair para añadir claves adicionales. La solución admite hasta 20 pares de claves.

    • En el caso de Cosign, especifique lo siguiente:
      • Signature server authentication secret name: nombre del secreto del orquestador y credenciales para acceder al servidor donde se almacenan las firmas en las imágenes.

        El secreto debe estar en el espacio de nombres de Kaspersky Container Security.

      • Certificate: certificado autogenerado para el servidor donde se almacenan las firmas. El certificado se genera en formato .PEM.
      • Trusted roots: pares de todas las claves públicas que la solución verificará durante la verificación de firmas; Un par de clave incluye el nombre y el valor de la clave.

        En el caso de Cosign, debe especificar las claves públicas para los algoritmos ECDSA o RSA que proporciona cosign.pub.

        De ser necesario, puede hacer clic en el botón Add key pair para añadir claves adicionales. La solución admite hasta 20 pares de claves.

      • Signature requirements: número mínimo de firmas y de titulares de firmas que deben firmar la imagen.
  5. Haga clic en el botón Save, en la parte superior de la ventana, para guardar la configuración de la integración al validador de firmas en imágenes.

Puede usar la integración configurada en directivas referentes a la ejecución para garantizar la protección del contenido de la imagen.

Inicio de página
[Topic 265764]

Visualizar y editar la información sobre la integración a validadores de firmas en imágenes

Para ver y editar la configuración de la integración a un validador de firmas en imágenes:

  1. En la sección AdministrationIntegrationsImage signature validators, haga clic en el enlace del nombre de la integración, en la lista de integraciones a validadores de firmas.
  2. De ser necesario, en la ventana que se abre, edite la siguiente configuración de la integración, que variará según el validador de firmas elegido:
    • En el caso de Notary v1, puede modificar los siguientes parámetros de configuración:
      • Validator name
      • Description
      • URL
      • Signature server authentication secret name
      • Certificate
      • Delegations
      • Key name
      • Key value
    • En el caso de Cosign, puede modificar los siguientes parámetros de configuración:
      • Signature server authentication secret name
      • Certificate
      • Key name
      • Key value
      • Threshold
      • Required signers
  3. De ser necesario, puede hacer clic en el botón Add key pair para añadir pares de claves.
  4. Haga clic en el botón Save en la parte superior de la ventana.
Inicio de página
[Topic 265792]

Eliminar la integración a un validador de firmas en imágenes

Para eliminar una integración a un validador de firmas en imágenes:

  1. Abra la lista que contiene las integraciones configuradas a validadores de firmas en imágenes.
  2. Elija la casilla de verificación en la fila del nombre de la integración que desee eliminar.
  3. Haga clic en Delete por encima de la tabla.

    Podrá hacer clic en el botón Delete después de elegir al menos una integración.

  4. En la ventana que se abre, confirme la eliminación.
Inicio de página
[Topic 274595]

Configurar una integración a servicios de notificaciones

Kaspersky Container Security puede enviar notificaciones a los usuarios acerca de eventos de conformidad con la configuración de las directivas de respuesta. Para usar esta función de notificación, debe configurar la integración de Kaspersky Container Security a uno o más servicios de notificaciones.

Kaspersky Container Security es compatible con los siguientes servicios:

  • Correo electrónico
  • Telegram, un sistema de mensajería instantánea

Contenido de esta sección:

Visualizar lista de integraciones a servicios

Añadir integraciones a correos electrónicos

Visualizar información acerca de la integración a correos electrónicos

Añadir integraciones a Telegram

Visualizar y editar información acerca de la integración a Telegram

Eliminar integraciones a servicios de notificaciones

Inicio de página
[Topic 250406]

Visualizar lista de integraciones a servicios

Para visualizar la lista de integraciones a servicios configuradas:

  1. Diríjase a la sección AdministrationIntegrationsNotifications.
  2. Según el tipo de notificación que desee recibir, deberá ir a la pestaña Email o Telegram.

La tabla que contiene una lista de todas las integraciones configuradas muestra la siguiente información sobre las integraciones actuales:

  • Nombre de la integración.
  • Quién realizó la actualización.
  • Fecha y hora de la última actualización.
  • Estado de la última conexión al servicio de notificaciones: Success o Error. Si aparece el estado Error, la solución también muestra una descripción breve del error de conexión.

En la tabla, puede realizar las siguientes acciones:

  • Añadir nuevas integraciones a correos electrónicos o Telegram. Haga clic en Add integration por encima de la tabla para abrir la ventana de configuración de integraciones.
  • Ver y editar la configuración de la integración a servicios de notificaciones. Haga clic en el enlace del nombre de la integración para abrir la ventana de edición.

    En esta ventana, también puede hacer clic en Test connection para ver si se completó la integración al servicio de notificaciones.

  • Eliminar la integración a servicios.
Inicio de página
[Topic 274627]

Añadir integraciones a correos electrónicos

Para añadir una integración a correos electrónicos:

  1. En AdministrationIntegrationsNotifications, en la sección Email, haga clic en Add integration.

    Se abre la ventana de configuración de la integración.

  2. Introduzca la siguiente información:
    • Nombre de la integración: mostrado en la configuración de la directiva de respuesta
    • Nombre de usuario y contraseña de la cuenta usada para enviar mensajes
    • Nombre del servidor SMTP
    • Método de cifrado de correos electrónicos
    • Puerto utilizado por el servidor SMTP
    • Dirección de correo electrónico del emisor del mensaje
    • Direcciones de correo electrónico de los destinatarios del mensaje (en este campo, puede introducir más de una dirección)
  3. Haga clic en Test connection para verificar si se puede establecer una conexión con el correo electrónico.
  4. Haga clic en Add para guardar la integración al correo electrónico.

Ejemplo de la configuración de la integración al correo electrónico

A continuación, se detalla un ejemplo de la configuración de la integración de Kaspersky Container Security al correo electrónico.

{

"form": {

"type": "email",

"name": "Email integration",

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

"password": "P@ssword!",

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

"port": 465,

"encrypting": "ssl",

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

"recipients": [

"user@company.com",

"user1@company.com"

]

}

}

En el caso del parámetro encrypting, especifique una de las siguientes opciones de cifrado:

  • tls
  • ssl
  • null

Puede usar la integración configurada en las directivas de respuesta.

Inicio de página
[Topic 275119]

Visualizar información acerca de la integración a correos electrónicos

Para visualizar y modificar una integración al correo electrónico:

  1. En la sección Email, en AdministrationIntegrationsNotifications, haga clic en el enlace del nombre de la integración, en la lista de integraciones.
  2. En la ventana de edición que se abre, modifique los parámetros de configuración necesarios de la integración:
    • Nombre
    • Nombre de usuario
    • Contraseña de la cuenta de usuario utilizada para enviar los mensajes
    • Nombre del servidor SMTP
    • Método de cifrado de correos electrónicos
    • Puerto utilizado por el servidor SMTP
    • Dirección de correo electrónico del emisor del mensaje
    • Direcciones de correo electrónico de los destinatarios del mensaje
  3. Haga clic en Test connection para verificar si se puede establecer una conexión con el correo electrónico.
  4. Haga clic en Save.
Inicio de página
[Topic 275120]

Añadir integraciones a Telegram

Para añadir una integración a Telegram:

  1. En AdministrationIntegrationsNotifications, en Telegram, haga clic en Add integration.

    Se abre la ventana de configuración de la integración.

  2. Introduzca la siguiente información:
    • Nombre de la integración: mostrado en la configuración de la directiva de respuesta.
    • ID del chat donde se publicarán los mensajes; puede obtenerlo de la siguiente manera:
      1. Escriba el primer mensaje en el bot de mensajes. El ID del chat se genera la primera vez que envía un mensaje.
      2. En la barra de dirección del navegador, escriba lo siguiente:

        https://api.telegram.org/bot<token>/getUpdates

        donde <token> representa el token del bot de mensajes.

      3. En el archivo de respuesta .json que reciba, busque el valor "ID" en el objeto "chat". Este valor es el ID del chat.

      Después de modificar la configuración de visibilidad del historial de mensajes para los nuevos participantes en el chat de Telegram, también se modificará el ID del chat. En este caso, deberá modificar la configuración de la integración a Telegram y especificar el nuevo valor del ID del chat.

    • Token del bot de mensajes: recibirá este token después de ejecutar el comando /newbot en el bot BotFather para crear un bot. También puede ejecutar el comando /token para obtener el token de un bot creado anteriormente.
  3. Haga clic en Test connection para verificar si se puede establecer una conexión con Telegram.
  4. Haga clic en Add para guardar la integración a Telegram.

Ejemplo de la configuración de la integración a Telegram

A continuación, se detalla un ejemplo de la configuración de la integración de Kaspersky Container Security a Telegram.

{

"form": {

"type": "telegram",

"name": "Telegram integration",

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

"botToken": "{{botToken}}"

}

}

Puede usar la integración configurada en las directivas de respuesta.

Inicio de página
[Topic 275121]

Visualizar y editar información acerca de la integración a Telegram

Para visualizar y modificar una integración a Telegram:

  1. En Telegram, en la sección AdministrationIntegrationsNotifications, haga clic en el enlace del nombre de la integración en la lista de integraciones.
  2. En la ventana de edición que se abre, modifique los parámetros de configuración necesarios de la integración:
    • Nombre.
    • ID del chat
    • Token del bot
  3. Haga clic en Test connection para verificar si se puede establecer una conexión con Telegram.
  4. Haga clic en Save.
Inicio de página
[Topic 275122]

Eliminar integraciones a servicios de notificaciones

Para eliminar una integración a Telegram o a correos electrónicos:

  1. En la sección AdministrationIntegrationsNotifications, abra la lista de integraciones a Telegram o a correos electrónicos configuradas.
  2. Elija la casilla de verificación en la fila del nombre de la integración que desee eliminar.
  3. Haga clic en Delete por encima de la tabla.

    Podrá hacer clic en el botón Delete después de elegir al menos una integración.

  4. En la ventana que se abre, confirme la eliminación.

No puede eliminar una integración utilizada en una o más directivas de respuesta.

Inicio de página
[Topic 274659]

Configurar la integración a un servidor LDAP

Kaspersky Container Security le permite conectarse con los servidores de

externos que se usan en su organización mediante . Se trata de una integración a un grupo específico en .

La conexión con un servicio de directorios externo mediante el protocolo LDAP le permite realizar las siguientes tareas:

  • Configurar cuentas de usuarios para tomar datos de un servicio de directorios externo y trabajar con Kaspersky Container Security.
  • Relacionar usuarios en Kaspersky Container Security con grupos de usuarios de Active Directory. Los usuarios de estos grupos podrán usar las credenciales de sus cuentas de dominio para iniciar sesión en la interfaz web de la solución y acceder a las funcionalidades de la aplicación sobre la base del rol asignado.

    Recomendamos que cree estos grupos de usuarios en Active Directory con anterioridad para poder completar la autorización con las cuentas de dominio en la interfaz web de Kaspersky Container Security.
    Deberá indicar una dirección de correo electrónico en las cuentas de usuario de Active Directory.

Contenido de esta sección:

Crear una integración a un servidor LDAP

Visualizar, configurar o eliminar la integración a un servidor LDAP

Probar la conexión con un servidor LDAP

Obtener acceso a un grupo de Active Directory

Inicio de página
[Topic 254129]

Crear una integración a un servidor LDAP

Para crear una integración a un servidor LDAP:

  1. En la sección AdministrationIntegrationsLDAP, haga clic en el botón Connect server.

    Se abrirá la ventana de configuración del servidor LDAP.

  2. Elija un modo para validar los certificados de la conexión con el servidor LDAP. De manera predeterminada, se especifica el modo Certificate chain y se verifican los certificados que Kaspersky Container Security guarda durante la primera conexión con el servidor LDAP. Puede elegir el modo Root certificate e introducir los datos del certificado raíz en el campo de texto correspondiente.

    No modifique el modo predeterminado de validación de certificado, a menos que utilice un certificado raíz para conectarse con el servidor LDAP.

  3. Configure los siguientes parámetros obligatorios:
    • Dirección web (URL) del servidor LDAP de la empresa

      La dirección web del servidor LDAP se especifica de la siguiente manera: ldap://<host>:<puerto>. Por ejemplo, ldap://ldap.example.com:389.

    • Nombre y contraseña de la cuenta de usuario técnica

      Bind DN es el nombre distintivo de la cuenta de usuario técnica necesaria para la autenticación inicial y la búsqueda de un usuario en Active Directory.

      Puede especificar el nombre de la cuenta de usuario técnica de forma completa o con el formato <login@domain> si el servidor LDAP admite este formato en la autenticación.

      En el campo Bind DN password, debe introducir la contraseña de la cuenta especificada.

      Antes de actualizar la solución, asegúrese de haber completado los campos Bind DN y Bind DN password. Si no especifica estos parámetros de configuración, la integración al servidor LDAP no funcionará.

    • Base DN es el nombre que identifica y describe de forma única a un registro del servidor de directorios LDAP

      Por ejemplo, el nombre base distintivo de example.com sería dc=example,dc=com.

  4. De ser necesario, Kaspersky Container Security puede emplear los datos disponibles para completar los campos restantes del formulario de creación de la integración. Para ello y según la razón para crear la integración, realice una de las siguientes acciones:
    • Si desea crear una integración a un servidor mediante el protocolo LDAP, haga clic en el botón Autofill as LDAP.
    • Si desea configurar la integración directamente para el grupo del servicio de Active Directory asociado con el rol en Kaspersky Container Security, haga clic en el botón Autofill as Active Directory.

    Kaspersky Container Security especifica los atributos de los valores de los parámetros, no los valores. Por ejemplo, la solución especificará un atributo del nombre de usuario que puede usarse para buscar al usuario, no especificará este nombre de usuario.

    La solución completa el formulario de creación de la integración con los siguientes atributos de los valores de los parámetros:

    • User filter para definir la configuración de búsqueda de usuarios en Active Directory
    • Group filter para definir la configuración de búsqueda de grupos en Active Directory

      Kaspersky Container Security utiliza los valores más generales para los filtros a fin de garantizar el funcionamiento de casi todas las configuraciones posibles. Cuando configure User filter y Group filter, le recomendamos que solo almacene los valores de atributos que se usan en Active Directory.

    • En Base schema, la solución determina los siguientes parámetros de configuración:
      • Organizational unit name attribute
      • Distinguished name attribute
    • En User lookup schema, la solución determina los siguientes parámetros de configuración:
      • User first name attribute
      • User lastname attribute
      • Group name attribute
      • User username
      • Group member
      • User email attribute
      • User member of

    De ser necesario, puede editar los valores que especifica la solución en el formulario de creación de la integración.

  5. Para verificar si los valores son correctos, haga clic en Test connection.

    Kaspersky Container Security mostrará una notificación con información sobre la conexión correcta con el servidor LDAP o un error al intentar establecer la conexión.

  6. Haga clic en Save.

Si se modifica el certificado del servidor LDAP, vuelva a configurar la integración.

Puede usar la integración configurada al crear y asignar roles de usuarios.

Inicio de página
[Topic 295783]

Visualizar, configurar o eliminar la integración a un servidor LDAP

Para visualizar una conexión con el servidor LDAP:

Diríjase a la sección AdministrationIntegrationsLDAP.

Kaspersky Container Security muestra la siguiente información sobre el servidor LDAP conectado:

  • Dirección web del servidor LDAP conectado.
  • Estado de la última conexión con el servidor: Success, Not available o Error Si aparece el estado Error, la solución también muestra una descripción breve del error de conexión.

Para editar la configuración de la integración al servidor LDAP:

En la sección AdministrationIntegrationsLDAP, haga clic en el botón Edit settings.

Kaspersky Container Security abrirá la página que contiene el formulario con los datos de la integración al servidor LDAP.

Para eliminar una integración a un servidor LDAP:

  1. En la sección AdministrationIntegrationsLDAP, haga clic en Delete integration.
  2. En la ventana que se abre, confirme la eliminación.
Inicio de página
[Topic 274660]

Probar la conexión con un servidor LDAP

Para probar la conexión con un servidor LDAP:

  1. Diríjase a la sección Administration → Integrations → LDAP.
  2. Realice una de las siguientes acciones:

Kaspersky Container Security mostrará una notificación con información sobre la conexión con el servidor LDAP o un error al intentar establecer la conexión.

Inicio de página

[Topic 286667]

Obtener acceso a un grupo de Active Directory

Después de configurar la integración al servidor LDAP, podrá especificar un grupo de Active Directory para cada rol en Kaspersky Container Security. Después de autorizar las credenciales de las cuentas, los usuarios de este grupo obtendrán acceso a las funcionalidades de la solución sobre la base de los roles que tengan.

Inicio de página
[Topic 254187]

Configurar la integración a sistemas SIEM

Kaspersky Container Security le permite conectarse con

para enviar mensajes de eventos para analizar y responder ante posibles amenazas. Estos mensajes contienen datos para los mismos tipos y las categorías de eventos que se recogen en el registro de eventos de seguridad. También se transmiten los datos sobre eventos de supervisión de nodos en clústeres mediante la integración a sistemas SIEM y los enlaces de grupos de agentes.

Los mensajes se envían a un sistema SIEM en el formato

, por ejemplo:

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

El mensaje transmitido está compuesto por los siguientes componentes:

  • Encabezado , que especifica el nombre de host, la fecha y la hora
  • Prefijo y número de la versión de CEF
  • Proveedor del dispositivo
  • Nombre de la solución
  • Versión de la solución
  • Código único del tipo de evento generado por la solución
  • Descripción del evento
  • Evaluación de la gravedad de un evento
  • Información adicional, como la dirección IP del dispositivo, el motivo del evento, el resultado del evento y el estado del evento

Para obtener información detallada sobre los componentes, consulte la tabla que contiene el significado de los valores de los mensajes CEF.

Contenido de esta sección:

Significado de los campos con mensajes CEF

Crear una integración a un sistema SIEM

Vincular grupos de agentes con un sistema SIEM

Visualizar y editar la configuración de la integración a sistemas SIEM

Eliminar la integración a un sistema SIEM

Inicio de página
[Topic 293678]

Significado de los campos con mensajes CEF

Los mensajes CEF enviados están en idioma inglés.

En la tabla siguiente, verá los principales componentes del encabezado y el cuerpo de los mensajes CEF que envía Kaspersky Container Security.

Componentes y valores de los componentes de los mensajes CEF

Componente

Valor

Ejemplo

Encabezado estándar del mensaje CEF (encabezado syslog)

El encabezado se envía en el siguiente formato: <fecha> <hora> <nombre del host del servidor>.

Feb 18 10:07:28 host

Prefijo y versión del formato CEF

<CEF>:<versión>

CEF:0

ID del evento

Proveedor del dispositivo

Producto en el dispositivo

Versión en el dispositivo

Kaspersky

Kaspersky Container Security

2.0

ID único del tipo de evento (ID de firma)

Kaspersky Container Security envía estos ID para los siguientes tipos de eventos:

  • ADM-ХХХ: evento de administración
  • CVE-XXX: aceptación del riesgo acerca de una vulnerabilidad y caducidad de la aceptación de dicho riesgo
  • MLW-XXX: aceptación del riesgo acerca de un malware o la caducidad de la aceptación de dicho riesgo
  • NCMP-001: incumplimiento de los requisitos de la imagen
  • CMP-001: cumplimiento de los requisitos de la imagen
  • SD-XXX: aceptación del riesgo acerca de datos confidenciales y caducidad de la aceptación de dicho riesgo
  • MS-XXX: aceptación del riesgo acerca de una configuración incorrecta y caducidad de la aceptación de dicho riesgo
  • CI-ХХХ: evento en el proceso de CI/CD
  • PLC-ХХХ: evento al aplicar una directiva de seguridad
  • BNCH-ХХХ: evento al analizar el clúster y los nodos
  • AG-ХХХ: evento relacionado con un agente
  • SJ-ХХХ: evento de análisis
  • RT-ХХХ: evento de la comprobación de una práctica recomendada
  • API-ХХХ: solicitud al servidor de una API
  • PM-ХХХ: evento al implementar procesos
  • FM-ХХХ: evento que implica el acceso al sistema de archivos del contenedor
  • NT-ХХХ: conexión de red
  • FPM-XXX: evento de infracción de una directiva referente a la ejecución durante un proceso
  • FNT-XXX: evento de infracción de una directiva referente a la ejecución relacionada con una conexión de red
  • FFM-XXX: evento de infracción de una directiva referente a la ejecución relacionada con el acceso a objetos en el sistema de archivos de un contenedor
  • FFTP-XXX: evento de infracción de una directiva referente a la ejecución relacionada con Protección frente a amenazas en archivos

Algunos de los ID de tipos de eventos que envía la solución:

  • ADM-001: User 1 added user 2
  • CVE-001: User 1 accepted risk for image XXX
  • AG-002: Agent XXX is disconnected
  • BNCH-003: YYY was passed while scanning XXX
  • PLC-001: YYY was applied to image XXX
  • NCMP-001: Image XXX was marked as non-compliant
  • SD-008: XXX risk acceptance expires

Descripción del evento (nombre)

La descripción debe poder ser leída por un usuario y relevante según el ID del tipo de evento. Por ejemplo, "Administration" (administración) para ADM o "Process management" (gestión de procesos) para PM.

Algunos de los nombres de los eventos que envía la solución:

  • Process management
  • File management
  • Networking

Importancia del evento (gravedad)

La gravedad de un evento se representa mediante una escala de 0-10 de la siguiente manera:

  • 0-3: baja
  • 4-6: media
  • 7-8: alta
  • 9-10: muy alta

La puntuación de gravedad de un evento depende del tipo y el estado del evento (Success o Failure).

Por ejemplo, la puntuación de gravedad puede determinarse de la siguiente manera:

  • Para los eventos PM (Process management [gestión de procesos]) y NT (Networking [redes]):
    • Si el estado del evento es Audited o Blocked, la gravedad será de 7.
    • Para cualquier otro estado, la gravedad será de 3.
  • Para los eventos AG (Agents [agentes]):
    • Si el evento ocurre de forma correcta, la gravedad será de 5.
    • Si se produce un error, la gravedad será de 10.
  • Para los eventos de API:
    • Si el evento ocurre de forma correcta, la gravedad será de 3.
    • Si se produce un error, la gravedad será de 8.

Información adicional del evento (extensión)

La información adicional podría incluir uno o más conjuntos de pares clave-valor.

A continuación, se detalla la información sobre los pares clave-valor que Kaspersky Container Security envía.

Información adicional sobre un evento que envía Kaspersky Container Security

Clave

Valor

Uso

source

Dominio (nombre del pod) del origen de eventos (nombre del origen)

En todos los eventos

src

Una de las siguientes direcciones IP en una red IPv4 (IP de origen):

  • para el tráfico de red: la dirección IP del origen de la conexión
  • para los eventos de administración: la dirección IP del iniciador de la acción

En todos los eventos

reason

Descripción del motivo del estado Error (motivo)

En todos los eventos que tengan el estado Error, salvo PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

fname

Imagen (artefacto) y nombre (nombre del artefacto)

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

suser

El nombre del usuario que inició la acción (nombre de usuario)

En todos los eventos, salvo PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX

dpid

ID del proceso (PID)

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

spid

ID del proceso principal (PPID)

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

flexString1

ID del grupo vigente (EGID)

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

flexString2

ID del contenedor

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

outcome

Modo o estado de la ejecución (estado). El valor se define de la siguiente manera:

  • Para los eventos en el tiempo de ejecución (PM-ХХХ, FM-ХХХ, NT-ХХХ, FPM-XXX, FNT-XXX, FFM-XXX, FFTP-XXX), se especifica el modo de ejecución Audit, Enforce o Other.
  • Para los demás eventos, se especifica el estado de ejecución Success o Error. Si el estado es Error, la solución también envía el código o texto de error (reason).

En todos los eventos

request

Nombre de la imagen (nombre de imagen)

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

fileHash

Hash de la imagen (código hash de la imagen)

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

act

Uno de los siguientes tipos de operaciones (operación):

  • para operaciones en archivos: tipo de operación (open, close, read, write, create, delete, chmod, chown, rename)
  • para el tráfico de red: dirección y tipo de tráfico (egress, ingress, egress_response, ingress_response)
  • para procesos: valor exec
  • para operaciones de Protección frente a amenazas en archivos: valor ftp

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

spt

Puerto del origen de la conexión (puerto de origen)

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

dst

Dirección IP del destinatario en la red IPv4 (IP del destino)

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

dpt

Puerto del destino (puerto de destino)

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

dproc

Nombre del proceso (comando) (nombre de proceso)

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

duid

ID del usuario vigente (EUID)

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

filePermission

Permisos de acceso al archivo (mode_t mode).

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

oldFilePath

Ruta al archivo usada anteriormente (ruta anterior al archivo)

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

filePath

Ruta al archivo (ruta)

En el caso de eventos que implican el acceso a objetos en el sistema de archivos de un contenedor, se usa filePath para pasar información sobre la nueva ruta al archivo (nueva ruta al archivo).

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

deviceDirection

Tipo de dirección de la conexión (tipo de tráfico):

0 para conexiones de entrada y 1 para conexiones de salida

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

cn1

Nuevo identificador de proceso (PID nuevo)

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

cs1

Nombre de un clúster (nombre de clúster)

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

cs2

Nombre de un nodo (nombre de nodo)

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

cs3

Nombre de un espacio de nombres (nombre de espacio de nombres)

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

cs4

Comando ejecutado (comando)

En el caso de eventos que implican el acceso a objetos en el sistema de archivos de un contenedor, se usa cs4 para pasar información sobre el nuevo propietario del archivo (NewOwner).

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

cs5

Nombre del pod (nombre de pod)

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

cs6

Nombre del contenedor (nombre de contenedor)

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

cs7

Dirección IP del nodo (IP de nodo)

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

Inicio de página

[Topic 293652]

Crear una integración a un sistema SIEM

Para añadir una integración a un sistema SIEM:

  1. En la sección AdministrationIntegrationsSIEM, haga clic en Add SIEM.

    Se mostrará una barra lateral, en donde puede introducir los parámetros del sistema SIEM.

  2. En la pestaña General, especifique los siguientes parámetros obligatorios:
    • Nombre del sistema SIEM.
    • Protocolo de la conexión con el sistema SIEM; el valor TCP está seleccionado de forma predeterminada.
    • Dirección del servidor del sistema SIEM en uno de los siguientes formatos:
      • IPv4
      • IPv6
      • FQDN
    • Puerto de la conexión con el sistema SIEM. Puede especificar puertos de 1-65535. El valor predeterminado es 514.
    • Categorías de eventos sobre los cuales desee exportar mensajes al sistema SIEM. Para configurar esto, elija las casillas de verificación que se encuentran junto a una o más categorías de eventos de la siguiente lista:
      • Administration
      • Alert
      • CI/CD
      • Policies
      • Resources
      • Scanners
      • Admission controller
      • Forensic data
      • API

        Deberá tener una licencia avanzada para ver los eventos de las categorías Resources, Scanners, Admission controller y Forensic data.

      De forma predeterminada, todos los estados están seleccionados.

      Se envían los mensajes sobre las categorías de eventos elegidas al sistema SIEM especificado, sin importar si está vinculado con los grupos de agentes.

  3. En la pestaña Agent group logs, elija las casillas de verificación que se encuentran junto a uno o más tipos de eventos, como parte de la supervisión de nodos durante el tiempo de ejecución.

    El registro de mensajes de eventos enviados al entorno de ejecución podría ser bastante pesado, lo que afectaría al espacio disponible en disco y la carga en la red.

  4. Si desea verificar si los parámetros especificados de la integración al sistema SIEM son correctos, haga clic en Test connection.

    La solución prueba la conexión con el sistema SIEM si se elige el protocolo de conexión TCP. Si se elige el protocolo de conexión UDP, el botón Test connection estará desactivado.

  5. Haga clic en Save.

Inicio de página

[Topic 282786]

Vincular grupos de agentes con un sistema SIEM

En la sección Components → Agents, puede vincular grupos de agentes con sistemas SIEM durante la creación de grupos de agentes o la modificación de los parámetros de los grupos de agentes.

Para vincular un grupo de agentes en Kaspersky Container Security, debe tener los derechos suficientes para administrar grupos de agentes y, además, debe haber creado y configurado al menos una integración a un sistema SIEM.

Inicio de página

[Topic 283037]

Visualizar y editar la configuración de la integración a sistemas SIEM

Para ver una integración a un sistema SIEM:

  1. En la sección AdministrationIntegrationsSIEM, abra la lista de integraciones a sistemas SIEM.
  2. En la lista de integraciones, haga clic en el nombre que desee.

Para editar la configuración de la integración al sistema SIEM:

  1. En la sección AdministrationIntegrationsSIEM, haga clic en el nombre de la integración en la lista de integraciones.
  2. De ser necesario, en la barra lateral que se observa, puede editar los parámetros de la integración de la siguiente manera:
    1. En la pestaña General, edite los siguientes parámetros obligatorios:
      • Nombre del sistema SIEM
      • Protocolo de la conexión con el sistema SIEM
      • Dirección del servidor del sistema SIEM
      • Puerto de la conexión con el sistema SIEM
      • Categorías de los eventos que se exportarán
    2. De ser necesario, en la pestaña Agent group logs, puede editar la lista elegida de tipos de eventos de supervisión en los nodos de la red durante el tiempo de ejecución.
  3. Si se usa el protocolo TCP para la conexión, haga clic en Test connection para ver si se puede establecer la conexión con el sistema SIEM.
  4. Haga clic en Save.
Inicio de página
[Topic 283085]

Eliminar la integración a un sistema SIEM

Para eliminar la integración a un sistema SIEM:

  1. En la sección AdministrationIntegrationsSIEM, abra la lista de integraciones a sistemas SIEM configuradas.
  2. Elija la casilla de verificación en la fila del nombre de la integración que desee eliminar.
  3. Haga clic en Delete por encima de la tabla.

    Podrá hacer clic en el botón Delete después de elegir al menos una integración.

  4. En la ventana que se abre, confirme la eliminación.

Inicio de página

[Topic 283084]

Integración a HashiCorp Vault

Kaspersky Container Security permite transferir de forma segura contraseñas, tokens y secretos mediante HashiCorp Vault, un servicio de almacenamiento externo. La solución genera anotaciones en el pod, que el inyector Vault utiliza para montar los secretos necesarios del almacenamiento en el inicio.

Kaspersky Container Security es compatible con la integración a HashiCorp Vault 1.7 o una versión posterior.

La versión 2.0 de Kaspersky Container Security es compatible con HashiCorp Vault solo en el modo secundario con contenedores secundarios. En este caso, solo se admite la autenticación de Kubernetes.

Si el servicio considera pods no definidos y se utilizan cuentas predeterminadas del servicio, no recomendamos asignar los roles específicos del almacenamiento a dichas cuentas del servicio, en cumplimiento de los requisitos de seguridad críticos.

Los valores de la configuración de HashiCorp Vault se especifican en el archivo de configuración values.yaml y se despliegan al iniciar el paquete de Helm Chart.

La configuración de HashiCorp en el archivo de configuración values.yaml es de la siguiente manera:

  • Si el parámetro enabled del bloque vault tiene el valor false, no se realizará la integración a Vault.
  • Si el parámetro enabled del bloque vault tiene el valor true, se realizará la integración a Vault y se priorizarán los valores de las variables en el bloque de la configuración de vault.

El bloque de la configuración de vault tiene las siguientes secciones:

  • secret: para especificar secretos y credenciales.
  • certificate: para especificar certificados y claves de certificados.

En la sección secret, se enumeran las rutas a los archivos que contienen los secretos para estos parámetros:

  • Secretos de los servidores proxy ante solicitudes al entorno de información externo
  • Credenciales de la base de datos de PostgreSQL
  • Credenciales de un almacenamiento compatible con S3 para los archivos que genera la solución
  • Credenciales del sistema de gestión de bases de datos ClickHouse

Los secretos se especifican con el formato key:value

donde:

  • <key> es el nombre de la variable de entorno
  • <value> es la ruta completa al secreto en el almacenamiento, seguida del símbolo @ y el nombre de la clave del secreto creado en el almacenamiento

Por ejemplo, POSTGRES_USER:kv/secret/kcs/psql@POSTGRES_USER

Para obtener un certificado, en la sección vault.certificate, debe especificar los siguientes parámetros:

  • Para obtener un certificado de CA, el parámetro ca debe tener el valor true. En este caso, la ruta para acceder al certificado se forma a partir de la ruta estándar cert/ca según el nombre de la infraestructura de clave pública (PKI). Si el certificado de CA no es un certificado raíz, use el parámetro caList para enumerar todos los certificados, incluido el certificado raíz. Por ejemplo:

    cert-ca:

    ca: true

    tls.crt: pki_kcs/cert/ca

    caList:

    - pki/cert/ca

  • Para generar certificados y claves, debe especificar la ruta del nombre de PKI con la ruta estándar issue y el nombre del rol creado. El nombre común (cn) y todos los nombres alternativos posibles (altname) se añaden automáticamente al certificado. De ser necesario, puede especificar los valores de cn, altname e ipsans de forma manual, como se muestra debajo para una base de datos externa:

    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

  • Para configurar la vigencia del certificado, debe especificar el valor del parámetro ttl. El valor predeterminado es 8760.

    El valor del parámetro no puede ser mayor del valor establecido en la PKI de HashiCorp Vault.

La sección certificate, también contiene las rutas a los archivos que contienen los certificados y las claves siguientes:

  • Certificado de CA y certificado del cliente para la base de datos externa de PostgreSQL
  • Certificados obligatorios para los componentes de la solución:
    • Certificado de CA y clave del certificado de CA para el controlador de admisión
    • Certificado y clave del certificado para el módulo de licencias de Kaspersky Container Security
    • Certificado y clave del certificado para el módulo que contiene la lógica corporativa principal de la solución
    • Certificado y clave del certificado para la plataforma de llamada a procedimientos externos (GRPC)
    • Certificado y clave del certificado para el servidor de análisis
    • Certificado y clave del certificado para la API del servidor de análisis
    • Certificado y clave del certificado para el servidor de archivos de actualización para redes corporativas privadas
    • Certificado y clave del certificado para el almacenamiento de archivos compatible con S3
    • Certificado y clave del certificado para el broker de eventos
    • Certificado y clave del certificado para el broker de agentes
    • Certificado y clave del certificado para el sistema de gestión de bases de datos ClickHouse

Contenido de esta sección:

Configuración del almacenamiento HashiCorp Vault

Limitaciones en cuanto al almacenamiento

Inicio de página
[Topic 294179]

Configuración del almacenamiento HashiCorp Vault

Para que Kaspersky Container Security funcione con HashiCorp Vault, debe especificar los valores de los siguientes parámetros en el archivo de configuración values.yaml:

  • La marca enabled activa la integración al almacenamiento. El valor vault.enabled = true indica que se estableció la integración a HashiCorp Vault. Los valores de las variables de entorno se obtienen del almacenamiento. El valor predeterminado es false.
  • mountPath: ruta para montar secretos de Vault al pod. La ruta predeterminada es /vault/secrets.
  • El parámetro role es el rol para usarse en la autenticación del almacenamiento.

    Al crear un rol en Vault, debe especificar todos los valores existentes de la sección serviceAccount en el archivo values.yaml.

  • agentInitFirst: variable para definir la cola de inicialización del contenedor init. El valor true indica que el pod primero inicializa el contenedor init de Vault. Debe configurar este valor cuando otros contenedores de la inicialización necesitan secretos para poder funcionar. Si el valor es false, el orden de inicialización de los contenedores será al azar. El valor predeterminado es true.
  • agentPrePopulate: variable para activar el contenedor init y completar la memoria compartida con secretos antes de iniciar los contenedores. El valor predeterminado es true.
  • agentPrePopulateOnly: variable que indica si el contenedor init será el único inyectado en el pod. Si el valor es true, no se añadirá ningún contenedor secundario durante la ejecución del pod. El valor predeterminado es false.
  • preserveSecretCase: variable para conservar las mayúsculas de los nombres de los secretos al crear archivos con secretos. El valor predeterminado es true.
  • agentInjectPerms: variable que define los derechos de acceso al archivo montado con secretos del almacenamiento. El valor predeterminado es 0440 (el propietario y el grupo tienen permiso de lectura).
  • annotations: instrucciones para configurar el correcto funcionamiento del contenedor secundario. Puede añadir instrucciones al bloque vault para que lo usen todos los componentes de Helm Chart o especificarlas en la sección Architecture de forma independiente para cada componente. Por ejemplo:

    kcs-middleware:

    enabled: true

    appType: deployment

    annotations:

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

Inicio de página
[Topic 290082]

Limitaciones en cuanto al almacenamiento

Existen algunas limitaciones no críticas cuando Kaspersky Container Security funciona con HashiCorp Vault:

  • La integración a HashiCorp Vault funciona solo con almacenamientos KV1 y KV2 y componentes de Secrets Engine para rotar los certificados de PKI.
  • La solución no admite el funcionamiento con componentes externos de Secrets Engine, salvo los secretos de PKI.
  • Kaspersky Container Security no admite el procesamiento dinámico de secretos. Para actualizar un secreto, deberá reiniciar la solución.
  • Si usa la integración a Vault, puede especificar las credenciales solo para una base de datos externa de PostgreSQL en la sección vault. Para usar una base de datos interna de PostgreSQL, debe desactivar estas credenciales.
Inicio de página
[Topic 290094]