Coletar registros do Secure Web Proxy

Versão do analisador: 2.0

Compatível com:

Neste documento, explicamos como exportar e ingerir o 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). Ele inicializa os campos do UDM, analisa o payload JSON, extrai informações de rede, detalhes de segurança e atributos de recursos, além de definir o tipo de evento com base na presença de informações de principal e destino.

Antes de começar

Verifique se você atende os seguintes pré-requisitos:

  • Instância do Google SecOps.
  • O Secure Web Proxy está ativo e configurado no ambiente do Google Cloud .
  • Acesso privilegiado a Google Cloud e permissões adequadas para acessar os registros do Secure Web Proxy.

Criar um bucket do Cloud Storage

  1. Faça login no console doGoogle Cloud .
  2. Acesse a página Buckets do Cloud Storage.

    Acessar buckets

  3. Clique em Criar.

  4. 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:

    1. Na seção Começar, faça o seguinte:

      1. Insira um nome exclusivo que atenda aos requisitos de nome de bucket. Por exemplo, gcp-swp-logs.
      2. 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.

      3. Para adicionar um rótulo de bucket, clique na seta de expansão para abrir a seção Rótulos.

      4. Clique em Adicionar rótulo e especifique uma chave e um valor para o rótulo.

    2. Na seção Escolha onde armazenar seus dados, faça o seguinte:

      1. Selecione um tipo de local.
      2. Use o menu do tipo de local para selecionar um Local em que os dados de objetos no bucket serão armazenados permanentemente.

      3. Para configurar a replicação entre buckets, abra a seção Configurar a replicação entre buckets.

    3. 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.

    4. 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.

    5. Na seção Escolha como proteger os dados do objeto, faça o seguinte:

      1. Selecione qualquer uma das opções em Proteção de dados que você quer definir para o bucket.
      2. 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.
  5. Clique em Criar.

Configurar a exportação de registros do Secure Web Proxy

  1. Faça login no console doGoogle Cloud .
  2. Acesse Geração de registros > Roteador de registros.
  3. Clique em Criar coletor.
  4. Informe os seguintes parâmetros de configuração:

    • Nome do coletor: insira um nome significativo, por exemplo, SWP-Export-Sink.
    • Destino do coletor: 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"
    
  5. Clique em Criar.

Configurar permissões para o Cloud Storage

  1. Acesse IAM e administrador > IAM.
  2. Localize a conta de serviço do Cloud Logging.
  3. Conceda o papel roles/storage.admin no bucket.

Configurar feeds

Para configurar um feed, siga estas etapas:

  1. Acesse Configurações > Gerenciamento de dados > Feeds. Se você estiver em uma plataforma somente SIEM, acesse Configurações > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na página seguinte, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed. Por exemplo, Google Cloud Registros do SWP.
  5. Selecione Google Cloud Storage V2 como o Tipo de origem.
  6. Selecione Secure Web Proxy do GCP como o Tipo de registro.
  7. Clique em Get Service Account ao lado do campo Chronicle Service Account.
  8. Clique em Próxima.
  9. Especifique valores para os seguintes parâmetros de entrada:

    • URI do bucket de armazenamento: URL do bucket do Cloud Storage. Por exemplo, gs://gcp-swp-logs/. Esse URL precisa terminar com uma barra (/).
    • Opções de exclusão da origem: selecione a opção de exclusão de acordo com sua preferência.

    • Idade máxima do arquivo: inclui arquivos modificados nos últimos dias. O padrão é 180 dias.

  10. Clique em Próxima.

  11. Revise a configuração do novo feed na tela Finalizar e clique em Enviar.

Tabela de mapeamento de UDM

Campo de registro Mapeamento de 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.
(lógica do analisador) 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.
(lógica do analisador) metadata.log_type: GCP_SWP Valor fixado no código com base no produto.

Registro de alterações

Confira o registro de alterações deste analisador

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.