Recoger registros de flujo de VPC de AWS

Disponible en:

En este documento se describe cómo puede recoger registros de flujo de VPC de AWS mediante un reenviador de Google Security Operations.

Para obtener más información, consulta Ingestión de datos en Google SecOps.

Una etiqueta de ingestión identifica el analizador que normaliza los datos de registro sin procesar en formato UDM estructurado. La información de este documento se aplica al analizador con la etiqueta de ingestión AWS_VPC_FLOW.

Formatos de registros de flujo de VPC de AWS admitidos

Google SecOps admite la ingestión de registros de flujo de VPC de AWS en dos formatos de texto principales:

  • Formato JSON: el tipo de registro AWS_VPC_FLOW analiza los registros en formato JSON. En este formato, cada entrada de registro incluye una clave y su valor correspondiente, lo que hace que los datos se describan por sí mismos.

  • Formato CSV: Google SecOps también proporciona un analizador para los registros de flujo de VPC de AWS en formato CSV. En este formato, las claves de campo solo se indican una vez en la fila de encabezado, y las filas posteriores solo contienen valores separados por comas.

Para ingerir registros de flujo de VPC de AWS en formato CSV, especifica el tipo de registro como AWS_VPC_FLOW_CSV al configurar tu reenviador. Para obtener instrucciones de configuración, consulta el artículo Configurar el reenviador de Google SecOps y syslog para ingerir registros de flujo de VPC de AWS.

Como el formato CSV no incluye claves de campo en cada entrada de registro, el analizador AWS_VPC_FLOW_CSV se basa en un orden de valores estricto y predefinido. Para que los archivos CSV se analicen correctamente, deben tener los campos en el siguiente orden:

   Version,Account_id,Interface_id,Srcaddr,Dstaddr,Srcport,Dstport,Protocol,Packets,Bytes,Start,End,Action,Log_status,Vpc_id,Subnet_id,Instance_id,Tcp_flags,Type,Pkt_srcaddr,Pkt_dstaddr,Region,Az_id,Sublocation_type,Sublocation_id,Pkt_src_aws_service,Pkt_dst_aws_service,Flow_direction,Traffic_path,Ecs_cluster_arn,Ecs_cluster_name,Ecs_container_instance_arn,Ecs_container_instance_id,Ecs_container_id,Ecs_second_container_id,Ecs_service_name,Ecs_task_definition_arn,Ecs_task_arn,Ecs_task_id

A continuación, se muestra un ejemplo de una línea de registro CSV:

   7,369096419186,eni-0520bb5efed19d33a,10.119.32.34,10.119.223.3,51256,16020,6,14,3881,1723542839,1723542871,ACCEPT,OK,vpc-0769a6844ce873a6a,subnet-0cf9b2cb32f49f258,i-088d6080f45f5744f,0,IPv4,10.119.32.34,10.119.223.3,ap-northeast-1,apne1-az4,-,-,-,-,ingress,,-,-,-,-,-,-,-,-,-,-

En los campos en los que no haya ningún valor disponible, se debe indicar un valor vacío (por ejemplo, , ,) para mantener el orden posicional correcto en la fila del archivo CSV.

Antes de empezar

Configurar el flujo de VPC de AWS

Configure el flujo de VPC de AWS en función de si reenvía los registros a Amazon S3 o a Amazon CloudWatch.

Configurar registros de flujo para reenviar registros a Amazon S3

Una vez que hayas creado y configurado el segmento de Amazon S3, podrás crear registros de flujo para tus interfaces de red, subredes y redes VPC.

Crear un registro de flujo para una interfaz de red

  1. Inicia sesión en la consola de Amazon EC2.
  2. En el panel de navegación, selecciona Interfaces de red.
  3. Selecciona una o varias interfaces de red.
  4. Selecciona Acciones > Crear registro de flujo.
  5. Configura los ajustes del registro de flujo. Para obtener más información, consulta la sección Configurar los ajustes de los registros de flujo de este documento.

Crear un registro de flujo de una subred

  1. Inicia sesión en la consola de Amazon VPC.
  2. En el panel de navegación, selecciona Subredes.
  3. Selecciona una o varias subredes.
  4. Selecciona Acciones > Crear registro de flujo.
  5. Configura los ajustes del registro de flujo. Para obtener más información, consulta la sección Configurar los ajustes de los registros de flujo de este documento.

Crear un registro de flujo de una VPC

  1. Inicia sesión en la consola de Amazon VPC.
  2. En el panel de navegación, selecciona VPCs.
  3. Seleccione una o varias VPCs.
  4. Selecciona Acciones > Crear registro de flujo.
  5. Configura los ajustes del registro de flujo. Para obtener más información, consulta la sección Configurar los ajustes de los registros de flujo de este documento.

Configurar los ajustes de los registros de flujo

  1. En la sección Filtro, especifique el tráfico IP que se debe registrar:

    • Aceptar: registra solo el tráfico aceptado.

    • Rechazar: registra solo el tráfico rechazado.

    • Todo: registra el tráfico aceptado y rechazado.

  2. En la sección Intervalo de agregación máximo, selecciona 1 minuto.

  3. En la sección Destino, selecciona Enviar a un segmento de Amazon S3.

  4. En la sección S3 bucket ARN (ARN del segmento de S3), especifica el ARN de un segmento de Amazon S3.

  5. En la sección Formato de registro, especifica los siguientes formatos para el registro de flujo:

    1. Para usar el formato de registro de registro de flujo predeterminado, selecciona Formato predeterminado de AWS.
    2. Para crear un formato personalizado, selecciona Formato personalizado.
  6. Configura el flujo de registros de VPC con el formato de registro de AWS personalizado para usar las funciones de IP verdadera de MSS.

  7. En la lista Formato de registro, seleccione todos los atributos.

  8. En la sección Vista previa del formato, revisa el formato personalizado.

  9. En la sección Formato de archivo de registro, seleccione Texto (predeterminado).

  10. En la sección Prefijo de S3 compatible con Hive, deje desmarcada la casilla Habilitar.

  11. En la sección Partición de registros por tiempo, selecciona Cada 1 hora (60 minutos).

  12. Para añadir una etiqueta al registro de flujo, seleccione Añadir nueva etiqueta y especifique la clave y el valor de la etiqueta.

  13. Selecciona Crear registro de flujo. Para obtener más información, consulta Publicar registros de flujo en Amazon S3.

Configurar registros de flujo en Amazon CloudWatch

Puedes configurar los registros de flujo desde VPCs, subredes o interfaces de red.

  1. En la sección Filtro, especifique el tipo de tráfico IP que se debe registrar:

    • Aceptar: registra solo el tráfico aceptado.

    • Rechazar: registra solo el tráfico rechazado.

    • Todo: registra el tráfico aceptado y rechazado.

  2. En la sección Intervalo de agregación máximo, selecciona 1 minuto.

  3. En la sección Destino, selecciona Enviar a CloudWatch Logs.

  4. En la sección Grupo de registros de destino, indica el nombre del grupo de registros de destino que has creado.

  5. En la lista Rol de gestión de identidades y accesos, selecciona el nombre del rol. El nombre del rol seleccionado tiene permisos para publicar registros en los registros de CloudWatch.

    El rol de gestión de identidades y accesos debe incluir los siguientes permisos:

       {
         "Version": "2012-10-17",
         "Statement": [
           {
             "Effect": "Allow",
             "Action": [
               "logs:CreateLogGroup",
               "logs:CreateLogStream",
               "logs:PutLogEvents",
               "logs:DescribeLogGroups",
               "logs:DescribeLogStreams"
           ],
           "Resource": "*"
         }
        ]
       }
    
  6. En la sección Formato de registro, seleccione Formato personalizado para el registro de flujo.

  7. Para añadir una etiqueta al registro de flujo, seleccione Añadir nueva etiqueta y especifique la clave y el valor de la etiqueta.

  8. Selecciona Crear registro de flujo. Para obtener más información, consulta Publicar registros de flujo en Amazon S3.

Amazon S3 se puede configurar para enviar las notificaciones de eventos a Amazon SQS. Para obtener más información, consulta Configurar un segmento para las notificaciones (tema de SNS o cola de SQS).

Se necesitan políticas de usuario de gestión de identidades y accesos para Amazon S3 y Amazon SQS si se usa Amazon SQS (Amazon S3 con Amazon SQS) como método de recogida de registros. Para obtener más información, consulta Usar políticas de gestión de identidades y accesos con AWS KMS.

En función del servicio y la región, identifique los endpoints para la conectividad consultando la siguiente documentación de AWS:

Configurar el reenviador de Google SecOps y syslog para ingerir registros de flujo de VPC de AWS

  1. Selecciona Configuración de SIEM > Reenvíos.
  2. Haz clic en Añadir nuevo remitente.
  3. Introduce un nombre único para el nombre del remitente.
  4. Haz clic en Enviar y, a continuación, en Confirmar. Se añade el reenviador y se muestra la ventana Añadir configuración de recopilador.
  5. En el campo Nombre del recolector, escribe un nombre.
  6. En el campo Tipo de registro, seleccione Flujo de VPC de AWS o Flujo de VPC de AWS (CSV), según el formato de registro.
  7. En el campo Tipo de recopilador, selecciona Syslog.
  8. Configure los siguientes parámetros de entrada obligatorios:
    • Protocolo: especifica el protocolo de conexión que usará el recopilador para detectar datos de syslog.
    • Dirección: especifica la dirección IP o el nombre de host de destino en el que reside el recopilador y las direcciones de los datos de syslog.
    • Puerto: especifica el puerto de destino en el que reside el recolector y escucha los datos de syslog.
  9. Haz clic en Enviar y, a continuación, en Confirmar.

Para obtener más información sobre los reenviadores de Google SecOps, consulta la documentación sobre los reenviadores de Google Security Operations. Para obtener información sobre los requisitos de cada tipo de reenviador, consulta Configuración de reenviadores por tipo.

Si tienes problemas al crear reenviadores, ponte en contacto con el equipo de Asistencia de Google Security Operations.

Referencia de asignación de campos

Este analizador transforma los registros de flujo de VPC de AWS sin procesar (en formato JSON o CSV) en formato UDM estructurado. Extrae los campos relevantes, los asigna para que coincidan con el esquema del UDM y enriquece los datos con contexto adicional, como el tipo de recurso, el proveedor de la nube y las etiquetas, para facilitar un análisis más detallado. La lógica de asignación es coherente en ambos formatos: el analizador CSV se basa en un orden de campos predefinido para alinear los valores con los mismos campos de UDM que se usan en el formato JSON.

Tabla de asignación de UDM para el analizador de VPC de AWS EC2

Campo de registro (ascendente) Asignación de UDM Lógica
CidrBlock event.idm.entity.entity.resource.attribute.labels.cidr_block Se asigna directamente desde el campo "CidrBlock" del registro sin procesar.
CidrBlock event.idm.entity.entity.network.ip_subnet_range Se asigna directamente desde el campo "CidrBlock" del registro sin procesar.
CidrBlockAssociation.AssociationID event.idm.entity.entity.resource.attribute.labels.cidr_block_association_association_id Se asigna directamente desde el campo "AssociationID" de la matriz "CidrBlockAssociation" del registro sin procesar.
CidrBlockAssociation.CidrBlockState.State event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_state Se asigna directamente desde el campo "State" del objeto "CidrBlockState" de la matriz "CidrBlockAssociation" del registro sin procesar.
CidrBlockAssociation.CidrBlockState.StatusMessage event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_status_message Se asigna directamente desde el campo "StatusMessage" del objeto "CidrBlockState" de la matriz "CidrBlockAssociation" del registro sin procesar.
DhcpOptionsID event.idm.entity.entity.resource.attribute.labels.dhcp_options_id Se asigna directamente desde el campo "DhcpOptionsID" del registro sin procesar.
ID event.idm.entity.entity.resource.product_object_id Se asigna directamente desde el campo "ID" del registro sin procesar, que se cambia a "VpcID" en el analizador.
ID event.idm.entity.metadata.product_entity_id Se asigna directamente desde el campo "ID" del registro sin procesar, que se cambia a "VpcID" en el analizador.
InstanceTenancy event.idm.entity.entity.resource.attribute.labels.instance_tenancy Se asigna directamente desde el campo "InstanceTenancy" del registro sin procesar.
IsDefault event.idm.entity.entity.resource.attribute.labels.is_default Se asigna directamente desde el campo "IsDefault" del registro sin procesar.
Ipv6CidrBlockAssociationSet.AssociationID event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_association_id Se asigna directamente desde el campo "AssociationID" de la matriz "Ipv6CidrBlockAssociationSet" del registro sin procesar.
Ipv6CidrBlockAssociationSet.Ipv6CidrBlock event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block Se asigna directamente desde el campo "Ipv6CidrBlock" de la matriz "Ipv6CidrBlockAssociationSet" del registro sin procesar.
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.State event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_state Se asigna directamente desde el campo "State" del objeto "Ipv6CidrBlockState" de la matriz "Ipv6CidrBlockAssociationSet" del registro sin procesar.
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.StatusMessage event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_status_message Se asigna directamente desde el campo "StatusMessage" del objeto "Ipv6CidrBlockState" de la matriz "Ipv6CidrBlockAssociationSet" del registro sin procesar.
Ipv6CidrBlockAssociationSet.Ipv6Pool event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_pool Se asigna directamente desde el campo "Ipv6Pool" de la matriz "Ipv6CidrBlockAssociationSet" del registro sin procesar.
Ipv6CidrBlockAssociationSet.NetworkBorderGroup event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_network_border_group Se asigna directamente desde el campo "NetworkBorderGroup" de la matriz "Ipv6CidrBlockAssociationSet" del registro sin procesar.
OwnerID event.idm.entity.entity.resource.attribute.labels.owner_id Se asigna directamente desde el campo "OwnerID" del registro sin procesar.
Estado event.idm.entity.entity.resource.attribute.labels.state Se asigna directamente desde el campo "State" del registro sin procesar.
TagSet.Key event.idm.entity.entity.resource.attribute.labels.key Se asigna directamente desde el campo "Key" de la matriz "TagSet" del registro sin procesar. De esta forma, se crea una etiqueta para cada etiqueta del "TagSet".
TagSet.Value event.idm.entity.entity.resource.attribute.labels.value Se asigna directamente desde el campo "Value" de la matriz "TagSet" del registro sin procesar. De esta forma, se rellena el valor de cada etiqueta correspondiente creada a partir del campo "Clave".
N/A event.idm.entity.entity.resource.attribute.cloud.environment Codificado como "AMAZON_WEB_SERVICES" en el código del analizador.
N/A event.idm.entity.entity.resource.resource_type Codificado como "VPC_NETWORK" en el código del analizador.
N/A event.idm.entity.metadata.collected_timestamp Se rellena con la marca de tiempo del evento, que se deriva del campo "collection_time" del registro sin procesar.
N/A event.idm.entity.metadata.entity_type Codificado como "RESOURCE" en el código del analizador.
N/A event.idm.entity.metadata.product_name Codificado como "Amazon VPC" en el código del analizador.
N/A event.idm.entity.metadata.vendor_name Codificado como "AWS" en el código del analizador.
N/A events.timestamp Se rellena con la marca de tiempo del evento, que se deriva del campo "collection_time" del registro sin procesar.

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