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 > Adicionar novo
  • Central de conteúdo > Pacotes de conteúdo > Começar

Como configurar o feed de fluxo da Google Cloud VPC

  1. Clique no pacote Plataforma de computação do Google Cloud.
  2. Localize o tipo de registro GCP VPC Flow Feed.
  3. Especifique os valores nos campos a seguir.

    • Tipo de origem: Amazon SQS V2
    • Nome da fila: o nome da fila do SQS de onde ler.
    • URI do S3: o URI do bucket.
      • s3://your-log-bucket-name/
        • Substitua your-log-bucket-name pelo nome real do seu bucket do S3.
    • Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.

    • Idade máxima do arquivo: inclui arquivos modificados no último número de dias. O padrão é de 180 dias.

    • ID da chave de acesso à fila do SQS: uma chave de acesso à conta que é uma string alfanumérica de 20 caracteres.

    • Chave de acesso secreta da fila do SQS: uma chave de acesso da conta que é uma string alfanumérica de 40 caracteres.

    Opções avançadas

    • Nome do feed: um valor pré-preenchido que identifica o feed.
    • Namespace do recurso: namespace associado ao feed.
    • Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.
  4. Clique em Criar feed.

Para mais informações sobre como configurar vários feeds para diferentes tipos de registros nessa família de produtos, consulte Configurar feeds por produto.

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.