En esta página, se muestra cómo analizar de forma automática el sistema operativo (SO) del contenedor y los paquetes de idiomas en tus cargas de trabajo en ejecución en busca de vulnerabilidades conocidas y obtener estrategias de mitigación prácticas, si están disponibles. El análisis de vulnerabilidades de las cargas de trabajo es parte del panel de postura de seguridad, que es un conjunto de funciones que proporcionan información y recomendaciones para mejorar la seguridad de las cargas de trabajo y los clústeres de Google Kubernetes Engine (GKE).
Para obtener más información, consulta Acerca del análisis de vulnerabilidades de las cargas de trabajo.
Precios
Para obtener información sobre los precios, consulta los precios del panel de postura de seguridad de GKE.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta
gcloud components update
para obtener la versión más reciente.
Habilita la API de seguridad de contenedores.
Para usar estadísticas avanzadas de vulnerabilidades, habilita la API de Container Analysis.
Requisitos
-
Para obtener los permisos que necesitas para usar el análisis de vulnerabilidades de las cargas de trabajo, pídele a tu administrador que te otorgue el rol de IAM de visualizador de posturas de seguridad (
roles/containersecurity.viewer
) en tu proyecto de Google Cloud. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.Este rol predefinido contiene los permisos necesarios para usar el análisis de vulnerabilidades de las cargas de trabajo. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para usar el análisis de vulnerabilidades de las cargas de trabajo:
-
resourcemanager.projects.get
-
resourcemanager.projects.list
-
containersecurity.locations.list
-
containersecurity.locations.get
-
containersecurity.clusterSummaries.list
-
containersecurity.findings.list
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
-
- Advanced Vulnerability Insights requiere la versión 1.27 de GKE o una posterior.
Niveles de análisis de vulnerabilidades de las cargas de trabajo
Habilitas el análisis de vulnerabilidades en niveles, cada uno de los cuales agrega capacidades de análisis de la siguiente manera: Si usas la edición Enterprise de Google Kubernetes Engine (GKE) para administrar flotas de clústeres, también puedes establecer la configuración del análisis de vulnerabilidades a nivel de la flota que se aplica a todos los clústeres miembros. Para obtener instrucciones, consulta Configura las funciones del panel de postura de seguridad de GKE a nivel de la flota.
Nivel | Capacidades habilitadas | Requisito de la versión de GKE |
---|---|---|
Standardstandard |
Análisis de vulnerabilidades del SO del contenedor |
|
Advanced vulnerability insightsenterprise |
|
|
Para obtener más información, sobre cada capacidad, consulta Acerca del análisis de vulnerabilidades de las cargas de trabajo.
Habilita el análisis de vulnerabilidades del SO del contenedor
El análisis de vulnerabilidades del SO del contenedor está habilitado de forma predeterminada en los clústeres nuevos de Autopilot con la versión 1.27 y posteriores. En esta sección, se muestra cómo habilitar esta función en los nuevos clústeres de Standard existentes y en los clústeres de Autopilot que ejecutan versiones anteriores a la versión 1.27.
Habilita el análisis de Container OS en un clúster nuevo
gcloud
Crea un clúster de GKE nuevo mediante la gcloud CLI:
gcloud container clusters create CLUSTER_NAME \ --location=LOCATION \ --workload-vulnerability-scanning=standard
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre del clúster nuevo.LOCATION
: la ubicación de Compute Engine para tu clúster.
Console
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Ir a Google Kubernetes Engine- Haz clic en Crear.
- En la sección GKE Standard, haz clic en Configurar.
- En el panel de navegación, haz clic en Seguridad.
- En la sección Seguridad, selecciona la casilla de verificación Análisis de vulnerabilidades.
- Selecciona la opción Básico.
- Configura otras opciones para tu clúster y haz clic en Crear cuando esté todo listo.
Habilita el análisis de Container OS en un clúster existente
gcloud
Actualiza el clúster:
gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --workload-vulnerability-scanning=standard
Reemplaza lo siguiente:
CLUSTER_NAME
: es el nombre de tu clúster.LOCATION
: La ubicación de Compute Engine de tu clúster.
Console
Ve a la página Postura de seguridad en la consola de Google Cloud.
Ir a Postura de seguridad- Haz clic en la pestaña Configuración.
- En la sección Clústeres habilitados para el análisis de vulnerabilidades, haz clic en Seleccionar clústeres.
- Selecciona las casillas de verificación de los clústeres que deseas añadir.
- En el menú desplegable Seleccionar acción, selecciona Configurar como Básico.
- Haz clic en Aplicar.
Habilita las estadísticas avanzadas de vulnerabilidades
Advanced Vulnerability Insights permite el análisis continuo de tus aplicaciones en ejecución para los siguientes tipos de vulnerabilidades:
- Vulnerabilidades del SO del contenedor
- Vulnerabilidades de paquetes de idiomas
Cuando habilitas las estadísticas avanzadas de vulnerabilidades, la capacidad de análisis de vulnerabilidades del SO de contenedores se habilita de forma automática y no se puede inhabilitar por separado.
Requisitos
Asegúrate de haber habilitado la API de Container Analysis en tu proyecto.
Habilitar la API de Container Analysis
Habilita las estadísticas de vulnerabilidades avanzadas en un clúster nuevo
gcloud
Crea un clúster de GKE nuevo mediante la gcloud CLI:
gcloud container clusters create-auto CLUSTER_NAME \ --location=LOCATION \ --workload-vulnerability-scanning=enterprise
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre del clúster nuevo.LOCATION
: la ubicación de Compute Engine para tu clúster.
Console
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Ir a Google Kubernetes Engine- Haz clic en Crear.
- En la sección GKE Autopilot, haz clic en Configurar.
- En el panel de navegación, haz clic en Configuración avanzada. Si creas un clúster de Standard, haz clic en Seguridad en su lugar.
- En la sección Seguridad, selecciona la casilla de verificación Análisis de vulnerabilidades.
- Selecciona la opción Avanzada.
- Configura otras opciones para tu clúster y haz clic en Crear cuando esté todo listo.
Habilita las estadísticas avanzadas de vulnerabilidades en un clúster existente
gcloud
Actualiza el clúster:
gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --workload-vulnerability-scanning=enterprise
Reemplaza lo siguiente:
CLUSTER_NAME
: es el nombre de tu clúster.LOCATION
: La ubicación de Compute Engine de tu clúster.
Console
Ve a la página Postura de seguridad en la consola de Google Cloud.
Ir a Postura de seguridad- Haz clic en la pestaña Configuración.
- En la sección Clústeres habilitados para el análisis de vulnerabilidades, haz clic en Seleccionar clústeres.
- Selecciona las casillas de verificación de los clústeres que deseas añadir.
- En el menú desplegable Seleccionar acción, selecciona Establecer en Avanzada.
- Haz clic en Aplicar.
Implementa una carga de trabajo de prueba
Los siguientes manifiestos de ejemplo tienen vulnerabilidades conocidas con fines de demostración. En la práctica, si sabes que una aplicación es vulnerable, es probable que no debas ejecutarla.
Guarda el siguiente manifiesto como
os-vuln-sample.yaml
:apiVersion: apps/v1 kind: Deployment metadata: name: frontend spec: replicas: 1 selector: matchLabels: app: guestbook tier: frontend template: metadata: labels: app: guestbook tier: frontend spec: containers: - name: php-redis image: us-docker.pkg.dev/google-samples/containers/gke/gb-frontend@sha256:dc8de8e0d569d2f828b187528c9317bd6b605c273ac5a282aebe471f630420fc env: - name: GET_HOSTS_FROM value: "dns" resources: requests: cpu: 100m memory: 100Mi ports: - containerPort: 80
Revisa el siguiente manifiesto, que contiene una vulnerabilidad de Maven conocida:
De manera opcional, obtén credenciales para tu clúster:
gcloud container clusters get-credentials CLUSTER_NAME \ --region=COMPUTE_REGION
Implementa las aplicaciones en tu clúster:
kubectl apply -f os-vuln-sample.yaml kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/kubernetes-engine-samples/main/security/language-vulns/maven/deployment.yaml
Para probar otras vulnerabilidades, intenta implementar versiones anteriores de imágenes, como nginx
, en entornos de etapa de pruebas.
Visualiza los resultados y realiza acciones
El análisis inicial tarda al menos 15 minutos en mostrar resultados, según cuántas cargas de trabajo se analicen. GKE muestra los resultados en el panel de postura de seguridad y agrega entradas a Logging de forma automática.
Ver los resultados
Para ver una descripción general de los problemas descubiertos en los clústeres y cargas de trabajo de tu proyecto, haz lo siguiente:
Ve a la página Postura de seguridad en la consola de Google Cloud.
Haz clic en la pestaña Problemas.
En el panel Filtrar problemas, en la sección Tipo de problema, selecciona la casilla de verificación Vulnerabilidad.
Visualiza los detalles y las recomendaciones de los problemas
Para ver información detallada sobre una vulnerabilidad específica, haz clic en la fila que contiene ese problema.
En el panel Problemas de vulnerabilidad, se muestra la siguiente información:
- Descripción: Una descripción del problema, que incluye un número de CVE si corresponde y una descripción detallada de la vulnerabilidad y su impacto potencial.
- Acción recomendada: Acciones que puedes realizar para abordar la vulnerabilidad, como las versiones de paquetes fijos y dónde aplicar la corrección.
Consulta los registros de los problemas que se descubrieron
GKE agrega entradas al bucket de registros _Default
en Logging para cada problema descubierto. Estos registros solo se conservan durante un período específico. Para obtener más información, consulta Períodos de retención de registros.
En la consola de Google Cloud, ve a la página Explorador de registros.
Ir al Explorador de registrosEn el campo Consulta, ingresa la siguiente consulta:
resource.type="k8s_cluster" jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding" jsonPayload.type="FINDING_TYPE_VULNERABILITY"
Haz clic en Ejecutar consulta.
Para recibir notificaciones cuando GKE agregue resultados nuevos a Logging, configura alertas basadas en registros para esta consulta. Para obtener más información, consulta Configurar alertas basadas en registros.
Libera espacio
Borra la carga de trabajo de muestra que implementaste:
kubectl delete deployment frontend
De manera opcional, borra el clúster que usaste:
gcloud container clusters delete CLUSTER_NAME \ --region=COMPUTE_REGION
Inhabilita el análisis de vulnerabilidades de las cargas de trabajo
Puedes inhabilitar el análisis de vulnerabilidades de las cargas de trabajo mediante la gcloud CLI o la consola de Google Cloud.
gcloud
Ejecuta el comando siguiente:
gcloud container clusters update CLUSTER_NAME \ --region=LOCATION \ --workload-vulnerability-scanning=disabled
Reemplaza lo siguiente:
CLUSTER_NAME
: es el nombre de tu clúster.LOCATION
: La región o zona de Compute Engine para el clúster.
Console
Ve a la página Postura de seguridad en la consola de Google Cloud.
Ir a Postura de seguridad- Haz clic en la pestaña Configuración.
- En la sección Clústeres habilitados para el análisis de vulnerabilidades, haz clic en Seleccionar clústeres.
- Selecciona las casillas de verificación de los clústeres que deseas quitar.
- En el menú desplegable Seleccionar acción, selecciona Configurar como Inhabilitado.
- Haz clic en Aplicar.
¿Qué sigue?
- Obtén más información sobre el panel de postura de seguridad.
- Obtén más información sobre cómo analizar las cargas de trabajo en busca de problemas de configuración.