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ê tem os 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 dos objetos 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 > Adicionar novo feed
- Central de conteúdo > Pacotes de conteúdo > Começar
Como configurar o feed de fluxo da Google Cloud VPC
- Clique no pacote Plataforma de computação do Google Cloud.
- Localize o tipo de registro GCP VPC Flow Feed.
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.
- Substitua
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.
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 do 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.