Recopila registros de flujo de VPC de Cloud

Compatible con:

En este documento, se explica cómo exportar los registros de flujo de VPC de Cloud a Google Security Operations con Google Cloud. El analizador transforma los registros de su formato JSON integrado en la UDM de Operaciones de seguridad de Google. Extrae campos relevantes, como la IP de origen y destino, el puerto, el protocolo y los bytes enviados, y luego los asigna a los campos de la UDM correspondientes, teniendo en cuenta la dirección de la red y los casos especiales para una representación precisa en Google SecOps.

Antes de comenzar

  • Asegúrate de tener una instancia de Google SecOps.
  • Asegúrate de que el flujo de VPC esté configurado y activo en tu Google Cloud entorno.
  • Asegúrate de tener acceso con privilegios a Google Cloud.

Crea un bucket de Google Cloud Storage.

  1. Accede a la consola de Google Cloud.
  2. Ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  3. Haz clic en Crear.

  4. En la página Crear un bucket, ingresa la información de tu bucket. Después de cada uno de los siguientes pasos, haz clic en Continuar para avanzar al siguiente:

    1. En la sección Primeros pasos, haz lo siguiente:

      1. Ingresa un nombre único que cumpla con los requisitos de nombre de bucket, por ejemplo, vpcflow-logs.
      2. Para habilitar el espacio de nombres jerárquico, haz clic en la flecha de expansión para expandir la sección Optimizar las cargas de trabajo orientadas a archivos y con uso intensivo de datos y, luego, selecciona Habilitar el espacio de nombres jerárquico en este bucket.

      3. Para agregar una etiqueta de bucket, haz clic en la flecha de expansión para expandir la sección Etiquetas.

      4. Haz clic en Agregar etiqueta y especifica una clave y un valor para tu etiqueta.

    2. En la sección Eligir dónde almacenar tus datos, haz lo siguiente:

      1. Selecciona un tipo de ubicación
      2. Usa el menú de tipo de ubicación para seleccionar una Ubicación en la que se almacenarán de forma permanente los datos de objetos de tu bucket.

      3. Para configurar la replicación entre buckets, expande la sección Configurar la replicación entre buckets.

    3. En la sección Elige una clase de almacenamiento para tus datos, selecciona una clase de almacenamiento predeterminada para el bucket o selecciona Autoclass para la administración automática de clases de almacenamiento de los datos de tu bucket.

    4. En la sección Elige cómo controlar el acceso a los objetos, selecciona no para aplicar la prevención del acceso público y elige un modelo de control de acceso para los objetos de tu bucket.

    5. En la sección Elige cómo proteger los datos de objetos, haz lo siguiente:

      1. Selecciona cualquiera de las opciones de Protección de datos que quieras configurar para tu bucket.
      2. Para elegir cómo se encriptarán los datos de tus objetos, haz clic en la flecha desplegable etiquetada como Encriptación de datos y selecciona un método de encriptación de datos.
  5. Haz clic en Crear.

Configura la exportación de registros en Google Cloud Flujo de VPC

  1. Accede a la cuenta de Google Cloud con tu cuenta con privilegios.
  2. En la página Bienvenido, haz clic en Redes de VPC.
  3. Haz clic en Predeterminada y debería aparecer una página de subred.
  4. Selecciona todos los registros.
  5. Haz clic en Registros de flujo > Configurar.
  6. Selecciona Intervalo de agregación (Aggregation Interval); por ejemplo, 30 SEC.
  7. Proporciona la Tasa de muestreo; por ejemplo, 50%.
  8. Haga clic en Guardar.
  9. Busca Registro en la barra de búsqueda y presiona Intro.
  10. En el Explorador de registros, filtra los registros eligiendo VPC_flows en Nombre del registro y haz clic en Aplicar.
  11. Haz clic en Más acciones.
  12. Haz clic en Crear receptor.
  13. Proporciona la siguiente configuración:
    1. Detalles del receptor: Ingresa un nombre y una descripción.
    2. Haz clic en Siguiente.
    3. Destino del receptor: Selecciona Bucket de Cloud Storage.
    4. Bucket de Cloud Storage: Selecciona el bucket que creaste antes o crea uno nuevo.
    5. Haz clic en Siguiente.
    6. Elige los registros que deseas incluir en el receptor: Se propaga un registro predeterminado cuando seleccionas una opción en el bucket de Cloud Storage.
    7. Haz clic en Siguiente.
    8. Opcional: Elige registros para filtrar fuera del receptor: Selecciona los registros que no deseas enviar al receptor.
  14. Haz clic en Crear receptor.

Configura un feed en Google SecOps para transferir Google Cloud registros de flujo de VPC

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Agregar nueva.
  3. En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Google Cloud Registros de flujo de VPC.
  4. Selecciona Google Cloud Storage como el Tipo de fuente.
  5. Selecciona Flujo de VPC de GCP como el Tipo de registro.
  6. Haz clic en Obtener cuenta de servicio como la cuenta de servicio de Chronicle.
  7. Haz clic en Siguiente.
  8. Especifica valores para los siguientes parámetros de entrada:

    • URI del bucket de almacenamiento: Google Cloud URL del bucket de almacenamiento en formato gs://my-bucket/<value>.
    • URI Is A: Selecciona Directorio que incluye subdirectorios.
    • Opciones de eliminación de fuentes: Selecciona la opción de eliminación según tus preferencias.

    • Espacio de nombres de recursos: Es el espacio de nombres de recursos.

    • Etiquetas de transferencia: Es la etiqueta que se aplica a los eventos de este feed.

  9. Haz clic en Siguiente.

  10. Revisa la configuración de tu nuevo feed en la pantalla Finalizar y, luego, haz clic en Enviar.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
connection.dest_ip target.asset.ip
target.ip
Asignación directa cuando network.direction es OUTBOUND.
Se asigna desde principal.ip cuando network.direction es INBOUND.
connection.dest_port target.port Se convierte en número entero si es mayor que -1.
connection.protocol network.ip_protocol Se convierte en una cadena y, luego, se asigna a un número entero.
Según el valor entero, se asigna al nombre del protocolo IP (p.ej., TCP, UDP, ICMP).
connection.src_ip principal.ip Asignación directa
connection.src_port principal.port Se convirtió en número entero.
dest_instance.region target.location.name Asignación directa
dest_instance.vm_name target.asset.hostname Asignación directa
dest_location.city target.location.city Asignación directa
dest_location.country target.location.country_or_region Asignación directa
dest_location.region target.location.state Asignación directa
dest_vpc.project_id target.namespace Se usa con dest_vpc.vpc_name para formar el target.namespace.
dest_vpc.vpc_name target.namespace Se usa con dest_vpc.project_id para formar target.namespace.
insertId metadata.product_log_id Asignación directa
jsonPayload.bytes_sent network.sent_bytes Se cambió el nombre a network.sent_bytes y se convirtió a uinteger.
jsonPayload.packets_sent network.sent_packets Se convirtió en número entero.
labels.tunnel_id additional.fields Se combinaron en additional.fields con la clave Tunnel Id y el tipo string_value.
logName security_result.category_details Asignación directa
resource.labels.project_id target.resource.name Se usa para crear target.resource.name con el formato //cloudresourcemanager.googleapis.com/projects/{resource.labels.project_id}.
resource.labels.region target.location.country_or_region Asignación directa
resource.labels.subnetwork_id target.user.attribute.labels Se fusionó en target.user.attribute.labels con la clave subnetwork_id.
resource.type metadata.product_event_type Asignación directa
gravedad, security_result.severity Se asigna a LOW si el valor es DEBUG.
src_gke_details.cluster.cluster_location principal.resource.attribute.labels Se fusionó en principal.resource.attribute.labels con la clave cluster_location.
src_gke_details.cluster.cluster_name principal.resource.attribute.labels Se fusionó en principal.resource.attribute.labels con la clave cluster_name.
src_gke_details.pod.pod_name principal.resource.attribute.labels Se fusionó en principal.resource.attribute.labels con la clave pod_name.
src_gke_details.pod.pod_namespace principal.resource.attribute.labels Se fusionó en principal.resource.attribute.labels con la clave pod_namespace.
src_instance.region principal.location.name Asignación directa
src_instance.vm_name principal.asset.hostname Asignación directa
src_location.city principal.location.city Asignación directa
src_location.country principal.location.country_or_region Asignación directa
src_location.region principal.location.state Asignación directa
src_vpc.project_id principal.namespace Se usa con src_vpc.vpc_name para formar el principal.namespace.
src_vpc.vpc_name principal.namespace Se usa con src_vpc.project_id para formar el principal.namespace.
textPayload additional.fields Se fusionaron en additional.fields con la clave Textpayload y el tipo string_value.
timestamp metadata.event_timestamp Se usa para completar event_timestamp si jsonPayload.end_time está vacío.
metadata.description En función del campo "reporter", se genera una descripción del flujo de red, incluido el generador de informes (SRC o DEST) y la dirección (INBOUND o OUTBOUND).
metadata.event_type Establece NETWORK_CONNECTION para los registros de flujo de VPC y USER_RESOURCE_ACCESS para otros tipos de registros.
metadata.log_type Se define en GCP_VPC_FLOW.
metadata.product_name Se define en GCP VPC Flow Logs.
metadata.product_version Se define en 1.0.
metadata.vendor_name Se define en Google Cloud.
network.direction Se determina según target.port. Si el puerto es conocido o reservado, se considera INBOUND; de lo contrario, se considera OUTBOUND.
security_result.severity Se configura de forma predeterminada en LOW.
target.resource.attribute.cloud.environment Se define en GOOGLE_CLOUD_PLATFORM.
target.resource.resource_type Se define en CLOUD_PROJECT.

Cambios

2024-10-24

Mejora:

  • Se intercambió la asignación de principal.ip y principal.port por target.ip y target.port, respectivamente.

2024-03-15

Mejora:

  • Se asignaron jsonPayload.src_gke_details.pod.pod_namespace, jsonPayload.src_gke_details.pod.pod_name, jsonPayload.src_gke_details.cluster.cluster_name y jsonPayload.src_gke_details.cluster.cluster_location a principal.resource.attribute.labels.
  • Se asignaron jsonPayload.dest_gke_details.pod.pod_namespace, jsonPayload.dest_gke_details.pod.pod_name, jsonPayload.dest_gke_details.cluster.cluster_name y jsonPayload.dest_gke_details.cluster.cluster_location a target.resource.attribute.labels.

2023-05-23

Mejora:

  • Se asignó "metadata.event_type" a "USER_RESOURCE_ACCESS" cuando el campo "logName" no contiene "vpc_flows".
  • Se asignó "timestamp" a "events.timestamp".
  • Se asignaron "textPayload" y "labels.tunnel_id" a "additional.fields".
  • Se asignó "resource.labels.region" a "target.location.country_or_region".
  • Se agregaron verificaciones nulas para varios campos donde sea necesario.

2023-04-10

Mejora:

  • Establece target.resource.attribute.cloud.environment en GOOGLE_CLOUD_PLATFORM.
  • Establece target.resource.name en el valor del nombre completo del recurso.

2022-07-22

Mejora:

  • Se asignó resource.labels.location a principal.location.name.
  • Se asignó resource.labels.subnetwork_id a target.user.attribute.labels.
  • Se asignó logName a security_result.category_details.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.