ADR-009: OCSF como Estandar de Auditoria
Estado: Aceptada
Fecha: 2026-05-18
Autor: Equipo de Arquitectura
Contexto
La plataforma necesita un trail de auditoria que sea:
- Exportable: los tenants deben poder extraer eventos para sus propios sistemas
- Queryable: busquedas eficientes por actor, recurso, fecha, tipo de evento
- Compatible con SIEM: integracion con herramientas enterprise (Splunk, AWS Security Hub, Datadog)
- Extensible: soporte para eventos custom de cada dominio (credito aprobado, firma completada, etc.)
Existen multiples estandares para eventos de seguridad y auditoria:
| Estandar | Origen | Adopcion |
|---|---|---|
| CEF (Common Event Format) | ArcSight/HP | Maduro pero legacy, formato de texto plano |
| CADF (Cloud Auditing Data Federation) | DMTF/OpenStack | Pobre adopcion fuera de OpenStack |
| OCSF (Open Cybersecurity Schema Framework) | AWS + Splunk | Moderno, JSON nativo, creciente adopcion |
Decision
Adoptar OCSF (Open Cybersecurity Schema Framework) como formato estandar para todos los eventos de auditoria de la plataforma.
Justificacion
- Respaldado por AWS y Splunk (dos de los principales consumidores de eventos de seguridad)
- Compatible nativamente con AWS Security Hub (requisito FTR - Foundational Technical Review)
- Schema basado en JSON: facil de producir, consumir y extender
- Taxonomia bien definida con categorias, clases y actividades
- Extensible mediante profiles y extensions para eventos de dominio
Estructura de un Evento OCSF
json
{
"class_uid": 3001,
"class_name": "Account Change",
"category_uid": 3,
"category_name": "Identity & Access Management",
"activity_id": 1,
"activity_name": "Create",
"severity_id": 1,
"severity": "Informational",
"time": 1716048000000,
"message": "User account created during credit origination",
"actor": {
"user": {
"uid": "user-456",
"name": "Sistema de Originacion",
"type": "System"
},
"session": {
"uid": "session-789"
}
},
"src_endpoint": {
"ip": "10.0.1.50",
"name": "imagy-lending"
},
"metadata": {
"version": "1.1.0",
"product": {
"name": "Imagy Platform",
"vendor_name": "ReimagineTech",
"version": "1.0.0"
},
"tenant_uid": "tenant-abc",
"profiles": ["cloud", "financial_services"]
},
"unmapped": {
"credit_id": "credit-123",
"product_id": "microcredito-express",
"pipeline_step": "user_registration"
}
}Categorias Principales Utilizadas
Extension para Eventos Financieros
OCSF permite extensiones custom. Definimos el profile financial_services para eventos especificos del dominio:
typescript
interface FinancialServiceExtension {
credit_id?: string;
product_id?: string;
tenant_id: string;
amount?: {
value: number;
currency: string;
};
pipeline_step?: string;
decision?: 'approved' | 'rejected' | 'pending_review';
}Integracion con AWS Security Hub
Alternativas Consideradas
| Alternativa | Pros | Contras |
|---|---|---|
| CEF (Common Event Format) | Maduro, ampliamente soportado por SIEMs legacy | Formato texto plano, dificil de extender, no nativo en AWS |
| CADF (Cloud Auditing Data Federation) | Estandar abierto, bien especificado | Pobre adopcion, sin soporte nativo en herramientas modernas |
| Formato custom propietario | Maxima flexibilidad, sin restricciones | No interoperable, cada integracion requiere mapeo custom |
| OCSF (elegida) | Moderno, JSON, compatible con AWS Security Hub, extensible | Relativamente nuevo, curva de aprendizaje para el equipo |
Consecuencias
Positivas
- Compatibilidad nativa con AWS Security Hub (requisito para FTR de AWS Partner)
- Exportable a cualquier SIEM moderno sin transformaciones complejas
- Taxonomia estandarizada: los eventos tienen significado consistente entre servicios
- Extensible para eventos de dominio financiero sin romper el schema base
- Facilita compliance (SOC2, ISO 27001) al tener un formato auditable y estandar
Negativas
- Curva de aprendizaje para el equipo (OCSF es relativamente nuevo)
- Algunos eventos de dominio no mapean directamente a categorias OCSF existentes (requieren extensions)
- Overhead de transformacion: los eventos internos deben mapearse a OCSF antes de persistirse
Riesgos
- OCSF es un estandar joven: podria cambiar significativamente en versiones futuras (mitigacion: usar versionado en metadata)
- Si AWS depreca o cambia su soporte de OCSF en Security Hub, requeriria adaptacion
- El campo
unmappedpodria acumular datos no estandarizados si no se mantiene disciplina