Coletar registros de proxy da Web do Cisco Umbrella
Este documento explica como coletar registros do proxy da Web do Cisco Umbrella em 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 arquivos incluídos (umbrella_proxy_udm.include
e umbrella_handle_identities.include
) para mapear os campos extraídos para a 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 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.
- Clique em Salvar.
- 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. - Copie os valores de Chave de acesso e Chave secreta. Se você perder essas chaves, será necessário gerá-las novamente.
- Clique em Entendi > Continuar.
- 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
- 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 posterior.
- 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: configurar um bucket do Amazon S3 autogerenciado
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: informe 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 do AWS S3 autogerenciado
- Clique no bucket recém-criado para abrir.
- Selecione Propriedades > Permissões.
- Na lista Permissões, clique em Adicionar política de bucket.
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.
- Substitua
Clique em Salvar.
Opcional: verificação obrigatória para bucket do Amazon S3 autogerenciado
- No painel Cisco Umbrella, selecione Admin > Log management > 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 seu bucket, confira novamente a sintaxe do nome dele e revise a configuração.
Configurar um feed no Google SecOps para ingerir 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 V2 como o Tipo de origem.
- Selecione Proxy da Web do Cisco Umbrella como o Tipo de registro.
- Clique em Próxima.
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.
- Substitua
- Opções de exclusão de fontes: selecione a opção de exclusão de acordo com sua preferência.
- URI do S3: o URI do bucket.
Clique em Próxima.
Revise a nova configuração do feed na tela Finalizar e clique em Enviar.
Tabela de mapeamento da 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 no código como NETWORK_HTTP . Fixado no código como Cisco . Fixado no código como Umbrella . Fixado no código como UMBRELLA_WEBPROXY . Derivado do esquema do campo "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. Além disso, são analisados 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. Normalmente Traffic allowed ou Traffic blocked . Se verdict não for allowed ou blocked e statusCode estiver presente, o resumo será Traffic %{statusCode} . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.