Coletar registros de fluxo de VPC da AWS

Compatível com:

Neste documento, descrevemos como coletar registros de fluxo de VPC da AWS usando um encaminhador do Google Security Operations.

Para mais informações, consulte Ingestão de dados no Google SecOps.

Um rótulo de ingestão identifica o analisador que normaliza dados de registro brutos no formato UDM estruturado. As informações neste documento se aplicam ao analisador com o rótulo de ingestão AWS_VPC_FLOW.

Formatos de registros de fluxo de VPC da AWS compatíveis

O Google SecOps é compatível com a ingestão de registros de fluxo da VPC da AWS em dois formatos de texto principais:

  • Formato JSON:o tipo de registro AWS_VPC_FLOW analisa registros no formato JSON. Nesse formato, cada entrada de registro inclui uma chave e o valor correspondente, tornando os dados autodescritivos.

  • Formato CSV:o Google SecOps também oferece um analisador para registros de fluxo de VPC da AWS em formato CSV. Esse formato lista as chaves de campo apenas uma vez na linha de cabeçalho. As linhas subsequentes contêm apenas valores separados por vírgulas.

Para ingerir registros de fluxo da VPC da AWS no formato CSV, especifique o tipo de registro como AWS_VPC_FLOW_CSV ao configurar o encaminhador. Para instruções de configuração, consulte Configurar o encaminhador do Google SecOps e o syslog para ingerir registros de fluxo de VPC da AWS.

Como o formato CSV não inclui chaves de campo em cada entrada de registro, o analisador AWS_VPC_FLOW_CSV depende de uma ordem estrita e predefinida de valores. Os arquivos CSV precisam seguir a ordem de campos abaixo para serem analisados corretamente:

   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

Confira um exemplo de linha 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,,-,-,-,-,-,-,-,-,-,-

Para campos em que nenhum valor está disponível, um valor vazio (por exemplo, , ,) precisa ser transmitido para manter a ordem posicional correta na linha do CSV.

Antes de começar

Configurar o fluxo da VPC da AWS

Configure o fluxo da VPC da AWS com base no encaminhamento dos registros para o Amazon S3 ou para o Amazon CloudWatch.

Configurar registros de fluxo para encaminhar registros ao Amazon S3

Depois de criar e configurar o bucket do Amazon S3, é possível criar registros de fluxo para suas interfaces de rede, sub-redes e redes VPC.

Criar um registro de fluxo para uma interface de rede

  1. Faça login no console do Amazon EC2.
  2. No painel de navegação, selecione Interfaces de rede.
  3. Selecione uma ou mais interfaces de rede.
  4. Selecione Ações > Criar registro de fluxo.
  5. Configure as definições de registro de fluxo. Para mais informações, consulte a seção Configurar as configurações de registros de fluxo deste documento.

Criar um registro de fluxo para uma sub-rede

  1. Faça login no console da Amazon VPC.
  2. No painel de navegação, selecione Sub-redes.
  3. Selecione uma ou mais sub-redes.
  4. Selecione Ações > Criar registro de fluxo.
  5. Configure as definições de registro de fluxo. Para mais informações, consulte a seção Configurar as configurações de registros de fluxo deste documento.

Criar um registro de fluxo para uma VPC

  1. Faça login no console da Amazon VPC.
  2. No painel de navegação, selecione VPCs.
  3. Selecione uma ou mais VPCs.
  4. Selecione Ações > Criar registro de fluxo.
  5. Configure as definições de registro de fluxo. Para mais informações, consulte a seção Configurar as configurações de registros de fluxo deste documento.

Configurar as definições de registro de fluxo

  1. Na seção Filtro, especifique o tráfego de IP a ser registrado:

    • Aceitar: registra apenas o tráfego aceito.

    • Rejeitar: registra apenas o tráfego rejeitado.

    • Todos: registra o tráfego aceito e rejeitado.

  2. Na seção Intervalo máximo de agregação, selecione 1 minuto.

  3. Na seção Destino, selecione Enviar para um bucket do Amazon S3.

  4. Na seção ARN do bucket do S3, especifique o ARN de um bucket do Amazon S3.

  5. Na seção Formato do registro de fluxo, especifique os seguintes formatos para o registro de fluxo:

    1. Para usar o formato padrão de registro de fluxo, selecione Formato padrão da AWS.
    2. Para criar um formato personalizado, selecione Formato personalizado.
  6. Configure o fluxo de registros da VPC com o formato de registro personalizado da AWS para usar os recursos de IP verdadeiro do MSS.

  7. Na lista Formato do registro, selecione todos os atributos.

  8. Na seção Visualização de formato, revise o formato personalizado.

  9. Na seção Formato do arquivo de registro, selecione Texto (padrão).

  10. Na seção Prefixo do S3 compatível com o Hive, deixe a caixa de seleção Ativar desmarcada.

  11. Na seção Particionar registros por tempo, selecione A cada 1 hora (60 minutos).

  12. Para adicionar uma tag ao registro de fluxo, selecione Adicionar nova tag e especifique a chave e o valor da tag.

  13. Selecione Criar um registro de fluxo. Para mais informações, consulte Publicar registros de fluxo no Amazon S3.

Configurar registros de fluxo para o Amazon CloudWatch

É possível configurar o registro de fluxo em VPCs, sub-redes ou interfaces de rede.

  1. Na seção Filtro, especifique o tipo de tráfego de IP a ser registrado:

    • Aceitar: registra apenas o tráfego aceito.

    • Rejeitar: registra apenas o tráfego rejeitado.

    • Todos: registra o tráfego aceito e rejeitado.

  2. Na seção Intervalo máximo de agregação, selecione 1 minuto.

  3. Na seção Destino, selecione Enviar para o CloudWatch Logs.

  4. Na seção Grupo de registros de destino, informe o nome do grupo de registros de destino que você criou.

  5. Na lista Papel do IAM, selecione o nome do papel. O nome da função selecionada tem permissões para publicar registros no CloudWatch.

    O papel do IAM precisa incluir as seguintes permissões:

       {
         "Version": "2012-10-17",
         "Statement": [
           {
             "Effect": "Allow",
             "Action": [
               "logs:CreateLogGroup",
               "logs:CreateLogStream",
               "logs:PutLogEvents",
               "logs:DescribeLogGroups",
               "logs:DescribeLogStreams"
           ],
           "Resource": "*"
         }
        ]
       }
    
  6. Na seção Formato do registro de fluxo, selecione Formato personalizado.

  7. Para adicionar uma tag ao registro de fluxo, selecione Adicionar nova tag e especifique a chave e o valor da tag.

  8. Selecione Criar um registro de fluxo. Para mais informações, consulte Publicar registros de fluxo no Amazon S3.

O Amazon S3 pode ser configurado para enviar as notificações de eventos ao Amazon SQS. Para mais informações, consulte Configurar um bucket para notificações (tópico do SNS ou fila do SQS).

As políticas de usuário do IAM são necessárias para o Amazon S3 e o Amazon SQS se você usar o Amazon SQS (Amazon S3 usando o Amazon SQS) como um método de coleta de registros. Para mais informações, consulte Como usar políticas do IAM com o KMS da AWS.

Com base no serviço e na região, identifique os endpoints de conectividade consultando a seguinte documentação da AWS:

Configurar o encaminhador do Google SecOps e o syslog para ingerir registros de fluxo da VPC da AWS

  1. Selecione Configurações do SIEM > Encaminhadores.
  2. Clique em Adicionar novo encaminhador.
  3. Insira um nome exclusivo para o Nome do encaminhador.
  4. Clique em Enviar e em Confirmar. O encaminhador é adicionado, e a janela Adicionar configuração do coletor aparece.
  5. No campo Nome do coletor, digite um nome.
  6. No campo Tipo de registro, selecione Fluxo de VPC da AWS ou Fluxo de VPC da AWS (CSV), dependendo do formato do registro.
  7. No campo Tipo de coletor, selecione Syslog.
  8. Configure os seguintes parâmetros de entrada obrigatórios:
    • Protocolo: especifique o protocolo de conexão que o coletor vai usar para detectar dados do syslog.
    • Endereço: especifique o endereço IP ou o nome do host de destino em que o coletor reside e os endereços para os dados do syslog.
    • Porta: especifique a porta de destino em que o coletor reside e detecta dados do syslog.
  9. Clique em Enviar e em Confirmar.

Para mais informações sobre encaminhadores do Google SecOps, consulte a documentação sobre encaminhadores do Google Security Operations. Para informações sobre os requisitos de cada tipo de encaminhador, consulte Configuração do encaminhador por tipo.

Se você tiver problemas ao criar encaminhadores, entre em contato com o suporte do Google Security Operations.

Referência de mapeamento de campos

Esse analisador transforma registros de fluxo brutos da VPC da AWS (em formato JSON ou CSV) em um formato UDM estruturado. Ele extrai campos relevantes, os mapeia para corresponder ao esquema da UDM e enriquece os dados com mais contexto, como tipo de recurso, provedor de nuvem e rótulos, para oferecer uma análise mais detalhada. A lógica de mapeamento é consistente nos dois formatos: o analisador CSV depende de uma ordem de campo predefinida para alinhar valores com os mesmos campos da UDM usados no formato JSON.

Tabela de mapeamento da UDM para o analisador da VPC do AWS EC2

Campo de registro (crescente) Mapeamento do UDM Lógica
CidrBlock event.idm.entity.entity.resource.attribute.labels.cidr_block Mapeado diretamente do campo "CidrBlock" no registro bruto.
CidrBlock event.idm.entity.entity.network.ip_subnet_range Mapeado diretamente do campo "CidrBlock" no registro bruto.
CidrBlockAssociation.AssociationID event.idm.entity.entity.resource.attribute.labels.cidr_block_association_association_id Mapeado diretamente do campo "AssociationID" na matriz "CidrBlockAssociation" do registro bruto.
CidrBlockAssociation.CidrBlockState.State event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_state Mapeado diretamente do campo "State" no objeto "CidrBlockState" da matriz "CidrBlockAssociation" no registro bruto.
CidrBlockAssociation.CidrBlockState.StatusMessage event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_status_message Mapeado diretamente do campo "StatusMessage" no objeto "CidrBlockState" da matriz "CidrBlockAssociation" no registro bruto.
DhcpOptionsID event.idm.entity.entity.resource.attribute.labels.dhcp_options_id Mapeado diretamente do campo "DhcpOptionsID" no registro bruto.
ID event.idm.entity.entity.resource.product_object_id Mapeado diretamente do campo "ID" no registro bruto, que é renomeado como "VpcID" no analisador.
ID event.idm.entity.metadata.product_entity_id Mapeado diretamente do campo "ID" no registro bruto, que é renomeado como "VpcID" no analisador.
InstanceTenancy event.idm.entity.entity.resource.attribute.labels.instance_tenancy Mapeado diretamente do campo "InstanceTenancy" no registro bruto.
IsDefault event.idm.entity.entity.resource.attribute.labels.is_default Mapeado diretamente do campo "IsDefault" no registro bruto.
Ipv6CidrBlockAssociationSet.AssociationID event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_association_id Mapeado diretamente do campo "AssociationID" na matriz "Ipv6CidrBlockAssociationSet" no registro bruto.
Ipv6CidrBlockAssociationSet.Ipv6CidrBlock event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block Mapeado diretamente do campo "Ipv6CidrBlock" na matriz "Ipv6CidrBlockAssociationSet" no registro bruto.
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.State event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_state Mapeado diretamente do campo "State" no objeto "Ipv6CidrBlockState" da matriz "Ipv6CidrBlockAssociationSet" no registro bruto.
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.StatusMessage event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_status_message Mapeado diretamente do campo "StatusMessage" no objeto "Ipv6CidrBlockState" da matriz "Ipv6CidrBlockAssociationSet" no registro bruto.
Ipv6CidrBlockAssociationSet.Ipv6Pool event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_pool Mapeado diretamente do campo "Ipv6Pool" na matriz "Ipv6CidrBlockAssociationSet" no registro bruto.
Ipv6CidrBlockAssociationSet.NetworkBorderGroup event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_network_border_group Mapeado diretamente do campo "NetworkBorderGroup" na matriz "Ipv6CidrBlockAssociationSet" do registro bruto.
OwnerID event.idm.entity.entity.resource.attribute.labels.owner_id Mapeado diretamente do campo "OwnerID" no registro bruto.
Estado event.idm.entity.entity.resource.attribute.labels.state Mapeado diretamente do campo "State" no registro bruto.
TagSet.Key event.idm.entity.entity.resource.attribute.labels.key Mapeado diretamente do campo "Key" na matriz "TagSet" no registro bruto. Isso cria um novo rótulo para cada tag no "TagSet".
TagSet.Value event.idm.entity.entity.resource.attribute.labels.value Mapeado diretamente do campo "Value" na matriz "TagSet" do registro bruto. Isso preenche o valor de cada rótulo correspondente criado no campo "Chave".
N/A event.idm.entity.entity.resource.attribute.cloud.environment Codificado como "AMAZON_WEB_SERVICES" no código do analisador.
N/A event.idm.entity.entity.resource.resource_type Fixado no código do analisador como "VPC_NETWORK".
N/A event.idm.entity.metadata.collected_timestamp Preenchido com o carimbo de data/hora do evento, que é derivado do campo "collection_time" no log bruto.
N/A event.idm.entity.metadata.entity_type Fixado no código do analisador como "RESOURCE".
N/A event.idm.entity.metadata.product_name Fixado no código do analisador como "Amazon VPC".
N/A event.idm.entity.metadata.vendor_name Codificado como "AWS" no código do analisador.
N/A events.timestamp Preenchido com o carimbo de data/hora do evento, que é derivado do campo "collection_time" no log bruto.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.