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 brutos do registro CSV, processando delimitadores diferentes e possíveis inconsistências na 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 mais contexto 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 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 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 Ciso Umbrella.
  4. Selecione Amazon S3 como o Tipo de origem.
  5. Selecione Cisco Umbrella Audit 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 de 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 diferenciação entre maiúsculas e minúsculas), defina como ALLOW. Se action_type contiver block (sem diferenciação entre 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 um registro de auditoria.
column1 date_time Mapeado do campo de registro bruto column1 se o registro for um registro 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 um registro de auditoria.
column2 most_granular_identity Mapeado do campo de registro bruto column2 se o registro for um registro DNS.
column3 principal.user.email_addresses Mapeado do campo de registro bruto column3 se o registro for um registro de auditoria.
column3 identidades Mapeado do campo de registro bruto column3 se o registro for um registro DNS.
column4 principal.user.userid Mapeado do campo de registro bruto column4 se o registro for um registro de auditoria.
column4 internal_ip Mapeado do campo de registro bruto column4 se o registro for um registro DNS.
column5 security_result.rule_name Mapeado do campo de registro bruto column5 se o registro for um registro de auditoria.
column5 external_ip Mapeado do campo de registro bruto column5 se o registro for um registro 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 um registro de auditoria.
column7 dns_query_type Mapeado do campo de registro bruto column7 se o registro for um registro DNS.
column8 additionalValue Mapeado do campo de registro bruto column8 se o registro for um registro de auditoria.
column8 dns_response_code Mapeado do campo de registro bruto column8 se o registro for um registro 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ídos do campo dns_query_type usando uma expressão regular, convertidos em números inteiros.
dns_response_code network.dns.response_code Mapeado do campo dns_response_code, 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 ele 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 É associado ao campo identities se o campo identity_types correspondente for AD Computers, Roaming Computers ou Anyconnect Roaming Client.
identidades principal.asset.hostname É associado ao 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 ele 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 um registro DNS.
metadata.event_type Defina como STATUS_UPDATE se o registro for um registro de auditoria e principal_ip não estiver vazio.
metadata.event_type Defina como GENERIC_EVENT se o registro for um 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 um registro DNS.

Alterações

2024-01-10

Melhoria:

  • Adicionamos suporte a registros do tipo DNS.
  • date_time foi mapeado para metadata.event_timestamp.
  • most_granular_identity, most_granular_identity_type, identity_types e blocked_categories foram mapeados para additional.fields.
  • internal_ip e external_ip foram mapeados para principal.ip.
  • action_type foi mapeado para security_result.action_details.
  • dns_query_type foi mapeado para network.dns.questions.type.
  • dns_response_code foi mapeado para network.dns.response_code.
  • domain foi mapeado para network.dns.questions.name.
  • categories foi mapeado para security_result.category_details.

2023-02-28

  • Parser recém-criado.

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