Recolha registos do Datadog
Vista geral
Este analisador extrai campos dos registos do Datadog, executa várias mutações e correspondência Grok para estruturar os dados e mapeia os campos extraídos para o UDM. Processa diferentes formatos de registo no campo message, incluindo pares de chave-valor e objetos JSON, e converte campos específicos em etiquetas compatíveis com a UDM e campos adicionais.
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google SecOps.
- Acesso privilegiado ao Google Cloud IAM.
- Acesso privilegiado ao Cloud Storage.
logs_write_archive
acesso dos utilizadores ao Datadog.
Opção 1: partilha de registos do Datadog através da configuração do Cloud Storage
Configure a integração do Datadog com a Google Cloud plataforma
- Configure uma integração para a Google Cloud Platform no Datadog. Para mais informações, consulte a configuração da integração do Datadog Google Cloud .
Crie um Google Cloud contentor de armazenamento
- Inicie sessão na Google Cloud consola.
Aceda à página Contentores do Cloud Storage.
Clique em Criar.
Na página Criar um depósito, introduza as informações do depósito. Após cada um dos passos seguintes, clique em Continuar para avançar para o passo seguinte:
Na secção Começar, faça o seguinte:
- Introduza um nome exclusivo que cumpra os requisitos do nome do contentor (por exemplo, datadog-data).
Para ativar o espaço de nomes hierárquico, clique na seta de expansão para expandir a secção Otimizar para cargas de trabalho orientadas para ficheiros e com grande volume de dados e, de seguida, selecione Ativar espaço de nomes hierárquico neste contentor.
Para adicionar uma etiqueta de grupo, clique na seta de expansão para expandir a secção Etiquetas.
Clique em Adicionar etiqueta e especifique uma chave e um valor para a etiqueta.
Na secção Escolha onde quer armazenar os seus dados, faça o seguinte:
- Selecione um Tipo de localização.
- Use o menu pendente Tipo de localização para selecionar uma Localização onde os dados de objetos no seu contentor vão ser armazenados permanentemente.
- Se selecionar o tipo de localização dupla região, também pode optar por ativar a replicação turbo através da caixa de verificação relevante.
- Para configurar a replicação entre contentores, expanda a secção Configurar replicação entre contentores.
Na secção Escolha uma classe de armazenamento para os seus dados, selecione uma classe de armazenamento predefinida para o contentor ou selecione Autoclass para a gestão automática da classe de armazenamento dos dados do seu contentor.
Na secçã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 controlo de acesso para os objetos do seu contentor.
Na secção Escolha como proteger os dados de objetos, faça o seguinte:
- Selecione qualquer uma das opções em Proteção de dados que quer definir para o seu contentor.
- Para escolher como os dados de objetos vão ser encriptados, clique na seta de expansão com a etiqueta Encriptação de dados e selecione um Método de encriptação de dados.
Clique em Criar.
Crie uma conta de serviço do Google Cloud
- Aceda a IAM e administrador > Contas de serviço.
- Crie uma nova conta de serviço.
- Atribua-lhe um nome descritivo (por exemplo, datadog-user).
- Conceda à conta de serviço a função de administrador de objetos de armazenamento no contentor do Cloud Storage que criou no passo anterior.
- Crie uma chave SSH para a conta de serviço.
- Transfira um ficheiro de chave JSON para a conta de serviço. Mantenha este ficheiro seguro.
Configure o Datadog para enviar registos para o Cloud Storage
- Inicie sessão no Datadog com uma conta privilegiada.
- Aceda a Registos > Encaminhamento de registos.
- Clique em + Criar novo arquivo.
- Selecione Google Cloud Storage.
- Introduza os parâmetros necessários e clique em Guardar.
Opção 2: partilha de registos do Datadog através da configuração de webhook
Configure feeds
Para configurar um feed, siga estes passos:
- Aceda a Definições do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na página seguinte, clique em Configurar um único feed.
- No campo Nome do feed, introduza um nome para o feed (por exemplo, Registos do Datadog).
- Selecione Webhook como o Tipo de origem.
- Selecione Datadog como o Tipo de registo.
- Clicar em Seguinte.
- Opcional: especifique valores para os seguintes parâmetros de entrada:
- Delimitador de divisão: o delimitador usado para separar linhas de registo, como
\n
.
- Delimitador de divisão: o delimitador usado para separar linhas de registo, como
- Clicar em Seguinte.
- Reveja a configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.
- Clique em Gerar chave secreta para gerar uma chave secreta para autenticar este feed.
- Copie e armazene a chave secreta. Não pode ver esta chave secreta novamente. Se necessário, pode regenerar uma nova chave secreta, mas esta ação torna a chave secreta anterior obsoleta.
- No separador Detalhes, copie o URL do ponto final do feed do campo Informações do ponto final. Tem de especificar este URL do ponto final na sua aplicação cliente.
- Clique em Concluído.
Crie uma chave da API para o feed de webhook
Aceda à Google Cloud consola > Credenciais.
Clique em Criar credenciais e, de seguida, selecione Chave de API.
Restrinja o acesso da chave da API à API Chronicle.
Especifique o URL do ponto final
- Na aplicação cliente, especifique o URL do ponto final HTTPS fornecido no feed do webhook.
Ative a autenticação especificando a chave da 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 da API como um cabeçalho em vez de a especificar no URL.
Se o seu cliente de webhook não suportar cabeçalhos personalizados, pode especificar a chave da API e a chave secreta através de parâmetros de consulta no seguinte formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Substitua o seguinte:
ENDPOINT_URL
: o URL do ponto final do feed.API_KEY
: a chave da API para autenticar no Google SecOps.SECRET
: a chave secreta que gerou para autenticar o feed.
Configure o Datadog para enviar registos para o webhook
- Inicie sessão no Datadog com uma conta privilegiada.
- Aceda a Registos > Encaminhamento de registos.
- 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.
- Atribua um nome ao destino: indique um nome descritivo para o webhook (por exemplo, Webhook do Google SecOps).
- Configure o destino: introduza o ENDPOINT_URL, seguido da API_KEY e do SECRET.
- Configure as definições de autenticação: adicione um cabeçalho geral, como o seguinte. Isto não vai deformar o pedido HTTP e vai 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 Guardar.
Links de referência
Tabela de mapeamento da UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
_id |
read_only_udm.metadata.product_log_id |
Mapeado diretamente a partir do campo _id . |
alert |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo alert e adicionado como uma etiqueta no objeto security_result . |
attributes.@timestamp |
read_only_udm.metadata.event_timestamp |
A data/hora do evento é extraída do campo attributes.@timestamp e convertida em segundos e nanossegundos. |
attributes.@version |
read_only_udm.metadata.product_version |
Mapeado diretamente a partir 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 uma etiqueta no objeto security_result . |
attributes.logger_name |
read_only_udm.principal.application |
Mapeado diretamente a partir do campo attributes.logger_name . |
attributes._trace.baggage._sli_service |
read_only_udm.additional.fields |
Mapeado diretamente a partir do campo attributes._trace.baggage._sli_service e adicionado como um campo adicional. |
attributes._trace.baggage.device_id |
read_only_udm.principal.asset.asset_id |
Mapeado diretamente a partir do campo attributes._trace.baggage.device_id , com o prefixo "ID do dispositivo:". |
attributes._trace.origin.operation |
read_only_udm.metadata.product_event_type |
Mapeado diretamente a partir do campo attributes._trace.origin.operation . |
caller |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo caller e adicionado como uma etiqueta no objeto security_result . |
component |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo component e adicionado como uma etiqueta no objeto security_result . |
context.AlertName |
read_only_udm.security_result.threat_name |
Mapeado diretamente a partir do campo context.AlertName . |
context.BusArch |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.BusArch e adicionado como uma etiqueta no objeto security_result . |
context.CANDBVersion |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.CANDBVersion e adicionado como uma etiqueta no objeto security_result . |
context.esn |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.esn e adicionado como uma etiqueta no objeto security_result . |
context.ftcpVersion |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.ftcpVersion e adicionado como uma etiqueta no objeto security_result . |
context.ingestMessageId |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.ingestMessageId e adicionado como uma etiqueta no objeto security_result . |
context.redactedVin |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.redactedVin e adicionado como uma etiqueta no objeto security_result . |
context.vehicleId |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo context.vehicleId e adicionado como uma etiqueta no objeto security_result . |
date |
read_only_udm.metadata.collected_timestamp |
A data/hora recolhida é extraída do campo date (com o nome alterado para date1 no analisador) e convertida em segundos e nanossegundos. |
host |
read_only_udm.principal.hostname |
Mapeado diretamente a partir do campo host . |
message |
read_only_udm.security_result.about.resource.attribute.labels |
O campo message é analisado e partes do mesmo são usadas para preencher os campos summary e json_data. A parte restante é tratada como pares de chave-valor e adicionada como etiquetas no objeto security_result. |
msg |
read_only_udm.security_result.about.resource.attribute.labels |
Extraído do campo msg e adicionado como uma etiqueta no objeto security_result . |
service |
read_only_udm.metadata.product_name |
Mapeado diretamente a partir 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 fragmento de código fornecido. |
tags |
read_only_udm.additional.fields |
Cada etiqueta na matriz tags é analisada em pares de chave-valor e adicionada como campos adicionais. |
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 da Google SecOps.