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
- Matriz de compatibilidad
- Pre requisitos
- Configuración del Plugin
- Ejecución manual
- Automatización (Crontab)
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.
-
Accede a la consola web de Pandora FMS con un usuario administrador.
-
Navega al menú lateral: Management > Settings -> System Settings -> General Setup -> pestaña Security.
-
Revisa el campo IP list with API access (Lista de IPs API permitidas).
-
Asegúrate de que la IP del servidor que ejecutará el script (o
127.0.0.1si es ejecución local) esté incluida en la lista separada por comas. Nota: También puedes usar un*para permitir cualquier IP. -
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:
-
API_URL: La ruta completa hacia la API v2 de tu Pandora FMS. Debe terminar en
/api/v2
(Ejemplo:http://192.168.1.100/pandora_console/api/v2). -
TOKEN: El token de autorización de la API de Pandora FMS obtenido en el paso anterior.
-
MISP_URL: La dirección web de tu instancia de MISP (Ejemplo:
https://misp.midominio.com). -
MISP_KEY: La clave de autenticación (Auth Key) de tu usuario en MISP. Puedes generarla en MISP yendo a Global Actions -> My Profile -> Auth Keys.
-
RULE_ID: El identificador numérico de la regla SIEM que el script va a crear o actualizar en Pandora FMS
(por ejemplo:200200).
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..
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:
-
0 2 * * *: Indica que el script se ejecutará en el minuto 0 de la hora 2 (2:00 AM), todos los días del mes y de la semana. -
root: Al usar el crontab del sistema, es obligatorio especificar el usuario que ejecutará la acción. Usamosrootpara garantizar que no haya problemas de permisos al escribir en el archivo de log. -
Rutas absolutas: Es imprescindible utilizar la ruta completa al binario de Python (
/usr/bin/python3) y al script (/usr/share/pandora_server/util/plugin/misp_to_pandora.py), ya que el entorno decrones muy limitado y no siempre carga las variables$PATHdel sistema. -
> /dev/null 2>&1: Esta instrucción silencia la salida estándar en la consola de cron. No te preocupes por perder información, ya que el propio script se encarga de guardar todo el historial detallado de éxitos y errores en su propio archivo de registro (/var/log/pandora/misp_api_sync.log).
Guarda los cambios y sal del editor. El servicio cron detectará automáticamente la modificación del archivo y aplicará la nueva tarea.