Coletar registros de auditoria do Cisco Umbrella

Compatível com:

Este documento explica como coletar registros de auditoria do Cisco Umbrella em um feed do Google Security Operations usando o bucket do AWS S3. O analisador normaliza os dados de registro CSV brutos, processando diferentes delimitadores e possíveis inconsistências de formatação. Em seguida, com base no tipo de registro (DNS ou auditoria), ele mapeia os campos extraídos para o esquema UDM correspondente, enriquecendo os dados com contexto adicional e padronizando a representação para análise posterior.

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 de você para reduzir a latência.
    • Selecione uma duração de retenção: escolha o período. A duração da retenção é de 7, 14 ou 30 dias. Depois do período selecionado, os dados são excluídos e não podem ser recuperados. Se o ciclo de ingestão for regular, use um período mais curto. É possível mudar a duração da retenção depois.
  5. Clique em Salvar.
  6. Clique em Continuar para confirmar suas seleções e receber a notificação de ativação.
    Na janela Ativação concluída que aparece, os valores de Chave de acesso e Chave secreta são exibidos.
  7. Copie os valores de Chave de acesso e Chave secreta. Se você perder essas chaves, será necessário gerá-las novamente.
  8. Clique em Entendi > Continuar.
  9. Uma página de resumo mostra a configuração e o nome do bucket. Você pode ativar ou desativar a geração de registros conforme exigido pela sua organização. No entanto, os registros são limpos com base na duração da retenção, independentemente da adição de novos dados.

Opcional: configurar chaves de acesso do usuário para um bucket do AWS S3 autogerenciado

  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 posterior.
  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: configurar um bucket do Amazon S3 autogerenciado

  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: informe 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 do AWS S3 autogerenciado

  1. Clique no bucket recém-criado para abrir.
  2. Selecione Propriedades > Permissões.
  3. Na lista Permissões, clique em Adicionar política de bucket.
  4. Insira a política de bucket pré-configurada 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 do Amazon S3 autogerenciado

  1. No painel Cisco Umbrella, selecione Admin > Log management > 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 seu bucket, confira novamente a sintaxe do nome dele e revise a configuração.

Configurar um feed no Google SecOps para ingerir os registros de auditoria 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, Registros de auditoria do Cisco Umbrella.
  4. Selecione Amazon S3 V2 como o Tipo de origem.
  5. Selecione Auditoria do Cisco Umbrella como o Tipo de registro.
  6. Clique em Próxima.
  7. Especifique valores para os seguintes parâmetros de entrada:

    • URI do S3: o URI do bucket.
      • s3:/BUCKET_NAME
        • Substitua BUCKET_NAME pelo nome real do bucket.
    • Opções de exclusão de fontes: selecione a opção de exclusão de acordo com sua preferência.
  8. Clique em Próxima.

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

Tabela de mapeamento da UDM

Campo de registro Mapeamento da UDM Lógica
action_type security_result.action_details Mapeado diretamente do campo de registro bruto action_type.
action_type security_result.action Se action_type contiver allow (sem diferenciar maiúsculas e minúsculas), defina como ALLOW. Se action_type contiver block (sem diferenciar maiúsculas e minúsculas), defina como BLOCK.
additionalValue additional.fields{}.key Defina como Additional Value.
additionalValue additional.fields{}.value.string_value Mapeado diretamente do campo de registro bruto additionalValue.
blocked_categories additional.fields{}.key Defina como blocked_categories.
blocked_categories additional.fields{}.value.string_value Mapeado diretamente do campo de registro bruto blocked_categories.
categorias security_result.category_details Mapeado diretamente do campo de registro bruto categories, depois de ser dividido por vírgula.
column1 metadata.product_log_id Mapeado do campo de registro bruto column1 se o registro for de registro de auditoria.
column1 date_time Mapeado do campo de registro bruto column1 se o registro for de DNS.
column10 categorias Mapeado diretamente do campo de registro bruto column10.
column11 most_granular_identity_type Mapeado diretamente do campo de registro bruto column11.
column12 identity_types Mapeado diretamente do campo de registro bruto column12.
column13 blocked_categories Mapeado diretamente do campo de registro bruto column13.
column2 date_time Mapeado do campo de registro bruto column2 se o registro for de registro de auditoria.
column2 most_granular_identity Mapeado do campo de registro bruto column2 se o registro for de DNS.
column3 principal.user.email_addresses Mapeado do campo de registro bruto column3 se o registro for de registro de auditoria.
column3 identidades Mapeado do campo de registro bruto column3 se o registro for de DNS.
column4 principal.user.userid Mapeado do campo de registro bruto column4 se o registro for de registro de auditoria.
column4 internal_ip Mapeado do campo de registro bruto column4 se o registro for de DNS.
column5 security_result.rule_name Mapeado do campo de registro bruto column5 se o registro for de registro de auditoria.
column5 external_ip Mapeado do campo de registro bruto column5 se o registro for de DNS.
column6 action_type Mapeado diretamente do campo de registro bruto column6.
column7 principal.ip Mapeado do campo de registro bruto column7 se o registro for de registro de auditoria.
column7 dns_query_type Mapeado do campo de registro bruto column7 se o registro for de DNS.
column8 additionalValue Mapeado do campo de registro bruto column8 se o registro for de registro de auditoria.
column8 dns_response_code Mapeado do campo de registro bruto column8 se o registro for de DNS.
column9 domínio Mapeado diretamente do campo de registro bruto column9.
date_time metadata.event_timestamp.seconds O carimbo de data/hora da época extraído do campo date_time.
dns_query_type network.dns.questions.type Extraído do campo dns_query_type usando uma expressão regular e convertido em número inteiro.
dns_response_code network.dns.response_code Mapeado do campo dns_response_code e convertido em número inteiro com base nos valores do código de resposta do DNS.
domínio network.dns.questions.name Mapeado diretamente do campo domain.
external_ip principal.ip Mapeado do campo external_ip se não estiver vazio e for diferente de internal_ip.
identidades principal.location.name Mapeado do campo identities se o campo identity_types correspondente for Networks.
identidades principal.hostname Mapeado do campo identities se o campo identity_types correspondente for AD Computers, Roaming Computers ou Anyconnect Roaming Client.
identidades principal.asset.hostname Mapeado do campo identities se o campo identity_types correspondente for AD Computers, Roaming Computers ou Anyconnect Roaming Client.
identidades principal.location.city Mapeado do campo identities se o campo identity_types correspondente for Sites.
identity_types additional.fields{}.key Defina como identities_types.
identity_types additional.fields{}.value.string_value Mapeado diretamente do campo de registro bruto identity_types.
internal_ip principal.ip Mapeado do campo internal_ip se não estiver vazio.
most_granular_identity additional.fields{}.key Defina como most_granular_identity.
most_granular_identity additional.fields{}.value.string_value Mapeado diretamente do campo de registro bruto most_granular_identity.
most_granular_identity_type additional.fields{}.key Defina como most_granular_identity_type.
most_granular_identity_type additional.fields{}.value.string_value Mapeado diretamente do campo de registro bruto most_granular_identity_type.
metadata.event_type Defina como NETWORK_DNS se o registro for de DNS.
metadata.event_type Definido como STATUS_UPDATE se o registro for registro de auditoria e principal_ip não estiver vazio.
metadata.event_type Definido como GENERIC_EVENT se o registro for registro de auditoria e principal_ip estiver vazio.
metadata.vendor_name Defina como CISCO UMBERLLA.
metadata.product_name Defina como CISCO UMBERLLA.
metadata.log_type Defina como AUDITD.
network.application_protocol Defina como DNS se o registro for de DNS.

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