Grâce à l'intégration Splunk de PowerDMARC, vous pouvez facilement ingérer et surveiller vos données d'authentification des e-mails et de sécurité des domaines directement dans votre environnement Splunk. En tirant parti de l'API PowerDMARC, les entreprises peuvent mettre en place une intégration SIEM rationalisée sans configurations complexes : il suffit de se connecter, d'exécuter et d'obtenir une visibilité centralisée sur la sécurité de leurs e-mails dans tous les domaines.
Le guide se concentre intentionnellement sur la configuration et l'ingestion. Les tableaux de bord Splunk et les visualisations avancées ne sont pas abordés dans ce document.
Documentation API
Documentation Swagger : https://app.powerdmarc.com/swagger-ui/index.html
Documentation alternative : https://api.powerdmarc.com/
Remarque : Les conventions de dénomination ne se limitent pas à celles mentionnées dans cette documentation.
Présentation de l'architecture
Dans cet exemple, nous utilisons le point de terminaison du journal d'audit à des fins de test et d'illustration.
PowerDMARC API
↓
Script Python (planifié via cron/Planificateur de tâches)
↓
Collecteur d'événements HTTP Splunk (HEC)
↓
Splunk (recherche, tableaux de bord, alertes, corrélation)
Splunk reçoit les données via son point de terminaison HTTP Event Collector (HEC), qui permet l'ingestion sécurisée de données provenant de sources externes.
Conditions préalables
Avant de commencer, assurez-vous d'avoir :
Splunk Enterprise ou Splunk Cloud avec accès administratif
Autorisation à :
Créer des jetons HTTP Event Collector (HEC)
Créer des index
Configurer les entrées de données
Python 3.7+ installé sur le système exécutant le script d'intégration
Jeton d'accès API PowerDMARC avec autorisation d'accès aux journaux d'audit
Connectivité réseau depuis l'environnement d'exécution du script vers :
API PowerDMARC (https://app.powerdmarc.com)
Terminal Splunk HEC
Configuration Splunk
Étape 1 : Créer un index dédié
Accédez à Paramètres → Index
Cliquez sur Nouvel index
Configurer :
Nom de l'index : powerdmarc
Type de données d'index : Événements
Application : recherche (ou votre application préférée)
Laissez les autres paramètres par défaut ou modifiez-les en fonction des exigences de conservation.
Cliquez sur Sauvegarder
Étape 2 : Activer le collecteur d'événements HTTP (HEC)
Accédez à Paramètres → Entrées de données
Cliquez sur Collecteur d'événements HTTP
Cliquez sur Paramètres généraux
Configurer :
Tous les jetons : Activé
Activer SSL : Activé (recommandé)
Numéro de port HTTP : 8088 (par défaut)
Cliquez sur Sauvegarder
Étape 3 : Créer un jeton HEC
Toujours dans Paramètres → Entrées de données → Collecteur d'événements HTTP
Cliquez sur Nouveau jeton
Configurer les paramètres du jeton :
Nom : PowerDMARC_Integration
Remplacement du nom de la source : powerdmarc:api
Description : Jeton pour l'ingestion du journal d'audit PowerDMARC
Cliquez Suivant
Paramètres d'entrée :
Type de source : Sélectionner Automatique
Index : Sélectionner powerdmarc (ou les index disponibles, y compris powerdmarc)
Index par défaut : powerdmarc
Cliquez Avis
Cliquez Soumettre
Important : Copiez et enregistrez immédiatement la valeur du jeton (vous ne pourrez pas la récupérer ultérieurement).
Configuration du script d'intégration
Étape 4 : Préparer l'environnement Python
Option A : Installation en ligne (recommandée)
Installez les bibliothèques Python requises à partir de PyPI (nécessite une connexion Internet) :
pip installer requêtes
Ou utilisez le fichier fichier requirements.txt :
pip install -r requirements.txt
Option B : Installation hors ligne
Pour les environnements sans accès à Internet, utilisez le fichier requirements.txt .
Télécharger les paquets sur un ordinateur disposant d'un accès Internet :
pip télécharger -r requirements.txt -d ./packages
Transférer les paquets vers votre système cible, puis installez :
pip install --no-index --find-links=./packages -r requirements.txt
Vérifier l'installation :
python3 -c "import requests; print(f'requests version: {requests.__version__}')"
Résultat attendu : version requise : 2.31.0 (ou similaire)
Étape 5 : Créer le script d'intégration
Créer powerdmarc_to_splunk.py et collez le code provenant du fichier powerdmarc_to_splunk.txt pro
Étape 6 : Configurer le script
Modifiez le fichier fichier powerdmarc_to_splunk.py et mettez à jour :
POWERDMARC_API_TOKEN : Votre jeton porteur API PowerDMARC
SPLUNK_HEC_URL : Votre point de terminaison Splunk HEC
Format : 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 : Le jeton HEC créé à l'étape 3
SPLUNK_INDEX : powerdmarc (ou le nom de l'index que vous avez choisi)
DAYS_TO_FETCH : Nombre de jours de données historiques à récupérer (valeur par défaut : 1)
Étape 7 : Tester le script
Exécutez le script manuellement pour vérifier la connectivité et l'ingestion des données :
python3 powerdmarc_to_splunk.py
Résultat attendu :
============================================================
Intégration de PowerDMARC à Splunk
============================================================
Récupération des journaux PowerDMARC du 03/01/2025 à 00:00:00 au 04/01/2025 à 00:00:00...
15 entrées du journal d'audit récupérées avec succès
Envoi de 15 événements à Splunk...
Résumé sur l'ingestion :
Envoi réussi : 15
Échec : 0
Total : 15
============================================================
Intégration terminée avec succès
============================================================
Planifier l'exécution automatisée
Pour Linux/Unix (cron)
Modifier crontab :
crontab -e
Ajouter une entrée à exécuter toutes les heures :
0 * * * /usr/bin/python3 /path/to/powerdmarc_to_splunk.py >> /var/log/powerdmarc_splunk.log 2>&1
Ou exécuter toutes les 15 minutes :
*/15 * * * /usr/bin/python3 /path/to/powerdmarc_to_splunk.py >> /var/log/powerdmarc_splunk.log 2>&1
Pour Windows (Planificateur de tâches)
Ouvrir Planificateur de tâches
Cliquez sur Créer une tâche
Configurer :
Nom : Intégration PowerDMARC Splunk
Description : Ingestion programmée des journaux d'audit PowerDMARC
Options de sécurité : Exécuter que l'utilisateur soit connecté ou non
Onglet Déclencheurs : Cliquez sur Nouveau
Commencer : selon un calendrier
Paramètres : Quotidien, répéter toutes les heures
Onglet Actions : Cliquez sur Nouveau
Action : Lancer un programme
Programme : python.exe
Arguments : C:\chemin\vers\powerdmarc_to_splunk.py
Cliquez OK
Valider l'ingestion des données dans Splunk
Étape 8 : Vérifier les données dans Splunk
Accédez à Recherche et rapports application
Exécutez la requête SPL suivante :
index=powerdmarc type de source=powerdmarc:auditlog
| trier - _time
| tête 20
| table _time, nom_utilisateur, action, adresse_ip, created_at
Résultats attendus
Vous devriez voir des entrées dans le journal d'audit avec des champs tels que :
nom_utilisateur: utilisateurqui a effectué l'action
action: Description de l'action effectuée
ip_address: adresse IP de l'utilisateur
created_at: horodatage de l'événement d'audit
Exemple de structure d'événement
{
« nom_utilisateur » : « John Doe »,
« action » : « Domaines joints mis à jour »,
« ip_address » : « 12.111.67.123 »,
« a_username » : null,
« autre » : null,
« created_at » : « 2025-01-04 14:29:24 »
}
Dépannage
Problèmes courants
Problème : Aucune donnée n'apparaît dans Splunk.
Vérifiez que le jeton HEC est correct et activé.
Vérifier que l'URL du point de terminaison HEC est accessible
Vérifier l'index powerdmarc existe et est accessible
Vérifiez que les règles du pare-feu autorisent le trafic HTTPS sortant vers Splunk.
Vérifiez les journaux d'exécution des scripts pour détecter les erreurs.
Problème : Erreurs de certificat SSL
Pour les certificats auto-signés, définissez verify=False dans le script (non recommandé pour la production).
Ou installez les certificats SSL appropriés sur Splunk.
Problème : Échecs d'authentification de l'API PowerDMARC
Vérifier que le jeton API est valide et dispose des autorisations appropriées
Vérifiez que le jeton n'a pas expiré
Vérifiez que l'URL du point de terminaison API est correcte.
Problème : Le script s'exécute, mais aucun journal n'est récupéré.
Vérifiez les paramètres de plage horaire.
Vérifier si des journaux d'audit existent pour la période spécifiée
Consultez la documentation de l'API PowerDMARC pour connaître le format des paramètres.
Prochaines étapes
À ce stade :
Les journaux d'audit PowerDMARC sont correctement importés dans Splunk.
Vous pouvez désormais :
Créer des tableaux de bord personnalisés pour la visualisation
Configurer des alertes pour des événements d'audit spécifiques
Corrélation des données PowerDMARC avec d'autres journaux de sécurité
Créer des rapports pour la conformité et la surveillance de la sécurité
Utilisez les capacités d'analyse de Splunk pour détecter les menaces.
Améliorations recommandées
Ajouter des points de terminaison API supplémentaires : Étendez le script pour récupérer les rapports agrégés DMARC, les rapports d'analyse ou les données de domaine.
Mettre en œuvre la logique de point de contrôle : Enregistrer l'horodatage de la dernière exécution réussie pour éviter les doublons lors de l'ingestion.
Ajouter la journalisation : Mettre en place une journalisation appropriée avec rotation pour les environnements de production.
Notifications d'erreur : Configurez les notifications par e-mail ou Slack en cas d'échec des scripts.
Déployer en tant que module complémentaire Splunk : Intégrez l'intégration sous forme de module complémentaire Splunk TA (Technology Add-on) pour faciliter le déploiement.
Considérations relatives à la sécurité
Stockez vos identifiants en toute sécurité : Utilisez des variables d'environnement ou des fichiers de configuration cryptés.
Activer la vérification SSL : Toujours utiliser verify=True pour les environnements de production.
Faites tourner régulièrement les jetons API : Suivez les meilleures pratiques en matière de sécurité pour la gestion des identifiants.
Restriction des autorisations des jetons HEC : Limiter à des index et types de sources spécifiques
Surveiller l'exécution des scripts : Configurer des alertes en cas d'échecs d'exécution ou d'anomalies
Vérifiez les contrôles d'accès Splunk : Assurez-vous que seuls les utilisateurs autorisés peuvent accéder aux données PowerDMARC.
Assistance et ressources
Documentation de l'API PowerDMARC : https://api.powerdmarc.com/
Documentation Splunk HEC : https://docs.splunk.com/Documentation/Splunk/latest/Data/UsetheHTTPEventCollector
Splunk répond : https://community.splunk.com/