Coletar registros do Datadog
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
- Faça login no console 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.
- Insira um nome exclusivo que atenda aos requisitos de nome de bucket (por exemplo,
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.
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 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.
Clique em Criar.
Criar uma conta de serviço Google Cloud
- Acesse IAM e administrador > Contas de serviço.
- Crie uma nova conta de serviço.
- Dê um nome descritivo (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 para a conta de serviço e selecione JSON como o tipo de chave.
- 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
- 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.
Configurar um feed no Google SecOps para ingerir registros do bucket do Cloud Storage
- 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,
Datadog Logs GCS). - Selecione Google Cloud Storage V2 como o Tipo de origem.
- Selecione Datadog como o Tipo de registro.
- Clique em Receber conta de serviço para obter a conta de serviço exclusiva deste feed.
- Conceda a essa conta de serviço o papel de Leitor de objetos do Storage no bucket do Cloud Storage criado anteriormente.
- Clique em Próxima.
- 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.
- URI do bucket de armazenamento: o URI do bucket do Cloud Storage no formato
- Clique em Próxima.
- 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:
- 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,
Datadog Logs). - 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.
Criar uma chave de API para o feed de webhook
- Acesse console doGoogle Cloud > Credenciais: Acessar 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 de 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 = SECRETRecomendação: especifique a chave de API como um cabeçalho em vez de especificá-la 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=SECRETSubstitua:
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
- 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: 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.
- Nome do cabeçalho:
- Clique em Salvar.
Links de referência
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: true → NETWORK_CONNECTION, true → STATUS_UPDATE |
has_user |
metadata.event_type |
Mapeado: true → USER_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)WARN → MEDIUM |
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.