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_NAMEpelo 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.txte 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_NAMEpelo 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.