Enviar un billete Mis entradas
Bienvenido
Inicio de sesión  Inscríbete

PowerDMARC y Elastic: guía de implementación

Guía de implementación de PowerDMARC Elastic SIEM

Introducción

Con la integración Elastic SIEM de PowerDMARC, puede incorporar y supervisar sin problemas los datos de autenticación de correo electrónico y auditoría de seguridad de dominios directamente en su entorno Elastic Stack. Al aprovechar la API de PowerDMARC y la entrada httpjson integrada de Elastic Agent, las organizaciones pueden crear una integración SIEM optimizada sin scripts externos ni configuraciones complejas: basta con configurarla a través de la interfaz web de Kibana, implementarla y obtener una visibilidad centralizada de su postura de seguridad del correo electrónico en todos los dominios.


Esta guía cubre la configuración completa: desde la instalación de Elastic Agent hasta la configuración de la integración de la API, la creación de canalizaciones de ingesta para la asignación y el enriquecimiento de campos, y la creación de un panel de control de supervisión, todo ello a través de la interfaz de usuario web de Kibana y la consola Dev Tools.


Documentación de la API: https://app.powerdmarc.com/swagger-ui/index.html

Documentación alternativa: https://api.powerdmarc.com/


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.


API REST de PowerDMARC

        ↓

Agente Elastic (entrada httpjson): instalado en su host.

        ↓

Canalización de ingesta de Elasticsearch (mapeo ECS, GeoIP, deduplicación)

        ↓

Flujo de datos de Elasticsearch (logs-powerdmarc.audit-*)

        ↓

Kibana (Descubrir, Paneles, Alertas, Reglas de detección)


El agente Elastic se ejecuta en su máquina host (Windows, Linux o macOS) y consulta la API de PowerDMARC a intervalos configurables. Cada respuesta se divide en eventos de registro de auditoría individuales, se procesa a través de un canal de ingesta para la normalización y el enriquecimiento de campos, y se almacena en un flujo de datos de Elasticsearch. Kibana proporciona la capa de visualización y alertas.

Requisitos previos

Antes de comenzar, asegúrese de tener:


  • Implementación de Elastic Stack 8.x (Elastic Cloud o autogestionado) con acceso a Kibana.

  • Flota habilitada en su implementación de Elastic

  • Permiso para crear canalizaciones de ingesta, políticas de agentes y políticas de paquetes.

  • Una máquina host (Windows, Linux o macOS) en la que instalar Elastic Agent.

  • Un token de portador de API de PowerDMARC con permiso para acceder a los registros de auditoría.

  • Conectividad de red desde el host tanto a la API de PowerDMARC como a su clúster de Elasticsearch.

Pasos de configuración

Toda la configuración se realiza a través de la consola Kibana Dev Tools. Esto proporciona una interfaz única para crear canalizaciones, gestionar políticas de Fleet y verificar la ingesta de datos.

Paso 1: Abre la consola de herramientas de desarrollo.

  1. Abre la URL de Kibana en el navegador.

  2. Haga clic en el menú hamburguesa (☰) situado en la parte superior izquierda.

  3. Desplácese hacia abajo hasta Administración y haga clic en Herramientas de desarrollo.

  4. El editor de consola se abre con un panel izquierdo (entrada) y un panel derecho (respuesta).

  5. Borra cualquier código de ejemplo predeterminado en el panel izquierdo.


Paso 2: Crear el canal de ingesta

El canal de ingesta normaliza los campos sin procesar de la API de PowerDMARC al formato Elastic Common Schema (ECS), enriquece las direcciones IP con datos GeoIP y genera un ID de documento basado en huellas digitales para la deduplicación.


Pega y ejecuta lo siguiente en Dev Tools:


PUT _ingest/pipeline/powerdmarc-audit-pipeline

{

  «descripción»: «Procesar los registros de auditoría de PowerDMARC en los campos ECS»,

  «procesadores»: [

    {

      "json": {

        «campo»: «mensaje»,

        «campo_destino»: «powerdmarc»

      }

    },

    {

      "date": {

        «campo»: «powerdmarc.created_at»,

        «formatos»: [«aaaa-MM-dd HH:mm:ss»],

        «campo_destino»: «@timestamp»

      }

    },

    {

      "rename": {

        «campo»: «powerdmarc.nombre_de_usuario»,

        «campo_destino»: «nombre_usuario»,

        «ignorar_ausentes»: verdadero

      }

    },

    {

      "rename": {

        «campo»: «powerdmarc.action»,

        «campo_destino»: «acción.evento»,

        «ignorar_ausentes»: verdadero

      }

    },

    {

      "rename": {

        «campo»: «powerdmarc.ip_address»,

        «campo_destino»: «fuente.ip»,

        «ignorar_ausentes»: verdadero

      }

    },

    {

      "rename": {

        «campo»: «powerdmarc.a_username»,

        «campo_destino»: «nombre_del_usuario.destino»,

        «ignorar_ausentes»: verdadero

      }

    },

    {

      "rename": {

        «campo»: «powerdmarc.other»,

        «campo_destino»: «motivo_del_evento»,

        «ignorar_ausentes»: verdadero

      }

    },

    { "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": {

        «campo»: «source.ip»,

        «campo_destino»: «source.geo»,

        «ignorar_ausentes»: verdadero

      }

    },

    {

      "fingerprint": {

        "campos": ["nombre.del.usuario", "acción.del.evento",

                    «source.ip», «@timestamp»],

        «campo_destino»: «_id»,

        «ignorar_ausentes»: verdadero

      }

    },

    {

      "remove": {

        «campo»: [«powerdmarc», «mensaje»],

        «ignorar_ausentes»: verdadero

      }

    }

  ]

}


Respuesta esperada:

{ "acknowledged": true }


Paso 3: Busque el número de póliza de su agente

Necesita el ID de la política de agente donde se adjuntará la integración. Ejecute:


OBTENER kbn:/api/fleet/agent_policies


En la respuesta, localice la política que desea utilizar y copie su valor de identificación. Si tiene varias políticas, utilice la asignada al host que ejecuta Elastic Agent, que normalmente no es la política del servidor de flota.

Paso 4: Crear la integración httpjson

Esto crea una integración httpjson gestionada por Fleet que sondea la API de PowerDMARC, gestiona la autenticación, la paginación y la división de respuestas, todo ello configurado a través de una única llamada a la API.


Antes de ejecutar, sustituya dos marcadores de posición:

  • ID_DE_SU_AGENTE : el ID del paso 3.

  • TU_POWERDMARC_API_KEY - su token de portador de la API de PowerDMARC


POST kbn:/api/fleet/package_policies

{

  «policy_ids»: [«YOUR_AGENT_POLICY_ID»],

  "package": { "name": "httpjson", "version": "1.24.0" },

  «nombre»: «powerdmarc-audit-logs»,

  "descripción": "Integración de la API REST de registros de auditoría de PowerDMARC",

  «namespace»: «default»,

  "inputs": {

    "generic-httpjson": {

      «habilitado»: verdadero,

      "streams": {

        "httpjson.generic": {

          «habilitado»: verdadero,

          "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»,

                  «valor»: «TU_CLAVE_API_AQUÍ»

                }

              }

            ],

            «response_split»: «target: body.data»,

            «response_pagination»: [

              {

                "set": {

                  «target»: «url.params.page»,

                  «valor»: «[[.última_respuesta.cuerpo.página_actual]]»,

                  «fail_on_template_error»: true

                }

              }

            ],

            «request_redirect_headers_ban_list»: [],

            «oauth_scopes»: [],

            «etiquetas»: [«reenviado», «powerdmarc-audit»]

          }

        }

      }

    }

  }

}



Respuesta esperada:

{

  "item": {

    "id": "<integration-id>",

    «nombre»: «powerdmarc-audit-logs»,

    ...

  }

}

Paso 5: Instalar Elastic Agent

El agente Elastic debe instalarse en un equipo host que tenga acceso de red tanto a la API de PowerDMARC como a su clúster de Elasticsearch. El agente se ejecuta como un servicio y se gestiona de forma remota a través de Fleet.

Puede descargar el agente directamente desde el sitio web de Elastic aquí


Paso 6: Validar la ingesta de datos

Después de que el agente recoja la política (normalmente en 1-2 minutos), la primera obtención de la API debería realizarse automáticamente. Verifique que los datos fluyen:


6a. Compruebe el recuento de documentos.

En Dev Tools:

OBTENER registros-powerdmarc.audit-*/_count


Un recuento superior a 0 confirma que los datos se están recibiendo.


6b. Inspeccionar un documento de muestra

GET logs-powerdmarc.audit-*/_search?size=1


Verifique que el documento contenga campos ECS correctamente analizados:

  • nombre_usuario — el nombre de usuario que realizó la acción

  • evento.acción — descripción de la acción realizada

  • fuente.ip — dirección IP de origen

  • source.geo.* — Enriquecimiento GeoIP (país, ciudad, coordenadas)

  • @timestamp — marca de tiempo del evento analizada


6c. Verificar en Discover

  1. Navega a Analytics → Descubrir.

  2. Haga clic en el menú desplegable de vistas de datos y seleccione o cree una vista de datos para logs-powerdmarc.audit-*.

  3. Establezca el intervalo de tiempo en Últimos 30 días.

  4. Los eventos del registro de auditoría deben aparecer con todos los campos asignados.

Paso 7: Crear una vista de datos de Kibana

Cree una vista de datos dedicada para que los datos de auditoría de PowerDMARC aparezcan en Discover y puedan utilizarse en las visualizaciones del panel de control.


Ejecutar en Dev Tools:


POST kbn:/api/data_views/data_view

{

  "data_view": {

    «título»: «logs-powerdmarc.audit-*»

    "nombre": "Registros de auditoría de PowerDMARC",

    «timeFieldName»: «@timestamp»

  }

}


Anote el valor de identificación devuelto, ya que lo necesitará si desea crear paneles de control mediante programación.

Paso 8: Crear un panel de control

Puede descargar el archivo dashboard.txt adjunto al final de esta guía y ejecutarlo con Dev Tools para crear automáticamente el panel de control. 

Próximos pasos

En este punto, los registros de auditoría de PowerDMARC se han incorporado correctamente a Elastic. Ahora puede:


  • Cree reglas de detección para actividades sospechosas (por ejemplo, inicios de sesión desde direcciones IP o países inesperados, inicios de sesión fallidos, cambios masivos en la configuración).

  • Configure alertas a través del marco de alertas integrado de Elastic o conectores para correo electrónico, Slack, etc.

  • Correlacione los datos de auditoría de PowerDMARC con otros registros de seguridad de su SIEM para obtener una detección completa de amenazas.

  • Amplíe la integración a puntos finales adicionales de la API de PowerDMARC (informes agregados de DMARC, informes forenses).

  • Cree informes de cumplimiento utilizando las funciones de generación de informes de Kibana.


P
PowerDMARC es el autor de este artículo de solución.

¿Le ha resultado útil? No

Enviar comentarios
Sentimos no haber podido ser de ayuda. Ayúdanos a mejorar este artículo con tus comentarios.