Coletar registros de auditoria do Cisco Umbrella
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
- Faça login no painel do Cisco Umbrella.
- Acesse Administrador > Gerenciamento de registros.
- Selecione a opção Usar um bucket do Amazon S3 gerenciado pela Cisco.
- 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.
- Clique em Salvar.
- 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. - Copie os valores das chaves de acesso e secreta. Se você perder essas chaves, será necessário regenerá-las.
- Clique em Entendi > Continuar.
- 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
- Faça login no Console de Gerenciamento da AWS.
- Crie um usuário seguindo este guia: Como criar um usuário do IAM.
- Selecione o Usuário criado.
- Selecione a guia Credenciais de segurança.
- Clique em Criar chave de acesso na seção Chaves de acesso.
- Selecione Serviço de terceiros como o caso de uso.
- Clique em Próxima.
- Opcional: adicione uma tag de descrição.
- Clique em Criar chave de acesso.
- Clique em Fazer o download do arquivo CSV para salvar a chave de acesso e a chave de acesso secreta para uso futuro.
- Clique em Concluído.
- Selecione a guia Permissões.
- Clique em Adicionar permissões na seção Políticas de permissões.
- Selecione Adicionar permissões.
- Selecione Anexar políticas diretamente.
- Pesquise e selecione a política AmazonS3FullAccess.
- Clique em Próxima.
- Clique em Adicionar permissões
Opcional: configure um bucket autogerenciado do Amazon S3
Faça login no Console de Gerenciamento da AWS.
Acesse S3.
Clique em Criar bucket.
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.
Clique em Criar.
Opcional: configure uma política de bucket para o bucket autogerenciado do AWS S3
- Clique no bucket recém-criado para abri-lo.
- Selecione Propriedades > Permissões.
- Na lista Permissões, clique em Adicionar política de bucket.
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.
- Substitua
Clique em Salvar.
Opcional: verificação obrigatória para bucket autogerenciado do Amazon S3
- No painel do Cisco Umbrella, selecione Administrador > Gerenciamento de registros > Amazon S3.
- No campo Nome do bucket, especifique o nome exato do bucket do Amazon S3 e clique em Verificar.
- 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. - Faça o download do arquivo
README_FROM_UMBRELLA.txt
e abra-o usando um editor de texto. - Copie e salve o token exclusivo do Cisco Umbrella do arquivo.
- Acesse o painel do Cisco Umbrella.
- No campo Número do token, especifique o token e clique em Salvar.
- 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
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo.
- No campo Nome do feed, insira um nome para o feed. Por exemplo, Registros de auditoria do Ciso Umbrella.
- Selecione Amazon S3 como o Tipo de origem.
- Selecione Cisco Umbrella Audit como o Tipo de registro.
- Clique em Próxima.
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.
- Substitua
- 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.
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 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 parametadata.event_timestamp
.most_granular_identity
,most_granular_identity_type
,identity_types
eblocked_categories
foram mapeados paraadditional.fields
.internal_ip
eexternal_ip
foram mapeados paraprincipal.ip
.action_type
foi mapeado parasecurity_result.action_details
.dns_query_type
foi mapeado paranetwork.dns.questions.type
.dns_response_code
foi mapeado paranetwork.dns.response_code
.domain
foi mapeado paranetwork.dns.questions.name
.categories
foi mapeado parasecurity_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.