Recolha registos de fluxo da VPC

Compatível com:

Este documento explica como exportar registos de fluxo de VPC para o Google Security Operations através do Google Cloud. O analisador transforma os registos do respetivo formato JSON incorporado no UDM do Google Security Operations. Extrai campos relevantes, como o IP de origem e de destino, a porta, o protocolo e os bytes enviados, e, em seguida, mapeia-os para os campos UDM correspondentes, tendo em conta a direção da rede e os casos especiais para uma representação precisa no Google SecOps.

Antes de começar

Certifique-se de que tem os seguintes pré-requisitos:

  • Instância do Google SecOps.
  • O VPC Flow está configurado e ativo no seu Google Cloud ambiente.
  • Acesso privilegiado a Google Cloud.

Crie um contentor do Google Cloud Storage

  1. Inicie sessão na Google Cloud consola.
  2. Aceda à página Contentores do Cloud Storage.

    Aceda a Recipientes

  3. Clique em Criar.

  4. Na página Criar um depósito, introduza as informações do depósito. Após cada um dos passos seguintes, clique em Continuar para avançar para o passo seguinte:

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

      1. Introduza um nome exclusivo que cumpra os requisitos de nome do contentor; por exemplo, vpcflow-logs.
      2. Para ativar o espaço de nomes hierárquico, clique na seta de expansão para expandir a secção Otimizar para cargas de trabalho orientadas para ficheiros e com grande volume de dados e, de seguida, selecione Ativar espaço de nomes hierárquico neste contentor.

      3. Para adicionar uma etiqueta de grupo, clique na seta de expansão para expandir a secção Etiquetas.

      4. Clique em Adicionar etiqueta e especifique uma chave e um valor para a etiqueta.

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

      1. Selecione um Tipo de localização.
      2. Use o menu de tipo de localização para selecionar uma Localização onde os dados de objetos no seu contentor vão ser armazenados permanentemente.

      3. Para configurar a replicação entre contentores, expanda a secção Configurar replicação entre contentores.

    3. Na secção Escolha uma classe de armazenamento para os seus dados, selecione uma classe de armazenamento predefinida para o contentor ou selecione Autoclass para a gestão automática da classe de armazenamento dos dados do seu contentor.

    4. Na secçã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 controlo de acesso para os objetos do seu contentor.

    5. Na secção Escolha como proteger os dados de objetos, faça o seguinte:

      1. Selecione qualquer uma das opções em Proteção de dados que quer definir para o seu contentor.
      2. Para escolher como os dados de objetos vão ser encriptados, clique na seta de expansão com a etiqueta Encriptação de dados e selecione um Método de encriptação de dados.
  5. Clique em Criar.

Configure a exportação de registos no Google Cloud VPC Flow

  1. Inicie sessão na conta do Google Cloud com a sua conta privilegiada.
  2. Na página Boas-vindas, clique em Redes VPC.
  3. Clique em Predefinição e deve ser apresentada uma página de sub-rede.
  4. Selecione todos os registos.
  5. Clique em Registos de fluxo > Configurar.
  6. Selecione Intervalo de agregação; por exemplo, 30 SEG.
  7. Indique a taxa de amostragem; por exemplo, 50%.
  8. Clique em Guardar.
  9. Pesquise Registo na barra de pesquisa e clique em Enter.
  10. No Explorador de registos, filtre os registos escolhendo VPC_flows em Nome do registo e clique em Aplicar.
  11. Clique em Mais ações.
  12. Clique em Criar destino.
  13. Forneça as seguintes configurações:
    1. Detalhes do destino: introduza um nome e uma descrição.
    2. Clicar em Seguinte.
    3. Destino do fluxo: selecione Contentor do Cloud Storage.
    4. Contentor do Cloud Storage: selecione o contentor criado anteriormente ou crie um novo.
    5. Clicar em Seguinte.
    6. Escolha os registos a incluir no destino: um registo predefinido é preenchido quando seleciona uma opção no contentor do Cloud Storage.
    7. Clicar em Seguinte.
    8. Opcional: escolha os registos a filtrar do sink: selecione os registos que não quer sincronizar.
  14. Clique em Criar destino.

Configure feeds

Existem dois pontos de entrada diferentes para configurar feeds na plataforma Google SecOps:

  • Definições do SIEM > Feeds > Adicionar novo feed
  • Content Hub > Pacotes de conteúdo > Começar

Como configurar o Google Cloud feed de fluxo de VPC

  1. Clique no pacote Google Cloud Compute platform.
  2. Localize o tipo de registo GCP VPC Flow Feed.
  3. Especifique os valores nos seguintes campos.

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

    • Idade máxima do ficheiro: inclua ficheiros modificados no último número de dias. A predefinição é 180 dias.

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

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

    Opções avançadas

    • Nome do feed: um valor pré-preenchido que identifica o feed.
    • Espaço de nomes do recurso: espaço de nomes associado ao feed.
    • Etiquetas de carregamento: etiquetas aplicadas a todos os eventos deste feed.
  4. Clique em Criar feed.

Para mais informações sobre a configuração de vários feeds para diferentes tipos de registos nesta família de produtos, consulte o artigo Configure feeds por produto.

Formatos de registos de registos de fluxo da VPC suportados

O analisador de VPC Flow Logs suporta registos no formato JSON.

Registos de exemplo dos registos de fluxo de VPC suportados

  • 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 da UDM

Campo de registo Mapeamento do UDM Lógica
connection.dest_ip target.asset.ip
target.ip
Mapeamento direto quando network.direction é OUTBOUND.
Mapeado a partir de principal.ip quando network.direction é INBOUND.
connection.dest_port target.port Convertido em número inteiro se for superior a -1.
connection.protocol network.ip_protocol Convertido em string e, em seguida, mapeado para um número inteiro.
Com base no valor inteiro, mapeado para o nome do protocolo IP (por exemplo, TCP, UDP e 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 O nome foi mudado para network.sent_bytes e o tipo foi convertido para uinteger.
jsonPayload.packets_sent network.sent_packets Convertido em número inteiro.
labels.tunnel_id additional.fields Unido a 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 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 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 Unido a 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 É gerada uma descrição do fluxo de rede, incluindo o denunciante (SRC ou DEST) e a direção (INBOUND ou OUTBOUND), com base no campo "denunciante".
metadata.event_type Definido como NETWORK_CONNECTION para registos de fluxo de VPC e USER_RESOURCE_ACCESS para outros tipos de registos.
metadata.log_type Definido como GCP_VPC_FLOW.
metadata.product_name Definido como GCP VPC Flow Logs.
metadata.product_version Definido como 1.0.
metadata.vendor_name Definido como Google Cloud.
network.direction Determinado com base em target.port. Se a porta for uma porta conhecida ou reservada, é considerada ENTRADA; caso contrário, é considerada SAÍDA.
security_result.severity Predefinido como LOW.
target.resource.attribute.cloud.environment Definido como GOOGLE_CLOUD_PLATFORM.
target.resource.resource_type Definido como CLOUD_PROJECT.

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