Guide de mise en œuvre de PowerDMARC Elastic SIEM
Introduction
Grâce à l'intégration Elastic SIEM de PowerDMARC, vous pouvez facilement intégrer et surveiller vos données d'authentification des e-mails et d'audit de sécurité des domaines directement dans votre environnement Elastic Stack. En tirant parti de l'API PowerDMARC et de l'entrée httpjson intégrée à Elastic Agent, les entreprises peuvent mettre en place une intégration SIEM rationalisée sans scripts externes ni configurations complexes. Il suffit de configurer l'interface web Kibana, de la déployer et d'obtenir une visibilité centralisée sur la sécurité des e-mails dans tous les domaines.
Ce guide couvre l'ensemble de la configuration : de l'installation de l'agent Elastic à la configuration de l'intégration API, en passant par la création de pipelines d'ingestion pour le mappage et l'enrichissement des champs, et la création d'un tableau de bord de surveillance. Toutes ces opérations s'effectuent via l'interface utilisateur Web Kibana et la console Dev Tools.
Documentation API : https://app.powerdmarc.com/swagger-ui/index.html
Documentation alternative : https://api.powerdmarc.com/
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.
API REST PowerDMARC
↓
Agent élastique (entrée httpjson) — installé sur votre hôte
↓
Pipeline d'ingestion Elasticsearch (mappage ECS, GeoIP, déduplication)
↓
Flux de données Elasticsearch (logs-powerdmarc.audit-*)
↓
Kibana (Découverte, Tableaux de bord, Alertes, Règles de détection)
L'agent Elastic s'exécute sur votre machine hôte (Windows, Linux ou macOS) et interroge l'API PowerDMARC à un intervalle configurable. Chaque réponse est divisée en événements de journal d'audit individuels, traitée via un pipeline d'ingestion pour la normalisation et l'enrichissement des champs, puis stockée dans un flux de données Elasticsearch. Kibana fournit la couche de visualisation et d'alerte.
Conditions préalables
Avant de commencer, assurez-vous d'avoir :
Déploiement d'Elastic Stack 8.x (Elastic Cloud ou autogéré) avec accès à Kibana
Fleet activé dans votre déploiement Elastic
Autorisation de créer des pipelines d'ingestion, des politiques d'agent et des politiques de package
Une machine hôte (Windows, Linux ou macOS) sur laquelle installer Elastic Agent.
Un jeton d'accès API PowerDMARC avec autorisation d'accéder aux journaux d'audit
Connectivité réseau entre l'hôte et l'API PowerDMARC ainsi que votre cluster Elasticsearch
Étapes de configuration
Toute la configuration s'effectue via la console Kibana Dev Tools. Celle-ci fournit une interface unique pour créer des pipelines, gérer les politiques Fleet et vérifier l'ingestion des données.
Étape 1 : Ouvrez la console des outils de développement.
Ouvrez l'URL Kibana dans le navigateur.
Cliquez sur le menu hamburger (☰) en haut à gauche.
Faites défiler vers le bas jusqu'à Gestion et cliquez sur Outils de développement.
L'éditeur Console s'ouvre avec un panneau gauche (entrée) et un panneau droit (réponse).
Effacez tout exemple de code par défaut dans le panneau de gauche.
Étape 2 : Créer le pipeline d'ingestion
Le pipeline d'ingestion normalise les champs bruts de l'API PowerDMARC au format Elastic Common Schema (ECS), enrichit les adresses IP avec des données GeoIP et génère un identifiant de document basé sur une empreinte digitale à des fins de déduplication.
Collez et exécutez ce qui suit dans Dev Tools :
PUT _ingest/pipeline/powerdmarc-audit-pipeline
{
« description » : « Traitement des journaux d'audit PowerDMARC dans les champs ECS »,
« processeurs » : [
{
"json": {
« champ » : « message »,
« target_field » : « powerdmarc »
}
},
{
"date": {
« champ » : « powerdmarc.created_at »,
« formats » : [« aaaa-MM-jj HH:mm:ss »],
« target_field » : « @timestamp »
}
},
{
"rename": {
« champ » : « powerdmarc.user_name »,
« target_field » : « user.name »,
« ignore_missing » : vrai
}
},
{
"rename": {
« champ » : « powerdmarc.action »,
« target_field » : « event.action »,
« ignore_missing » : vrai
}
},
{
"rename": {
« champ » : « powerdmarc.ip_address »,
« target_field » : « source.ip »,
« ignore_missing » : vrai
}
},
{
"rename": {
« champ » : « powerdmarc.a_username »,
« target_field » : « user.target.name »,
« ignore_missing » : vrai
}
},
{
"rename": {
« field » : « powerdmarc.other »,
« target_field » : « event.reason »,
« ignore_missing » : vrai
}
},
{ "set": { "field": "event.kind", "value": "event" } },
{ "set": { "field": "event.category", "value": "configuration" } },
{ "set": { "field": "observer.vendor", "value": "PowerDMARC" } },
{ "set": { "field": "observer.product", "value": "PowerDMARC" } },
{
"geoip": {
« champ » : « source.ip »,
« target_field » : « source.geo »,
« ignore_missing » : vrai
}
},
{
"fingerprint": {
« champs » : [« nom.utilisateur », « action.événement »,
« source.ip », « @timestamp »],
« target_field » : « _id »,
« ignore_missing » : vrai
}
},
{
"remove": {
« field » : [« powerdmarc », « message »],
« ignore_missing » : vrai
}
}
]
}
Réponse attendue :
{ "acknowledged": true }
Étape 3 : Trouvez votre numéro de police d'agent
Vous avez besoin de l'ID de la politique d'agent à laquelle l'intégration sera associée. Exécutez :
GET kbn:/api/fleet/agent_policies
Dans la réponse, localisez la stratégie que vous souhaitez utiliser et copiez sa valeur d'identifiant. Si vous disposez de plusieurs stratégies, utilisez celle attribuée à l'hôte exécutant Elastic Agent, qui n'est généralement pas la stratégie Fleet Server.
Étape 4 : Créer l'intégration httpjson
Cela crée une intégration httpjson gérée par Fleet qui interroge l'API PowerDMARC, gère l'authentification, la pagination et le fractionnement des réponses, le tout configuré via un seul appel API.
Avant de lancer, remplacez deux espaces réservés:
VOTRE_ID_POLICE_D'AGENT - l'identifiant obtenu à l'étape 3
VOTRE_CLÉ_API_POWERDMARC - votre jeton API Bearer PowerDMARC
POST kbn:/api/fleet/package_policies
{
« policy_ids » : [« VOTRE_ID_POLICE_D'AGENT »],
"package": { "name": "httpjson", "version": "1.24.0" },
« nom » : « powerdmarc-audit-logs »,
« description » : « Intégration de l'API REST des journaux d'audit PowerDMARC »,
« namespace » : « default »,
"inputs": {
"generic-httpjson": {
« activé » : vrai,
"streams": {
"httpjson.generic": {
« activé » : vrai,
"vars": {
« data_stream.dataset » : « powerdmarc.audit »,
« pipeline » : « powerdmarc-audit-pipeline »,
« request_url » : « https://app.powerdmarc.com/api/v1/audit-logs »,
« request_interval » : « 60m »,
« request_method » : « GET »,
« request_transforms » : [
{
"set": {
« target » : « url.params.api_key »,
« valeur » : « VOTRE_CLÉ_API_ICI »
}
}
],
« response_split » : « target : body.data »,
« response_pagination » : [
{
"set": {
« target » : « url.params.page »,
« valeur » : « [[.last_response.body.current_page]] »,
« fail_on_template_error » : vrai
}
}
],
« request_redirect_headers_ban_list » : [],
« oauth_scopes » : [],
« tags » : [« transféré », « powerdmarc-audit »]
}
}
}
}
}
}
Réponse attendue :
{
"item": {
"id": "<integration-id>",
« nom » : « powerdmarc-audit-logs »,
...
}
}
Étape 5 : Installer l'agent Elastic
L'agent Elastic doit être installé sur une machine hôte qui dispose d'un accès réseau à l'API PowerDMARC et à votre cluster Elasticsearch. L'agent fonctionne comme un service et est géré à distance via Fleet.
Vous pouvez télécharger l'agent directement depuis le site Web d'Elastic ici
Étape 6 : Valider l'ingestion des données
Une fois que l'agent a récupéré la police (généralement dans un délai de 1 à 2 minutes), la première récupération API devrait se faire automatiquement. Vérifiez que les données circulent :
6a. Vérifier le nombre de documents
Dans les outils de développement :
GET logs-powerdmarc.audit-*/_count
Un nombre supérieur à 0 confirme que les données sont en cours de réception.
6b. Inspecter un document type
GET logs-powerdmarc.audit-*/_search?size=1
Vérifiez que le document contient des champs ECS correctement analysés :
user.name — nom d'utilisateur de la personne qui a effectué l'action
événement.action — description de l'action entreprise
source.ip — adresse IP d'origine
source.geo.* — Enrichissement GeoIP (pays, ville, coordonnées)
@timestamp — horodatage de l'événement analysé
6c. Vérifier dans Discover
Accédez à Analytics → Découvrir.
Cliquez sur le menu déroulant « Data View » (Affichage des données) et sélectionnez ou créez un affichage des données pour logs-powerdmarc.audit-*.
Définissez la plage de temps sur « 30 derniers jours ».
Les événements du journal d'audit doivent apparaître avec tous les champs mappés.
Étape 7 : Créer une vue de données Kibana
Créez une vue de données dédiée afin que les données d'audit PowerDMARC apparaissent dans Discover et puissent être utilisées dans les visualisations du tableau de bord.
Exécuter dans Dev Tools :
POST kbn:/api/data_views/data_view
{
"data_view": {
« title » : « logs-powerdmarc.audit-* »,
« nom » : « Journaux d'audit PowerDMARC »,
« timeFieldName » : « @timestamp »
}
}
Notez la valeur d'identifiant renvoyée : elle est nécessaire si vous souhaitez créer des panneaux de tableau de bord par programmation.
Étape 8 : Créer un tableau de bord
Vous pouvez télécharger le fichier dashboard.txt joint à la fin de ce guide et l'exécuter à l'aide de Dev Tools pour créer automatiquement le tableau de bord.
Prochaines étapes
À ce stade, les journaux d'audit PowerDMARC sont correctement importés dans Elastic. Vous pouvez désormais :
Créer des règles de détection pour les activités suspectes (par exemple, connexions à partir d'adresses IP ou de pays inattendus, échecs de connexion, modifications de configuration en masse)
Configurez les alertes via le cadre d'alerte intégré d'Elastic ou les connecteurs vers les e-mails, Slack, etc.
Corrélation des données d'audit PowerDMARC avec d'autres journaux de sécurité dans votre SIEM pour une détection complète des menaces
Étendre l'intégration à d'autres points de terminaison de l'API PowerDMARC (rapports agrégés DMARC, rapports d'analyse)
Créez des rapports de conformité à l'aide des fonctionnalités de reporting de Kibana.