Recolha registos da firewall de próxima geração do Google Cloud
Este documento explica como exportar e carregar registos do NGFW da nuvem para o Google Security Operations através do Google Cloud. O analisador extrai campos dos registos da firewall, transforma-os e mapeia-os para o UDM. Google Cloud Processa vários campos de registo, incluindo detalhes de ligação, informações sobre ameaças, detalhes de regras e informações de rede, realizando conversões de tipos de dados, mudando os nomes e aplicando lógica condicional com base nos campos action
e direction
para preencher corretamente o modelo UDM.
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google SecOps.
- O Cloud NGFW está ativo e configurado no seu ambiente Google Cloud .
- Acesso privilegiado a Google Cloud e autorizações adequadas para aceder aos registos do Cloud NGFW.
Crie um contentor do 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, gcp-ngfw-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 do NGFW da nuvem
- Inicie sessão na Google Cloud consola.
- Aceda a Registo > Router de registos.
- Clique em Criar destino.
Forneça os seguintes parâmetros de configuração:
- Nome do destino: introduza um nome significativo; por exemplo,
NGFW-Export-Sink
. - Destino da sincronização: selecione Google Cloud Storage e introduza o URI do seu contentor; por exemplo,
gs://gcp-ngfw-logs
. Filtro de registo:
logName="projects/<your-project-id>/logs/gcp-firewall"
- Nome do destino: introduza um nome significativo; por exemplo,
Clique em Criar.
Configure autorizações para o Cloud Storage
- Aceda a IAM e administrador > IAM.
- Localize a conta de serviço do Cloud Logging.
- Conceda a função roles/storage.admin no contentor.
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 feed Google Cloud NGFW Enterprise
- Clique no pacote Google Cloud Compute platform.
- Localize o tipo de registo GCP NGFW Enterprise.
- Clicar em Seguinte.
Especifique valores para os seguintes campos:
- Tipo de origem: Google Cloud Storage V2
- URI do contentor de armazenamento: Google Cloud URL do contentor de armazenamento; por exemplo,
gs://gcp-ngfw-logs
. Opções de eliminação da origem: selecione a opção de eliminação de acordo com a sua preferência.
Idade máxima do ficheiro: inclua ficheiros modificados no número de dias especificado. A predefinição é 180 dias.
Clique em Obter uma conta de serviço junto ao campo Conta de serviço do Chronicle.
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.
Tabela de mapeamento da UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
insertId |
metadata.product_log_id |
Mapeado diretamente a partir do campo insertId . |
jsonPayload.action |
security_result.action_details |
Mapeado diretamente a partir do campo jsonPayload.action . |
jsonPayload.connection.clientIp |
principal.asset.ip |
Mapeado diretamente a partir do campo jsonPayload.connection.clientIp . |
jsonPayload.connection.clientIp |
principal.ip |
Mapeado diretamente a partir do campo jsonPayload.connection.clientIp . |
jsonPayload.connection.clientPort |
principal.port |
Mapeado diretamente a partir do campo jsonPayload.connection.clientPort e convertido em número inteiro. |
jsonPayload.connection.protocol |
network.ip_protocol |
Mapeado a partir de jsonPayload.connection.protocol . Se o valor for tcp , o campo UDM é definido como TCP . A mesma lógica aplica-se a udp , icmp e igmp . |
jsonPayload.connection.serverIp |
target.asset.ip |
Mapeado diretamente a partir do campo jsonPayload.connection.serverIp . |
jsonPayload.connection.serverIp |
target.ip |
Mapeado diretamente a partir do campo jsonPayload.connection.serverIp . |
jsonPayload.connection.serverPort |
target.port |
Mapeado diretamente a partir do campo jsonPayload.connection.serverPort e convertido em número inteiro. |
jsonPayload.interceptVpc.projectId |
security_result.rule_labels |
Mapeado de jsonPayload.interceptVpc.projectId com a chave rule_details_projectId . |
jsonPayload.interceptVpc.vpc |
security_result.rule_labels |
Mapeado de jsonPayload.interceptVpc.vpc com a chave rule_details_vpc_network . |
jsonPayload.securityProfileGroupDetails.securityProfileGroupId |
security_result.rule_labels |
Mapeado de jsonPayload.securityProfileGroupDetails.securityProfileGroupId com a chave rule_details_security_profile_group . |
jsonPayload.securityProfileGroupDetails.securityProfileGroupId |
security_result.rule_labels |
Mapeado de jsonPayload.securityProfileGroupDetails.securityProfileGroupId com a chave rule_details_securityProfileGroupDetails_id . |
jsonPayload.threatDetails.category |
security_result.rule_labels |
Mapeado de jsonPayload.threatDetails.category com a chave rule_details_category . |
jsonPayload.threatDetails.direction |
security_result.rule_labels |
Mapeado de jsonPayload.threatDetails.direction com a chave rule_details_direction . |
jsonPayload.threatDetails.id |
security_result.threat_id |
Mapeado diretamente a partir do campo jsonPayload.threatDetails.id . |
jsonPayload.threatDetails.severity |
security_result.severity |
Mapeado a partir de jsonPayload.threatDetails.severity . Se o valor for CRITICAL , o campo UDM é definido como CRITICAL . A mesma lógica aplica-se a HIGH , MEDIUM , LOW e INFO . |
jsonPayload.threatDetails.threat |
security_result.threat_name |
Mapeado diretamente a partir do campo jsonPayload.threatDetails.threat . |
jsonPayload.threatDetails.type |
security_result.rule_labels |
Mapeado de jsonPayload.threatDetails.type com a chave rule_details_threat_type . |
jsonPayload.threatDetails.uriOrFilename |
security_result.rule_labels |
Mapeado de jsonPayload.threatDetails.uriOrFilename com a chave rule_details_uriOrFilename . |
logName |
metadata.product_event_type |
Mapeado diretamente a partir do campo logName . |
metadata.collected_timestamp |
metadata.collected_timestamp |
Mapeado diretamente a partir do campo receiveTimestamp e analisado através do formato de data especificado. |
metadata.event_type |
metadata.event_type |
Definido como NETWORK_CONNECTION se principal_ip e target_ip estiverem presentes. Definido como STATUS_UNCATEGORIZED se apenas principal_ip estiver presente. Caso contrário, defina como GENERIC_EVENT . |
metadata.product_name |
metadata.product_name |
Codificado para GCP Firewall . |
metadata.vendor_name |
metadata.vendor_name |
Codificado para Google Cloud Platform . |
receiveTimestamp |
metadata.collected_timestamp |
Mapeado diretamente a partir do campo receiveTimestamp . |
security_result.action |
security_result.action |
Derivado do campo jsonPayload.action . Mapeado para ALLOW , BLOCK ou UNKNOWN_ACTION com base no valor de jsonPayload.action . |
timestamp |
metadata.event_timestamp |
Mapeado diretamente a partir do campo timestamp . |
timestamp |
timestamp |
Mapeado diretamente a partir do campo timestamp . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.