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 aos contentores

  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 o 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
  • 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 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 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.