Recopila registros de flujo de VPC
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.
- Accede a la consola deGoogle Cloud .
Ve a la página Buckets de Cloud Storage.
Haz clic en Crear.
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:
En la sección Primeros pasos, haz lo siguiente:
- Ingresa un nombre único que cumpla con los requisitos de nombres de bucket, por ejemplo, vpcflow-logs.
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.
Para agregar una etiqueta de bucket, haz clic en la flecha de expansión para expandir la sección Etiquetas.
Haz clic en Agregar etiqueta y especifica una clave y un valor para tu etiqueta.
En la sección Eligir dónde almacenar tus datos, haz lo siguiente:
- Selecciona un tipo de ubicación
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.
Para configurar la replicación entre bucket, expande la sección Configura la bucket entre buckets.
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.
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.
En la sección Elige cómo proteger los datos de objetos, haz lo siguiente:
- Selecciona cualquiera de las opciones de Protección de datos que desees configurar para tu bucket.
- 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.
Haz clic en Crear.
Configura la exportación de registros en Google Cloud VPC Flow
- Accede a la cuenta de Google Cloud con tu cuenta con privilegios.
- En la página Welcome, haz clic en VPC Networks.
- Haz clic en Predeterminada y debería aparecer una página de subred.
- Selecciona todos los registros.
- Haz clic en Registros de flujo > Configurar.
- Selecciona Intervalo de agregación; por ejemplo, 30 SEG.
- Proporciona la Tasa de muestreo; por ejemplo, 50%.
- Haga clic en Guardar.
- Busca Logging en la barra de búsqueda y haz clic en Intro.
- En el Explorador de registros, filtra los registros. Para ello, elige VPC_flows en Nombre del registro y haz clic en Aplicar.
- Haz clic en Más acciones.
- Haz clic en Crear receptor.
- Proporciona los siguientes parámetros de configuración:
- Detalles del receptor: Ingresa un nombre y una descripción.
- Haz clic en Siguiente.
- Destino del receptor: Selecciona Bucket de Cloud Storage.
- Bucket de Cloud Storage: Selecciona el bucket que creaste antes o crea uno nuevo.
- Haz clic en Siguiente.
- Elige registros para incluirlos en el receptor: Se propaga un registro predeterminado cuando seleccionas una opción en el bucket de Cloud Storage.
- Haz clic en Siguiente.
- Opcional: Elige registros para filtrar fuera del receptor: Selecciona los registros que no deseas que se envíen al receptor.
- 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:
- Ve a Configuración del SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Registros de flujo de VPC.
- Selecciona Google Cloud Storage como el Tipo de fuente.
- Selecciona GCP VPC Flow como el Tipo de registro.
- Haz clic en Obtener cuenta de servicio como la Cuenta de servicio de Chronicle.
- Haz clic en Siguiente.
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.
- URI del bucket de almacenamiento:URL del bucket de almacenamiento en formato
Haz clic en Siguiente.
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.