Recopila registros de DNSFilter

Versión del analizador: 1.0

Compatible con:

En este documento, se explica cómo configurar DNSFilter para enviar registros a Google Security Operations mediante webhooks a través del protocolo HTTP Event Collector (HEC).

DNSFilter es una solución de seguridad de DNS potenciada por IA que proporciona protección contra amenazas, filtrado de contenido y visibilidad de la red. La función de exportación de datos permite la exportación automática de datos de registro de consultas de DNS a plataformas de SIEM a través de la API de HTTP Event Collector (HEC), lo que admite la supervisión de seguridad en tiempo real y la generación de informes de cumplimiento.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

  • Una instancia de Google SecOps
  • Acceso al panel de DNSFilter con permisos de administrador o superiores
  • Función de complemento DNSFilter Data Export habilitada (disponible para los planes Basic, Pro y Enterprise como complemento pagado)
  • Acceso a la Google Cloud Console (para la creación de claves de API)

Crea un feed de webhook en Google SecOps

Crea el feed

  1. Ve a Configuración de SIEM > Feeds.
  2. Haz clic en Agregar feed nuevo.
  3. En la página siguiente, haz clic en Configurar un solo feed.
  4. En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo, DNSFilter HEC Feed).
  5. Selecciona Webhook como el Tipo de origen.
  6. Selecciona DNSFILTER como el Tipo de registro.
  7. Haz clic en Siguiente.
  8. Especifica valores para los siguientes parámetros de entrada:
    • Delimitador de división (opcional): Déjalo vacío, ya que cada solicitud de HEC contiene eventos con el formato correcto.
    • Espacio de nombres del recurso: Es el espacio de nombres del recurso
    • Etiquetas de transferencia: Es la etiqueta que se aplicará a los eventos de este feed.
  9. Haz clic en Siguiente.
  10. Revisa la configuración de tu nuevo feed de noticias en la pantalla Finalizar y, luego, haz clic en Enviar.

Genera y guarda la clave secreta

Después de crear el feed, debes generar una clave secreta para la autenticación:

  1. En la página de detalles del feed, haz clic en Generar clave secreta.
  2. Aparecerá un diálogo que muestra la clave secreta.
  3. Copia y guarda la clave secreta de forma segura.

Obtén la URL del extremo del feed

  1. Ve a la pestaña Detalles del feed.
  2. En la sección Información del extremo, copia la URL del extremo del feed.
  3. El formato de la URL es el siguiente:

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import
    

    Donde {region} es la región de tu instancia de Google SecOps (por ejemplo, us, europe, o asia-southeast1), y {parent} es la ruta de acceso del recurso en el formato projects/<PROJECT_ID>/locations/<LOCATION>/instances/<INSTANCE_ID>/logTypes/<LOG_TYPE>.

  4. Guarda esta URL para los próximos pasos.

  5. Haz clic en Listo.

Crea una clave de API de Google Cloud

Google SecOps requiere una clave de API para la autenticación. Crea una clave de API restringida en la Google Cloud Console.

Crea la clave de API

  1. Ve a la página Credenciales de la consola de Google Cloud.
  2. Selecciona tu proyecto (el proyecto asociado con tu instancia de Google SecOps).
  3. Haz clic en Crear credenciales > Clave de API.
  4. Se creará una clave de API y se mostrará en un diálogo.
  5. Haz clic en Editar clave de API para restringir la clave.

Restringe la clave de API

  1. En la página de configuración de la clave de API, haz lo siguiente: Nombre: Ingresa un nombre descriptivo (por ejemplo, Google SecOps DNSFilter Webhook API Key).
  2. En Restricciones de API:
    1. Selecciona Restringir clave (Restrict key).
    2. En el menú desplegable Seleccionar APIs, busca y selecciona API de Google SecOps (o API de Chronicle).
  3. Haz clic en Guardar.
  4. Copia el valor de la clave de API del campo Clave de API que se encuentra en la parte superior de la página.
  5. Guarda la clave de API de forma segura.

Configura la exportación de datos de DNSFilter

Crea la URL del extremo de HEC

  • Combina la URL del extremo de Google SecOps y la clave de API para crear la URL de HEC:

    <ENDPOINT_URL>?key=<API_KEY>
    
  • Ejemplo:

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...
    

Configura la exportación de datos en DNSFilter

  1. Accede al panel de DNSFilter.
  2. Ve a Herramientas > Exportación de datos.
  3. En la sección Destino de exportación, selecciona HTTP Event Collector (HEC).
  4. En la sección Configuración de HEC, ingresa lo siguiente:
    • URL del recopilador de eventos HTTP: Pega la URL del extremo completa con la clave de API del paso anterior.
    • Token del recopilador de eventos activo: Pega la clave secreta generada durante la creación del feed de Google SecOps.
  5. Haz clic en Guardar configuración.
  6. DNSFilter probará la conexión y mostrará un mensaje de éxito si la configuración es correcta.

Verifica la transferencia de datos

  1. En el panel de DNSFilter, ve a Herramientas > Exportación de datos.
  2. Verifica que el Estado se muestre como Activo o Conectado.
  3. En la consola de Google SecOps, ve a Configuración de SIEM > Feeds.
  4. Busca tu feed de DNSFilter y verifica que el Estado se muestre como Activo.
  5. Haz clic en el nombre del feed para ver los detalles.
  6. Verifica la métrica Registros transferidos para confirmar que los datos fluyen.
  7. Para buscar eventos de DNSFilter, ve a Buscar y ejecuta la siguiente consulta:

    metadata.log_type = "DNSFILTER"
    

Referencia de métodos de autenticación

Los feeds de webhook de Google SecOps admiten varios métodos de autenticación. La integración de HEC de DNSFilter usa el método híbrido.

Método utilizado: Híbrido (URL + encabezado)

DNSFilter envía la clave de API en la URL y la clave secreta (token de HEC) en el encabezado de la solicitud.

  • Formato de solicitud:

    POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1
    Content-Type: application/json
    Authorization: Splunk <SECRET_KEY>
    
    {
        "event": "data",
        "timestamp": "2025-01-15T10:30:00Z"
    }
    

Método alternativo: Encabezados personalizados

Si configuras una aplicación personalizada para enviar registros a Google SecOps, usa este método para mejorar la seguridad.

  • Formato de solicitud:

    POST <ENDPOINT_URL> HTTP/1.1
    Content-Type: application/json
    x-goog-chronicle-auth: <API_KEY>
    x-chronicle-auth: <SECRET_KEY>
    
    {
        "event": "data",
        "timestamp": "2025-01-15T10:30:00Z"
    }
    
  • Ventajas:

    • La clave de API y el secreto no son visibles en la URL.
    • Es más seguro (los encabezados no se registran en los registros de acceso al servidor web).
    • Es el método preferido cuando el proveedor lo admite.

Nombres de encabezados de autenticación

Google SecOps acepta los siguientes nombres de encabezados para la autenticación:

  • Para la clave de API:

    • x-goog-chronicle-auth (recomendada)
    • X-Goog-Chronicle-Auth (no distingue mayúsculas de minúsculas)
  • Para la clave secreta:

    • x-chronicle-auth (recomendada)
    • X-Chronicle-Auth (no distingue mayúsculas de minúsculas)
    • Authorization: Splunk <TOKEN> (compatibilidad con HEC)

Límites y prácticas recomendadas de webhook

Límites de solicitudes

Límite Valor
Tamaño máximo de la solicitud 4 MB
Máx. de QPS (consultas por segundo) 15,000
Tiempo de espera de la solicitud 30 segundos
Comportamiento de reintento Automático con retirada exponencial

Prácticas recomendadas

  • Supervisa el estado de la exportación: Revisa periódicamente el estado de la exportación de datos en el panel de DNSFilter para garantizar el flujo continuo de datos.
  • Rotación de claves de API: Rota periódicamente tu clave de API de Google Cloud por motivos de seguridad.
  • Administración de claves secretas: Almacena la clave secreta de Google SecOps de forma segura y vuelve a generarla si se ve comprometida.
  • Retención de datos: Configura políticas de retención de datos adecuadas en DNSFilter y Google SecOps.
  • Configuración de alertas: Configura alertas en Google SecOps para eventos críticos de seguridad de DNS.

Soluciona problemas

Falla la prueba de conexión

Si falla la prueba de configuración de la exportación de datos de DNSFilter, haz lo siguiente:

  1. Verifica que la URL de HEC sea correcta y que incluya el parámetro de clave de API.
  2. Verifica que la clave secreta (token de HEC) se haya copiado correctamente sin espacios adicionales.
  3. Comprueba que la clave de API de Google Cloud tenga habilitado el acceso a la API de Chronicle.
  4. Verifica que el feed de Google SecOps esté en estado Activo.
  5. Verifica la conectividad de red de DNSFilter a los extremos de Google Cloud.

No aparecen datos en Google SecOps

Si la conexión se realiza correctamente, pero no aparecen datos, haz lo siguiente:

  1. Verifica que se generen consultas de DNS en tu implementación de DNSFilter.
  2. Revisa el registro de consultas de DNSFilter para confirmar que se procesa el tráfico.
  3. En Google SecOps, busca metadata.log_type = "DNSFILTER" para verificar la transferencia.
  4. Verifica la métrica Registros transferidos del feed en Google SecOps.
  5. Revisa los registros de errores del feed en busca de errores de transferencia.

La exportación de datos muestra un mensaje de error

Causas comunes de errores:

  • Credenciales no válidas: La clave de API o la clave secreta son incorrectas o vencieron.
  • Incompatibilidad de región: La región de la URL del extremo de Google SecOps no coincide con tu instancia.
  • Permisos: La clave de API no tiene habilitado el acceso a la API de Chronicle.
  • Problemas de red: Firewall o proxy que bloquean las conexiones HTTPS salientes.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
hora metadata.collected_timestamp Se convirtió con el formato de fecha: aaaa-MM-dd HH:mm:ss Z UTC
metadata.event_type Se establece en "STATUS_UPDATE" si principal_ip_present, principal_hostname_present o principal_mac_present es verdadero; de lo contrario, se establece en "GENERIC_EVENT".
question_type network.dns.questions Se convirtió question_type a question.type con la asignación de tipo de registro DNS y, luego, se combinó en un array.
código network.dns.response_code Se convirtió con la asignación de código de respuesta DNS.
protocolo network.ip_protocol Se convirtió con la asignación de protocolo IP.
cliente principal.hostname Valor copiado directamente
request_address, ip4, ip6, source_addresses principal.ip Se combinó de request_address (IP extraída), ip4 (IP extraída), ip6 (IP extraída) y las IPs extraídas del array source_addresses.
región principal.location.country_or_region Valor copiado directamente
clientMac principal.mac Valor copiado directamente si coincide con la regex de MAC
clientID principal.resource.product_object_id Valor copiado directamente
nombre de usuario principal.user.user_display_name Valor copiado directamente
user_id principal.user.userid Valor copiado directamente
code, original_code, clientType, collection, network_name, networkID, collectionID, policy, policyID, scheduled_policy, scheduled_policyID, sec_cats, sec_allow_cats, block_cats, block_allow_cats, threat, allowed, method, organization, organizationID, applicationID, application_name, application_categoryID, application_category_name security_result.detection_fields Etiquetas combinadas de varios campos de origen como pares clave-valor
dominio target.administrative_domain Valor copiado directamente
fqdn target.domain.name Valor copiado directamente
metadata.product_name Se establece en "DNSFILTER".
metadata.vendor_name Se establece en "DNSFILTER".

Registro de cambios

Consulta el registro de cambios de este analizador

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.