Coletar registros de fluxo de VPC da AWS
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
Verifique se o bucket do Amazon S3 foi criado. Para mais informações, consulte Criar seu primeiro bucket do S3.
Verifique se o grupo de registros do Amazon CloudWatch foi criado. Para mais informações, consulte Como trabalhar com grupos e fluxos de registros.
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.
Para informações sobre como encaminhar registros para o bucket do Amazon S3, consulte a seção Configurar registros de fluxo para encaminhar registros ao Amazon S3 deste documento.
Para informações sobre como encaminhar registros para o Amazon CloudWatch, consulte a seção Configurar registros de fluxo para o Amazon CloudWatch deste documento.
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
- Faça login no console do Amazon EC2.
- No painel de navegação, selecione Interfaces de rede.
- Selecione uma ou mais interfaces de rede.
- Selecione Ações > Criar registro de fluxo.
- 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
- Faça login no console da Amazon VPC.
- No painel de navegação, selecione Sub-redes.
- Selecione uma ou mais sub-redes.
- Selecione Ações > Criar registro de fluxo.
- 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
- Faça login no console da Amazon VPC.
- No painel de navegação, selecione VPCs.
- Selecione uma ou mais VPCs.
- Selecione Ações > Criar registro de fluxo.
- 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
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.
Na seção Intervalo máximo de agregação, selecione 1 minuto.
Na seção Destino, selecione Enviar para um bucket do Amazon S3.
Na seção ARN do bucket do S3, especifique o ARN de um bucket do Amazon S3.
Na seção Formato do registro de fluxo, especifique os seguintes formatos para o registro de fluxo:
- Para usar o formato padrão de registro de fluxo, selecione Formato padrão da AWS.
- Para criar um formato personalizado, selecione Formato personalizado.
Configure o fluxo de registros da VPC com o formato de registro personalizado da AWS para usar os recursos de IP verdadeiro do MSS.
Na lista Formato do registro, selecione todos os atributos.
Na seção Visualização de formato, revise o formato personalizado.
Na seção Formato do arquivo de registro, selecione Texto (padrão).
Na seção Prefixo do S3 compatível com o Hive, deixe a caixa de seleção Ativar desmarcada.
Na seção Particionar registros por tempo, selecione A cada 1 hora (60 minutos).
Para adicionar uma tag ao registro de fluxo, selecione Adicionar nova tag e especifique a chave e o valor da tag.
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.
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.
Na seção Intervalo máximo de agregação, selecione 1 minuto.
Na seção Destino, selecione Enviar para o CloudWatch Logs.
Na seção Grupo de registros de destino, informe o nome do grupo de registros de destino que você criou.
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": "*" } ] }
Na seção Formato do registro de fluxo, selecione Formato personalizado.
Para adicionar uma tag ao registro de fluxo, selecione Adicionar nova tag e especifique a chave e o valor da tag.
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:
Para informações sobre fontes de geração de registros, consulte Endpoints e cotas do AWS Identity and Access Management.
Para informações sobre fontes de geração de registros do Amazon S3, consulte Endpoints e cotas do Amazon Simple Storage Service.
Para informações sobre fontes de geração de registros do Amazon SQS, consulte Endpoints e cotas do Amazon Simple Queue Service.
Para informações sobre fontes de geração de registros do Amazon CloudWatch, consulte Endpoints e cotas de registros do Amazon CloudWatch.
Configurar o encaminhador do Google SecOps e o syslog para ingerir registros de fluxo da VPC da AWS
- Selecione Configurações do SIEM > Encaminhadores.
- Clique em Adicionar novo encaminhador.
- Insira um nome exclusivo para o Nome do encaminhador.
- Clique em Enviar e em Confirmar. O encaminhador é adicionado, e a janela Adicionar configuração do coletor aparece.
- No campo Nome do coletor, digite um nome.
- No campo Tipo de registro, selecione Fluxo de VPC da AWS ou Fluxo de VPC da AWS (CSV), dependendo do formato do registro.
- No campo Tipo de coletor, selecione Syslog.
- 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.
- 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.