Coletar registros do Proxy seguro da Web do Cloud
Este documento explica como exportar e processar o Cloud Secure Web Proxy no Google Security Operations usando o Cloud Storage. O analisador extrai campos de registros JSON, transformando-os no modelo de dados unificado (UDM, na sigla em inglês). Ele inicializa os campos do UDM, analisa o payload JSON, extrai informações de rede, detalhes de segurança, atributos de recursos e define o tipo de evento com base na presença de informações principais e de destino.
Antes de começar
- Verifique se você tem uma instância do Google SecOps.
- Verifique se o proxy da Web seguro do Cloud está ativo e configurado no seu Google Cloud ambiente.
- Verifique se você tem acesso privilegiado a Google Cloud e as permissões adequadas para acessar os registros do Secure Web Proxy.
Criar um bucket do Cloud Storage
- Faça login no console do Google 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:
Na seção Começar, faça o seguinte:
- Insira um nome exclusivo que atenda aos requisitos de nome de bucket. Por exemplo, gcp-swp-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 Google Cloud a exportação de registros do Secure Web Proxy
- Faça login no console do Google Cloud.
- Acesse Logging > Roteador de registros.
- Clique em Criar coletor.
Informe os seguintes parâmetros de configuração:
- Nome do coletor: insira um nome significativo. Por exemplo,
SWP-Export-Sink
. - Destino do sink: selecione Cloud Storage e insira o URI do bucket. Por exemplo,
gs://gcp-swp-logs
. - Filtro de registro:
logName="projects/<your-project-id>/logs/networkservices.googleapis.com/gateway_requests"
- Nome do coletor: insira um nome significativo. Por exemplo,
Clique em Criar.
Configurar permissões do 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 um feed no Google SecOps para ingerir Google Cloud registros do Secure Web Proxy
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo.
- No campo Nome do feed, insira um nome para o feed. Por exemplo, Google Cloud SWP Logs.
- Selecione Google Cloud Storage como o Tipo de origem.
- Selecione Proxy da Web seguro do GCP como o Tipo de registro.
- Clique em Pegar 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 do Storage: URL do bucket do Cloud Storage. Por exemplo,
gs://gcp-swp-logs
. - URI Is A: selecione Directory which includes subdirectories.
Opções de exclusão de origem: selecione a opção de exclusão de acordo com sua preferência.
Namespace do recurso: o namespace do recurso.
Rótulos de ingestão: o rótulo aplicado aos eventos desse feed.
- URI do bucket do Storage: URL do bucket do Cloud Storage. Por exemplo,
Clique em Próxima.
Revise a configuração do novo feed na tela Finalizar e clique em Enviar.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
httpRequest.latency |
additional.fields[].key : HTTPRequest Latency additional.fields[].value.string_value : 0.124462s |
Mapeado diretamente do campo de registro bruto. |
httpRequest.protocol |
network.application_protocol : HTTP network.application_protocol_version : 2 |
O protocolo e a versão são extraídos do campo httpRequest.protocol usando um padrão grok. |
httpRequest.remoteIp |
target.asset.ip : 1.1.0.1 target.ip : 1.1.0.1 |
O endereço IP é extraído do campo httpRequest.remoteIp usando um padrão grok. |
httpRequest.requestMethod |
network.http.method : GET |
Mapeado diretamente do campo de registro bruto. |
httpRequest.requestSize |
network.sent_bytes : 144 |
Mapeado diretamente do campo de registro bruto e convertido em um número inteiro. |
httpRequest.requestUrl |
target.url : https://github.com/tempuslabs/tempusutils/info/refs?service=git-upload-pack |
Mapeado diretamente do campo de registro bruto. |
httpRequest.responseSize |
network.received_bytes : 225 |
Mapeado diretamente do campo de registro bruto e convertido em um número inteiro. |
httpRequest.serverIp |
principal.asset.ip : 1.8.1.4 principal.ip : 1.8.1.4 |
O endereço IP é extraído do campo httpRequest.serverIp usando um padrão grok. |
httpRequest.status |
network.http.response_code : 401 |
Mapeado diretamente do campo de registro bruto e convertido em um número inteiro. |
httpRequest.userAgent |
network.http.user_agent : git/2.34.1 network.http.parsed_user_agent : {family : USER_DEFINED ,device : git ,device_version : 2.34.1 } |
Mapeado diretamente do campo de registro bruto. O campo parsed_user_agent é derivado da análise do campo httpRequest.userAgent . |
insertId |
metadata.product_log_id : 1yh8wczer5o8n |
Mapeado diretamente do campo de registro bruto. |
jsonPayload.@type |
additional.fields[].key : Log Type additional.fields[].value.string_value : type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry |
Mapeado diretamente do campo de registro bruto. |
jsonPayload.enforcedGatewaySecurityPolicy.hostname |
target.asset.hostname : github.com target.hostname : github.com |
Mapeado diretamente do campo de registro bruto. |
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].action |
security_result.action : ALLOW security_result.action_details : ALLOWED |
O security_result.action é derivado com base no valor de jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].action . Se a ação for ALLOWED , o campo UDM será definido como ALLOW . Se a ação for DENIED , o campo UDM será definido como BLOCK . |
jsonPayload.enforcedGatewaySecurityPolicy.matchedRules[].name |
security_result.rule_name : projects/671807354785/locations/us-central1/gatewaySecurityPolicies/github-access-gateway-security-policy-5cec30cd/rules/github-access-gateway-security-policy-rule-5cec30cd |
Mapeado diretamente do campo de registro bruto. |
jsonPayload.enforcedGatewaySecurityPolicy.requestWasTlsIntercepted |
security_result.detection_fields[].key : requestWasTlsIntercepted security_result.detection_fields[].value : true |
Mapeado diretamente do campo de registro bruto. |
logName |
additional.fields[].key : Log Name additional.fields[].value.string_value : projects/rws-w6uza3pn5jzzh6z3hc3d/logs/networkservices.googleapis.com%2Fgateway_requests |
Mapeado diretamente do campo de registro bruto. |
receiveTimestamp |
metadata.collected_timestamp : {seconds : 1710189647,nanos : 661101224} |
Analisado do campo de registro bruto usando o formato de data RFC 3339. |
resource.labels.gateway_name |
security_result.detection_fields[].key : gateway-name security_result.detection_fields[].value : github-access-gateway-5cec30cd |
Mapeado diretamente do campo de registro bruto. |
resource.labels.gateway_type |
security_result.detection_fields[].key : gateway-type security_result.detection_fields[].value : SECURE_WEB_GATEWAY |
Mapeado diretamente do campo de registro bruto. |
resource.labels.location |
target.resource.attribute.cloud.availability_zone : us-central1 |
Mapeado diretamente do campo de registro bruto. |
resource.labels.network_name |
target.resource.attribute.labels[].key : rc_network_name target.resource.attribute.labels[].value : projects/rws-w6uza3pn5jzzh6z3hc3d/global/networks/rws-tr-pilot-workspace |
Mapeado diretamente do campo de registro bruto. |
resource.type |
target.resource.attribute.labels[].key : Resource Type target.resource.attribute.labels[].value : networkservices.googleapis.com/Gateway |
Mapeado diretamente do campo de registro bruto. |
severity |
security_result.severity : MEDIUM |
Mapeado do campo de registro bruto. O valor é convertido em um nível de gravidade do UDM. Nesse caso, WARNING é mapeado para MEDIUM . |
timestamp |
metadata.event_timestamp : {seconds : 1710189639,nanos : 952848000} |
Analisado do campo de registro bruto usando o formato de data RFC 3339. |
(Parser Logic) | metadata.event_type : NETWORK_HTTP |
Determinado pela lógica do analisador com base na presença de has_principal , has_target e um protocolo correspondente a http . |
(Parser Logic) | metadata.log_type : GCP_SWP |
Valor fixado no código com base no produto. |
Alterações
2024-04-15
- Parser recém-criado.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.