Skip to content

Exportación a SIEM (CEF)

El equipo de seguridad del cliente reúne los eventos de todos sus sistemas en un único SIEM y los analiza allí, no en el panel de cada sistema por separado. Mcaster entrega el registro de auditoría en formato CEF (Common Event Format): un formato de texto, una línea por evento, con los campos separados por delimitadores. ArcSight, KUMA, MaxPatrol SIEM y otros receptores corporativos lo aceptan sin ninguna adaptación.

La exportación entrega la ventana elegida del diario entera, en un solo archivo, de las anotaciones más antiguas a las más recientes. Se puede obtener de dos maneras:

  • con el botón Exportar a CEF de la sección Registro de auditoría: el navegador guarda el archivo;
  • con una petición a la API: así recoge el diario el recolector del SIEM según un calendario.

La exportación es la misma lectura del diario que el listado del panel: los mismos permisos, la misma opción de licencia, las mismas anotaciones. Para ella Mcaster no crea archivos en la máquina ni abre conexiones salientes hacia un receptor.

Exportar desde el panel

El botón Exportar a CEF está sobre el listado, junto a Aplicar. Exporta exactamente lo que muestra el listado:

  • Tipo de recurso, Nombre del recurso y Actor acotan la exportación igual que acotan el listado;
  • Desde y Hasta fijan la ventana de tiempo;
  • los campos vacíos significan «no filtrar»: se exporta todo el diario dentro de su retención.

La exportación toma los filtros aplicados. Si después de pulsar Aplicar se corrigió un campo pero el listado no se volvió a leer, la exportación usa el valor anterior: el archivo siempre coincide con lo que se ve en pantalla.

El archivo se llama audit-log.cef. Contiene todas las anotaciones de la ventana, no solo las páginas que el listado ya ha cargado.

El botón lo ven los mismos roles que el propio diario: security y superadmin. Cuando el diario no está incluido en la licencia, el botón está desactivado.

El archivo se arma en la memoria de la pestaña del navegador. Para una ventana de varios días es suficiente; el diario de un periodo de retención largo conviene recogerlo por la API.

Exportar por la API

GET /central/api-v4/audit-log/export?format=cef&from=2026-09-27T00:00:00Z&to=2026-09-27T12:00:00Z

La autorización es la misma autorización de operador que en el resto de la API de gestión, y los roles también: security y superadmin.

Parámetros:

  • format — obligatorio; por ahora el único valor es cef;
  • from, to — los límites de la ventana en formato RFC 3339, ambos incluidos en la ventana;
  • resource_type, resource_name, actor, actor_type — los mismos filtros que en el panel; actor_type admite admin, static y node.

La respuesta es texto (text/plain), como adjunto con el nombre audit-log.cef. Llega en flujo: las primeras líneas llegan de inmediato y el servidor guarda en memoria una sola página del diario, así que el tamaño de la ventana no está limitado por nada.

Rechazos:

  • 400 — un límite de la ventana no está en formato RFC 3339, o el formato falta o es desconocido. Una petición no válida nunca se convierte en una exportación de todo el diario;
  • 403 — el rol no tiene acceso al diario;
  • 404 — el registro de auditoría no está incluido en la licencia.

Si la exportación se corta a mitad de la transferencia —por ejemplo, falla la base de datos en el lado de la máquina—, la respuesta termina como una transferencia incompleta: curl informa de una conexión cortada y el navegador marca la descarga como fallida. Un archivo que llegó entero contiene toda la ventana.

Sin to, la ventana queda abierta hacia delante: las anotaciones hechas mientras la exportación está en curso también entran. Si hace falta un límite fijo, indique to.

La línea CEF

Cada evento es una línea:

CEF:0|Flussonic|mcaster|26.09|stream_config.patch|stream_config.patch|3|rt=1790590530250 externalId=0f6b8a1e-6a3c-5d7e-9b1a-2c3d4e5f6a7b dvchost=11111111-2222-3333-4444-555555555555 suid=admin suser=ivanov outcome=success src=10.20.1.11 cs1=stream cs1Label=resourceType cs2=conference-a cs2Label=resourceName cs3=9c1f07e2 cs3Label=sessionId cs4=4bf92f3577b34da6a3ce929d0e0e4736 cs4Label=traceId cs5={"fields":["labels"],"role":"admin","src_ip":"10.20.1.11","version":7} cs5Label=details cn1=3672 cn1Label=auditId cn2=1 cn2Label=schemaVersion

La cabecera, hasta la séptima barra vertical:

  • Device Vendor — Flussonic;
  • Device Product — mcaster: por él el SIEM elige sus reglas de análisis;
  • Device Version — la versión de Mcaster instalada;
  • Device Event Class ID y Name — la acción, el mismo nombre de máquina que en la columna Acción del listado: stream_config.patch, admin.create, auth.login_failed;
  • Severity — la gravedad del evento, descrita más abajo.

Después vienen los campos, en forma de clave=valor:

Campo CEF Qué contiene
rt el momento del evento, en milisegundos desde la época
externalId el identificador global del evento: por él el SIEM descarta los duplicados
dvchost el identificador de la instalación de Mcaster: los eventos de dos instalaciones en un mismo SIEM no se mezclan
suid el tipo de actor: admin, static (clave estática) o node (registro de una máquina del clúster)
suser el login del administrador; la clave estática no lo tiene
outcome success para una acción que llegó a producirse, failure para un inicio de sesión fallido
src la dirección desde la que llegó la petición
cs1, cs2 tipo y nombre del recurso (cs1Label=resourceType, cs2Label=resourceName)
cs3 el identificador de la sesión del administrador (cs3Label=sessionId): une un inicio de sesión con todo lo hecho en esa sesión
cs4 el identificador de trazado de la petición (cs4Label=traceId): con él el evento se cruza con los logs
cs5 los detalles de la anotación en JSON (cs5Label=details): rol, versión del documento, lista de campos editados
cn1 el número de la anotación en el diario de la instalación (cn1Label=auditId)
cn2 la versión del esquema del evento (cn2Label=schemaVersion)

Los campos que un evento no tiene no aparecen en la línea en absoluto: una clave vacía el SIEM la leería como un valor vacío. Una acción con la clave estática, por ejemplo, no tiene ni suser ni cs3.

Los caracteres especiales se escapan como exige la especificación CEF: en la cabecera, la barra invertida y la barra vertical; en los campos, la barra invertida y el signo igual; los saltos de línea se convierten en \n. Por eso un evento ocupa siempre exactamente una línea, contengan lo que contengan sus valores.

Gravedad del evento

La gravedad no se guarda en el diario: se deduce del evento al exportarlo, con una misma tabla:

  • 7 — una acción fallida; por ahora, un intento fallido de inicio de sesión (auth.login_failed);
  • 5 — una acción que el equipo de seguridad espera por encima del flujo general:

    • el borrado de cualquier cosa, la revocación de una máquina, la reemisión de los tickets internos del clúster, la revelación del token de unión;
    • cualquier acción sobre las cuentas de administradores;
    • la edición de los ajustes de acceso y de los ajustes de la propia instalación de control;
    • la apertura y el cierre de la ventana de unión;
    • cualquier acción con la clave estática: un inicio de sesión con las credenciales de emergencia merece atención por sí mismo;
  • 3 — todo lo demás: edición de streams, plantillas, fuentes de la guía, el inicio de sesión de un administrador.

Las reglas se basan en la forma de la acción y no en una lista hecha de antemano, así que las acciones que aparezcan en versiones futuras reciben su gravedad por las mismas reglas.

Recogida periódica en un SIEM

El recolector del SIEM recoge el diario por ventanas según un calendario: cada petición toma como from el to de la anterior. Los dos límites pertenecen a la ventana, así que una anotación que cae justo en la junta llega dos veces, y el SIEM descarta el duplicado por externalId. Del mismo modo se repite sin pérdidas una ventana tras un corte.

Una ventana no debe ir más allá de la retención del diario: siete días por defecto (el ajuste audit_log_ttl_secs, véase Conservación y protección). Un recolector que se ha retrasado más tiempo solo encontrará lo que todavía no se ha borrado.

A un recolector que lee JSON también le sirve el listado del diario con cursor, descrito en la sección Exportación a un SIEM de la página del diario. Los campos del evento son los mismos; solo cambia la forma.