Recopila registros de flujo de VPC

Compatible con:

En este documento, se explica cómo exportar registros de flujo de VPC a Google Security Operations con Google Cloud. El analizador transforma los registros de su formato JSON integrado al UDM de Google Security Operations. 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 correspondientes del UDM, 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 cumplir con los siguientes requisitos previos:

  • Instancia de Google SecOps.
  • El flujo de VPC está configurado y activo en tu entorno Google Cloud .
  • Acceso con privilegios a Google Cloud.

Crea un bucket de Google Cloud Storage.

  1. Accede a la consola deGoogle 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 paso:

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

      1. Ingresa un nombre único que cumpla con los requisitos de nombres 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 bucket, expande la sección Configura la bucket 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 selecciona un modelo de control de acceso para los objetos del 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 desees 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 VPC Flow

  1. Accede a la cuenta de Google Cloud con tu cuenta con privilegios.
  2. En la página Welcome, haz clic en VPC Networks.
  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; por ejemplo, 30 SEG.
  7. Proporciona la Tasa de muestreo; por ejemplo, 50%.
  8. Haga clic en Guardar.
  9. Busca Logging en la barra de búsqueda y haz clic en Intro.
  10. En el Explorador de registros, filtra los registros. Para ello, elige 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 los siguientes parámetros de 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 registros para incluirlos 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 que se envíen al receptor.
  14. Haz clic en Crear receptor.

Configura feeds

Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:

  • Configuración de SIEM > Feeds
  • Centro de contenido > Paquetes de contenido

Configura feeds en Configuración del SIEM > Feeds

Para configurar un feed, sigue estos pasos:

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

    • URI del bucket de almacenamiento:URL del bucket de almacenamiento en formato gs://my-bucket/<value> Google Cloud
    • URI Is A: Selecciona Directory which includes subdirectories.
    • Opciones de borrado de la fuente: Selecciona la opción de borrado según tu preferencia.

  10. Haz clic en Siguiente.

  11. Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.

Formatos de registro admitidos de los registros de flujo de VPC

El analizador de registros de flujo de VPC admite registros en formato JSON.

Registros de muestra de registros de flujo de VPC admitidos

  • JSON

    {
      "insertId": "1wjp1y9f8vc6y6",
      "jsonPayload": {
        "bytes_sent": "0",
        "connection": {
          "dest_ip": "198.51.100.0",
          "dest_port": 32846,
          "protocol": 6,
          "src_ip": "198.51.100.1",
          "src_port": 443
        },
        "dest_instance": {
          "project_id": "logging-259109",
          "region": "us-west2",
          "vm_name": "demisto-01",
          "zone": "us-west2-a"
        },
        "dest_vpc": {
          "project_id": "logging-259109",
          "subnetwork_name": "default",
          "vpc_name": "default"
        },
        "end_time": "2020-03-28T10:44:41.896734136Z",
        "packets_sent": "2",
        "reporter": "DEST",
        "start_time": "2020-03-28T10:44:41.896734136Z"
      },
      "logName": "projects/logging-259109/logs/compute.googleapis.com%2Fvpc_flows",
      "receiveTimestamp": "2020-03-28T10:44:50.112903743Z",
      "resource": {
        "labels": {
          "location": "us-west2-a",
          "project_id": "dummy_project_id",
          "subnetwork_id": "subnetwork_id",
          "subnetwork_name": "default"
        },
        "type": "gce_subnetwork"
      },
      "timestamp": "2020-03-28T10:44:50.112903743Z"
    }
    

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 un 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 de IP (p.ej., TCP, UDP, ICMP).
connection.src_ip principal.ip Asignación directa
connection.src_port principal.port Se convirtió en un 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 destino.namespace.
dest_vpc.vpc_name target.namespace Se usa con dest_vpc.project_id para formar el 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 un número entero.
labels.tunnel_id additional.fields Se combinó 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 construir el 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 combinó 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 combinó en principal.resource.attribute.labels con la clave cluster_location.
src_gke_details.cluster.cluster_name principal.resource.attribute.labels Se combinó en principal.resource.attribute.labels con la clave cluster_name.
src_gke_details.pod.pod_name principal.resource.attribute.labels Se combinó en principal.resource.attribute.labels con la clave pod_name.
src_gke_details.pod.pod_namespace principal.resource.attribute.labels Se combinó 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 principal.namespace.
src_vpc.vpc_name principal.namespace Se usa con src_vpc.project_id para formar principal.namespace.
textPayload additional.fields Se combinó 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, que incluye el reporter (SRC o DEST) y la dirección (INBOUND o OUTBOUND).
metadata.event_type Se establece en NETWORK_CONNECTION para los registros de flujo de VPC y en 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 el valor de target.port. Si el puerto es conocido o reservado, se considera ENTRANTE; de lo contrario, se considera SALIENTE.
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.

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