Contenido
- Integración a recursos de terceros
- Configurar la integración a registros de imágenes externos
- 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
- Integración al proceso de CI/CD
- 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
- Configurar la integración a validadores de firmas en imágenes
- Configurar una integración a servicios de notificaciones
- 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
- Configurar la integración a un servidor LDAP
- Configurar la integración a sistemas SIEM
- Integración a HashiCorp Vault
- Configurar la integración a registros de imágenes externos
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.
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.
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 Projects → Members, 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 Projects → Members, 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
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 Resources → Registries, 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áginaAñ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:
- En la sección Administration → Integrations → Image registries, haga clic en el botón Add registry.
Se abre la ventana de configuración de la integración.
- En la pestaña Registry details, configure la conexión con el registro:
- Introduzca el nombre del registro.
- De ser necesario, introduzca una descripción del registro.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Haga clic en Test connection para verificar si se puede establecer una conexión con el registro.
- 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
Inicio de páginaVisualizar información sobre integraciones a registros
Puede visualizar la tabla que contiene todos los registros integrados a Kaspersky Container Security en la sección Administration → Integrations → Image 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.
Eliminar la integración a registros externos
Para eliminar la integración a un registro externo:
- En la sección Administration → Integrations → Image 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.
- 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.
- 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áginaIntegración a Harbor
Puede integrar Kaspersky Container Security al registro externo de Harbor de una de las siguientes formas:
- De la misma manera que al integrar la solución a otros registros externos
- Después de una solicitud del registro externo de Harbor
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 ().
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áginaCrear 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:
- En el menú principal, en el panel izquierdo de la interfaz web de Harbor, elija Administración (Administration) → Servicios de consultas (Interrogation Services).
- Haga clic en el botón Nuevo análisis (New Scanner).
- 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
- En la lista desplegable Autorización (Authorization), elija APIKey como método de autorización al conectar el registro con la solución.
- 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.
- Elija la casilla Omitir verificación del certificado (Skip certificate verification) para omitir esta verificación.
- De ser necesario, haga clic en Probar conexión (Test Connection) para verificar que Harbor pueda conectarse con la solución.
- 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 Administration → Integrations → Image registries. El repositorio que contiene las imágenes del registro externo se marcará con el icono 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áginaVisualizar 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:
- Elija el registro de Harbor External Integration en la lista de registros de imágenes en la sección Administration → Integrations → Image registries.
- 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.
- Haga clic en Save.
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.
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 Inventory → CI/CD → Scanning 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 Resources → CI/CD → Scanning 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.
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 Resources → CI/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
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:
- Compile una imagen y guárdela como archivo comprimido TAR con cualquier aplicación para crear imágenes en contenedores.
- 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 archivoTARGET
<--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:
Para analizar el repositorio de Git:
- 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
oGITLAB_TOKEN
). - 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
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
Puede ver los resultados de los análisis en Resources → CI/CD o puede descargarlos en formatos .SPDX, .JSON o .HTML.
Inicio de páginaConfigurar 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:
- Autorizar la CI/CD de GitLab en el registro de imágenes del fabricante de Kaspersky Container Security:
- 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.
- 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]).
- 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.
- 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:
- Autorizar las solicitudes de CI/CD de GitLab al enviar datos a Kaspersky Container Security:
- Copie el token de la API en la página My profile.
- Pegue el valor copiado del token de la API en la variable API_TOKEN en el archivo de configuración .gitlab-ci.yml.
- 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:
- 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. - 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. - 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}
- 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-----
. - 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>
- 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'
- 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
- 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:
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 Resources → CI/CD o puede descargarlos en formatos .SPDX, .JSON o .HTML.
Inicio de páginaConfigurar la integración al proceso de CI/CD de Jenkins
Configurar la integración a CI/CD de Jenkins comprende los pasos siguientes:
- 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.
- Autorizar la API de Kaspersky Container Security. Para ello, siga los siguientes pasos:
- Copie el token de la API en la página My profile.
- Pegue el valor copiado del token de la API en la variable API_TOKEN en el archivo de configuración Jenkinsfile.
- 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:
-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.-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.
- Crear las variables de entorno de Jenkins:
Para crear las variables de entorno, añada las siguientes líneas a Jenkinsfile:
- 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 ScannerPASS
: contraseña del registro de Scanner - 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 analizadaCOMPANY_EXT_REGISTRY_PASSWORD
: contraseña del registro de la imagen analizada - 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-----
. - 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>
- Añada información sobre el registro de contenedores donde se encuentra Scanner, de la siguiente manera:
- 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
Ejemplo de los datos para iniciar Scanner como una canalización de script
- 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 Resources → CI/CD.
Configurar la integración al proceso de CI/CD de TeamCity
Para configurar la integración a CI/CD de TeamCity:
- Copie el token de la API en la página My profile para autorizar la API de Kaspersky Container Security en TeamCity.
- En el menú de configuración de la interfaz web de TeamCity, elija Build Configuration Home → Parameters.
- 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, escribafull
para hacer el seguimiento de la pila.SKIP_API_SERVER_VALIDATION
: escribatrue
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 HTTPHTTPS_PROXY
: servidor proxy para solicitudes HTTPSNO_PROXY
: dominios o máscaras de dominio adecuadas que se excluirán del redireccionamiento
- Diríjase a la sección Build Configuration Home → Build Step: Command Line y haga clic en Add build step para añadir el paso de compilación.
- 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
).
- 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
.
- En el campo Run step within Docker container, introduzca la dirección del análisis para el registro de Docker. Por ejemplo,
- Haga clic en Save para guardar la configuración.
- Haga clic en Run, en la esquina superior derecha de la página, para comenzar la compilación.
- 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.
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.
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:
- En la sección Administration → Integrations → Image signature validators, puede configurar la integración de la solución a aplicaciones externas de validación de firmas en imágenes.
- En la sección Policies → Runtime → Policies, 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.
- 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.
- 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 Administration → Integrations → Image signature validators.
- 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.
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 SecurityAPI_BASE_URL
: URL de Kaspersky Container SecurityAPI_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 HTTPHTTPS_PROXY
: servidor proxy para solicitudes HTTPSNO_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áginaEjecutar 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 Resources → CI/CD.
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:
- 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
- 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. - 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-----
. - 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. - Especifique la dirección web del servidor host de la API de Kaspersky Container Security:
API_BASE_URL –
<web address>
- 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
- Para generar un artefacto en el formato .JSON:
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
Ejecutar el análisis como un Job en un clúster de Kubernetes
Inicio de páginaObtener 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:
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:
- Cree un secreto:
kubectl create secret docker-registry ci-creds --docker-server=client.repo.example.com --docker-username=username --docker-password=password
- En la tarea de análisis, especifique el valor de la variable
imagePullSecrets
:imagePullSecrets:
- name: ci-creds
- Inicie la tarea de análisis.
Ejemplo de una tarea de análisis y secretos para la autorización
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áginaConfigurar 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 Administration → Integrations → Image signature validators, puede configurar la integración a un validador de firmas en imágenes.
Inicio de páginaVisualizar lista de integraciones a validadores de firmas
En la sección Administration → Integrations → Image 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:
- Añadir nuevas integraciones a módulos de verificación de firmas. Haga clic en Add signature validator por encima de la lista para abrir la ventana de configuración de integraciones.
- Ver y editar la configuración de la integración al módulo de verificación de firmas en imágenes. Puede hacer clic en el enlace del nombre del módulo de verificación para abrir la ventana de edición.
- Eliminar una integración a un validador de firmas en imágenes.
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:
- En la sección Administration → Integrations → Image signature validators, haga clic en el botón Add signature validator.
Se abre la ventana de configuración de la integración.
- En la sección General information, introduzca el nombre de la directiva y, de ser necesario, una descripción.
- En la sección Type, elija uno de los siguientes validadores de firmas:
- Notary v1
- Cosign
- 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.
- 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.
- En el caso de Notary v1, especifique lo siguiente:
- 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áginaVisualizar 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:
- En la sección Administration → Integrations → Image signature validators, haga clic en el enlace del nombre de la integración, en la lista de integraciones a validadores de firmas.
- 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
- En el caso de Notary v1, puede modificar los siguientes parámetros de configuración:
- De ser necesario, puede hacer clic en el botón Add key pair para añadir pares de claves.
- Haga clic en el botón Save en la parte superior de la ventana.
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:
- Abra la lista que contiene las integraciones configuradas a validadores de firmas en imágenes.
- Elija la casilla de verificación en la fila del nombre de la integración que desee eliminar.
- 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.
- En la ventana que se abre, confirme la eliminación.
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
Visualizar lista de integraciones a servicios
Para visualizar la lista de integraciones a servicios configuradas:
- Diríjase a la sección Administration → Integrations → Notifications.
- 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.
Añadir integraciones a correos electrónicos
Para añadir una integración a correos electrónicos:
- En Administration → Integrations → Notifications, en la sección Email, haga clic en Add integration.
Se abre la ventana de configuración de la integración.
- 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)
- Haga clic en Test connection para verificar si se puede establecer una conexión con el correo electrónico.
- 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
Puede usar la integración configurada en las directivas de respuesta.
Inicio de páginaVisualizar información acerca de la integración a correos electrónicos
Para visualizar y modificar una integración al correo electrónico:
- En la sección Email, en Administration → Integrations → Notifications, haga clic en el enlace del nombre de la integración, en la lista de integraciones.
- 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
- Haga clic en Test connection para verificar si se puede establecer una conexión con el correo electrónico.
- Haga clic en Save.
Añadir integraciones a Telegram
Para añadir una integración a Telegram:
- En Administration → Integrations → Notifications, en Telegram, haga clic en Add integration.
Se abre la ventana de configuración de la integración.
- 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:
- Escriba el primer mensaje en el bot de mensajes. El ID del chat se genera la primera vez que envía un mensaje.
- 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.
- 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.
- Haga clic en Test connection para verificar si se puede establecer una conexión con Telegram.
- Haga clic en Add para guardar la integración a Telegram.
Ejemplo de la configuración de la integración a Telegram
Puede usar la integración configurada en las directivas de respuesta.
Inicio de páginaVisualizar y editar información acerca de la integración a Telegram
Para visualizar y modificar una integración a Telegram:
- En Telegram, en la sección Administration → Integrations → Notifications, haga clic en el enlace del nombre de la integración en la lista de integraciones.
- 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
- Haga clic en Test connection para verificar si se puede establecer una conexión con Telegram.
- Haga clic en Save.
Eliminar integraciones a servicios de notificaciones
Para eliminar una integración a Telegram o a correos electrónicos:
- En la sección Administration → Integrations → Notifications, abra la lista de integraciones a Telegram o a correos electrónicos configuradas.
- Elija la casilla de verificación en la fila del nombre de la integración que desee eliminar.
- 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.
- 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áginaConfigurar 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.
Crear una integración a un servidor LDAP
Para crear una integración a un servidor LDAP:
- En la sección Administration → Integrations → LDAP, haga clic en el botón Connect server.
Se abrirá la ventana de configuración del servidor LDAP.
- 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.
- 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
.
- Dirección web (URL) del servidor LDAP de la empresa
- 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.
- 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.
- 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áginaVisualizar, 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 Administration → Integrations → LDAP.
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 Administration → Integrations → LDAP, 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:
- En la sección Administration → Integrations → LDAP, haga clic en Delete integration.
- En la ventana que se abre, confirme la eliminación.
Probar la conexión con un servidor LDAP
Para probar la conexión con un servidor LDAP:
- Diríjase a la sección Administration → Integrations → LDAP.
- Realice una de las siguientes acciones:
- Si la integración al servidor LDAP ya ha sido creada, haga clic en el botón Test connection.
- Si está creando una integración a un servidor LDAP o editando la configuración, haga clic en Test connection debajo del formulario que tiene los datos de la integración al servidor LDAP.
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.
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áginaConfigurar 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.
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: |
|
Prefijo y versión del formato CEF |
|
|
ID del evento |
Proveedor del dispositivo Producto en el dispositivo Versión en el dispositivo |
|
ID único del tipo de evento (ID de firma) |
Kaspersky Container Security envía estos ID para los siguientes tipos de eventos:
|
Algunos de los ID de tipos de eventos que envía la solución:
|
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:
|
Importancia del evento (gravedad) |
La gravedad de un evento se representa mediante una escala de 0-10 de la siguiente manera:
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:
|
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
Crear una integración a un sistema SIEM
Para añadir una integración a un sistema SIEM:
- En la sección Administration → Integrations → SIEM, haga clic en Add SIEM.
Se mostrará una barra lateral, en donde puede introducir los parámetros del sistema SIEM.
- 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.
- 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.
- 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.
- Haga clic en Save.
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.
Visualizar y editar la configuración de la integración a sistemas SIEM
Para ver una integración a un sistema SIEM:
- En la sección Administration → Integrations → SIEM, abra la lista de integraciones a sistemas SIEM.
- En la lista de integraciones, haga clic en el nombre que desee.
Para editar la configuración de la integración al sistema SIEM:
- En la sección Administration → Integrations → SIEM, haga clic en el nombre de la integración en la lista de integraciones.
- De ser necesario, en la barra lateral que se observa, puede editar los parámetros de la integración de la siguiente manera:
- 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
- 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.
- En la pestaña General, edite los siguientes parámetros obligatorios:
- 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.
- Haga clic en Save.
Eliminar la integración a un sistema SIEM
Para eliminar la integración a un sistema SIEM:
- En la sección Administration → Integrations → SIEM, abra la lista de integraciones a sistemas SIEM configuradas.
- Elija la casilla de verificación en la fila del nombre de la integración que desee eliminar.
- 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.
- En la ventana que se abre, confirme la eliminación.
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 bloquevault
tiene el valorfalse
, no se realizará la integración a Vault. - Si el parámetro
enabled
del bloquevault
tiene el valortrue
, se realizará la integración a Vault y se priorizarán los valores de las variables en el bloque de la configuración devault
.
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 valortrue.
En este caso, la ruta para acceder al certificado se forma a partir de la ruta estándarcert/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ámetrocaList
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 decn
,altname
eipsans
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
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 valorvault.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 esfalse
. 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 valortrue
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 esfalse
, el orden de inicialización de los contenedores será al azar. El valor predeterminado estrue
.agentPrePopulate
: variable para activar el contenedor init y completar la memoria compartida con secretos antes de iniciar los contenedores. El valor predeterminado estrue
.agentPrePopulateOnly
: variable que indica si el contenedor init será el único inyectado en el pod. Si el valor estrue
, no se añadirá ningún contenedor secundario durante la ejecución del pod. El valor predeterminado esfalse
.preserveSecretCase
: variable para conservar las mayúsculas de los nombres de los secretos al crear archivos con secretos. El valor predeterminado estrue
.agentInjectPerms
: variable que define los derechos de acceso al archivo montado con secretos del almacenamiento. El valor predeterminado es0440
(el propietario y el grupo tienen permiso de lectura).annotations
: instrucciones para configurar el correcto funcionamiento del contenedor secundario. Puede añadir instrucciones al bloquevault
para que lo usen todos los componentes de Helm Chart o especificarlas en la secciónArchitecture
de forma independiente para cada componente. Por ejemplo:kcs-middleware:
enabled: true
appType: deployment
annotations:
vault.hashicorp.com/agent-limits-cpu: 200m
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.