Integración con SIEM
La integración con SIEM le permite reenviar los eventos de auditoría de su cuenta de Signatura Connect a su plataforma de seguridad (Splunk HEC, Microsoft Sentinel, Datadog, Elastic, etc.) en tiempo real, mediante webhooks HTTPS con un esquema JSON inspirado en OCSF.
Esto le permite centralizar la visibilidad de eventos de seguridad — inicios de sesión, cambios de configuración, operaciones sobre documentos, uso de API keys — junto con el resto de las señales de su infraestructura.
Esta integración se habilita a pedido. Si necesita activarla en su cuenta, contáctenos en soporte@signatura.co.
Configuración
Diríjase a Configuración > Seguridad desde el menú de usuario en la esquina superior derecha y busque la sección SIEM > Envío de logs.
Si todavía no hay un destino configurado, haga clic en Configurar para abrir el formulario. Si ya existe uno, use el menú Configurar para acceder a las acciones de edición, prueba, habilitación/deshabilitación y eliminación.
Campos del formulario
| Campo | Requerido | Descripción |
|---|---|---|
| URL del endpoint | Sí | Debe ser HTTPS. No se aceptan certificados autofirmados ni hosts locales. |
| Autenticación | Sí | Tipo de autenticación. Las opciones se describen abajo. |
| Token / Usuario / Contraseña | Depende | Los campos visibles dependen del tipo de autenticación elegido. |
Las credenciales se almacenan cifradas y quedan enmascaradas en la interfaz después de guardarlas. Al editar, deje el campo en blanco para conservar el valor actual.
Tipos de autenticación
| Tipo | Header Authorization generado | Uso típico |
|---|---|---|
| Sin autenticación | (no se envía) | Endpoints internos protegidos por otros medios. |
| Bearer Token | Authorization: Bearer <token> | La mayoría de los SIEM (Sentinel, Datadog, Elastic). |
| Splunk HEC | Authorization: Splunk <token> | Splunk HTTP Event Collector. |
| Basic Auth | Authorization: Basic <base64(usuario:contraseña)> | Endpoints HTTP que requieren credenciales básicas. |
Acciones disponibles
Una vez configurado un destino, el menú Configurar ofrece:
- Editar: modifica la URL, el tipo de autenticación o las credenciales.
- Enviar evento de prueba: envía un evento sintético del tipo
siem.testa su endpoint, con"test": trueen el payload, para que pueda validar la integración antes de habilitarla. - Deshabilitar / Habilitar: detiene o reanuda el envío de eventos sin borrar la configuración.
- Eliminar: borra el destino por completo.
Las acciones de configuración y deshabilitación generan a su vez eventos de auditoría (siem.configure, siem.disable) que se reenvían al SIEM antes de detener la entrega.
Transporte y entrega
| Aspecto | Valor |
|---|---|
| Método | POST |
| Content-Type | application/json; charset=utf-8 |
| TLS | Obligatorio, mínimo TLS 1.2 |
| Autenticación | Según el tipo configurado (ver arriba) |
| Timeout | 10 segundos por intento |
Un intento de entrega se considera fallido si se agota el timeout o si el servidor responde con un código de estado distinto de 2xx.
Política de reintentos
Signatura Connect garantiza entrega al menos una vez. Si un envío falla, se reintenta con retroceso exponencial durante un período acotado. Los eventos que no se entregan dentro de esa ventana se descartan: no existe una cola persistente.
Orden y deduplicación
- El orden de entrega es best-effort y no está garantizado, especialmente bajo reintentos.
- Cada evento incluye un campo
idestable (UUID v7) que se mantiene entre reintentos. Su integración debe aplicar idempotencia en base a esteid.
Esquema de eventos
Todos los eventos comparten un mismo envelope. El esquema está inspirado en OCSF (toma sus convenciones de nombres) pero no es formalmente OCSF.
Envelope
{
"id": "evt_01HXYZ9ABC",
"schema_version": "1.0",
"timestamp": "2026-03-09T14:32:00.000Z",
"type": "user.login",
"category": "authentication",
"tenant_id": "org_12345",
"outcome": "success",
"actor": {
"id": "usr_abc123",
"email": "alice@acme.com",
"type": "user"
},
"target": {
"id": "doc_xyz789",
"type": "document",
"name": "Contrato Q1 2026"
},
"context": {
"ip_address": "203.0.113.42",
"user_agent": "Mozilla/5.0..."
},
"data": {}
}
Campos del envelope
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
id | string | Sí | Identificador único del evento (UUID v7). Úselo para deduplicar. |
schema_version | string | Sí | Versión del esquema. Actualmente "1.0". Se incrementa en cambios incompatibles. |
timestamp | string | Sí | Marca temporal en formato ISO 8601 UTC. |
type | string | Sí | Tipo de evento en notación punteada (ver catálogo). |
category | string | Sí | Una de: authentication, account, document, api, admin. |
tenant_id | string | Sí | Identificador de su cuenta en Signatura. |
outcome | string | Sí | success o failure. |
actor | object | Sí | Quién originó el evento. Ver abajo. |
target | object | No | Sobre qué recurso se realizó la acción, cuando aplica. |
context | object | No | Metadatos de la solicitud (IP, user agent). |
data | object | No | Payload específico del tipo de evento. |
Objeto actor
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
actor.id | string | Sí | ID del usuario, o "system" para eventos automatizados. |
actor.email | string | No | Email del usuario en el momento del evento. |
actor.type | string | Sí | Uno de: user, api_key, system. |
actor.api_key_id | string | No | Presente cuando actor.type es api_key. |
Objeto target
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
target.id | string | Sí | ID del recurso afectado. |
target.type | string | Sí | Uno de: user, document, workspace, api_key, webhook. |
target.name | string | No | Etiqueta legible del recurso. |
Objeto context
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
context.ip_address | string | No | Dirección IP del cliente. |
context.user_agent | string | No | User agent del navegador o cliente. |
Estabilidad del esquema
El campo type y todos los campos del envelope forman parte de una API pública versionada. Ningún campo se renombra ni se elimina sin incrementar schema_version. Los cambios aditivos (campos nuevos) se introducen sin cambiar la versión, por lo que su integración debe tolerarlos.
Catálogo de eventos
Los eventos se agrupan en categorías. Signatura Connect reenvía todos los eventos cuyo tipo esté listado abajo a su destino SIEM.
Autenticación (authentication)
| Tipo de evento | Cuándo se emite |
|---|---|
user.login | Inicio de sesión exitoso (cualquier método). |
user.login_failure | Intento fallido de inicio de sesión. |
user.password_change | Cambio de contraseña. |
Los inicios de sesión vía SSO se reportan como user.login. Eventos granulares de MFA (challenge correcto/incorrecto, alta/baja de dispositivo) no están disponibles actualmente.
Cuenta y usuarios (account)
| Tipo de evento | Cuándo se emite |
|---|---|
user.create | Usuario provisionado. |
user.suspend | Usuario suspendido. |
user.reactivate | Usuario reactivado. |
user.role_change | Cambio de rol o permisos. |
workspace.create | Espacio de trabajo creado. |
workspace.change | Configuración del espacio modificada. |
workspace.delete | Espacio de trabajo eliminado. |
workspace.add_member | Miembro agregado al espacio. |
workspace.remove_member | Miembro removido del espacio. |
workspace.transfer_documents | Documentos transferidos entre espacios. |
Documentos y firmas (document)
| Tipo de evento | Cuándo se emite |
|---|---|
document.create | Documento creado. |
document.change | Documento modificado. |
document.submit | Documento enviado a firmar. |
document.complete | Todas las partes firmaron. |
document.cancel | Documento cancelado. |
document.archive | Documento archivado. |
document.change_workspace | Documento movido entre espacios. |
signature.invalidate | Firma invalidada. |
API e integraciones (api)
| Tipo de evento | Cuándo se emite |
|---|---|
apikey.create | API key generada. |
apikey.disable | API key deshabilitada. |
apikey.enable | API key rehabilitada. |
apikey.delete | API key eliminada. |
apikey.rename | API key renombrada. |
webhook.create | Webhook endpoint creado. |
webhook.delete | Webhook endpoint eliminado. |
webhook.view_secret | Secreto del webhook consultado. |
Administración y configuración (admin)
| Tipo de evento | Cuándo se emite |
|---|---|
settings.change | Configuración de la cuenta modificada. |
siem.configure | Destino SIEM creado o actualizado. |
siem.disable | Streaming SIEM deshabilitado o eliminado. |
siem.test | Evento de prueba enviado desde la interfaz. |
Seguridad y privacidad
- Credenciales cifradas: los tokens y contraseñas se almacenan cifrados y nunca se devuelven en respuestas de API ni quedan registrados en logs.
- TLS obligatorio: las entregas se rechazan sobre HTTP plano. Los certificados autofirmados no son aceptados, y los hosts locales (
localhost,127.0.0.1) están bloqueados en el formulario. - Acceso restringido: la configuración de SIEM sólo es visible para administradores de la cuenta.
- Auto-auditoría: los cambios sobre la configuración generan a su vez eventos SIEM (
siem.configure,siem.disable). - PII en los payloads: los eventos pueden contener email e IP. Es responsabilidad del cliente aplicar las políticas de retención y enmascaramiento adecuadas en su SIEM según su marco regulatorio.
Si su endpoint SIEM está detrás de un firewall, asegúrese de permitir tráfico saliente desde Signatura Connect. Contáctenos para obtener las direcciones IP de origen actualizadas.