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 con 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 automatizada de los datos de registro de consultas de DNS a las plataformas de SIEM a través de la API de recopilador de eventos HTTP (HEC), lo que admite la supervisión de seguridad en tiempo real y los 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
  • La función de complemento Exportación de datos de DNSFilter habilitada (disponible para los planes Basic, Pro y Enterprise como complemento pagado)
  • Acceso a la Google Cloud Console (para crear claves de API)

Crea un feed de webhook en Google SecOps

Crea el feed

  1. Ve a Configuración > Administración de datos > Feeds. Si estás en una plataforma solo de SIEM, ve a Configuración > 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): Deja este campo 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 feed de noticias nuevo 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 con 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, haz lo siguiente:
    1. Selecciona Restringir clave.
    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 Recopilador de eventos HTTP (HEC).
  4. En la sección Configuración de HEC, ingresa lo siguiente:
    • URL del recopilador de eventos HTTP: Pega la URL completa del extremo con la clave de API del paso anterior.
    • Token de 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 Google SecOps, ve a Configuración > Administración de datos > Feeds. Si estás en una plataforma solo de SIEM, ve a Configuración > 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 Búsqueda y ejecuta la siguiente consulta:

    metadata.log_type = "DNSFILTER"
    

Referencia de los 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 la 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 la 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
    • Más seguro (los encabezados no se registran en los registros de acceso del 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 encabezado 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 para webhooks

Límites de solicitudes

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

Prácticas recomendadas

  • Supervisa el estado de la exportación: Verifica con regularidad el estado de la exportación de datos en el panel de DNSFilter para garantizar un flujo de datos continuo.
  • Rotación de claves de API: Rota periódicamente tu clave de API de Google Cloud para mejorar la 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 tanto en DNSFilter como en Google SecOps.
  • Configuración de alertas: Configura alertas en Google SecOps para eventos de seguridad de DNS críticos.

Soluciona problemas

La prueba de conexión falla

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

  1. Verifica que la URL del HEC sea correcta y que incluya el parámetro de la clave de API.
  2. Verifica que la clave secreta (token de HEC) se haya copiado correctamente sin espacios adicionales.
  3. Verifica 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. Verifica el registro de consultas de DNSFilter para confirmar que se esté procesando 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 para ver si hay errores de transferencia.

La exportación de datos devuelve un mensaje de error

Causas de errores comunes:

  • Credenciales no válidas: La clave de API o la clave secreta son incorrectas o vencieron.
  • Discrepancia 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: El firewall o el proxy 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 en question.type con la asignación de tipos de registros DNS y, luego, se combinó en un array
código network.dns.response_code Se convirtió con la asignación de códigos de respuesta de DNS
protocolo network.ip_protocol Se convirtió con la asignación de protocolos IP
cliente principal.hostname El valor se copia 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 IP extraídas del array source_addresses
región principal.location.country_or_region El valor se copia directamente.
clientMac principal.mac El valor se copia directamente si coincide con la regex de MAC
clientID principal.resource.product_object_id El valor se copia directamente.
nombre de usuario principal.user.user_display_name El valor se copia directamente.
user_id principal.user.userid El valor se copia 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 El valor se copia directamente.
fqdn target.domain.name El valor se copia directamente.
metadata.product_name Establece el valor en "DNSFILTER".
metadata.vendor_name Establece el valor 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.