Recolha registos do Datadog

Compatível com:

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

Crie um Google Cloud contentor de armazenamento

  1. Inicie sessão na Google Cloud consola.
  2. Aceda à página Contentores do Cloud Storage.

    Aceda aos contentores

  3. Clique em Criar.

  4. 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:

    1. Na secção Começar, faça o seguinte:

      1. Introduza um nome exclusivo que cumpra os requisitos do nome do contentor (por exemplo, datadog-data).
      2. 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.

      3. Para adicionar uma etiqueta de grupo, clique na seta de expansão para expandir a secção Etiquetas.

      4. Clique em Adicionar etiqueta e especifique uma chave e um valor para a etiqueta.

    2. Na secção Escolha onde quer armazenar os seus dados, faça o seguinte:

      1. Selecione um Tipo de localização.
      2. 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.
      3. Para configurar a replicação entre contentores, expanda a secção Configurar replicação entre contentores.
    3. 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.

    4. 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.

    5. Na secção Escolha como proteger os dados de objetos, faça o seguinte:

      1. Selecione qualquer uma das opções em Proteção de dados que quer definir para o seu contentor.
      2. 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.
  5. Clique em Criar.

Crie uma conta de serviço do Google Cloud

  1. Aceda a IAM e administrador > Contas de serviço.
  2. Crie uma nova conta de serviço.
  3. Atribua-lhe um nome descritivo (por exemplo, datadog-user).
  4. Conceda à conta de serviço a função de administrador de objetos de armazenamento no contentor do Cloud Storage que criou no passo anterior.
  5. Crie uma chave SSH para a conta de serviço.
  6. 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

  1. Inicie sessão no Datadog com uma conta privilegiada.
  2. Aceda a Registos > Encaminhamento de registos.
  3. Clique em + Criar novo arquivo.
  4. Selecione Google Cloud Storage.
  5. 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:

  1. Aceda a Definições do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na página seguinte, clique em Configurar um único feed.
  4. No campo Nome do feed, introduza um nome para o feed (por exemplo, Registos do Datadog).
  5. Selecione Webhook como o Tipo de origem.
  6. Selecione Datadog como o Tipo de registo.
  7. Clicar em Seguinte.
  8. Opcional: especifique valores para os seguintes parâmetros de entrada:
    • Delimitador de divisão: o delimitador usado para separar linhas de registo, como \n.
  9. Clicar em Seguinte.
  10. Reveja a configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.
  11. Clique em Gerar chave secreta para gerar uma chave secreta para autenticar este feed.
  12. 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.
  13. 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.
  14. Clique em Concluído.

Crie uma chave da API para o feed de webhook

  1. Aceda à Google Cloud consola > Credenciais.

    Aceder a Credenciais

  2. Clique em Criar credenciais e, de seguida, selecione Chave de API.

  3. Restrinja o acesso da chave da API à API Chronicle.

Especifique o URL do ponto final

  1. Na aplicação cliente, especifique o URL do ponto final HTTPS fornecido no feed do webhook.
  2. 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.

  3. 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

  1. Inicie sessão no Datadog com uma conta privilegiada.
  2. Aceda a Registos > Encaminhamento de registos.
  3. Selecione Destinos personalizados.
  4. Clique em + Criar um novo destino.
  5. Especifique valores para os seguintes parâmetros de entrada:
    1. Escolha um tipo de destino: selecione HTTP.
    2. Atribua um nome ao destino: indique um nome descritivo para o webhook (por exemplo, Webhook do Google SecOps).
    3. Configure o destino: introduza o ENDPOINT_URL, seguido da API_KEY e do SECRET.
    4. 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.
    5. Clique em Guardar.

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.