Plugin MISP to Pandora SIEM

Este plugin se encarga de obtener las 500 IPs más repetidas de los ultimos 30 días de los eventos MISP y genera una regla SIEM para detectar tráfico de esas IPs.

Introducción

Ver. 06/03/2026

Plugin para generar una regla en SIEM con las 500 IPs maliciosas mas activas reportadas en MISP

Tipo: Plugin de Servidor

Matriz de compatibilidad

Sistemas donde se ha probado

Rocky Linux 9

Sistemas donde debería funcionar

Cualquier sistema linux

Pre requisitos

Para el correcto funcionamiento del plugin es necesario contar con Python 3.10 o superior y la librería PyMISP instalada.

Se pueden instalar los requisitos con el siguiente comando:

En Rocky Linux 8 y 9:

# Instalar Python y las dependencias de compilación necesarias

sudo dnf install -y python3.11 python3.11-devel python3.11-pip gcc libffi-devel openssl-devel

# Instalar PyMISP y dependencias

sudo pip3.11 install pymisp requests urllib3

En Ubuntu 22.04:

# Instalar Python y las dependencias de compilación necesarias

sudo apt update && sudo apt install -y python3 python3-dev python3-pip libffi-dev libssl-dev build-essential

# Instalar PyMISP y dependencias

sudo pip3 install pymisp requests urllib3 --break-system-packages

Una vez instaladas todas las dependencias continuar con la configuración del plugin.

Configuración del Plugin

Antes de ejecutar el plugin, es necesario ubicar el script en el servidor, otorgarle permisos de ejecución y recopilar los datos de conexión tanto de Pandora FMS como de MISP.


1. Ubicación y Permisos

Recomendamos alojar el script misp_to_pandora.py en el directorio estándar de plugins del servidor de Pandora FMS.

Sube el archivo al servidor y ejecuta el siguiente comando para darle permisos de ejecución:

chmod +x /usr/share/pandora_server/util/plugin/misp_to_pandora.py

2. Configuración de la API de Pandora FMS (ACL)

Para que el script pueda inyectar las reglas mediante la API, la IP desde la que se ejecuta debe estar autorizada.

  1. Accede a la consola web de Pandora FMS con un usuario administrador.

  2. Navega al menú lateral: Management > Settings -> System Settings -> General Setup -> pestaña Security.

  3. Revisa el campo IP list with API access (Lista de IPs API permitidas).

  4. Asegúrate de que la IP del servidor que ejecutará el script (o 127.0.0.1 si es ejecución local) esté incluida en la lista separada por comas. Nota: También puedes usar un * para permitir cualquier IP.

  5. Por último genera el token de autorización de la API V2 siguiendo las instrucciones de esta documentación.


3. Recopilación de Parámetros

El script requiere 5 parámetros obligatorios que deben pasarse en un orden específico durante su ejecución. Ten a mano los siguientes datos:

Recomendamos usar un ID alto para evitar conflictos con las reglas nativas del sistema o reglas personalizadas previamente creadas.

Una vez que tenga todos los datos correctamente apuntados pasaremos a la ejecución del plugin.

Ejecución manual

Una vez configurados los permisos y recopilados los datos de acceso, es muy recomendable realizar una primera ejecución manual desde la terminal del servidor. Esto nos permitirá confirmar que hay conectividad bidireccional (con MISP y con la API de Pandora FMS) y verificar que la regla se inyecta correctamente en el motor SIEM.


1. Ejecución en terminal:

Estructura del comando: El script debe ejecutarse llamando a python3 y pasándole los 5 parámetros entre comillas para evitar problemas con caracteres especiales:

python3 /usr/share/pandora_server/util/plugin/misp_to_pandora.py "<PANDORA_API_URL>" "<PANDORA_TOKEN>" "<MISP_URL>" "<MISP_KEY>" "<RULE_ID>"

Ejemplo de ejecución real:

python3 /usr/share/pandora_server/util/plugin/misp_to_pandora.py "http://192.168.1.142/pandora_console/api/v2" "ff94a1fa-5cc4-4636..." "https://misp.midominio.com" "lpY9q5yy72SC..." "200200"

2. Verificación de resultados

Si la ejecución ha sido exitosa, el script conectará con MISP, descargará las IPs maliciosas de los últimos 30 días, generará la expresión regular y recargará el motor SIEM.

Puedes verificar que todo ha ido bien de dos formas:

1. Revisando el Log del plugin:

El script genera un archivo de registro detallado en /var/log/pandora/misp_api_sync.log.

Puedes consultarlo con:

tail -f /var/log/pandora/misp_api_sync.log

Un log exitoso mostrará líneas indicando la cantidad de atacantes encontrados, la creación (o actualización) de la regla y un mensaje final de Hot-Reload SUCCESSFUL..

image.png

2. Revisando la consola de Pandora FMS:

Accede a SIEM -> Rules y busca el ID que hayas utilizado (ej. 200200). Verás que la regla se ha creado con severidad 14 (Crítica) y contiene la lista completa de IPs lista para detectar intrusiones en tus logs.

Una vez que compruebas que esta la regla creada correctamente en el apartado Rules del SIEM entonces podemos pasar a configurar su ejecución periódica en crontab.

Automatización (Crontab)

Dado que la inteligencia de amenazas de MISP recibe constantemente nuevos Indicadores de Compromiso (IoCs), es fundamental automatizar la ejecución del script. De esta forma, Pandora FMS actualizará su Mega-Regex de forma autónoma sin requerir intervención manual, manteniendo el motor SIEM siempre protegido contra las amenazas más recientes.

Para automatizar la tarea a nivel de servidor, editaremos el archivo crontab global del sistema.


1. Editar el archivo crontab

Accede a la terminal del servidor donde has alojado el script y edita el archivo /etc/crontab con privilegios de administrador usando tu editor favorito (vim, nano, etc.):

sudo vim /etc/crontab

2. Añadir la tarea programada

Añade la siguiente línea al final del archivo. En este ejemplo, configuraremos el sistema para que ejecute la sincronización todos los días de madrugada a las 02:00 AM:

0 2 * * * root /usr/bin/python3 /usr/share/pandora_server/util/plugin/misp_to_pandora.py "<PANDORA_API_URL>" "<PANDORA_TOKEN>" "<MISP_URL>" "<MISP_KEY>" "200200" > /dev/null 2>&1

Recuerda sustituir los parámetros <...> por tus credenciales y URLs reales, exactamente igual que en la prueba manual.

Detalles importantes sobre esta configuración:

Guarda los cambios y sal del editor. El servicio cron detectará automáticamente la modificación del archivo y aplicará la nueva tarea.