Coletar registros de fluxo de VPC do Cloud

Compatível com:

Este documento explica como exportar os registros de fluxo de VPC do Cloud para o Google Security Operations 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 do Google 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. Escolher os registros a serem incluídos 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 enviar para o coletor.
  14. Clique em Criar coletor.

Configurar um feed no Google SecOps para ingerir Google Cloud 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, Google Cloud 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 de recursos: o namespace de recursos.

    • 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 de 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".
  • Foram adicionadas 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.