Recopilar registros de flujo de VPC

Disponible en:

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

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

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

Crear un segmento de Google Cloud Storage

  1. Inicia sesión en la consolaGoogle Cloud .
  2. Ve a la página Segmentos de Cloud Storage.

    Ir a Contenedores

  3. Haz clic en Crear.

  4. En la página Crear un segmento, introduce la información del segmento. Después de cada uno de los pasos siguientes, haga clic en Continuar para pasar al siguiente:

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

      1. Introduce un nombre único que cumpla los requisitos de nombres de segmentos. Por ejemplo, vpcflow-logs.
      2. Para habilitar el espacio de nombres jerárquico, haz clic en la flecha para desplegar la sección Optimizar para cargas de trabajo orientadas a archivos y con gran cantidad de datos y, a continuación, selecciona Habilitar espacio de nombres jerárquico en este bucket.

      3. Para añadir una etiqueta de contenedor, haz clic en la flecha para desplegar la sección Etiquetas.

      4. Haga clic en Añadir etiqueta y especifique una clave y un valor para la etiqueta.

    2. En la sección Elige dónde quieres almacenar los 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 donde se almacenarán de forma permanente los datos de los objetos de tu segmento.

      3. Para configurar la replicación entre contenedores, despliega la sección Configurar la replicación entre contenedores.

    3. En la sección Elige una clase de almacenamiento para tus datos, selecciona una clase de almacenamiento predeterminada para el segmento o Autoclass para gestionar automáticamente la clase de almacenamiento de los datos del segmento.

    4. En la sección Elige cómo quieres 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 del segmento.

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

      1. Selecciona cualquiera de las opciones de Protección de datos que quieras definir para tu contenedor.
      2. Para elegir cómo se cifrarán los datos de los objetos, haga clic en la flecha del desplegable Cifrado de datos y seleccione un Método de cifrado de datos.
  5. Haz clic en Crear.

Configurar la exportación de registros en Google Cloud VPC Flow

  1. Inicia sesión en tu 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 Predeterminado 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 S.
  7. Indica la frecuencia de muestreo. Por ejemplo, 50%.
  8. Haz clic en Guardar.
  9. Busca Registro en la barra de búsqueda y haz clic en Intro.
  10. En Explorador de registros, filtre los registros eligiendo VPC_flows en Nombre del registro y haga clic en Aplicar.
  11. Haz clic en Más acciones.
  12. Haz clic en Crear sumidero.
  13. Proporcione las siguientes configuraciones:
    1. Detalles del receptor: introduce un nombre y una descripción.
    2. Haz clic en Siguiente.
    3. Destino del receptor: selecciona Segmento de Cloud Storage.
    4. Segmento de Cloud Storage: selecciona el segmento que has creado antes o crea uno nuevo.
    5. Haz clic en Siguiente.
    6. Seleccionar los registros que se incluirán en el sumidero: se rellena un registro predeterminado cuando se selecciona una opción en el segmento de Cloud Storage.
    7. Haz clic en Siguiente.
    8. Opcional: Seleccionar los registros que se excluirán del sumidero: selecciona los registros que no quieras que se incluyan en el sumidero.
  14. Haz clic en Crear sumidero.

Configurar feeds

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

  • Configuración de SIEM > Feeds > Añadir nuevo feed
  • Centro de contenido > Paquetes de contenido > Empezar

Cómo configurar el feed de Google Cloud registros de flujo de VPC

  1. Haz clic en el paquete Plataforma de computación de Google Cloud.
  2. Busca el tipo de registro GCP VPC Flow Feed.
  3. Especifique los valores en los campos siguientes.

    • Tipo de fuente: Amazon SQS V2
    • Nombre de la cola: el nombre de la cola de SQS de la que se va a leer.
    • URI de S3: el URI del segmento.
      • s3://your-log-bucket-name/
        • Sustituye your-log-bucket-name por el nombre real de tu segmento de S3.
    • Opciones de eliminación de la fuente: selecciona la opción de eliminación que prefieras según tus preferencias de ingesta.

    • Antigüedad máxima del archivo: incluye los archivos modificados en los últimos días. El valor predeterminado es 180 días.

    • ID de clave de acceso a la cola de SQS: una clave de acceso de cuenta que es una cadena alfanumérica de 20 caracteres.

    • Clave de acceso secreta de la cola de SQS: una clave de acceso de cuenta que es una cadena alfanumérica de 40 caracteres.

    Opciones avanzadas

    • Nombre del feed: un valor rellenado automáticamente que identifica el feed.
    • Espacio de nombres del recurso: espacio de nombres asociado al feed.
    • Etiquetas de ingestión: etiquetas aplicadas a todos los eventos de este feed.
  4. Haga clic en Crear feed.

Para obtener más información sobre cómo configurar varios feeds para diferentes tipos de registros en esta familia de productos, consulta el artículo Configurar feeds por producto.

Formatos de registro de registros de flujo de VPC admitidos

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 ha convertido en una cadena y, a continuación, se ha asignado a un número entero.
En función del valor entero, asignado al nombre del protocolo IP (por ejemplo, TCP, UDP e ICMP).
connection.src_ip principal.ip Asignación directa.
connection.src_port principal.port Se ha convertido 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 target.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 ha cambiado el nombre a network.sent_bytes y se ha convertido a uinteger.
jsonPayload.packets_sent network.sent_packets Se ha convertido en un número entero.
labels.tunnel_id additional.fields Se ha combinado 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 el valor de 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 ha combinado con 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 ha combinado con principal.resource.attribute.labels con la clave cluster_location.
src_gke_details.cluster.cluster_name principal.resource.attribute.labels Se ha combinado con principal.resource.attribute.labels con la clave cluster_name.
src_gke_details.pod.pod_name principal.resource.attribute.labels Se ha combinado con principal.resource.attribute.labels con la clave pod_name.
src_gke_details.pod.pod_namespace principal.resource.attribute.labels Se ha combinado con 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 principal.namespace.
textPayload additional.fields Se ha combinado en additional.fields con la clave Textpayload y el tipo string_value.
timestamp metadata.event_timestamp Se usa para rellenar event_timestamp si jsonPayload.end_time está vacío.
metadata.description Se genera una descripción del flujo de red, incluido el remitente (SRC o DEST) y la dirección (INBOUND u OUTBOUND), en función del campo "reporter".
metadata.event_type NETWORK_CONNECTION para los registros de flujo de VPCs y USER_RESOURCE_ACCESS para otros tipos de registros.
metadata.log_type Su valor debe ser GCP_VPC_FLOW.
metadata.product_name Su valor debe ser GCP VPC Flow Logs.
metadata.product_version Su valor debe ser 1.0.
metadata.vendor_name Su valor debe ser Google Cloud.
network.direction Se determina en función de target.port. Si el puerto es conocido o está reservado, se considera ENTRANTE. De lo contrario, se considera SALIENTE.
security_result.severity El valor predeterminado es LOW.
target.resource.attribute.cloud.environment Su valor debe ser GOOGLE_CLOUD_PLATFORM.
target.resource.resource_type Su valor debe ser CLOUD_PROJECT.

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.