Recolha registos de fluxo da VPC
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
- Inicie sessão na Google Cloud consola.
Aceda à página Contentores do Cloud Storage.
Clique em Criar.
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:
Na secção Começar, faça o seguinte:
- Introduza um nome exclusivo que cumpra os requisitos de nome do contentor; por exemplo, vpcflow-logs.
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.
Para adicionar uma etiqueta de grupo, clique na seta de expansão para expandir a secção Etiquetas.
Clique em Adicionar etiqueta e especifique uma chave e um valor para a etiqueta.
Na secção Escolha onde quer armazenar os seus dados, faça o seguinte:
- Selecione um Tipo de localização.
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.
Para configurar a replicação entre contentores, expanda a secção Configurar replicação entre contentores.
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.
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.
Na secção Escolha como proteger os dados de objetos, faça o seguinte:
- Selecione qualquer uma das opções em Proteção de dados que quer definir para o seu contentor.
- 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.
Clique em Criar.
Configure a exportação de registos no Google Cloud VPC Flow
- Inicie sessão na conta do Google Cloud com a sua conta privilegiada.
- Na página Boas-vindas, clique em Redes VPC.
- Clique em Predefinição e deve ser apresentada uma página de sub-rede.
- Selecione todos os registos.
- Clique em Registos de fluxo > Configurar.
- Selecione o Intervalo de agregação; por exemplo, 30 SEG.
- Indique a taxa de amostragem; por exemplo, 50%.
- Clique em Guardar.
- Pesquise Registo na barra de pesquisa e clique em Enter.
- No Explorador de registos, filtre os registos escolhendo VPC_flows em Nome do registo e clique em Aplicar.
- Clique em Mais ações.
- Clique em Criar destino.
- Forneça as seguintes configurações:
- Detalhes do destino: introduza um nome e uma descrição.
- Clicar em Seguinte.
- Destino do fluxo: selecione Contentor do Cloud Storage.
- Contentor do Cloud Storage: selecione o contentor criado anteriormente ou crie um novo.
- Clicar em Seguinte.
- Escolha os registos a incluir no destino: um registo predefinido é preenchido quando seleciona uma opção no contentor do Cloud Storage.
- Clicar em Seguinte.
- Opcional: escolha os registos a filtrar do sink: selecione os registos que não quer sincronizar.
- 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
- Clique no pacote Google Cloud Compute platform.
- Localize o tipo de registo GCP VPC Flow Feed.
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.
- Substitua
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.
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.