Soumettre un ticket Mes billets
Bienvenue sur
Connexion  S'inscrire

PowerDMARC et Splunk - Guide d'intégration

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é

  1. Accédez à Paramètres → Index

  2. Cliquez sur Nouvel index

  3. 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.

  4. Cliquez sur Sauvegarder

Étape 2 : Activer le collecteur d'événements HTTP (HEC)

  1. Accédez à Paramètres → Entrées de données

  2. Cliquez sur Collecteur d'événements HTTP

  3. Cliquez sur Paramètres généraux

  4. Configurer :

    • Tous les jetons : Activé

    • Activer SSL : Activé (recommandé)

    • Numéro de port HTTP : 8088 (par défaut)

  5. Cliquez sur Sauvegarder

Étape 3 : Créer un jeton HEC

  1. Toujours dans Paramètres → Entrées de données → Collecteur d'événements HTTP

  2. Cliquez sur Nouveau jeton

  3. 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

  4. Cliquez Suivant

  5. 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

  6. Cliquez Avis

  7. Cliquez Soumettre

  8. 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 :

  1. POWERDMARC_API_TOKEN : Votre jeton porteur API PowerDMARC

  2. 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

  3. SPLUNK_HEC_TOKEN : Le jeton HEC créé à l'étape 3

  4. SPLUNK_INDEX : powerdmarc (ou le nom de l'index que vous avez choisi)

  5. 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)

  1. Modifier crontab :

crontab -e


  1. 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


  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)

  1. Ouvrir Planificateur de tâches

  2. Cliquez sur Créer une tâche

  3. 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

  4. Onglet Déclencheurs : Cliquez sur Nouveau

    • Commencer : selon un calendrier

    • Paramètres : Quotidien, répéter toutes les heures

  5. Onglet Actions : Cliquez sur Nouveau

    • Action : Lancer un programme

    • Programme : python.exe

    • Arguments : C:\chemin\vers\powerdmarc_to_splunk.py

  6. Cliquez OK


Valider l'ingestion des données dans Splunk

Étape 8 : Vérifier les données dans Splunk

  1. Accédez à Recherche et rapports application

  2. 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

  1. 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.

  2. 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.

  3. Ajouter la journalisation : Mettre en place une journalisation appropriée avec rotation pour les environnements de production.

  4. Notifications d'erreur : Configurez les notifications par e-mail ou Slack en cas d'échec des scripts.

  5. 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/

A
Ayan est l'auteur de cet article de solution.

L'avez-vous trouvé utile ? Oui Non

Envoyez vos commentaires
Désolé, nous n'avons pas pu vous aider. Aidez-nous à améliorer cet article en nous faisant part de vos commentaires.