Coletar registros de fluxo de VPC

Compatível com:

Este documento explica como exportar registros de fluxo de VPC para as operações de segurança do Google usando Google Cloud. O analisador transforma os registros do formato JSON integrado no UDM das operações de segurança do Google. Ele extrai campos relevantes, como IP de origem e destino, porta, protocolo e bytes enviados, e os mapeia para os campos correspondentes do UDM, considerando a direção da rede e casos especiais para uma representação precisa no Google SecOps.

Antes de começar

  • Verifique se você tem uma instância do Google SecOps.
  • Verifique se o VPC Flow está configurado e ativo no ambiente Google Cloud .
  • Verifique se você tem acesso privilegiado a Google Cloud.

Crie um bucket do Google Cloud Storage

  1. Faça login no console doGoogle Cloud .
  2. Acesse a página Buckets do Cloud Storage.

    Acessar buckets

  3. Clique em Criar.

  4. Na página Criar um bucket, insira as informações do seu bucket. Após cada uma das etapas a seguir, clique em Continuar para prosseguir para a próxima:

    1. Na seção Começar, faça o seguinte:

      1. Insira um nome exclusivo que atenda aos requisitos de nome de bucket. Por exemplo, vpcflow-logs.
      2. Para ativar o namespace hierárquico, clique na seta de expansão para abrir a seção Otimizar para cargas de trabalho orientadas a arquivos e com uso intensivo de dados e selecione Ativar namespace hierárquico neste bucket.

      3. Para adicionar um rótulo de bucket, clique na seta de expansão para abrir a seção Rótulos.

      4. Clique em Adicionar rótulo e especifique uma chave e um valor para o rótulo.

    2. Na seção Escolha onde armazenar seus dados, faça o seguinte:

      1. Selecione um tipo de local.
      2. Use o menu do tipo de local para selecionar um Local em que os dados de objetos no bucket serão armazenados permanentemente.

      3. Para configurar a replicação entre buckets, abra a seção Configurar a replicação entre buckets.

    3. Na seção Escolha uma classe de armazenamento para seus dados, selecione uma classe de armazenamento padrão para o bucket ou selecione Classe automática para gerenciamento automático da classe de armazenamento dos dados do bucket.

    4. Na seção Escolha como controlar o acesso a objetos, selecione não para aplicar a prevenção de acesso público e selecione um modelo de controle de acesso para os objetos do bucket.

    5. Na seção "Escolha como proteger os dados do objeto", faça o seguinte:

      1. Selecione qualquer uma das opções em "Proteção de dados" que você quer definir para o bucket.
      2. Para escolher como os dados do objeto serão criptografados, clique na seta de expansão identificada como Criptografia de dados e selecione um método de criptografia de dados.
  5. Clique em Criar.

Configurar a exportação de registros no Google Cloud fluxo de VPC

  1. Faça login na conta do Google Cloud usando sua conta privilegiada.
  2. Na página Bem-vindo, clique em Redes VPC.
  3. Clique em Padrão e uma página de sub-rede vai aparecer.
  4. Selecione todos os registros.
  5. Clique em Registros de fluxo > Configurar.
  6. Selecione Intervalo de agregação, por exemplo, 30 seg.
  7. Informe a Taxa de amostragem, por exemplo, 50%.
  8. Clique em Salvar.
  9. Pesquise Registro na barra de pesquisa e clique em Enter.
  10. No Log Explorer, filtre os registros escolhendo VPC_flows em Nome do registro e clique em Aplicar.
  11. Clique em Mais ações.
  12. Clique em Criar coletor.
  13. Forneça as seguintes configurações:
    1. Detalhes do coletor: insira um nome e uma descrição.
    2. Clique em Próxima.
    3. Destino do coletor: selecione Bucket do Cloud Storage.
    4. Bucket do Cloud Storage: selecione o bucket criado anteriormente ou crie um novo.
    5. Clique em Próxima.
    6. Escolha os registros para incluir no coletor: um registro padrão é preenchido quando você seleciona uma opção no bucket do Cloud Storage.
    7. Clique em Próxima.
    8. Opcional: Escolher registros para excluir do coletor: selecione os registros que você não quer que sejam enviados ao coletor.
  14. Clique em Criar coletor.

Configurar um feed no Google SecOps para processar registros de fluxo de VPC

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo.
  3. No campo Nome do feed, insira um nome para o feed, por exemplo, Registros de fluxo de VPC.
  4. Selecione Google Cloud Storage como o Tipo de origem.
  5. Selecione Fluxo de VPC do GCP como o Tipo de registro.
  6. Clique em Pegar conta de serviço como a Conta de serviço do Chronicle.
  7. Clique em Próxima.
  8. Especifique valores para os seguintes parâmetros de entrada:

    • URI do bucket do Cloud Storage: Google Cloud URL do bucket do Cloud Storage no formato gs://my-bucket/<value>.
    • URI Is A: selecione Directory which includes subdirectories.
    • Opções de exclusão da origem: selecione a opção de exclusão de acordo com sua preferência.

    • Namespace do recurso: o namespace do recurso.

    • Rótulos de ingestão: o rótulo aplicado aos eventos desse feed.

  9. Clique em Próxima.

  10. Revise a configuração do novo feed na tela Finalizar e clique em Enviar.

Tabela de mapeamento do UDM

Campo de registro Mapeamento de UDM Lógica
connection.dest_ip target.asset.ip
target.ip
Mapeamento direto quando network.direction é SAÍDA.
Mapeado de principal.ip quando network.direction é INBOUND.
connection.dest_port target.port Convertido em número inteiro se for maior que -1.
connection.protocol network.ip_protocol Convertido em string e depois associado a um número inteiro.
Com base no valor inteiro, mapeado para o nome do protocolo IP (por exemplo, TCP, UDP, ICMP).
connection.src_ip principal.ip Mapeamento direto.
connection.src_port principal.port Convertido em número inteiro.
dest_instance.region target.location.name Mapeamento direto.
dest_instance.vm_name target.asset.hostname Mapeamento direto.
dest_location.city target.location.city Mapeamento direto.
dest_location.country target.location.country_or_region Mapeamento direto.
dest_location.region target.location.state Mapeamento direto.
dest_vpc.project_id target.namespace Usado com dest_vpc.vpc_name para formar o target.namespace.
dest_vpc.vpc_name target.namespace Usado com dest_vpc.project_id para formar o target.namespace.
insertId metadata.product_log_id Mapeamento direto.
jsonPayload.bytes_sent network.sent_bytes Foi renomeado para network.sent_bytes e convertido em uinteger.
jsonPayload.packets_sent network.sent_packets Convertido em número inteiro.
labels.tunnel_id additional.fields Mesclados em additional.fields com a chave Tunnel Id e o tipo string_value.
logName security_result.category_details Mapeamento direto.
resource.labels.project_id target.resource.name Usado para construir o target.resource.name com o formato //cloudresourcemanager.googleapis.com/projects/{resource.labels.project_id}.
resource.labels.region target.location.country_or_region Mapeamento direto.
resource.labels.subnetwork_id target.user.attribute.labels Mesclado em target.user.attribute.labels com a chave subnetwork_id.
resource.type metadata.product_event_type Mapeamento direto.
gravidade, security_result.severity Mapeado para LOW se o valor for DEBUG.
src_gke_details.cluster.cluster_location principal.resource.attribute.labels Mesclado em principal.resource.attribute.labels com a chave cluster_location.
src_gke_details.cluster.cluster_name principal.resource.attribute.labels Mesclado em principal.resource.attribute.labels com a chave cluster_name.
src_gke_details.pod.pod_name principal.resource.attribute.labels Mesclado em principal.resource.attribute.labels com a chave pod_name.
src_gke_details.pod.pod_namespace principal.resource.attribute.labels Mesclado em principal.resource.attribute.labels com a chave pod_namespace.
src_instance.region principal.location.name Mapeamento direto.
src_instance.vm_name principal.asset.hostname Mapeamento direto.
src_location.city principal.location.city Mapeamento direto.
src_location.country principal.location.country_or_region Mapeamento direto.
src_location.region principal.location.state Mapeamento direto.
src_vpc.project_id principal.namespace Usado com src_vpc.vpc_name para formar o principal.namespace.
src_vpc.vpc_name principal.namespace Usado com src_vpc.project_id para formar o principal.namespace.
textPayload additional.fields Mesclados em additional.fields com a chave Textpayload e o tipo string_value.
timestamp metadata.event_timestamp Usado para preencher event_timestamp se jsonPayload.end_time estiver vazio.
metadata.description Uma descrição do fluxo de rede, incluindo o informante (SRC ou DEST) e a direção (INBOUND ou OUTBOUND), é gerada com base no campo "informante".
metadata.event_type Defina como NETWORK_CONNECTION para registros de fluxo da VPC e USER_RESOURCE_ACCESS para outros tipos de registro.
metadata.log_type Defina como GCP_VPC_FLOW.
metadata.product_name Defina como GCP VPC Flow Logs.
metadata.product_version Defina como 1.0.
metadata.vendor_name Defina como Google Cloud.
network.direction Determinado com base em target.port. Se a porta for conhecida ou reservada, ela será considerada INBOUND. Caso contrário, será considerada OUTBOUND.
security_result.severity Definido como LOW por padrão.
target.resource.attribute.cloud.environment Defina como GOOGLE_CLOUD_PLATFORM.
target.resource.resource_type Defina como CLOUD_PROJECT.

Alterações

2024-10-24

Melhoria:

  • Mapeamento trocado de principal.ip, principal.port por target.ip e target.port, respectivamente.

2024-03-15

Melhoria:

  • jsonPayload.src_gke_details.pod.pod_namespace, jsonPayload.src_gke_details.pod.pod_name, jsonPayload.src_gke_details.cluster.cluster_name e jsonPayload.src_gke_details.cluster.cluster_location foram mapeados para principal.resource.attribute.labels.
  • jsonPayload.dest_gke_details.pod.pod_namespace, jsonPayload.dest_gke_details.pod.pod_name, jsonPayload.dest_gke_details.cluster.cluster_name e jsonPayload.dest_gke_details.cluster.cluster_location foram mapeados para target.resource.attribute.labels.

2023-05-23

Melhoria:

  • O "metadata.event_type" foi associado a "USER_RESOURCE_ACCESS" quando o campo "logName" não contém "vpc_flows".
  • O "carimbo de data/hora" foi associado a "events.timestamp".
  • Mapeamos "textPayload" e "labels.tunnel_id" para "additional.fields".
  • Mapeamos "resource.labels.region" para "target.location.country_or_region".
  • Adicionamos verificações de valores nulos para vários campos, sempre que necessário.

2023-04-10

Melhoria:

  • Defina target.resource.attribute.cloud.environment como GOOGLE_CLOUD_PLATFORM.
  • Defina target.resource.name como o valor do nome completo do recurso.

2022-07-22

Melhoria:

  • resource.labels.location foi mapeado para principal.location.name.
  • resource.labels.subnetwork_id foi mapeado para target.user.attribute.labels.
  • logName foi mapeado para security_result.category_details.

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