Coletar registros do Datadog

Compatível com:

Este documento explica como ingerir registros do Datadog no Google Security Operations. O Datadog é uma plataforma de monitoramento e análise baseada na nuvem que coleta métricas, rastreamentos e registros de aplicativos, infraestrutura e serviços de nuvem. É possível compartilhar registros do Datadog com o Google SecOps usando o Cloud Storage ou um webhook.

Antes de começar

Verifique se você atende os seguintes pré-requisitos:

  • Uma instância do Google SecOps
  • Acesso de usuário privilegiado ao Datadog
  • Acesso ao console Google Cloud (para criação de chaves de API ou configuração do Cloud Storage)

Opção 1: compartilhamento de registros do Datadog pela configuração do Cloud Storage

Configurar a integração do Datadog com o Google Cloud

Configure uma integração para Google Cloudno Datadog. Para mais informações, consulte a configuração da integração do Datadog Google Cloud .

Crie um bucket do Cloud Storage

  1. Faça login no console Google Cloud .
  2. Acesse a página Buckets do Cloud Storage.

    Acessar buckets

  3. Clique em Criar.

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

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

      1. Insira um nome exclusivo que atenda aos requisitos de nome de bucket (por exemplo, datadog-data).
      2. 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.

      3. Para adicionar um rótulo de bucket, clique na seta de expansão para abrir a seção Rótulos.

      4. Clique em Adicionar rótulo e especifique uma chave e um valor para o rótulo.

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

      1. Selecione um tipo de local.
      2. Use o menu suspenso do tipo de local para selecionar um Local em que os dados de objetos no bucket serão armazenados permanentemente.
    3. 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.

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

    5. Na seção Escolha como proteger os dados do objeto, faça o seguinte:

      1. Selecione qualquer uma das opções em Proteção de dados que você quer definir para o bucket.
      2. Para escolher como os dados dos objetos serão criptografados, clique na seta de expansão identificada como Criptografia de dados e selecione um Método de criptografia de dados.
  5. Clique em Criar.

Criar uma conta de serviço Google Cloud

  1. Acesse IAM e administrador > Contas de serviço.
  2. Crie uma nova conta de serviço.
  3. Dê um nome descritivo (por exemplo, datadog-user).
  4. Conceda à conta de serviço o papel Administrador de objetos do Storage no bucket do Cloud Storage criado na etapa anterior.
  5. Crie uma chave para a conta de serviço e selecione JSON como o tipo de chave.
  6. Faça o download do arquivo de chave JSON da conta de serviço. Mantenha esse arquivo seguro.

Configurar o Datadog para enviar registros ao Cloud Storage

  1. Faça login no Datadog usando uma conta privilegiada.
  2. Acesse Registros > Encaminhamento de registros.
  3. Clique em + Criar novo arquivo.
  4. Selecione Google Cloud Storage.
  5. Insira os parâmetros obrigatórios e clique em Salvar.

Configurar um feed no Google SecOps para ingerir registros do bucket do Cloud Storage

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed (por exemplo, Datadog Logs GCS).
  5. Selecione Google Cloud Storage V2 como o Tipo de origem.
  6. Selecione Datadog como o Tipo de registro.
  7. Clique em Receber conta de serviço para obter a conta de serviço exclusiva deste feed.
  8. Conceda a essa conta de serviço o papel de Leitor de objetos do Storage no bucket do Cloud Storage criado anteriormente.
  9. Clique em Próxima.
  10. Especifique valores para os seguintes parâmetros de entrada:
    • URI do bucket de armazenamento: o URI do bucket do Cloud Storage no formato gs://datadog-data.
    • Opção de exclusão da fonte: selecione a opção de exclusão de acordo com sua preferência.
    • Idade máxima do arquivo: inclui arquivos modificados no último número de dias. O padrão é de 180 dias.
    • Namespace do recurso: o namespace do recurso.
    • Rótulos de ingestão: o rótulo aplicado aos eventos deste feed.
  11. Clique em Próxima.
  12. Revise a configuração do feed na tela Finalizar e clique em Enviar.

Opção 2: compartilhamento de registros do Datadog pela configuração de webhook

Configurar feeds

Para configurar um feed, siga estas etapas:

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed (por exemplo, Datadog Logs).
  5. Selecione Webhook como o Tipo de origem.
  6. Selecione Datadog como o Tipo de registro.
  7. Clique em Próxima.
  8. Opcional: especifique valores para os seguintes parâmetros de entrada:
    • Delimitador de divisão: o delimitador usado para separar linhas de registro, como \n.
  9. Clique em Próxima.
  10. Revise a configuração do feed na tela Finalizar e clique em Enviar.
  11. Clique em Gerar chave secreta para autenticar o feed.
  12. 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.
  13. 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.
  14. Clique em Concluído.

Criar uma chave de API para o feed de webhook

  1. Acesse console doGoogle Cloud > Credenciais: Acessar credenciais.
  2. Clique em Criar credenciais e, em seguida, selecione Chave de API.
  3. Restrinja o acesso da chave de API à API Chronicle.

Especifique o URL do endpoint

  1. No aplicativo cliente, especifique o URL do endpoint HTTPS fornecido no feed de webhook.
  2. 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 especificá-la no URL.

  3. 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 Security Operations.
    • SECRET: a chave secreta gerada para autenticar o feed.

Configurar o Datadog para enviar registros ao webhook

  1. Faça login no Datadog usando uma conta privilegiada.
  2. Acesse Registros > Encaminhamento de registros.
  3. Selecione Destinos personalizados.
  4. Clique em + Criar um novo destino.
  5. Especifique valores para os seguintes parâmetros de entrada:
    • Escolha um tipo de destino: selecione HTTP.
    • Nomeie o destino: dê um nome descritivo ao webhook (por exemplo, Google SecOps Webhook).
    • Configure o destino: cole o ENDPOINT_URL do feed. Escolha uma das seguintes opções de autenticação (não ambas):
      • Opção A (recomendada): deixe o URL sem credenciais e transmita API_KEY e SECRET como cabeçalhos personalizados (configurados na próxima etapa).
      • Opção B: anexe as credenciais ao URL como parâmetros de consulta, no formato ENDPOINT_URL?key=API_KEY&secret=SECRET. Use isso apenas se o cliente não puder enviar cabeçalhos personalizados.
    • Configure as configurações de autenticação: o Datadog exige pelo menos um cabeçalho de autenticação para salvar o destino. Adicione o cabeçalho a seguir. O endpoint do webhook ignora esse campo, então ele não afeta a solicitação.
      • Nome do cabeçalho: Authorization.
      • Valor do cabeçalho: application/json.
  6. Clique em Salvar.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
additional_field additional.fields Mesclado
anonymous_label additional.fields Mesclado
as_domain_label additional.fields Mesclado
as_name_label additional.fields Mesclado
as_number_label additional.fields Mesclado
as_type_label additional.fields Mesclado
auth_method_label additional.fields Mesclado
category_label additional.fields Mesclado
emitted_source_label additional.fields Mesclado
event_type_label additional.fields Mesclado
geo_continent_code_label additional.fields Mesclado
geo_continent_label additional.fields Mesclado
geo_continent_name_label additional.fields Mesclado
geo_country_code_label additional.fields Mesclado
geo_latitude_label additional.fields Mesclado
geo_longitude_label additional.fields Mesclado
geo_subdivision_code_label additional.fields Mesclado
geo_subdivision_name_label additional.fields Mesclado
geo_timezone_label additional.fields Mesclado
http_level_label additional.fields Mesclado
indicator_label additional.fields Mesclado
indicators_matched_label additional.fields Mesclado
infrastructure_label additional.fields Mesclado
intention_label additional.fields Mesclado
iso_code_label additional.fields Mesclado
new_template_variable_name_label additional.fields Mesclado
new_template_variable_preset_name_label additional.fields Mesclado
new_template_variable_value_label additional.fields Mesclado
new_widget_definition_background_color_label additional.fields Mesclado
new_widget_definition_layout_type_label additional.fields Mesclado
new_widget_definition_show_title_label additional.fields Mesclado
new_widget_definition_title_label additional.fields Mesclado
new_widget_definition_type_label additional.fields Mesclado
new_widget_id_label additional.fields Mesclado
new_widget_layout_height_label additional.fields Mesclado
new_widget_layout_width_label additional.fields Mesclado
new_widget_layout_x_label additional.fields Mesclado
new_widget_layout_y_label additional.fields Mesclado
record_attributes_asset_id_label additional.fields Mesclado
record_attributes_asset_name_label additional.fields Mesclado
record_attributes_asset_new_value_dashboard_definition_author_handle_label additional.fields Mesclado
record_attributes_asset_new_value_dashboard_definition_author_name_label additional.fields Mesclado
record_attributes_asset_new_value_dashboard_definition_description_label additional.fields Mesclado
record_attributes_asset_new_value_dashboard_definition_id_label additional.fields Mesclado
record_attributes_asset_new_value_dashboard_definition_reflow_type_label additional.fields Mesclado
record_attributes_asset_new_value_dashboard_definition_title_label additional.fields Mesclado
record_attributes_asset_new_value_dashboard_definition_url_label additional.fields Mesclado
record_attributes_asset_prev_value_dashboard_definition_author_handle_label additional.fields Mesclado
record_attributes_asset_prev_value_dashboard_definition_author_name_label additional.fields Mesclado
record_attributes_asset_prev_value_dashboard_definition_description_label additional.fields Mesclado
record_attributes_asset_prev_value_dashboard_definition_id_label additional.fields Mesclado
record_attributes_asset_prev_value_dashboard_definition_reflow_type_label additional.fields Mesclado
record_attributes_asset_prev_value_dashboard_definition_title_label additional.fields Mesclado
record_attributes_asset_prev_value_dashboard_definition_url_label additional.fields Mesclado
record_attributes_asset_type_label additional.fields Mesclado
record_attributes_contextMap_cfRay_label additional.fields Mesclado
record_attributes_contextMap_tradingAccountId_label additional.fields Mesclado
record_attributes_evt_name_label additional.fields Mesclado
record_attributes_network_client_geoip_as_number_label additional.fields Mesclado
record_attributes_network_client_geoip_as_type_label additional.fields Mesclado
record_attributes_network_client_geoip_location_latitude_label additional.fields Mesclado
record_attributes_network_client_geoip_location_longitude_label additional.fields Mesclado
record_attributes_network_client_geoip_subdivision_iso_code_label additional.fields Mesclado
record_attributes_network_client_geoip_subdivision_name_label additional.fields Mesclado
record_attributes_network_client_geoip_timezone_label additional.fields Mesclado
record_trace_id_label additional.fields Mesclado
request_id_label additional.fields Mesclado
risk_label additional.fields Mesclado
service_label additional.fields Mesclado
source_name_label additional.fields Mesclado
source_type_label additional.fields Mesclado
source_url_label additional.fields Mesclado
span_id_label additional.fields Mesclado
symbol_label additional.fields Mesclado
tag_label additional.fields Mesclado
template_variable_name_label additional.fields Mesclado
template_variable_preset_name_label additional.fields Mesclado
template_variable_value_label additional.fields Mesclado
timezone_label additional.fields Mesclado
tunnels_operator_label additional.fields Mesclado
tunnels_type_label additional.fields Mesclado
type_label additional.fields Mesclado
type_label1 additional.fields Mesclado
url_details_host_label additional.fields Mesclado
url_details_path_label additional.fields Mesclado
user_created_timestamp_label additional.fields Mesclado
widget_definition_background_color_label additional.fields Mesclado
widget_definition_layout_type_label additional.fields Mesclado
widget_definition_show_title_label additional.fields Mesclado
widget_definition_title_label additional.fields Mesclado
widget_definition_type_label additional.fields Mesclado
widget_id_label additional.fields Mesclado
widget_layout_height_label additional.fields Mesclado
widget_layout_width_label additional.fields Mesclado
widget_layout_x_label additional.fields Mesclado
widget_layout_y_label additional.fields Mesclado
eventMessage metadata.description Mapeado diretamente
date1 metadata.event_timestamp Analisado como ISO8601
record.date1 metadata.event_timestamp Analisado como ISO8601
event_type metadata.event_type Mapeado diretamente
has_principal metadata.event_type Mapeado: trueNETWORK_CONNECTION, trueSTATUS_UPDATE
has_user metadata.event_type Mapeado: trueUSER_UNCATEGORIZED
attributes._trace.origin.operation metadata.product_event_type Mapeado diretamente
eventType metadata.product_event_type Mapeado diretamente
record_attributes_contextMap_eventType metadata.product_event_type Mapeado diretamente
source metadata.product_event_type Mapeado diretamente
_id metadata.product_log_id Mapeado diretamente
record_attributes_thread_id metadata.product_log_id Mapeado diretamente
threadID metadata.product_log_id Mapeado diretamente
service metadata.product_name Mapeado diretamente
attributes.@version metadata.product_version Mapeado diretamente
attributes.http.method network.http.method Mapeado diretamente
agnt network.http.parsed_user_agent Mapeado diretamente
record_attributes_contextMap_userAgent network.http.parsed_user_agent Mapeado diretamente
attributes.http.status_code network.http.response_code Renomeado/mapeado
agnt network.http.user_agent Mapeado diretamente
attributes.http.useragent network.http.user_agent Mapeado diretamente
record_attributes_contextMap_userAgent network.http.user_agent Mapeado diretamente
attributes.logger_name principal.application Mapeado diretamente
service principal.application Mapeado diretamente
attributes._trace.baggage.device_id principal.asset.asset_id Mapeado diretamente
attributes.metadata.host_metadata.hostname principal.asset.hostname Mapeado diretamente
attributes.usr.id principal.asset.hostname Mapeado diretamente
attributes.network.client.geoip.ipAddress principal.asset.ip Mesclado
attributes.network.client.ip principal.asset.ip Mesclado
ip1 principal.asset.ip Mesclado
ipAddress principal.asset.ip Mapeado diretamente
principal_ip_address principal.asset.ip Mesclado
record_attributes_network_client_ip principal.asset.ip Mesclado
org principal.group.group_display_name Mapeado diretamente
attributes.org.uuid principal.group.product_object_id Mapeado diretamente
attributes.metadata.host_metadata.hostname principal.hostname Mapeado diretamente
attributes.usr.id principal.hostname Mapeado diretamente
host principal.hostname Mapeado diretamente
record_host principal.hostname Mapeado diretamente
attributes.network.client.geoip.ipAddress principal.ip Mesclado
attributes.network.client.ip principal.ip Mesclado
ip1 principal.ip Mesclado
ipAddress principal.ip Mapeado diretamente
principal_ip_address principal.ip Mesclado
record_attributes_network_client_ip principal.ip Mesclado
record_attributes_http_url_details_host_label principal.labels Mesclado
record_attributes_http_url_details_path_label principal.labels Mesclado
record_attributes_http_useragent_label principal.labels Mesclado
record_attributes_network_client_geoip_as_domain_label principal.labels Mesclado
record_attributes_network_client_geoip_as_route_label principal.labels Mesclado
record_attributes_network_client_geoip_city_name_label principal.labels Mesclado
record_attributes_network_client_geoip_continent_code_label principal.labels Mesclado
record_attributes_network_client_geoip_continent_name_label principal.labels Mesclado
record_attributes_network_client_geoip_country_iso_code_label principal.labels Mesclado
record_attributes_network_client_geoip_country_name_label principal.labels Mesclado
record_attributes_usr_id_label principal.labels Mesclado
attributes.network.client.geoip.city.name principal.location.city Mapeado diretamente
attributes.network.client.geoip.country.name principal.location.country_or_region Mapeado diretamente
port principal.port Renomeado/mapeado
client_as_route_label principal.resource.attribute.labels Mesclado
client_type_label principal.resource.attribute.labels Mesclado
org_name_label principal.resource.attribute.labels Mesclado
record_attributes_usr_uuid_label principal.user.attribute.labels Mesclado
roles principal.user.attribute.roles Mesclado
attributes.usr.email principal.user.email_addresses Mesclado
email_id principal.user.email_addresses Mesclado
record_attributes_usr_email principal.user.email_addresses Mesclado
attributes.evt.actor.type principal.user.role_name Mapeado diretamente
attributes.metadata.user_uuid principal.user.userid Mapeado diretamente
attributes.usr.uuid principal.user.userid Mapeado diretamente
record_attributes_contextMap_user principal.user.userid Mapeado diretamente
user principal.user.userid Mapeado diretamente
BusArch_label security_result.about.resource.attribute.labels Mesclado
CANDBVersion_label security_result.about.resource.attribute.labels Mesclado
alert_label security_result.about.resource.attribute.labels Mesclado
caller_label security_result.about.resource.attribute.labels Mesclado
component_label security_result.about.resource.attribute.labels Mesclado
esn_label security_result.about.resource.attribute.labels Mesclado
ftcpVersion_label security_result.about.resource.attribute.labels Mesclado
ingestMessageId_label security_result.about.resource.attribute.labels Mesclado
label security_result.about.resource.attribute.labels Mesclado
level_label security_result.about.resource.attribute.labels Mesclado
msg_label security_result.about.resource.attribute.labels Mesclado
query_label security_result.about.resource.attribute.labels Mesclado
redactedVin_label security_result.about.resource.attribute.labels Mesclado
updated_query_label security_result.about.resource.attribute.labels Mesclado
vehicleId_label security_result.about.resource.attribute.labels Mesclado
category1 security_result.category_details Mesclado
_id_label security_result.detection_fields Mesclado
action_label security_result.detection_fields Mesclado
org_uuid_label security_result.detection_fields Mesclado
record_attributes_http_method_label security_result.detection_fields Mesclado
record_message_label security_result.detection_fields Mesclado
record_source_label security_result.detection_fields Mesclado
record_status_label security_result.detection_fields Mesclado
status security_result.severity Mapeado: "INFO", "DEBUG", "debug", "info"LOW, (?i)WARNMEDIUM
status security_result.severity_details Mapeado diretamente
context.AlertName security_result.threat_name Mapeado diretamente
src_ip_address src.ip Mesclado
record_attributes_contextMap_dd_service target.application Mapeado diretamente
target_ip_address target.asset.ip Mapeado: ^(?:[0-9]{1,3}[.]){3}[0-9]{1,3}$target_ip_address
target_ip_address target.ip Mapeado: ^(?:[0-9]{1,3}[.]){3}[0-9]{1,3}$target_ip_address
record_attributes_contextMap_dd_version target.platform_version Mapeado diretamente
logger_fqcn_label target.resource.attribute.labels Mesclado
logger_label target.resource.attribute.labels Mesclado
modified_fields_label target.resource.attribute.labels Mesclado
asset_name target.resource.name Mapeado diretamente
asset_id target.resource.product_object_id Mapeado diretamente
asset_type target.resource.type Mapeado diretamente
record_attributes_contextMap_dd_env target.resource.type Mapeado diretamente
record_attributes_contextMap_userId target.user.userid Mapeado diretamente
record_attributes_user target.user.userid Mapeado diretamente
N/A metadata.event_type Constante: NETWORK_CONNECTION
N/A network.http.parsed_user_agent Constante: parseduseragent
N/A security_result.severity Constante: LOW

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.