Coletar registros do proxy da Web do Cisco Umbrella
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
- 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 processar os registros do proxy da Web 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, Cisco Umbrella Web Proxy Logs.
- Selecione Amazon S3 como o Tipo de origem.
- Selecione Cisco Umbrella Web Proxy 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 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, mapeieidentities
paraprincipal.user.userid
.
2024-09-05
Melhoria:
tld
foi mapeado parasecurity_result.detection_fields
.
2023-10-17
Melhoria:
verdict
foi mapeado parasecurity_result.action
.
2023-09-14
Melhoria:
- Adição de suporte à v8 para registros de proxy.
dlpstatus
foi mapeado parasecurity_result.detection_fields
.certificateErrors
foi mapeado parasecurity_result.detection_fields
.rulesetID
foi mapeado parasecurity_result.detection_fields
.destinationListID
foi mapeado parasecurity_result.detection_fields
.isolateAction
foi mapeado parasecurity_result.detection_fields
.fileAction
foi mapeado parasecurity_result.detection_fields
.warnstatus
foi mapeado parasecurity_result.detection_fields
.avDetections
foi mapeado parasecurity_result.detection_fields
.puas
foi mapeado parasecurity_result.detection_fields
.ampDisposition
foi mapeado parasecurity_result.detection_fields
.ampMalware
foi mapeado parasecurity_result.detection_fields
.ampScore
foi mapeado parasecurity_result.detection_fields
.responseBodySize
foi mapeado parasecurity_result.detection_fields
.requestSize
foi mapeado paranetwork.sent_bytes
.ruleID
foi mapeado parasecurity_result.rule_id
.fileName
foi mapeado paratarget.file.names
.requestMethod
foi mapeado paranetwork.http.method
.
2023-08-16
Correção de bugs:
- A verificação condicional do campo
identity
foi modificada para oferecer suporte ausername with email
eonly email
. - O mapeamento de
identity
paraprincipal.user.product_object_id
foi removido paraAD 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.