Recopila registros de Datadog
En este documento, se explica cómo transferir registros de Datadog a Google Security Operations. Datadog es una plataforma de supervisión y análisis basada en la nube que recopila métricas, registros y seguimientos de aplicaciones, infraestructura y servicios en la nube. Puedes compartir los registros de Datadog con Google SecOps a través de Cloud Storage o un webhook.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Una instancia de Google SecOps
- Acceso de usuario con privilegios a Datadog
- Acceso a la consola de Google Cloud (para la creación de claves de API o la configuración de Cloud Storage)
Opción 1: Compartir registros de Datadog a través de la configuración de Cloud Storage
Configura la integración de Datadog con Google Cloud
Configura una integración para Google Clouden Datadog. Para obtener más información, consulta la configuración de la integración de Datadog Google Cloud .
Crea un bucket de Cloud Storage
- Accede a la consola de Google Cloud .
Ve a la página Buckets de Cloud Storage.
Haz clic en Crear.
En la página Crear un bucket, ingresa la información de tu bucket. Después de cada uno de los siguientes pasos, haz clic en Continuar para avanzar al siguiente paso:
En la sección Primeros pasos, haz lo siguiente:
- Ingresa un nombre único que cumpla con los requisitos de nombres de bucket (por ejemplo,
datadog-data). Para habilitar el espacio de nombres jerárquico, haz clic en la flecha de expansión para expandir la sección Optimizar las cargas de trabajo orientadas a archivos y con uso intensivo de datos y, luego, selecciona Habilitar el espacio de nombres jerárquico en este bucket.
Para agregar una etiqueta de bucket, haz clic en la flecha de expansión para expandir la sección Etiquetas.
Haz clic en Agregar etiqueta y especifica una clave y un valor para tu etiqueta.
- Ingresa un nombre único que cumpla con los requisitos de nombres de bucket (por ejemplo,
En la sección Eligir dónde almacenar tus datos, haz lo siguiente:
- Selecciona un tipo de ubicación
- Usa el menú desplegable del tipo de ubicación para seleccionar una Ubicación en la que se almacenarán de forma permanente los datos de objetos de tu bucket.
En la sección Elige una clase de almacenamiento para tus datos, selecciona una clase de almacenamiento predeterminada para el bucket o selecciona Autoclass para la administración automática de clases de almacenamiento de los datos de tu bucket.
En la sección Elige cómo controlar el acceso a los objetos, selecciona no para aplicar la prevención del acceso público y selecciona un modelo de control de acceso para los objetos del bucket.
En la sección Elige cómo proteger los datos de objetos, haz lo siguiente:
- Selecciona cualquiera de las opciones de Protección de datos que desees configurar para tu bucket.
- Para elegir cómo se encriptarán los datos de tus objetos, haz clic en la flecha desplegable etiquetada como Encriptación de datos y selecciona un método de encriptación de datos.
Haz clic en Crear.
Crea una Google Cloud cuenta de servicio
- Ve a IAM y administración > Cuentas de servicio.
- Cree una cuenta de servicio nueva
- Asigna un nombre descriptivo (por ejemplo,
datadog-user). - Otorga a la cuenta de servicio el rol de administrador de objetos de almacenamiento en el bucket de Cloud Storage que creaste en el paso anterior.
- Crea una clave para la cuenta de servicio y selecciona JSON como el tipo de clave.
- Descarga el archivo de claves JSON para la cuenta de servicio. Mantén este archivo seguro.
Configura Datadog para enviar registros a Cloud Storage
- Accede a Datadog con una cuenta con privilegios.
- Ve a Registros > Reenvío de registros.
- Haz clic en + Crear nuevo archivo.
- Selecciona Google Cloud Storage.
- Ingresa los parámetros obligatorios y haz clic en Guardar.
Configura un feed en Google SecOps para transferir registros desde el bucket de Cloud Storage
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo,
Datadog Logs GCS). - Selecciona Google Cloud Storage V2 como el Tipo de fuente.
- Selecciona Datadog como el Tipo de registro.
- Haz clic en Obtener cuenta de servicio para obtener la cuenta de servicio única de este feed.
- Otorga a esta cuenta de servicio el rol de Visualizador de objetos de almacenamiento en el bucket de Cloud Storage que creaste anteriormente.
- Haz clic en Siguiente.
- Especifica valores para los siguientes parámetros de entrada:
- URI del bucket de almacenamiento: Es el URI del bucket de Cloud Storage en el formato
gs://datadog-data. - Opción de eliminación del código fuente: Selecciona la opción de eliminación según tu preferencia.
- Antigüedad máxima del archivo: Incluye los archivos modificados en la cantidad de días especificada. El valor predeterminado es de 180 días.
- Espacio de nombres del recurso: Es el espacio de nombres del recurso.
- Etiquetas de transferencia: Es la etiqueta que se aplica a los eventos de este feed.
- URI del bucket de almacenamiento: Es el URI del bucket de Cloud Storage en el formato
- Haz clic en Siguiente.
- Revisa la configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
Opción 2: Compartir registros de Datadog a través de la configuración de Webhook
Configura feeds
Para configurar un feed, sigue estos pasos:
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo,
Datadog Logs). - Selecciona Webhook como el Tipo de origen.
- Selecciona Datadog como el Tipo de registro.
- Haz clic en Siguiente.
- Opcional: Especifica valores para los siguientes parámetros de entrada:
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
\n.
- Delimitador de división: Es el delimitador que se usa para separar las líneas de registro, como
- Haz clic en Siguiente.
- Revisa la configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
- Haz clic en Generar clave secreta para generar una clave secreta que autentique este feed.
- Copia y almacena la clave secreta. No podrás volver a ver esta clave secreta. Si es necesario, puedes regenerar una clave secreta nueva, pero esta acción hace que la clave secreta anterior quede obsoleta.
- En la pestaña Detalles, copia la URL del extremo del feed del campo Información del extremo. Debes especificar esta URL de extremo en tu aplicación cliente.
- Haz clic en Listo.
Crea una clave de API para el feed del webhook
- Ve a Google Cloud Consola > Credenciales: Ir a Credenciales.
- Haz clic en Crear credenciales y selecciona Clave de API.
- Restringe el acceso a la clave de API a la API de Chronicle.
Especifica la URL del extremo
- En tu aplicación cliente, especifica la URL del extremo HTTPS que se proporciona en el feed de webhook.
Para habilitar la autenticación, especifica la clave de API y la clave secreta como parte del encabezado personalizado con el siguiente formato:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRETRecomendación: Especifica la clave de API como un encabezado en lugar de especificarla en la URL.
Si tu cliente de webhook no admite encabezados personalizados, puedes especificar la clave de API y la clave secreta con parámetros de consulta en el siguiente formato:
ENDPOINT_URL?key=API_KEY&secret=SECRETReemplaza lo siguiente:
ENDPOINT_URL: Es la URL del extremo del feed.API_KEY: Es la clave de API para autenticarse en Google Security Operations.SECRET: Es la clave secreta que generaste para autenticar el feed.
Configura Datadog para enviar registros al webhook
- Accede a Datadog con una cuenta con privilegios.
- Ve a Registros > Reenvío de registros.
- Selecciona Destinos personalizados.
- Haz clic en + Crear un destino nuevo.
- Especifica valores para los siguientes parámetros de entrada:
- Elige un tipo de destino: Selecciona HTTP.
- Asigna un nombre al destino: Proporciona un nombre descriptivo para el webhook (por ejemplo,
Google SecOps Webhook). - Configura el destino: Pega la ENDPOINT_URL del feed. Elige una de las siguientes opciones de autenticación (no ambas):
- Opción A (recomendada): Deja la URL sin credenciales y pasa API_KEY y SECRET como encabezados personalizados (se configurarán en el siguiente paso).
- Opción B: Anexa las credenciales a la URL como parámetros de consulta, en el formato
ENDPOINT_URL?key=API_KEY&secret=SECRET. Úsalo solo si el cliente no puede enviar encabezados personalizados.
- Configura los parámetros de autenticación: Datadog requiere al menos un encabezado de autenticación para guardar el destino. Agrega el siguiente encabezado. El extremo del webhook lo ignora, por lo que no afecta la solicitud.
- Nombre del encabezado:
Authorization. - Valor del encabezado:
application/json.
- Nombre del encabezado:
- Haz clic en Guardar.
Vínculos de referencia
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
additional_field |
additional.fields |
Combinado |
anonymous_label |
additional.fields |
Combinado |
as_domain_label |
additional.fields |
Combinado |
as_name_label |
additional.fields |
Combinado |
as_number_label |
additional.fields |
Combinado |
as_type_label |
additional.fields |
Combinado |
auth_method_label |
additional.fields |
Combinado |
category_label |
additional.fields |
Combinado |
emitted_source_label |
additional.fields |
Combinado |
event_type_label |
additional.fields |
Combinado |
geo_continent_code_label |
additional.fields |
Combinado |
geo_continent_label |
additional.fields |
Combinado |
geo_continent_name_label |
additional.fields |
Combinado |
geo_country_code_label |
additional.fields |
Combinado |
geo_latitude_label |
additional.fields |
Combinado |
geo_longitude_label |
additional.fields |
Combinado |
geo_subdivision_code_label |
additional.fields |
Combinado |
geo_subdivision_name_label |
additional.fields |
Combinado |
geo_timezone_label |
additional.fields |
Combinado |
http_level_label |
additional.fields |
Combinado |
indicator_label |
additional.fields |
Combinado |
indicators_matched_label |
additional.fields |
Combinado |
infrastructure_label |
additional.fields |
Combinado |
intention_label |
additional.fields |
Combinado |
iso_code_label |
additional.fields |
Combinado |
new_template_variable_name_label |
additional.fields |
Combinado |
new_template_variable_preset_name_label |
additional.fields |
Combinado |
new_template_variable_value_label |
additional.fields |
Combinado |
new_widget_definition_background_color_label |
additional.fields |
Combinado |
new_widget_definition_layout_type_label |
additional.fields |
Combinado |
new_widget_definition_show_title_label |
additional.fields |
Combinado |
new_widget_definition_title_label |
additional.fields |
Combinado |
new_widget_definition_type_label |
additional.fields |
Combinado |
new_widget_id_label |
additional.fields |
Combinado |
new_widget_layout_height_label |
additional.fields |
Combinado |
new_widget_layout_width_label |
additional.fields |
Combinado |
new_widget_layout_x_label |
additional.fields |
Combinado |
new_widget_layout_y_label |
additional.fields |
Combinado |
record_attributes_asset_id_label |
additional.fields |
Combinado |
record_attributes_asset_name_label |
additional.fields |
Combinado |
record_attributes_asset_new_value_dashboard_definition_author_handle_label |
additional.fields |
Combinado |
record_attributes_asset_new_value_dashboard_definition_author_name_label |
additional.fields |
Combinado |
record_attributes_asset_new_value_dashboard_definition_description_label |
additional.fields |
Combinado |
record_attributes_asset_new_value_dashboard_definition_id_label |
additional.fields |
Combinado |
record_attributes_asset_new_value_dashboard_definition_reflow_type_label |
additional.fields |
Combinado |
record_attributes_asset_new_value_dashboard_definition_title_label |
additional.fields |
Combinado |
record_attributes_asset_new_value_dashboard_definition_url_label |
additional.fields |
Combinado |
record_attributes_asset_prev_value_dashboard_definition_author_handle_label |
additional.fields |
Combinado |
record_attributes_asset_prev_value_dashboard_definition_author_name_label |
additional.fields |
Combinado |
record_attributes_asset_prev_value_dashboard_definition_description_label |
additional.fields |
Combinado |
record_attributes_asset_prev_value_dashboard_definition_id_label |
additional.fields |
Combinado |
record_attributes_asset_prev_value_dashboard_definition_reflow_type_label |
additional.fields |
Combinado |
record_attributes_asset_prev_value_dashboard_definition_title_label |
additional.fields |
Combinado |
record_attributes_asset_prev_value_dashboard_definition_url_label |
additional.fields |
Combinado |
record_attributes_asset_type_label |
additional.fields |
Combinado |
record_attributes_contextMap_cfRay_label |
additional.fields |
Combinado |
record_attributes_contextMap_tradingAccountId_label |
additional.fields |
Combinado |
record_attributes_evt_name_label |
additional.fields |
Combinado |
record_attributes_network_client_geoip_as_number_label |
additional.fields |
Combinado |
record_attributes_network_client_geoip_as_type_label |
additional.fields |
Combinado |
record_attributes_network_client_geoip_location_latitude_label |
additional.fields |
Combinado |
record_attributes_network_client_geoip_location_longitude_label |
additional.fields |
Combinado |
record_attributes_network_client_geoip_subdivision_iso_code_label |
additional.fields |
Combinado |
record_attributes_network_client_geoip_subdivision_name_label |
additional.fields |
Combinado |
record_attributes_network_client_geoip_timezone_label |
additional.fields |
Combinado |
record_trace_id_label |
additional.fields |
Combinado |
request_id_label |
additional.fields |
Combinado |
risk_label |
additional.fields |
Combinado |
service_label |
additional.fields |
Combinado |
source_name_label |
additional.fields |
Combinado |
source_type_label |
additional.fields |
Combinado |
source_url_label |
additional.fields |
Combinado |
span_id_label |
additional.fields |
Combinado |
symbol_label |
additional.fields |
Combinado |
tag_label |
additional.fields |
Combinado |
template_variable_name_label |
additional.fields |
Combinado |
template_variable_preset_name_label |
additional.fields |
Combinado |
template_variable_value_label |
additional.fields |
Combinado |
timezone_label |
additional.fields |
Combinado |
tunnels_operator_label |
additional.fields |
Combinado |
tunnels_type_label |
additional.fields |
Combinado |
type_label |
additional.fields |
Combinado |
type_label1 |
additional.fields |
Combinado |
url_details_host_label |
additional.fields |
Combinado |
url_details_path_label |
additional.fields |
Combinado |
user_created_timestamp_label |
additional.fields |
Combinado |
widget_definition_background_color_label |
additional.fields |
Combinado |
widget_definition_layout_type_label |
additional.fields |
Combinado |
widget_definition_show_title_label |
additional.fields |
Combinado |
widget_definition_title_label |
additional.fields |
Combinado |
widget_definition_type_label |
additional.fields |
Combinado |
widget_id_label |
additional.fields |
Combinado |
widget_layout_height_label |
additional.fields |
Combinado |
widget_layout_width_label |
additional.fields |
Combinado |
widget_layout_x_label |
additional.fields |
Combinado |
widget_layout_y_label |
additional.fields |
Combinado |
eventMessage |
metadata.description |
Asignado directamente |
date1 |
metadata.event_timestamp |
Se analizó como ISO8601 |
record.date1 |
metadata.event_timestamp |
Se analizó como ISO8601 |
event_type |
metadata.event_type |
Asignado directamente |
has_principal |
metadata.event_type |
Asignado: true → NETWORK_CONNECTION, true → STATUS_UPDATE |
has_user |
metadata.event_type |
Asignado: true → USER_UNCATEGORIZED |
attributes._trace.origin.operation |
metadata.product_event_type |
Asignado directamente |
eventType |
metadata.product_event_type |
Asignado directamente |
record_attributes_contextMap_eventType |
metadata.product_event_type |
Asignado directamente |
source |
metadata.product_event_type |
Asignado directamente |
_id |
metadata.product_log_id |
Asignado directamente |
record_attributes_thread_id |
metadata.product_log_id |
Asignado directamente |
threadID |
metadata.product_log_id |
Asignado directamente |
service |
metadata.product_name |
Asignado directamente |
attributes.@version |
metadata.product_version |
Asignado directamente |
attributes.http.method |
network.http.method |
Asignado directamente |
agnt |
network.http.parsed_user_agent |
Asignado directamente |
record_attributes_contextMap_userAgent |
network.http.parsed_user_agent |
Asignado directamente |
attributes.http.status_code |
network.http.response_code |
Se cambió el nombre o se asignó |
agnt |
network.http.user_agent |
Asignado directamente |
attributes.http.useragent |
network.http.user_agent |
Asignado directamente |
record_attributes_contextMap_userAgent |
network.http.user_agent |
Asignado directamente |
attributes.logger_name |
principal.application |
Asignado directamente |
service |
principal.application |
Asignado directamente |
attributes._trace.baggage.device_id |
principal.asset.asset_id |
Asignado directamente |
attributes.metadata.host_metadata.hostname |
principal.asset.hostname |
Asignado directamente |
attributes.usr.id |
principal.asset.hostname |
Asignado directamente |
attributes.network.client.geoip.ipAddress |
principal.asset.ip |
Combinado |
attributes.network.client.ip |
principal.asset.ip |
Combinado |
ip1 |
principal.asset.ip |
Combinado |
ipAddress |
principal.asset.ip |
Asignado directamente |
principal_ip_address |
principal.asset.ip |
Combinado |
record_attributes_network_client_ip |
principal.asset.ip |
Combinado |
org |
principal.group.group_display_name |
Asignado directamente |
attributes.org.uuid |
principal.group.product_object_id |
Asignado directamente |
attributes.metadata.host_metadata.hostname |
principal.hostname |
Asignado directamente |
attributes.usr.id |
principal.hostname |
Asignado directamente |
host |
principal.hostname |
Asignado directamente |
record_host |
principal.hostname |
Asignado directamente |
attributes.network.client.geoip.ipAddress |
principal.ip |
Combinado |
attributes.network.client.ip |
principal.ip |
Combinado |
ip1 |
principal.ip |
Combinado |
ipAddress |
principal.ip |
Asignado directamente |
principal_ip_address |
principal.ip |
Combinado |
record_attributes_network_client_ip |
principal.ip |
Combinado |
record_attributes_http_url_details_host_label |
principal.labels |
Combinado |
record_attributes_http_url_details_path_label |
principal.labels |
Combinado |
record_attributes_http_useragent_label |
principal.labels |
Combinado |
record_attributes_network_client_geoip_as_domain_label |
principal.labels |
Combinado |
record_attributes_network_client_geoip_as_route_label |
principal.labels |
Combinado |
record_attributes_network_client_geoip_city_name_label |
principal.labels |
Combinado |
record_attributes_network_client_geoip_continent_code_label |
principal.labels |
Combinado |
record_attributes_network_client_geoip_continent_name_label |
principal.labels |
Combinado |
record_attributes_network_client_geoip_country_iso_code_label |
principal.labels |
Combinado |
record_attributes_network_client_geoip_country_name_label |
principal.labels |
Combinado |
record_attributes_usr_id_label |
principal.labels |
Combinado |
attributes.network.client.geoip.city.name |
principal.location.city |
Asignado directamente |
attributes.network.client.geoip.country.name |
principal.location.country_or_region |
Asignado directamente |
port |
principal.port |
Se cambió el nombre o se asignó |
client_as_route_label |
principal.resource.attribute.labels |
Combinado |
client_type_label |
principal.resource.attribute.labels |
Combinado |
org_name_label |
principal.resource.attribute.labels |
Combinado |
record_attributes_usr_uuid_label |
principal.user.attribute.labels |
Combinado |
roles |
principal.user.attribute.roles |
Combinado |
attributes.usr.email |
principal.user.email_addresses |
Combinado |
email_id |
principal.user.email_addresses |
Combinado |
record_attributes_usr_email |
principal.user.email_addresses |
Combinado |
attributes.evt.actor.type |
principal.user.role_name |
Asignado directamente |
attributes.metadata.user_uuid |
principal.user.userid |
Asignado directamente |
attributes.usr.uuid |
principal.user.userid |
Asignado directamente |
record_attributes_contextMap_user |
principal.user.userid |
Asignado directamente |
user |
principal.user.userid |
Asignado directamente |
BusArch_label |
security_result.about.resource.attribute.labels |
Combinado |
CANDBVersion_label |
security_result.about.resource.attribute.labels |
Combinado |
alert_label |
security_result.about.resource.attribute.labels |
Combinado |
caller_label |
security_result.about.resource.attribute.labels |
Combinado |
component_label |
security_result.about.resource.attribute.labels |
Combinado |
esn_label |
security_result.about.resource.attribute.labels |
Combinado |
ftcpVersion_label |
security_result.about.resource.attribute.labels |
Combinado |
ingestMessageId_label |
security_result.about.resource.attribute.labels |
Combinado |
label |
security_result.about.resource.attribute.labels |
Combinado |
level_label |
security_result.about.resource.attribute.labels |
Combinado |
msg_label |
security_result.about.resource.attribute.labels |
Combinado |
query_label |
security_result.about.resource.attribute.labels |
Combinado |
redactedVin_label |
security_result.about.resource.attribute.labels |
Combinado |
updated_query_label |
security_result.about.resource.attribute.labels |
Combinado |
vehicleId_label |
security_result.about.resource.attribute.labels |
Combinado |
category1 |
security_result.category_details |
Combinado |
_id_label |
security_result.detection_fields |
Combinado |
action_label |
security_result.detection_fields |
Combinado |
org_uuid_label |
security_result.detection_fields |
Combinado |
record_attributes_http_method_label |
security_result.detection_fields |
Combinado |
record_message_label |
security_result.detection_fields |
Combinado |
record_source_label |
security_result.detection_fields |
Combinado |
record_status_label |
security_result.detection_fields |
Combinado |
status |
security_result.severity |
Asignado: "INFO", "DEBUG", "debug", "info" → LOW, (?i)WARN → MEDIUM |
status |
security_result.severity_details |
Asignado directamente |
context.AlertName |
security_result.threat_name |
Asignado directamente |
src_ip_address |
src.ip |
Combinado |
record_attributes_contextMap_dd_service |
target.application |
Asignado directamente |
target_ip_address |
target.asset.ip |
Asignado: ^(?:[0-9]{1,3}[.]){3}[0-9]{1,3}$ → target_ip_address |
target_ip_address |
target.ip |
Asignado: ^(?:[0-9]{1,3}[.]){3}[0-9]{1,3}$ → target_ip_address |
record_attributes_contextMap_dd_version |
target.platform_version |
Asignado directamente |
logger_fqcn_label |
target.resource.attribute.labels |
Combinado |
logger_label |
target.resource.attribute.labels |
Combinado |
modified_fields_label |
target.resource.attribute.labels |
Combinado |
asset_name |
target.resource.name |
Asignado directamente |
asset_id |
target.resource.product_object_id |
Asignado directamente |
asset_type |
target.resource.type |
Asignado directamente |
record_attributes_contextMap_dd_env |
target.resource.type |
Asignado directamente |
record_attributes_contextMap_userId |
target.user.userid |
Asignado directamente |
record_attributes_user |
target.user.userid |
Asignado directamente |
| N/A | metadata.event_type |
Constante: NETWORK_CONNECTION |
| N/A | network.http.parsed_user_agent |
Constante: parseduseragent |
| N/A | security_result.severity |
Constante: LOW |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.