Con la integración de PowerDMARC en Splunk, puede incorporar y supervisar sin problemas sus datos de autenticación de correo electrónico y seguridad de dominio directamente en su entorno Splunk. Al aprovechar la API de PowerDMARC, las organizaciones pueden crear una integración SIEM optimizada sin configuraciones complejas: simplemente conectarse, ejecutar y obtener una visibilidad centralizada de su postura de seguridad del correo electrónico en todos los dominios.
La guía se centra intencionadamente en la configuración y la ingestión. Los paneles de Splunk y las visualizaciones avanzadas quedan fuera del alcance de este documento.
Documentación de la API
Documentación de Swagger: https://app.powerdmarc.com/swagger-ui/index.html
Documentación alternativa: https://api.powerdmarc.com/
Nota: Las convenciones de nomenclatura no se limitan a las mencionadas en esta documentación.
Descripción general de la arquitectura
En este ejemplo, utilizamos el punto final del registro de auditoría con fines de prueba e ilustración.
PowerDMARC API
↓
Script de Python (programado mediante cron/Programador de tareas)
↓
Recopilador de eventos HTTP (HEC) de Splunk
↓
Splunk (Búsqueda, Paneles, Alertas, Correlación)
Splunk recibe datos a través de su punto final HTTP Event Collector (HEC), que permite la ingesta segura de datos desde fuentes externas.
Requisitos previos
Antes de comenzar, asegúrese de tener:
Splunk Enterprise o Splunk Cloud con acceso administrativo
Permiso para:
Crear tokens de HTTP Event Collector (HEC)
Crear índices
Configurar entradas de datos
Python 3.7+ instalado en el sistema que ejecuta el script de integración
Token de portador de la API de PowerDMARC con permiso para acceder a los registros de auditoría
Conectividad de red desde el entorno de ejecución del script a:
API de PowerDMARC (https://app.powerdmarc.com)
Punto final Splunk HEC
Configuración de Splunk
Paso 1: Crear un índice dedicado
Vaya a Configuración → Índices
Haga clic en Nuevo índice
Configurar:
Nombre del índice: powerdmarc
Tipo de datos del índice: Eventos
Aplicación: search (o tu aplicación preferida)
Deje los demás ajustes como están por defecto o modifíquelos según los requisitos de retención.
Haga clic en Guardar
Paso 2: Habilitar el recopilador de eventos HTTP (HEC)
Navega a Configuración → Entradas de datos
Haga clic en Recopilador de eventos HTTP
Haga clic en Configuración global
Configurar:
Todos los tokens: Habilitado
Habilitar SSL: Habilitado (recomendado)
Número de puerto HTTP: 8088 (predeterminado)
Haga clic en Guardar
Paso 3: Crear token HEC
Todavía en Configuración → Entradas de datos → Recopilador de eventos HTTP
Haga clic en Nuevo token
Configurar los ajustes del token:
Nombre: PowerDMARC_Integration
Anulación del nombre de la fuente: powerdmarc:api
Descripción: Token para la ingestión del registro de auditoría de PowerDMARC
Haga clic Siguiente
Configuración de entrada:
Tipo de fuente: Seleccionar Automático
Índice: Seleccionar powerdmarc (o los índices disponibles, incluyendo powerdmarc).
Índice predeterminado: powerdmarc
Haga clic en Revisar
Haga clic Enviar
Importante: Copie y guarde el valor del token inmediatamente (no podrá recuperarlo más tarde).
Configuración del script de integración
Paso 4: Preparar el entorno Python
Opción A: Instalación en línea (recomendada)
Instala las bibliotecas Python necesarias desde PyPI (requiere conexión a Internet):
pip instalar solicitudes
O utilice el archivo requirements.txt :
pip instalar -r requisitos.txt
Opción B: Instalación sin conexión
Para entornos sin acceso a Internet, utilice el archivo requirements.txt .
Descargar paquetes en un equipo con acceso a Internet:
pip descargar -r requisitos.txt -d ./packages
Transfiere los paquetes al sistema de destino y, a continuación, instálelos:
pip instalar --no-index --find-links=./packages -r requirements.txt
Verificar la instalación:
python3 -c "import requests; print(f'requests version: {requests.__version__}')"
Resultado esperado: solicitudes versión: 2.31.0 (o similar)
Paso 5: Crear el script de integración
Crear powerdmarc_to_splunk.py y pegue el código de powerdmarc_to_splunk.txt pro
Paso 6: Configurar el script
Edita el archivo powerdmarc_to_splunk.py y actualiza:
POWERDMARC_API_TOKEN: Tu token de portador de la API de PowerDMARC
SPLUNK_HEC_URL: Su punto final Splunk HEC
Formato: https://your-splunk-instance:8088/services/collector/event
For Splunk Cloud: https://input-<your-instance>.cloud.splunk.com:8088/services/collector/event
SPLUNK_HEC_TOKEN: El token HEC creado en el paso 3.
SPLUNK_ÍNDICE: powerdmarc (o el nombre del índice que haya elegido)
DAYS_TO_FETCH: Número de días de datos históricos que se deben recuperar (valor predeterminado: 1).
Paso 7: Prueba el script
Ejecute el script manualmente para verificar la conectividad y la ingesta de datos:
Python 3 powerdmarc_to_splunk.py
Resultado esperado:
============================================================
Integración de PowerDMARC con Splunk
============================================================
Obtención los registros de PowerDMARC desde el 3 de enero de 2025 a las 00:00:00 hasta el 4 de enero de 2025 a las 00:00:00...
Se han recuperado correctamente 15 entradas del registro de auditoría.
Enviando 15 eventos a Splunk...
Resumen de ingestión:
Enviado correctamente: 15
Fallidos: 0
Total: 15
============================================================
Integración completada con éxito
============================================================
Programar ejecución automatizada
Para Linux/Unix (cron)
Editar crontab:
crontab -e
Añadir entrada para ejecutar cada hora:
0 * * * * /usr/bin/python3 /path/to/powerdmarc_to_splunk.py >> /var/log/powerdmarc_splunk.log 2>&1
O ejecutar cada 15 minutos:
*/15 * * * * /usr/bin/python3 /path/to/powerdmarc_to_splunk.py >> /var/log/powerdmarc_splunk.log 2>&1
Para Windows (Programador de tareas)
Abrir Programador de tareas
Haga clic en Crear tarea
Configurar:
Nombre: Integración de PowerDMARC con Splunk
Descripción: Ingestión programada de registros de auditoría de PowerDMARC
Opciones de seguridad: Ejecutar independientemente de si el usuario ha iniciado sesión o no.
Pestaña Desencadenantes: Haga clic en Nuevo
Comience: Según lo programado
Configuración: Diariamente, repetir cada hora.
Pestaña Acciones: Haga clic en Nuevo
Acción: Iniciar un programa
Programa: python.exe
Argumentos: C:\ruta\a\powerdmarc_to_splunk.py
Haga clic en Aceptar
Validar la ingesta de datos en Splunk
Paso 8: Verificar los datos en Splunk
Navegar a Búsqueda e informes aplicación
Ejecute la siguiente consulta SPL:
índice=powerdmarc tipo de fuente=powerdmarc:registro de auditoría
| ordenar - _tiempo
| cabeza 20
| tabla _hora, nombre_usuario, acción, dirección_ip, created_at
Resultados esperados
Debería ver entradas en el registro de auditoría con campos como:
nombre_de_usuario: Usuarioque realizó la acción.
acción: Descripción de la acción realizada.
ip_address: Dirección IP del usuario
created_at: Marca de tiempo del evento de auditoría
Estructura del evento de muestra
{
«nombre_de_usuario»: «John Doe»,
«acción»: «Dominios adjuntos actualizados»,
«dirección_ip»: «12.111.67.123»,
«a_username»: nulo,
«otros»: nulo,
«created_at»: «2025-01-04 14:29:24»
}
Solución de problemas
Problemas comunes
Problema: No aparecen datos en Splunk.
Verifique que el token HEC sea correcto y esté habilitado.
Comprueba que se puede acceder a la URL del punto final HEC.
Verificar índice powerdmarc existe y es accesible
Comprueba que las reglas del firewall permiten el tráfico HTTPS saliente hacia Splunk.
Revisar los registros de ejecución de scripts en busca de errores.
Problema: Errores en el certificado SSL
Para certificados autofirmados, establezca verify=False en el script (no recomendado para producción).
O instale los certificados SSL adecuados en Splunk.
Problema: Fallos en la autenticación de la API de PowerDMARC
Verifica que el token API sea válido y tenga los permisos correctos.
Comprueba que el token no haya caducado.
Confirma que la URL del punto final de la API sea correcta.
Problema: El script se ejecuta, pero no se obtienen registros.
Verifique los parámetros del intervalo de tiempo.
Comprueba si existen registros de auditoría para el período especificado.
Revise la documentación de la API de PowerDMARC para conocer el formato de los parámetros.
Próximos pasos
En este punto:
Los registros de auditoría de PowerDMARC se ingestan correctamente en Splunk.
Ahora puedes:
Cree paneles personalizados para la visualización.
Configurar alertas para eventos de auditoría específicos
Correlacionar los datos de PowerDMARC con otros registros de seguridad.
Crear informes para el cumplimiento normativo y la supervisión de la seguridad.
Utilice las capacidades analíticas de Splunk para la detección de amenazas.
Mejoras recomendadas
Añadir puntos finales API adicionales: Amplíe el script para obtener informes agregados DMARC, informes forenses o datos de dominio.
Implementar la lógica de punto de control: Almacene la marca de tiempo de la última ejecución correcta para evitar la ingesta duplicada.
Añadir registro: Implementar un registro adecuado con rotación para entornos de producción.
Notificaciones de error: Configure notificaciones por correo electrónico o Slack en caso de fallos en los scripts.
Implementar como complemento de Splunk: Empaquete la integración como un complemento tecnológico (TA) de Splunk para facilitar la implementación.
Consideraciones de seguridad
Almacene las credenciales de forma segura: Utilice variables de entorno o archivos de configuración cifrados.
Habilitar la verificación SSL: Utilizar siempre verify=True para entornos de producción.
Rote los tokens API con regularidad: Siga las prácticas recomendadas de seguridad para la gestión de credenciales.
Restringir los permisos de los tokens HEC: Limitar a índices y tipos de fuentes específicos.
Supervisar la ejecución de scripts: Configurar alertas para ejecuciones fallidas o anomalías.
Revisar los controles de acceso de Splunk: Asegúrese de que solo los usuarios autorizados puedan acceder a los datos de PowerDMARC.
Asistencia y recursos
Documentación de la API de PowerDMARC: https://api.powerdmarc.com/
Documentación de Splunk HEC: https://docs.splunk.com/Documentation/Splunk/latest/Data/UsetheHTTPEventCollector
Respuestas de Splunk: https://community.splunk.com/