Recolha registos de auditoria do Cisco Umbrella
Este documento explica como recolher registos de auditoria do Cisco Umbrella para um feed do Google Security Operations através do contentor do AWS S3. O analisador normaliza os dados de registo CSV não processados, processando diferentes delimitadores e potenciais inconsistências de formatação. Em seguida, com base no tipo de registo (DNS ou auditoria), mapeia os campos extraídos para o esquema UDM correspondente, enriquecendo os dados com contexto adicional e normalizando a representação para análise posterior.
Antes de começar
- Certifique-se de que tem uma instância do Google SecOps.
- Certifique-se de que tem acesso privilegiado ao AWS IAM e ao S3.
- Certifique-se de que tem acesso privilegiado ao Cisco Umbrella.
Configure um contentor do Amazon S3 gerido pela Cisco
- Inicie sessão no painel de controlo do Cisco Umbrella.
- Aceda a Administração > Gestão de registos.
- Selecione a opção Usar um contentor do Amazon S3 gerido pela Cisco.
- Indique os seguintes detalhes de configuração:
- Selecione uma região: selecione uma região mais próxima da sua localização para uma latência mais baixa.
- 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 eliminados e não podem ser recuperados. Se o ciclo de carregamento for regular, use um período mais curto. Pode alterar a duração da retenção mais tarde.
- Clique em Guardar.
- Clique em Continuar para confirmar as seleções e receber a notificação de ativação.
Na janela Ativação concluída apresentada, são apresentados os valores da chave de acesso e da chave secreta. - Copie os valores da Chave de acesso e da Chave secreta. Se perder estas chaves, tem de as regenerar.
- Clique em OK > Continuar.
- É apresentada uma página de resumo com a configuração e o nome do seu contentor. Pode ativar ou desativar o registo conforme exigido pela sua organização. No entanto, os registos são anulados com base na duração da retenção, independentemente da adição de novos dados.
Opcional: configure as chaves de acesso do utilizador para o contentor do AWS S3 autogerido
- Inicie sessão na AWS Management Console.
- Crie um utilizador seguindo este guia do utilizador: criar um utilizador do IAM.
- Selecione o utilizador criado.
- Selecione o separador Credenciais de segurança.
- Clique em Criar chave de acesso na secção Chaves de acesso.
- Selecione Serviço de terceiros como o Exemplo de utilização.
- Clicar em Seguinte.
- Opcional: adicione uma etiqueta de descrição.
- Clique em Criar chave de acesso.
- Clique em Transferir ficheiro CSV para guardar a chave de acesso e a chave de acesso secreta para utilização posterior.
- Clique em Concluído.
- Selecione o separador Autorizações.
- Clique em Adicionar autorizações na secção Políticas de autorizações.
- Selecione Adicionar autorizações.
- Selecione Anexar políticas diretamente.
- Pesquise e selecione a política AmazonS3FullAccess.
- Clicar em Seguinte.
- Clique em Adicionar autorizações.
Opcional: configure um contentor do Amazon S3 autogerido
Inicie sessão na AWS Management Console.
Aceda ao S3.
Clique em Criar contentor.
Faculte os seguintes detalhes de configuração:
- Nome do contentor: indique um nome para o contentor do Amazon S3.
- Região: selecione uma região.
Clique em Criar.
Opcional: configure uma política de contentor para o contentor do AWS S3 autogerido
- Clique no contentor recém-criado para o abrir.
- Selecione Propriedades > Autorizações.
- Na lista Autorizações, clique em Adicionar política de contentor.
Introduza a política de contentores pré-configurada da seguinte forma:
{ "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 contentor do Amazon S3 que indicou.
- Substitua
Clique em Guardar.
Opcional: validação obrigatória para o contentor do Amazon S3 autogerido
- No painel de controlo do Cisco Umbrella, selecione Admin > Gestão de registos > Amazon S3.
- No campo Nome do contentor, especifique o nome exato do contentor do Amazon S3 e, de seguida, clique em Validar.
- Como parte do processo de validação, é carregado um ficheiro denominado
README_FROM_UMBRELLA.txt
do Cisco Umbrella para o seu contentor do Amazon S3. Pode ter de atualizar o navegador para ver o ficheiro Readme quando for carregado. - Transfira o ficheiro
README_FROM_UMBRELLA.txt
e abra-o com um editor de texto. - Copie e guarde o token exclusivo do Cisco Umbrella do ficheiro.
- Aceda ao painel de controlo do Cisco Umbrella.
- No campo Número do token, especifique o token e clique em Guardar.
- Se for bem-sucedida, recebe uma mensagem de confirmação no painel de controlo a indicar que o contentor foi validado com êxito. Se receber um erro a indicar que não é possível validar o seu contentor, verifique novamente a sintaxe do nome do contentor e reveja a configuração.
Configure um feed no Google SecOps para carregar os registos de auditoria do Cisco Umbrella
- Aceda a Definições do SIEM > Feeds.
- Clique em Adicionar novo.
- No campo Nome do feed, introduza um nome para o feed; por exemplo, Registos de auditoria do Cisco Umbrella.
- Selecione Amazon S3 V2 como o Tipo de origem.
- Selecione Cisco Umbrella Audit como o Tipo de registo.
- Clicar em Seguinte.
Especifique valores para os seguintes parâmetros de entrada:
- URI do S3: o URI do contentor.
s3:/BUCKET_NAME
- Substitua
BUCKET_NAME
pelo nome real do contentor.
- Substitua
- Opções de eliminação de origens: selecione a opção de eliminação de acordo com a sua preferência.
- URI do S3: o URI do contentor.
Clicar em Seguinte.
Reveja a nova configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.
Tabela de mapeamento da UDM
Campo de registo | Mapeamento do UDM | Lógica |
---|---|---|
action_type | security_result.action_details | Mapeado diretamente a partir do campo de registo não processado action_type . |
action_type | security_result.action | Se action_type contiver allow (não é sensível a maiúsculas e minúsculas), defina como ALLOW . Se action_type contiver block (não é sensível a maiúsculas e minúsculas), defina como BLOCK . |
additionalValue | additional.fields{}.key | Definido como Additional Value . |
additionalValue | additional.fields{}.value.string_value | Mapeado diretamente a partir do campo de registo não processado additionalValue . |
blocked_categories | additional.fields{}.key | Definido como blocked_categories . |
blocked_categories | additional.fields{}.value.string_value | Mapeado diretamente a partir do campo de registo não processado blocked_categories . |
categorias | security_result.category_details | Mapeado diretamente a partir do campo de registo não processado categories , após a divisão por vírgula. |
coluna1 | metadata.product_log_id | Mapeado a partir do campo de registo não processado column1 se o registo for um registo de auditoria. |
coluna1 | date_time | Mapeado a partir do campo de registo não processado column1 se o registo for um registo DNS. |
column10 | categorias | Mapeado diretamente a partir do campo de registo não processado column10 . |
column11 | most_granular_identity_type | Mapeado diretamente a partir do campo de registo não processado column11 . |
column12 | identity_types | Mapeado diretamente a partir do campo de registo não processado column12 . |
column13 | blocked_categories | Mapeado diretamente a partir do campo de registo não processado column13 . |
coluna2 | date_time | Mapeado a partir do campo de registo não processado column2 se o registo for um registo de auditoria. |
coluna2 | most_granular_identity | Mapeado a partir do campo de registo não processado column2 se o registo for um registo DNS. |
coluna3 | principal.user.email_addresses | Mapeado a partir do campo de registo não processado column3 se o registo for um registo de auditoria. |
coluna3 | identidades | Mapeado a partir do campo de registo não processado column3 se o registo for um registo DNS. |
column4 | principal.user.userid | Mapeado a partir do campo de registo não processado column4 se o registo for um registo de auditoria. |
column4 | internal_ip | Mapeado a partir do campo de registo não processado column4 se o registo for um registo DNS. |
column5 | security_result.rule_name | Mapeado a partir do campo de registo não processado column5 se o registo for um registo de auditoria. |
column5 | external_ip | Mapeado a partir do campo de registo não processado column5 se o registo for um registo DNS. |
column6 | action_type | Mapeado diretamente a partir do campo de registo não processado column6 . |
column7 | principal.ip | Mapeado a partir do campo de registo não processado column7 se o registo for um registo de auditoria. |
column7 | dns_query_type | Mapeado a partir do campo de registo não processado column7 se o registo for um registo DNS. |
column8 | additionalValue | Mapeado a partir do campo de registo não processado column8 se o registo for um registo de auditoria. |
column8 | dns_response_code | Mapeado a partir do campo de registo não processado column8 se o registo for um registo DNS. |
column9 | domínio | Mapeado diretamente a partir do campo de registo não processado column9 . |
date_time | metadata.event_timestamp.seconds | A data/hora de época extraída do campo date_time . |
dns_query_type | network.dns.questions.type | Extraído do campo dns_query_type através de uma expressão regular, convertido em número inteiro. |
dns_response_code | network.dns.response_code | Mapeado a partir do campo dns_response_code , convertido em número inteiro com base nos valores do código de resposta DNS. |
domínio | network.dns.questions.name | Mapeado diretamente a partir do campo domain . |
external_ip | principal.ip | Mapeado a partir do campo external_ip se não estiver vazio e for diferente de internal_ip . |
identidades | principal.location.name | Mapeado a partir do campo identities se o campo identity_types correspondente for Networks . |
identidades | principal.hostname | Mapeado a partir do campo identities se o campo identity_types correspondente for AD Computers , Roaming Computers ou Anyconnect Roaming Client . |
identidades | principal.asset.hostname | Mapeado a partir do campo identities se o campo identity_types correspondente for AD Computers , Roaming Computers ou Anyconnect Roaming Client . |
identidades | principal.location.city | Mapeado a partir do campo identities se o campo identity_types correspondente for Sites . |
identity_types | additional.fields{}.key | Definido como identities_types . |
identity_types | additional.fields{}.value.string_value | Mapeado diretamente a partir do campo de registo não processado identity_types . |
internal_ip | principal.ip | Mapeado a partir do campo internal_ip se não estiver vazio. |
most_granular_identity | additional.fields{}.key | Definido como most_granular_identity . |
most_granular_identity | additional.fields{}.value.string_value | Mapeado diretamente a partir do campo de registo não processado most_granular_identity . |
most_granular_identity_type | additional.fields{}.key | Definido como most_granular_identity_type . |
most_granular_identity_type | additional.fields{}.value.string_value | Mapeado diretamente a partir do campo de registo não processado most_granular_identity_type . |
metadata.event_type | Definido como NETWORK_DNS se o registo for um registo de DNS. |
|
metadata.event_type | Definido como STATUS_UPDATE se o registo for um registo de auditoria e principal_ip não estiver vazio. |
|
metadata.event_type | Definido como GENERIC_EVENT se o registo for um registo de auditoria e principal_ip estiver vazio. |
|
metadata.vendor_name | Definido como CISCO UMBERLLA . |
|
metadata.product_name | Definido como CISCO UMBERLLA . |
|
metadata.log_type | Definido como AUDITD . |
|
network.application_protocol | Definido como DNS se o registo for um registo de DNS. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.