Coletar registros de fluxo de VPC

Compatível com:

Este documento explica como exportar registros de fluxo de VPC para o Google Security Operations usando Google Cloud. O analisador transforma os registros do formato JSON integrado para a UDM do Google Security Operations. Ele extrai campos relevantes, como IP de origem e destino, porta, protocolo e bytes enviados, e os mapeia para os campos correspondentes da 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ê atende aos seguintes pré-requisitos:

  • Instância do Google SecOps.
  • O fluxo da VPC está configurado e ativo no seu ambiente Google Cloud .
  • Acesso privilegiado ao 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 etapa:

    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 em 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. 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 Logging na barra de pesquisa e clique em Enter.
  10. Na Análise de registros, 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 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 filtrar do coletor: selecione os registros que você não quer que sejam coletados.
  14. Clique em Criar coletor.

Configurar feeds

Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:

  • Configurações do SIEM > Feeds
  • Central de conteúdo > Pacotes de conteúdo

Configure feeds em "Configurações do SIEM" > "Feeds".

Para configurar um feed, siga estas etapas:

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

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

  10. Clique em Próxima.

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

Formatos de registros de fluxo de VPC compatíveis

O analisador de registros de fluxo da VPC é compatível com registros no formato JSON.

Registros de amostra de registros de fluxo de VPC compatíveis

  • JSON

    {
      "insertId": "1wjp1y9f8vc6y6",
      "jsonPayload": {
        "bytes_sent": "0",
        "connection": {
          "dest_ip": "198.51.100.0",
          "dest_port": 32846,
          "protocol": 6,
          "src_ip": "198.51.100.1",
          "src_port": 443
        },
        "dest_instance": {
          "project_id": "logging-259109",
          "region": "us-west2",
          "vm_name": "demisto-01",
          "zone": "us-west2-a"
        },
        "dest_vpc": {
          "project_id": "logging-259109",
          "subnetwork_name": "default",
          "vpc_name": "default"
        },
        "end_time": "2020-03-28T10:44:41.896734136Z",
        "packets_sent": "2",
        "reporter": "DEST",
        "start_time": "2020-03-28T10:44:41.896734136Z"
      },
      "logName": "projects/logging-259109/logs/compute.googleapis.com%2Fvpc_flows",
      "receiveTimestamp": "2020-03-28T10:44:50.112903743Z",
      "resource": {
        "labels": {
          "location": "us-west2-a",
          "project_id": "dummy_project_id",
          "subnetwork_id": "subnetwork_id",
          "subnetwork_name": "default"
        },
        "type": "gce_subnetwork"
      },
      "timestamp": "2020-03-28T10:44:50.112903743Z"
    }
    

Tabela de mapeamento do UDM

Campo de registro Mapeamento da UDM Lógica
connection.dest_ip target.asset.ip
target.ip
Mapeamento direto quando network.direction é OUTBOUND.
Mapeado de principal.ip quando network.direction é INBOUND.
connection.dest_port target.port Convertido para número inteiro se for maior que -1.
connection.protocol network.ip_protocol Convertido em string e mapeado para 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 Renomeado como "network.sent_bytes" e convertido para uinteger.
jsonPayload.packets_sent network.sent_packets Convertido em número inteiro.
labels.tunnel_id additional.fields Unidos 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 Unido a "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 Unido a "principal.resource.attribute.labels" com a chave cluster_location.
src_gke_details.cluster.cluster_name principal.resource.attribute.labels Unido a "principal.resource.attribute.labels" com a chave cluster_name.
src_gke_details.pod.pod_name principal.resource.attribute.labels Unido a "principal.resource.attribute.labels" com a chave pod_name.
src_gke_details.pod.pod_namespace principal.resource.attribute.labels Unido a "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 Unidos 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 criador de relatórios (SRC ou DEST) e a direção (INBOUND ou OUTBOUND), é gerada com base no campo "reporter".
metadata.event_type Defina como NETWORK_CONNECTION para registros de fluxo da VPC e USER_RESOURCE_ACCESS para outros tipos de registros.
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á 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.

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