Coletar registros do proxy da Web do Cisco Umbrella

Compatível com:

Este documento explica como coletar logs do proxy da Web do Cisco Umbrella para um feed do Google Security Operations usando o bucket do AWS S3. O analisador extrai campos de um registro CSV, renomeando colunas para maior clareza e processando possíveis variações nos dados de entrada. Em seguida, ele usa os arquivos incluídos (umbrella_proxy_udm.include e umbrella_handle_identities.include) para mapear os campos extraídos para o UDM e processar informações de identidade com base no campo identityType.

Antes de começar

  • Verifique se você tem uma instância do Google SecOps.
  • Verifique se você tem acesso privilegiado ao AWS IAM e ao S3.
  • Verifique se você tem acesso privilegiado ao Cisco Umbrella.

Configurar um bucket do Amazon S3 gerenciado pela Cisco

  1. Faça login no painel do Cisco Umbrella.
  2. Acesse Administrador > Gerenciamento de registros.
  3. Selecione a opção Usar um bucket do Amazon S3 gerenciado pela Cisco.
  4. Informe os seguintes detalhes de configuração:
    • Selecione uma região: escolha uma região mais próxima do seu local para reduzir a latência.
    • Selecione uma duração de retenção: selecione o período. A duração da retenção é de 7, 14 ou 30 dias. Após o período selecionado, os dados são excluídos e não podem ser recuperados. Se o ciclo de transferência for regular, use um período menor. Você pode mudar a duração da retenção mais tarde.
  5. Clique em Salvar.
  6. Clique em Continuar para confirmar suas seleções e receber a notificação de ativação.
    Na janela Activation complete que aparece, os valores Access key e Secret key são exibidos.
  7. Copie os valores das chaves de acesso e secreta. Se você perder essas chaves, será necessário regenerá-las.
  8. Clique em Entendi > Continuar.
  9. Uma página de resumo mostra a configuração e o nome do bucket. É possível ativar ou desativar a geração de registros conforme necessário na sua organização. No entanto, os registros são limpos com base na duração da retenção, independentemente de novos dados serem adicionados.

Opcional: configure chaves de acesso do usuário para o bucket autogerenciado do AWS S3

  1. Faça login no Console de Gerenciamento da AWS.
  2. Crie um usuário seguindo este guia: Como criar um usuário do IAM.
  3. Selecione o Usuário criado.
  4. Selecione a guia Credenciais de segurança.
  5. Clique em Criar chave de acesso na seção Chaves de acesso.
  6. Selecione Serviço de terceiros como o caso de uso.
  7. Clique em Próxima.
  8. Opcional: adicione uma tag de descrição.
  9. Clique em Criar chave de acesso.
  10. Clique em Fazer o download do arquivo CSV para salvar a chave de acesso e a chave de acesso secreta para uso futuro.
  11. Clique em Concluído.
  12. Selecione a guia Permissões.
  13. Clique em Adicionar permissões na seção Políticas de permissões.
  14. Selecione Adicionar permissões.
  15. Selecione Anexar políticas diretamente.
  16. Pesquise e selecione a política AmazonS3FullAccess.
  17. Clique em Próxima.
  18. Clique em Adicionar permissões

Opcional: configure um bucket autogerenciado do Amazon S3

  1. Faça login no Console de Gerenciamento da AWS.

  2. Acesse S3.

  3. Clique em Criar bucket.

  4. Informe os seguintes detalhes de configuração:

    • Nome do bucket: forneça um nome para o bucket do Amazon S3.
    • Região: selecione uma região.
  5. Clique em Criar.

Opcional: configure uma política de bucket para o bucket autogerenciado do AWS S3

  1. Clique no bucket recém-criado para abri-lo.
  2. Selecione Propriedades > Permissões.
  3. Na lista Permissões, clique em Adicionar política de bucket.
  4. Insira a política de bucket preconfigurada da seguinte maneira:

    {
      "Version": "2008-10-17",
      "Statement": [
        {
          "Sid": "",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::568526795995:user/logs"
          },
          "Action": "s3:PutObject",
          "Resource": "arn:aws:s3:::BUCKET_NAME/*"
        },
        {
          "Sid": "",
          "Effect": "Deny",
          "Principal": {
            "AWS": "arn:aws:iam::568526795995:user/logs"
          },
          "Action": "s3:GetObject",
          "Resource": "arn:aws:s3:::BUCKET_NAME/*"},
        {
          "Sid": "",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::568526795995:user/logs"
          },
          "Action": "s3:GetBucketLocation",
          "Resource": "arn:aws:s3:::BUCKET_NAME"
        },
        {
          "Sid": "",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::568526795995:user/logs"
          },
          "Action": "s3:ListBucket",
          "Resource": "arn:aws:s3:::BUCKET_NAME"
        }
      ]
    }
    
    • Substitua BUCKET_NAME pelo nome do bucket do Amazon S3 que você informou.
  5. Clique em Salvar.

Opcional: verificação obrigatória para bucket autogerenciado do Amazon S3

  1. No painel do Cisco Umbrella, selecione Administrador > Gerenciamento de registros > Amazon S3.
  2. No campo Nome do bucket, especifique o nome exato do bucket do Amazon S3 e clique em Verificar.
  3. Como parte do processo de verificação, um arquivo chamado README_FROM_UMBRELLA.txt é enviado do Cisco Umbrella para seu bucket do Amazon S3. Talvez seja necessário atualizar o navegador para ver o arquivo readme quando ele for enviado.
  4. Faça o download do arquivo README_FROM_UMBRELLA.txt e abra-o usando um editor de texto.
  5. Copie e salve o token exclusivo do Cisco Umbrella do arquivo.
  6. Acesse o painel do Cisco Umbrella.
  7. No campo Número do token, especifique o token e clique em Salvar.
  8. Se for bem-sucedida, você vai receber uma mensagem de confirmação no painel indicando que o bucket foi verificado. Se você receber um erro indicando que não é possível verificar o bucket, verifique novamente a sintaxe do nome do bucket e revise a configuração.

Configurar um feed no Google SecOps para processar os registros do proxy da Web do Cisco Umbrella

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo.
  3. No campo Nome do feed, insira um nome para o feed. Por exemplo, Cisco Umbrella Web Proxy Logs.
  4. Selecione Amazon S3 como o Tipo de origem.
  5. Selecione Cisco Umbrella Web Proxy como o Tipo de registro.
  6. Clique em Próxima.
  7. Especifique valores para os seguintes parâmetros de entrada:

    • Região: insira a região em que o bucket do Amazon S3 está localizado.
    • URI do S3: o URI do bucket.
      • s3:/BUCKET_NAME
        • Substitua BUCKET_NAME pelo nome real do bucket.
    • URI é um: selecione Diretório que inclui subdiretórios, Arquivo único ou Diretório, de acordo com a configuração do fluxo de registros.
    • Opções de exclusão da origem: selecione a opção de exclusão de acordo com sua preferência.
    • ID da chave de acesso: insira a chave de acesso do usuário com acesso ao bucket do S3.
    • Chave de acesso secreta: insira a chave secreta do usuário com acesso ao bucket do S3.
    • Opcional: Namespace do recurso: informe o namespace do recurso.
    • Opcional: Rótulos de transferência: informe o rótulo que será aplicado aos eventos desse feed.
  8. Clique em Próxima.

  9. 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
ampDisposition security_result.detection_fields[].value O valor de ampDisposition do registro bruto.
ampMalware security_result.detection_fields[].value O valor de ampMalware do registro bruto.
ampScore security_result.detection_fields[].value O valor de ampScore do registro bruto.
avDetections security_result.detection_fields[].value O valor de avDetections do registro bruto.
blockedCategories security_result.threat_name O valor de blockedCategories do registro bruto.
certificateErrors security_result.detection_fields[].value O valor de certificateErrors do registro bruto.
contentType security_result.detection_fields[].value O valor de contentType do registro bruto.
destinationIp target.ip O valor de destinationIp do registro bruto.
destinationListID security_result.detection_fields[].value O valor de destinationListID do registro bruto.
dlpstatus security_result.detection_fields[].value O valor de dlpstatus do registro bruto.
externalIp principal.ip O valor de externalIp do registro bruto.
fileAction security_result.detection_fields[].value O valor de fileAction do registro bruto.
fileName target.file.names O valor de fileName do registro bruto.
identitiesV8 principal.hostname O valor de identitiesV8 do registro bruto.
identity principal.location.name O valor de identity do registro bruto.
internalIp principal.ip O valor de internalIp do registro bruto.
isolateAction security_result.detection_fields[].value O valor de isolateAction do registro bruto.
referer network.http.referral_url O valor de referer do registro bruto.
requestMethod network.http.method O valor de requestMethod do registro bruto.
requestSize security_result.detection_fields[].value O valor de requestSize do registro bruto.
responseBodySize security_result.detection_fields[].value O valor de responseBodySize do registro bruto.
responseSize security_result.detection_fields[].value O valor de responseSize do registro bruto.
ruleID security_result.rule_id O valor de ruleID do registro bruto.
rulesetID security_result.detection_fields[].value O valor de rulesetID do registro bruto.
sha security_result.about.file.sha256 O valor de sha do registro bruto.
statusCode network.http.response_code O valor de statusCode do registro bruto.
ts timestamp O valor de ts do registro bruto, analisado em um carimbo de data/hora.
url target.url O valor de url do registro bruto.
userAgent network.http.user_agent O valor de userAgent do registro bruto.
verdict security_result.detection_fields[].value O valor de verdict do registro bruto.
warnstatus security_result.detection_fields[].value O valor de warnstatus do registro bruto. O valor de collection_time do registro bruto. Fixado em NETWORK_HTTP. Fixado em Cisco. Fixado em Umbrella. Fixado em UMBRELLA_WEBPROXY. Derivado do esquema do campo de URL (http ou https). Analisado do campo userAgent usando uma biblioteca de análise de user-agent. O valor de requestSize do registro bruto, convertido em um número inteiro. O valor de responseSize do registro bruto, convertido em um número inteiro. Derivado do campo identity quando identityType (ou identityTypeV8 com identitiesV8) indica um usuário. Analisado para extrair detalhes do usuário, como nome de exibição, nome, sobrenome e endereço de e-mail. Mapeado do campo verdict: allowed ou allowed -> ALLOW, outros valores -> BLOCK. Se categories não estiver vazio, defina como NETWORK_CATEGORIZED_CONTENT. O valor de categories do registro bruto. Com base no verdict e possivelmente em outros campos. Geralmente Traffic allowed ou Traffic blocked. Se verdict não for allowed ou blocked e statusCode estiver presente, o resumo será Traffic %{statusCode}.

Alterações

2025-01-15

Melhoria:

  • Adição de um gsub para oferecer suporte ao novo formato de registros CSV.

2025-01-08

Melhoria:

  • Se identities for um endereço de e-mail, mapeie identities para principal.user.userid.

2024-09-05

Melhoria:

  • tld foi mapeado para security_result.detection_fields.

2023-10-17

Melhoria:

  • verdict foi mapeado para security_result.action.

2023-09-14

Melhoria:

  • Adição de suporte à v8 para registros de proxy.
  • dlpstatus foi mapeado para security_result.detection_fields.
  • certificateErrors foi mapeado para security_result.detection_fields.
  • rulesetID foi mapeado para security_result.detection_fields.
  • destinationListID foi mapeado para security_result.detection_fields.
  • isolateAction foi mapeado para security_result.detection_fields.
  • fileAction foi mapeado para security_result.detection_fields.
  • warnstatus foi mapeado para security_result.detection_fields.
  • avDetections foi mapeado para security_result.detection_fields.
  • puas foi mapeado para security_result.detection_fields.
  • ampDisposition foi mapeado para security_result.detection_fields.
  • ampMalware foi mapeado para security_result.detection_fields.
  • ampScore foi mapeado para security_result.detection_fields.
  • responseBodySize foi mapeado para security_result.detection_fields.
  • requestSize foi mapeado para network.sent_bytes.
  • ruleID foi mapeado para security_result.rule_id.
  • fileName foi mapeado para target.file.names.
  • requestMethod foi mapeado para network.http.method.

2023-08-16

Correção de bugs:

  • A verificação condicional do campo identity foi modificada para oferecer suporte a username with email e only email.
  • O mapeamento de identity para principal.user.product_object_id foi removido para AD Users.

2022-12-16

Melhoria:

  • A verificação condicional do campo "email" foi modificada e mapeada para "principal.user.email_addresses".
  • A verificação condicional do campo "destinationIp" foi modificada e mapeada para "target.ip".

2022-09-02

Melhoria:

  • Os analisadores personalizados foram migrados para o analisador padrão.

2022-08-19

Melhoria:

  • Registros não analisados processados.
  • Adição de uma condição de erro para o campo externalIp.

2022-08-17

Correção de bugs:

  • Novo tipo de data adicionado para analisar datas no formato MM/dd/yy HH:mm.

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