Coletar registros de fluxo de VPC
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
- Faça login no console doGoogle Cloud .
Acesse a página Buckets do Cloud Storage.
Clique em Criar.
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:
Na seção Começar, faça o seguinte:
- Insira um nome exclusivo que atenda aos requisitos de nome de bucket, por exemplo, vpcflow-logs.
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.
Para adicionar um rótulo de bucket, clique na seta de expansão para abrir a seção Rótulos.
Clique em Adicionar rótulo e especifique uma chave e um valor para o rótulo.
Na seção Escolha onde armazenar seus dados, faça o seguinte:
- Selecione um tipo de local.
Use o menu do tipo de local para selecionar um Local em que os dados de objetos no bucket serão armazenados permanentemente.
Para configurar a replicação entre buckets, abra a seção Configurar a replicação entre buckets.
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.
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.
Na seção "Escolha como proteger os dados do objeto", faça o seguinte:
- Selecione qualquer uma das opções em "Proteção de dados" que você quer definir para o bucket.
- 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.
Clique em Criar.
Configurar a exportação de registros em Google Cloud Fluxo de VPC
- Faça login na conta do Google Cloud usando sua conta privilegiada.
- Na página Bem-vindo, clique em Redes VPC.
- Clique em Padrão. Uma página de sub-rede vai aparecer.
- Selecione todos os registros.
- Clique em Registros de fluxo > Configurar.
- Selecione Intervalo de agregação, por exemplo, 30 SEG.
- Informe a Taxa de amostragem, por exemplo, 50%.
- Clique em Salvar.
- Pesquise Logging na barra de pesquisa e clique em Enter.
- Na Análise de registros, filtre os registros escolhendo VPC_flows em Nome do registro e clique em Aplicar.
- Clique em Mais ações.
- Clique em Criar coletor.
- Forneça as seguintes configurações:
- Detalhes do coletor: insira um nome e uma descrição.
- Clique em Próxima.
- Destino do coletor: selecione Bucket do Cloud Storage.
- Bucket do Cloud Storage: selecione o bucket criado anteriormente ou crie um novo.
- Clique em Próxima.
- Escolher os registros para incluir no coletor: um registro padrão é preenchido quando você seleciona uma opção no bucket do Cloud Storage.
- Clique em Próxima.
- Opcional: Escolher registros para filtrar do coletor: selecione os registros que você não quer que sejam coletados.
- 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:
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed, por exemplo, Registros de fluxo da VPC.
- Selecione Google Cloud Storage como o Tipo de origem.
- Selecione Fluxo da VPC do GCP como o Tipo de registro.
- Clique em Receber conta de serviço como a Conta de serviço do Chronicle.
- Clique em Próxima.
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.
- URI do bucket de armazenamento: Google Cloud URL do bucket de armazenamento no formato
Clique em Próxima.
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.