Coletar registros do Firewall de última geração do Cloud
Este documento explica como exportar e ingerir registros do Cloud NGFW no Google Security Operations usando Google Cloud. O analisador extrai campos dos registros do firewall Google Cloud , transforma e mapeia para o UDM. Ele processa vários campos de registro, incluindo detalhes de conexão, informações de ameaças, detalhes de regras e informações de rede, realizando conversões de tipo de dados, renomeações e lógica condicional com base nos campos action
e direction
para preencher o modelo UDM corretamente.
Antes de começar
Verifique se você atende aos seguintes pré-requisitos:
- Instância do Google SecOps.
- O Cloud NGFW está ativo e configurado no seu ambiente Google Cloud .
- Acesso privilegiado ao Google Cloud e permissões adequadas para acessar os registros do Cloud NGFW.
Criar um bucket do 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, gcp-ngfw-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 do Cloud NGFW
- Faça login no console doGoogle Cloud .
- Acesse Logging > Roteador de registros.
- Clique em Criar coletor.
Forneça os seguintes parâmetros de configuração:
- Nome do coletor: insira um nome significativo, por exemplo,
NGFW-Export-Sink
. - Destino do gravador: selecione Google Cloud Storage e insira o URI do bucket. Por exemplo,
gs://gcp-ngfw-logs
. Filtro de registros:
logName="projects/<your-project-id>/logs/gcp-firewall"
- Nome do coletor: insira um nome significativo, por exemplo,
Clique em Criar.
Configurar permissões para o Cloud Storage
- Acesse IAM e administrador > IAM.
- Localize a conta de serviço do Cloud Logging.
- Conceda o papel roles/storage.admin no bucket.
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 empresariais do NGFW do GCP.
- Selecione Google Cloud Storage como o Tipo de origem.
- Selecione GCP NGFW Enterprise como o Tipo de registro.
- Clique em Receber conta de serviço ao lado do campo 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. Por exemplo,
gs://gcp-ngfw-logs
. - 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. Por exemplo,
Clique em Próxima.
Revise a nova configuração do feed na tela Finalizar e clique em Enviar.
Configurar feeds na Central de conteúdo
Especifique valores para os seguintes campos:
- URI do bucket de armazenamento: Google Cloud URL do bucket de armazenamento. Por exemplo,
gs://gcp-ngfw-logs
. - 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.
Opções avançadas
- Nome do feed: um valor pré-preenchido que identifica o feed.
- Tipo de origem: método usado para coletar registros no Google SecOps.
- Namespace do recurso: namespace associado ao feed.
- Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
insertId |
metadata.product_log_id |
Mapeado diretamente do campo insertId . |
jsonPayload.action |
security_result.action_details |
Mapeado diretamente do campo jsonPayload.action . |
jsonPayload.connection.clientIp |
principal.asset.ip |
Mapeado diretamente do campo jsonPayload.connection.clientIp . |
jsonPayload.connection.clientIp |
principal.ip |
Mapeado diretamente do campo jsonPayload.connection.clientIp . |
jsonPayload.connection.clientPort |
principal.port |
Mapeado diretamente do campo jsonPayload.connection.clientPort e convertido em número inteiro. |
jsonPayload.connection.protocol |
network.ip_protocol |
Mapeado de jsonPayload.connection.protocol . Se o valor for tcp , o campo UDM será definido como TCP . A mesma lógica se aplica a udp , icmp e igmp . |
jsonPayload.connection.serverIp |
target.asset.ip |
Mapeado diretamente do campo jsonPayload.connection.serverIp . |
jsonPayload.connection.serverIp |
target.ip |
Mapeado diretamente do campo jsonPayload.connection.serverIp . |
jsonPayload.connection.serverPort |
target.port |
Mapeado diretamente 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 do campo jsonPayload.threatDetails.id . |
jsonPayload.threatDetails.severity |
security_result.severity |
Mapeado de jsonPayload.threatDetails.severity . Se o valor for CRITICAL , o campo UDM será definido como CRITICAL . Uma lógica semelhante se aplica a HIGH , MEDIUM , LOW e INFO . |
jsonPayload.threatDetails.threat |
security_result.threat_name |
Mapeado diretamente 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 do campo logName . |
metadata.collected_timestamp |
metadata.collected_timestamp |
Mapeado diretamente do campo receiveTimestamp e analisado usando o formato de data especificado. |
metadata.event_type |
metadata.event_type |
Definido como NETWORK_CONNECTION se principal_ip e target_ip estiverem presentes. Defina como STATUS_UNCATEGORIZED se apenas principal_ip estiver presente. Caso contrário, defina como GENERIC_EVENT . |
metadata.product_name |
metadata.product_name |
Fixado no código como GCP Firewall . |
metadata.vendor_name |
metadata.vendor_name |
Fixado no código como Google Cloud Platform . |
receiveTimestamp |
metadata.collected_timestamp |
Mapeado diretamente 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 do campo timestamp . |
timestamp |
timestamp |
Mapeado diretamente do campo timestamp . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.