Se detectó una URL maliciosa

En este documento, se describe un tipo de hallazgo de amenazas de Security Command Center. Los detectores de amenazas generan hallazgos de amenazas cuando identifican una posible amenaza en tus recursos de Cloud. Para obtener una lista completa de los hallazgos de amenazas disponibles, consulta el Índice de hallazgos de amenazas.

Descripción general

Container Threat Detection observó una URL maliciosa en la lista de argumentos de un proceso ejecutable. Los atacantes pueden cargar malware o bibliotecas maliciosas a través de URLs maliciosas.

Container Threat Detection es la fuente de este hallazgo.

Cómo responder

Para responder a este hallazgo, sigue los pasos que se indican a continuación:

Paso 1: Revisa los detalles del hallazgo

  1. Abre un hallazgo de Malicious URL Observed como se indica en Revisa los hallazgos. En la pestaña Resumen, se abrirá el panel de detalles del hallazgo.

  2. En la pestaña Resumen, revisa la información de las secciones que se indican a continuación:

    • Qué se detectó, en especial, los campos siguientes:
      • URI: Es el URI malicioso observado.
      • Objeto binario agregado: Es la ruta de acceso completa al objeto binario del proceso que recibió los argumentos que contienen la URL maliciosa.
      • Argumentos: Son los argumentos que se proporcionan cuando se invoca el objeto binario del proceso.
      • Variables de entorno: Son las variables de entorno que estaban vigentes cuando se invocó el objeto binario del proceso.
      • Contenedores: Es el nombre del contenedor.
      • Pods de Kubernetes: Es el nombre y el espacio de nombres del pod.
    • Recurso afectado, en especial, los campos siguientes:
      • Nombre visible del recurso: Es el nombre del recurso afectado.
      • Nombre completo del recurso: Es el nombre completo del recurso del clúster. El nombre completo del recurso incluye la siguiente información:
        • El proyecto que contiene el clúster: projects/PROJECT_ID
        • La ubicación en la que se encuentra el clúster: either zone/ZONE or locations/LOCATION
        • El nombre del clúster: projects/CLUSTER_NAME
    • Vínculos relacionados, en especial los siguientes campos:
      • Indicador de VirusTotal: Es el vínculo a la página de análisis de VirusTotal.
  3. En la pestaña JSON, en el atributo sourceProperties, anota el valor de la propiedad VM_Instance_Name.

Paso 2: Revisa el clúster y el nodo

  1. En la consola de Google Cloud , accede a la página Clústeres de Kubernetes.

    Ir a los clústeres de Kubernetes

  2. En la barra de herramientas de la Google Cloud consola, selecciona el proyecto que aparece en Nombre completo del recurso (resource.name), si es necesario. El nombre del proyecto aparece después de /projects/ en el nombre completo del recurso.

  3. Haz clic en el nombre del clúster que anotaste en Nombre visible del recurso (resource.display_name) del resumen del hallazgo. Se abrirá la página Clústeres.

  4. En la sección Metadatos de la **página de detalles del clúster, anota cualquier información definida por el usuario que pueda ser útil para resolver la amenaza, como la información que identifica al propietario del clúster.

  5. Haz clic en la pestaña Nodos.

  6. En los nodos enumerados, selecciona el nodo que coincida con el valor de VM_Instance_Name que anotaste antes en el JSON del hallazgo.

  7. En la pestaña Detalles de la página Detalles del nodo, en la sección Anotaciones, anota el valor de la anotación container.googleapis.com/instance_id.

Paso 3: Revisa el Pod

  1. En la consola de Google Cloud , accede a la página Cargas de trabajo de Kubernetes.

    Ir a Cargas de trabajo en Kubernetes

  2. En la Google Cloud barra de herramientas de la consola, selecciona el proyecto que anotaste en el Nombre completo del recurso (resource.name) del clúster en el resumen del hallazgo, si es necesario.

  3. Haz clic en Mostrar cargas de trabajo del sistema.

  4. Filtra la lista de cargas de trabajo por el nombre del clúster que anotaste en Nombre completo del recurso (resource.name) del resumen del hallazgo y, si es necesario, el espacio de nombres (kubernetes.pods.ns) del pod que anotaste.

  5. Haz clic en el nombre de la carga de trabajo que coincida con el valor de la propiedad VM_Instance_Name que anotaste antes en el JSON del hallazgo. Se abrirá la página Detalles del pod.

  6. En la página Detalles del pod, anota cualquier información sobre el pod que pueda ayudarte a resolver la amenaza.

Paso 4: Revisa los registros

  1. En la consola de Google Cloud , accede al Explorador de registros.

    Ir al Explorador de registros

  2. En la barra de herramientas de la Google Cloud consola, selecciona el proyecto que aparece en **Nombre completo del recurso** (resource.name), si es necesario.

  3. Selecciona Seleccionar período en el período de interés.

  4. En la página que se carga, haz lo que se indica a continuación:

    1. Busca los registros del Pod por tu pod (kubernetes.pods.name) con el siguiente filtro:
      • resource.type="k8s_container"
      • resource.labels.project_id="PROJECT_ID"
      • resource.labels.location="LOCATION"
      • resource.labels.cluster_name="CLUSTER_NAME"
      • resource.labels.namespace_name="NAMESPACE_NAME"
      • resource.labels.pod_name="POD_NAME"
    2. Busca los registros de auditoría del clúster con el siguiente filtro:
      • logName="projects/PROJECT_NAME/logs/cloudaudit.googleapis.com%2Factivity"
      • resource.type="k8s_cluster"
      • resource.labels.project_id="PROJECT_ID"
      • resource.labels.location="LOCATION_OR_ZONE"
      • resource.labels.cluster_name="CLUSTER_NAME/var>"
      • POD_NAME
    3. Busca los registros de la consola de los nodos de GKE con el filtro siguiente:
      • resource.type="gce_instance"
      • resource.labels.instance_id="INSTANCE_ID"

Paso 5: Investiga el contenedor en ejecución

Si el contenedor aún está en ejecución, es posible investigar el entorno del contenedor directamente.

  1. En la consola de Google Cloud , accede a la página Clústeres de Kubernetes.

    Acceder a Clústeres de Kubernetes

  2. Haz clic en el nombre del clúster que se muestra en resource.labels.cluster_name.

  3. En la página Clústeres, haz clic en Conectar y, luego, en Ejecutar en Cloud Shell.

    De este modo, Cloud Shell se inicia y agrega comandos para el clúster en la terminal.

  4. Presiona Intro y, si aparece el diálogo Autorizar Cloud Shell, haz clic en Autorizar.

  5. Conéctate al entorno del contenedor ejecutando el comando siguiente:

      kubectl exec --namespace=POD_NAMESPACE -ti POD_NAME -c CONTAINER_NAME -- /bin/sh
    

    Reemplaza CONTAINER_NAME por el nombre del contenedor que anotaste antes en el resumen del hallazgo.

    Este comando requiere que el contenedor tenga una shell instalada en /bin/sh.

Paso 6: Investiga los métodos de ataque y respuesta

  1. Verifica el estado del sitio de Navegación segura para obtener detalles sobre por qué la URL se clasifica como maliciosa.
  2. Revisa las entradas del framework de MITRE ATT&CK para este tipo de hallazgo: Transferencia de herramientas de Ingress.
  3. Para comprobar el valor de hash SHA-256 del objeto binario marcado como malicioso en VirusTotal, haz clic en el vínculo del indicador de VirusTotal. VirusTotal es un servicio propiedad de Alphabet que proporciona contexto sobre archivos, URLs, dominios y direcciones IP potencialmente maliciosos.
  4. Para elaborar un plan de respuesta, combina los resultados que recopilaste con la investigación de MITRE y el análisis de VirusTotal.

Paso 7: Implementa la respuesta

El siguiente plan de respuesta podría ser adecuado para este hallazgo, pero también podría afectar las operaciones. Evalúa con cuidado la información que recopilas durante la investigación para determinar la mejor manera de resolver los hallazgos.

  • Comunícate con el propietario del proyecto en el que se encuentra el contenedor vulnerado.
  • Detén o borra el contenedor vulnerado y reemplázalo por un contenedor nuevo.

¿Qué sigue?