Coletar registros do Datadog
Visão geral
Esse analisador extrai campos de registros do Datadog, realiza várias mutações e correspondências do Grok para estruturar os dados e mapeia os campos extraídos para o UDM. Ele processa diferentes formatos de registro no campo message, incluindo pares de chave-valor e objetos JSON, e converte campos específicos em rótulos compatíveis com UDM e outros campos.
Antes de começar
Verifique se você atende aos seguintes pré-requisitos:
- Instância do Google SecOps.
- Acesso privilegiado ao Google Cloud IAM.
- Acesso privilegiado ao Cloud Storage.
logs_write_archive
acesso do usuário ao Datadog.
Opção 1: compartilhamento de registros do Datadog pela configuração do Cloud Storage
Configurar a integração do Datadog com a plataforma Google Cloud
- Configure uma integração para o Google Cloud Platform no Datadog. Para mais informações, consulte a configuração da integração do Datadog Google Cloud .
Criar um Google Cloud bucket do Storage
- Faça login no console do Google Cloud .
Acesse a página Buckets do Cloud Storage.
Clique em Criar.
Na página Criar um bucket, insira as informações do seu bucket. Após cada uma das etapas a seguir, clique em Continuar para prosseguir para a próxima etapa:
Na seção Começar, faça o seguinte:
- Insira um nome exclusivo que atenda aos requisitos de nome de bucket (por exemplo, datadog-data).
Para ativar o namespace hierárquico, clique na seta de expansão para abrir a seção Otimizar para cargas de trabalho orientadas a arquivos e com uso intensivo de dados e selecione Ativar namespace hierárquico neste bucket.
Para adicionar um rótulo de bucket, clique na seta de expansão para abrir a seção Rótulos.
Clique em Adicionar rótulo e especifique uma chave e um valor para o rótulo.
Na seção Escolha onde armazenar seus dados, faça o seguinte:
- Selecione um tipo de local.
- Use o menu suspenso do tipo de local para selecionar um Local em que os dados de objetos no bucket serão armazenados permanentemente.
- Se você selecionar o tipo de local birregional, também poderá ativar a replicação turbo usando a caixa de seleção relevante.
- Para configurar a replicação entre buckets, abra a seção Configurar a replicação entre buckets.
Na seção Escolha uma classe de armazenamento para seus dados, selecione uma classe de armazenamento padrão para o bucket ou selecione Classe automática para gerenciamento automático da classe de armazenamento dos dados do bucket.
Na seção Escolha como controlar o acesso a objetos, selecione não para aplicar a prevenção de acesso público e selecione um modelo de controle de acesso para os objetos do bucket.
Na seção Escolha como proteger os dados do objeto, faça o seguinte:
- Selecione qualquer uma das opções em Proteção de dados que você quer definir para o bucket.
- Para escolher como os dados do objeto serão criptografados, clique na seta de expansão identificada como Criptografia de dados e selecione um Método de criptografia de dados.
Clique em Criar.
Criar uma conta de serviço do Google Cloud
- Acesse IAM e administrador > Contas de serviço.
- Crie uma nova conta de serviço.
- Dê um nome descritivo a ele (por exemplo, datadog-user).
- Conceda à conta de serviço o papel Administrador de objetos do Storage no bucket do Cloud Storage criado na etapa anterior.
- Crie uma chave SSH para a conta de serviço.
- Faça o download de um arquivo de chave JSON para a conta de serviço. Mantenha esse arquivo em segurança.
Configurar o Datadog para enviar registros ao Cloud Storage
- Faça login no Datadog usando uma conta privilegiada.
- Acesse Registros > Encaminhamento de registros.
- Clique em + Criar novo arquivo.
- Selecione Google Cloud Storage.
- Insira os parâmetros obrigatórios e clique em Salvar.
Opção 2: compartilhamento de registros do Datadog pela configuração de webhook
Configurar feeds
Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:
- Configurações do SIEM > Feeds
- Central de conteúdo > Pacotes de conteúdo
Configure feeds em "Configurações do SIEM" > "Feeds".
Para configurar um feed, siga estas etapas:
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed (por exemplo, Registros do Datadog).
- Selecione Webhook como o Tipo de origem.
- Selecione Datadog como o Tipo de registro.
- Clique em Próxima.
- Opcional: especifique valores para os seguintes parâmetros de entrada:
- Delimitador de divisão: o delimitador usado para separar linhas de registro, como
\n
.
- Delimitador de divisão: o delimitador usado para separar linhas de registro, como
- Clique em Próxima.
- Revise a configuração do feed na tela Finalizar e clique em Enviar.
- Clique em Gerar chave secreta para autenticar o feed.
- Copie e armazene a chave secreta. Não é possível ver essa chave secreta novamente. Se necessário, você pode gerar uma nova chave secreta, mas isso torna a anterior obsoleta.
- Na guia Detalhes, copie o URL do endpoint do feed no campo Informações do endpoint. É necessário especificar esse URL de endpoint no aplicativo cliente.
- Clique em Concluído.
Configurar feeds na Central de conteúdo
Especifique valores para os seguintes campos:
- Delimitador de divisão: o delimitador usado para separar linhas de registro, como
\n
.
Opções avançadas
- Nome do feed: um valor pré-preenchido que identifica o feed.
- Tipo de origem: método usado para coletar registros no Google SecOps.
- Namespace do recurso: namespace associado ao feed.
Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.
Clique em Gerar chave secreta para autenticar o feed.
Copie e armazene a chave secreta. Não é possível ver essa chave secreta novamente. Se necessário, você pode gerar uma nova chave secreta, mas isso torna a anterior obsoleta.
Na guia Detalhes, copie o URL do endpoint do feed no campo Informações do endpoint. É necessário especificar esse URL de endpoint no aplicativo cliente.
Criar uma chave de API para o feed de webhook
Acesse console doGoogle Cloud > Credenciais.
Clique em Criar credenciais e, em seguida, selecione Chave de API.
Restrinja o acesso da chave de API à API Chronicle.
Especifique o URL do endpoint
- No aplicativo cliente, especifique o URL do endpoint HTTPS fornecido no feed do webhook.
Ative a autenticação especificando a chave de API e a chave secreta como parte do cabeçalho personalizado no seguinte formato:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Recomendação: especifique a chave de API como um cabeçalho em vez de no URL.
Se o cliente de webhook não aceitar cabeçalhos personalizados, especifique a chave de API e a chave secreta usando parâmetros de consulta no seguinte formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Substitua:
ENDPOINT_URL
: o URL do endpoint do feed.API_KEY
: a chave de API para autenticar no Google SecOps.SECRET
: a chave secreta gerada para autenticar o feed.
Configurar o Datadog para enviar registros ao webhook
- Faça login no Datadog usando uma conta privilegiada.
- Acesse Registros > Encaminhamento de registros.
- Selecione Destinos personalizados.
- Clique em + Criar um novo destino.
- Especifique valores para os seguintes parâmetros de entrada:
- Escolha um tipo de destino: selecione HTTP.
- Nomeie o destino: forneça um nome descritivo para o webhook (por exemplo, Webhook do Google SecOps).
- Configure o destino: insira o ENDPOINT_URL, seguido pela API_KEY e pelo SECRET.
- Configure as configurações de autenticação: adicione um cabeçalho geral como o seguinte. Isso não vai deformar a solicitação HTTP e permitirá que o Datadog conclua a criação do webhook.
- Nome do cabeçalho:
Accept
. - Valor do cabeçalho:
application/json
.
- Nome do cabeçalho:
- Clique em Salvar.
Links de referência
Tabela de mapeamento do UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
_id |
read_only_udm.metadata.product_log_id |
Mapeado diretamente do campo _id . |
alert |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo alert e adicionado como um rótulo no objeto security_result . |
attributes.@timestamp |
read_only_udm.metadata.event_timestamp |
O carimbo de data/hora do evento é extraído do campo attributes.@timestamp e convertido em segundos e nanossegundos. |
attributes.@version |
read_only_udm.metadata.product_version |
Mapeado diretamente do campo attributes.@version . |
attributes.level_value |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo attributes.level_value e adicionado como um rótulo no objeto security_result . |
attributes.logger_name |
read_only_udm.principal.application |
Mapeado diretamente do campo attributes.logger_name . |
attributes._trace.baggage._sli_service |
read_only_udm.additional.fields |
Mapeado diretamente do campo attributes._trace.baggage._sli_service e adicionado como um campo extra. |
attributes._trace.baggage.device_id |
read_only_udm.principal.asset.asset_id |
Mapeado diretamente do campo attributes._trace.baggage.device_id , com o prefixo "Device Id:". |
attributes._trace.origin.operation |
read_only_udm.metadata.product_event_type |
Mapeado diretamente do campo attributes._trace.origin.operation . |
caller |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo caller e adicionado como um rótulo no objeto security_result . |
component |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo component e adicionado como um rótulo no objeto security_result . |
context.AlertName |
read_only_udm.security_result.threat_name |
Mapeado diretamente do campo context.AlertName . |
context.BusArch |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.BusArch e adicionado como um rótulo no objeto security_result . |
context.CANDBVersion |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.CANDBVersion e adicionado como um rótulo no objeto security_result . |
context.esn |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.esn e adicionado como um rótulo no objeto security_result . |
context.ftcpVersion |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.ftcpVersion e adicionado como um rótulo no objeto security_result . |
context.ingestMessageId |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.ingestMessageId e adicionado como um rótulo no objeto security_result . |
context.redactedVin |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.redactedVin e adicionado como um rótulo no objeto security_result . |
context.vehicleId |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.vehicleId e adicionado como um rótulo no objeto security_result . |
date |
read_only_udm.metadata.collected_timestamp |
O carimbo de data/hora coletado é extraído do campo date (renomeado como date1 no analisador) e convertido em segundos e nanossegundos. |
host |
read_only_udm.principal.hostname |
Mapeado diretamente do campo host . |
message |
read_only_udm.security_result.about.resource.attribute.labels |
O campo message é analisado, e partes dele são usadas para preencher os campos summary e json_data. A parte restante é tratada como pares de chave-valor e adicionada como rótulos no objeto security_result. |
msg |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo msg e adicionado como um rótulo no objeto security_result . |
service |
read_only_udm.metadata.product_name |
Mapeado diretamente do campo service . |
status |
read_only_udm.security_result.severity |
A gravidade é determinada com base no campo status . "INFO", "DEBUG", "debug" e "info" são mapeados para "LOW", "WARN" é mapeado para "MEDIUM", e outros valores não são mapeados explicitamente no snippet de código fornecido. |
tags |
read_only_udm.additional.fields |
Cada tag na matriz tags é analisada em pares de chave-valor e adicionada como campos extras. |
N/A | read_only_udm.metadata.event_type |
Definido como "STATUS_UPDATE" se o campo host estiver presente e "GENERIC_EVENT" caso contrário. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.