Skip to main content
QMSQMS
QMS
  • Welcome to your QMS
  • Quality Manual
  • Procedures
    • GP-001 Control of documents
    • GP-002 Quality planning
    • GP-003 Audits
    • GP-004 Vigilance system
    • GP-005 Human Resources and Training
    • GP-006 Non-conformity, Corrective and Preventive actions
    • GP-007 Post-market surveillance
    • GP-008 Product requirements
    • GP-009 Sales
    • GP-010 Purchases and suppliers evaluation
    • GP-011 Provision of service
    • GP-012 Design, redesign and development
    • GP-013 Risk management
    • GP-014 Feedback and complaints
    • GP-015 Clinical evaluation
    • GP-016 Traceability and identification
    • GP-017 Technical assistance service
    • GP-018 Infrastructure and facilities
    • GP-019 Software validation plan
    • GP-020 QMS Data analysis
    • GP-021 Communications
    • GP-022 Document translation
    • GP-023 Change control management
    • GP-024 Predetermined Change Control Plan
    • GP-025 Usability and Human Factors Engineering
    • GP-027 Corporate Governance
    • GP-028 AI Development
    • GP-029 Software Delivery And Comissioning
    • GP-050 Data Protection
    • GP-051 Security violations
    • GP-052 Data Privacy Impact Assessment (DPIA)
    • GP-100 Business Continuity (BCP) and Disaster Recovery plans (DRP)
    • GP-101 Information security
    • GP-200 Remote Data Acquisition in Clinical Investigations
    • GP-026 Market-specific product requirements
    • GP-110 Esquema Nacional de Seguridad
      • ORG Marco organizativo
      • OP Marco operacional
        • OP.PL Planificación
        • OP.ACC Control de acceso
        • OP.EXP Explotación
        • OP.EXT Servicios externos
        • OP.NUB Servicios en la nube
        • OP.CONT Continuidad del servicio
        • OP.MON Monitorización del sistema
          • OP.MON.1 Detección de intrusión
          • OP.MON.2 Sistema de métricas
          • OP.MON.3 Dashboard de KPIs y Métricas ENS
      • MP Medidas de protección
      • Sin asignar
      • Real Decreto 311/2022, de 3 de mayo, por el que se regula el Esquema Nacional de Seguridad.
  • Records
  • Legit.Health Plus Version 1.1.0.0
  • Legit.Health Plus Version 1.1.0.1
  • Licenses and accreditations
  • Applicable Standards and Regulations
  • Public tenders
  • Procedures
  • GP-110 Esquema Nacional de Seguridad
  • OP Marco operacional
  • OP.MON Monitorización del sistema
  • OP.MON.3 Dashboard de KPIs y Métricas ENS

OP.MON.3 Dashboard de KPIs y Métricas ENS

Documentos de referencia​

  • Real Decreto 311/2022, Esquema Nacional de Seguridad
  • CCN-STIC 815: Métricas e indicadores del ENS
  • CCN-STIC 824: Informe del estado de seguridad
  • ISO/IEC 27004:2016 - Monitoring, measurement, analysis and evaluation
  • NIST SP 800-55: Performance Measurement Guide for Information Security

Propósito​

Establecer un sistema integral de indicadores clave de rendimiento (KPIs) y métricas para monitorizar el cumplimiento del ENS en sistemas de categoría MEDIA, específicamente adaptado al rol de Legit Health como proveedor de servicios de dispositivo médico Clase IIa.

Alcance​

Este procedimiento aplica a todos los sistemas, procesos y controles implementados bajo el marco del ENS en Legit Health Plus, incluyendo la medición de efectividad de los tres marcos principales: Organizativo, Operacional y Medidas de Protección.

Marco de KPIs Estratégicos ENS​

1.1 KPIs de Cumplimiento Global​

ENS_Cumplimiento_Global:
Indicadores_Principales:
Puntuación_Cumplimiento_ENS:
objetivo: ">= 95%"
frecuencia_medición: "Mensual"
responsable: "Responsable de Seguridad"
fórmula: "(Controles_implementados / Total_controles_aplicables) × 100"

Madurez_Seguridad:
objetivo: "Nivel 4 (Gestionado)"
frecuencia_medición: "Trimestral"
responsable: "CISO"
escala: "1-5 (Inicial, Repetible, Definido, Gestionado, Optimizado)"

Certificación_ENS_Readiness:
objetivo: "100%"
frecuencia_medición: "Mensual"
responsable: "Comité de Seguridad"
componentes:
- "Documentación completa"
- "Controles implementados"
- "Evidencias disponibles"
- "No conformidades resueltas"

1.2 KPIs por Marco ENS​

Marco Organizativo​

KPIs_Marco_Organizativo:
ORG_1_Política_Seguridad:
indicador: "Conocimiento de la política"
objetivo: ">= 95%"
medición: "Encuestas trimestrales"

ORG_2_Normativa:
indicador: "Actualización normativa"
objetivo: "100% documentos actualizados"
medición: "Revisión mensual"

ORG_3_Procedimientos:
indicador: "Cumplimiento procedimientos"
objetivo: ">= 98%"
medición: "Auditorías internas"

ORG_4_Autorización:
indicador: "Autorizaciones documentadas"
objetivo: "100%"
medición: "Revisión continua"

Marco Operacional​

KPIs_Marco_Operacional:
Planificación:
Análisis_Riesgos:
indicador: "Riesgos evaluados y tratados"
objetivo: "100% riesgos identificados"
frecuencia: "Trimestral"

Arquitectura_Seguridad:
indicador: "Conformidad arquitectura"
objetivo: ">= 95%"
frecuencia: "Semestral"

Control_Acceso:
Gestión_Identidades:
indicador: "Cuentas revisadas"
objetivo: "100% mensual"
umbral_crítico: "< 90%"

Autenticación_Fuerte:
indicador: "Usuarios con MFA"
objetivo: "100% accesos privilegiados"
umbral_crítico: "< 95%"

Explotación:
Gestión_Incidentes:
indicador: "MTTD (Mean Time To Detect)"
objetivo: "< 1 hora"
umbral_crítico: "> 4 horas"

Gestión_Cambios:
indicador: "Cambios exitosos"
objetivo: ">= 98%"
umbral_crítico: "< 95%"

Medidas de Protección​

KPIs_Medidas_Protección:
Protección_Información:
Cifrado_Datos:
indicador: "Datos cifrados en reposo y tránsito"
objetivo: "100%"
verificación: "Escaneo automático mensual"

Clasificación_Información:
indicador: "Activos clasificados"
objetivo: "100%"
verificación: "Inventario trimestral"

Protección_Servicios:
Disponibilidad:
indicador: "Uptime servicios críticos"
objetivo: ">= 99.9%"
medición: "Monitorización continua"

Respaldo_Información:
indicador: "Backups exitosos"
objetivo: "100%"
verificación: "Pruebas mensuales restauración"

Dashboard Ejecutivo ENS​

2.1 Vista General del Dashboard​

interface ENSDashboard {
// Sección Superior: Estado Global
estadoGlobal: {
puntuacionENS: number; // 0-100%
tendencia: "mejorando" | "estable" | "degradando";
diasDesdeUltimoIncidente: number;
alertasActivas: number;
proximaAuditoria: Date;
};

// Sección Central: Marcos ENS
marcosENS: {
organizativo: {
puntuacion: number;
kpisEnVerde: number;
kpisEnAmbar: number;
kpisEnRojo: number;
};
operacional: {
puntuacion: number;
controlesActivos: number;
controlesConDesviacion: number;
};
medidasProteccion: {
puntuacion: number;
medidasImplementadas: number;
medidasPendientes: number;
};
};

// Sección Inferior: Métricas Operativas
metricasOperativas: {
incidentesSeguridad: {
abiertos: number;
cerradosEsteMes: number;
tiempoMedioResolucion: number;
};
vulnerabilidades: {
criticas: number;
altas: number;
medias: number;
bajas: number;
};
formacion: {
porcentajeCompletado: number;
proximasCampanas: string[];
};
};
}

2.2 Implementación Visual del Dashboard​

Dashboard_Layout:
Header:
- Logo: "Legit Health"
- Título: "ENS Dashboard - Categoría MEDIA"
- Fecha_Actualización: "Tiempo real"
- Usuario: "ROL_USUARIO"

Panel_Estado_Global:
Widgets:
- tipo: "Gauge"
titulo: "Cumplimiento ENS"
valor: "92%"
objetivo: "95%"
colores:
verde: ">= 95%"
ambar: "85-94%"
rojo: "< 85%"

- tipo: "Contador"
titulo: "Días sin Incidentes Críticos"
valor: "127"

- tipo: "Semáforo"
titulo: "Estado Certificación"
estados:
- "Documentación: VERDE"
- "Implementación: AMBAR"
- "Evidencias: VERDE"

Panel_Tendencias:
Gráficos:
- tipo: "LineChart"
titulo: "Evolución Cumplimiento ENS (12 meses)"
series:
- "Marco Organizativo"
- "Marco Operacional"
- "Medidas Protección"

- tipo: "HeatMap"
titulo: "Mapa de Calor Controles ENS"
dimensiones:
x: "Categorías de Control"
y: "Nivel de Madurez"

Métricas Específicas para Proveedor de Servicios​

3.1 Métricas de Cadena de Suministro​

class MetricasCadenaaSuministro:
def __init__(self):
self.proveedores_criticos = self.identificar_proveedores_criticos()
self.slas = self.cargar_slas()

def calcular_kpis_proveedores(self):
"""KPIs específicos para rol de proveedor"""
return {
'cumplimiento_sla': {
'disponibilidad': self.medir_disponibilidad_servicio(),
'tiempo_respuesta': self.medir_tiempo_respuesta(),
'resolucion_incidentes': self.medir_resolucion_incidentes()
},
'seguridad_servicio': {
'vulnerabilidades_comunicadas': self.contar_vulnerabilidades_reportadas(),
'tiempo_parcheado': self.calcular_tiempo_medio_parcheado(),
'incidentes_seguridad': self.contar_incidentes_seguridad()
},
'conformidad_contractual': {
'auditorias_permitidas': self.verificar_auditorias_cliente(),
'reportes_entregados': self.verificar_reportes_mensuales(),
'certificaciones_vigentes': self.verificar_certificaciones()
}
}

3.2 Métricas de Interfaz con Clientes​

Metricas_Interfaz_Cliente:
Transparencia_Seguridad:
Notificaciones_Incidentes:
objetivo: "< 4 horas desde detección"
medicion: "Tiempo desde detección hasta notificación"

Reportes_Cumplimiento:
objetivo: "100% entregados en plazo"
frecuencia: "Mensual"

Acceso_Evidencias:
objetivo: "Portal disponible 24/7"
medicion: "Disponibilidad portal cliente"

Gestión_Requisitos_Cliente:
Requisitos_Seguridad_Aceptados:
objetivo: "100% evaluados en 48h"
medicion: "Tiempo respuesta a requisitos"

Cambios_Implementados:
objetivo: ">= 95% en plazo acordado"
medicion: "Cumplimiento timeline cambios"

Sistema de Alertas y Umbrales​

4.1 Matriz de Umbrales y Escalado​

MATRIZ_UMBRALES_ENS = {
'CRITICO': {
'condiciones': [
'cumplimiento_ens < 80%',
'incidente_seguridad_critico == True',
'disponibilidad_servicio < 95%',
'brecha_datos == True'
],
'escalado': {
'inmediato': ['CEO', 'CISO', 'Responsable_ENS'],
'15_minutos': ['Comité_Crisis', 'Legal'],
'1_hora': ['Cliente_Afectado', 'CCN-CERT']
},
'acciones': [
'Activar protocolo crisis',
'Preservar evidencias',
'Notificar autoridades',
'Comunicación clientes'
]
},
'ALTO': {
'condiciones': [
'cumplimiento_ens >= 80% and < 90%',
'vulnerabilidad_critica_sin_parchear > 7_dias',
'formacion_seguridad < 80%'
],
'escalado': {
'inmediato': ['CISO', 'Responsable_ENS'],
'1_hora': ['CTO', 'Jefes_Departamento'],
'4_horas': ['Comité_Seguridad']
}
},
'MEDIO': {
'condiciones': [
'cumplimiento_ens >= 90% and < 95%',
'metricas_desviadas > 10%',
'auditorias_pendientes > 0'
],
'escalado': {
'4_horas': ['Responsable_ENS'],
'24_horas': ['Equipo_Seguridad']
}
}
}

4.2 Automatización de Respuestas​

class GestorRespuestasAutomaticas:
def __init__(self):
self.acciones_automaticas = {
'bloqueo_cuenta_comprometida': self.bloquear_cuenta,
'aislamiento_sistema_infectado': self.aislar_sistema,
'rollback_cambio_fallido': self.revertir_cambio,
'activacion_backup': self.activar_sistema_respaldo
}

def procesar_alerta_kpi(self, alerta):
"""Procesa alerta y ejecuta respuesta automática"""
severidad = self.evaluar_severidad(alerta)

if severidad == 'CRITICO':
# Respuesta inmediata automática
self.ejecutar_protocolo_crisis()
self.notificar_escalado_critico(alerta)

# Preservación de evidencias
self.preservar_estado_sistema()
self.iniciar_grabacion_forense()

elif severidad == 'ALTO':
# Contención automática
self.aplicar_medidas_contencion(alerta)
self.notificar_equipo_seguridad(alerta)

# Registro en blockchain para auditoría
self.registrar_evento_inmutable(alerta)

return self.generar_informe_respuesta(alerta)

Reporting y Visualización​

5.1 Informes Automatizados​

Informes_Periodicos:
Diario:
nombre: "ENS Daily Status Report"
hora_generacion: "08:00"
destinatarios:
- "Responsable ENS"
- "Equipo Operaciones"
contenido:
- "Estado sistemas críticos"
- "Incidentes últimas 24h"
- "KPIs fuera de umbral"
- "Acciones pendientes"

Semanal:
nombre: "ENS Weekly Performance Report"
dia_generacion: "Lunes"
destinatarios:
- "CISO"
- "CTO"
- "Jefes Departamento"
contenido:
- "Tendencias KPIs"
- "Análisis incidentes"
- "Progreso planes acción"
- "Próximas actividades"

Mensual:
nombre: "ENS Compliance Report"
dia_generacion: "Día 5 del mes"
destinatarios:
- "CEO"
- "Comité Dirección"
- "Auditoría Interna"
contenido:
- "Puntuación cumplimiento ENS"
- "Estado certificación"
- "Análisis riesgos"
- "Recomendaciones mejora"
- "Comparativa mes anterior"

5.2 Portal de Métricas Web​

<!-- Dashboard HTML Template -->
<!DOCTYPE html>
<html lang="es">
<head>
<title>ENS Dashboard - Legit Health</title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body>
<div class="dashboard-container">
<!-- Header con KPIs principales -->
<header class="kpi-header">
<div class="kpi-card critical">
<h3>Cumplimiento ENS</h3>
<div class="kpi-value">92%</div>
<div class="kpi-trend up">↑ 2%</div>
</div>
<div class="kpi-card">
<h3>Incidentes Activos</h3>
<div class="kpi-value">2</div>
<div class="kpi-status amber">MEDIO</div>
</div>
<div class="kpi-card">
<h3>Disponibilidad</h3>
<div class="kpi-value">99.95%</div>
<div class="kpi-status green">OK</div>
</div>
</header>

<!-- Gráficos principales -->
<main class="charts-section">
<div class="chart-container">
<canvas id="ens-compliance-trend"></canvas>
</div>
<div class="chart-container">
<canvas id="security-incidents-chart"></canvas>
</div>
</main>

<!-- Tabla de controles ENS -->
<section class="controls-table">
<table id="ens-controls-status">
<thead>
<tr>
<th>Control ENS</th>
<th>Estado</th>
<th>Última Revisión</th>
<th>Responsable</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
<!-- Datos dinámicos -->
</tbody>
</table>
</section>
</div>
</body>
</html>

Integración con Herramientas​

6.1 Stack Tecnológico de Monitorización​

Herramientas_Monitorizacion:
Recolección_Métricas:
- herramienta: "Prometheus"
función: "Time-series database"
métricas:
- "Sistema operativo"
- "Aplicaciones"
- "Infraestructura"

- herramienta: "Elasticsearch"
función: "Logs y eventos"
datos:
- "Logs de seguridad"
- "Eventos de auditoría"
- "Registros de acceso"

Visualización:
- herramienta: "Grafana"
función: "Dashboards interactivos"
paneles:
- "ENS Compliance Overview"
- "Security Operations"
- "Risk Management"

- herramienta: "Kibana"
función: "Análisis de logs"
dashboards:
- "Security Events"
- "Access Analytics"
- "Threat Detection"

Alertas:
- herramienta: "AlertManager"
función: "Gestión de alertas"
integraciones:
- "Email"
- "Slack"
- "PagerDuty"
- "ServiceNow"

6.2 APIs de Integración​

class ENSMetricsAPI:
"""API REST para consulta de métricas ENS"""

def __init__(self):
self.app = Flask(__name__)
self.setup_routes()

def setup_routes(self):
@self.app.route('/api/v1/ens/compliance', methods=['GET'])
def get_compliance_score():
"""Endpoint para obtener puntuación de cumplimiento"""
return {
'score': self.calculate_compliance_score(),
'timestamp': datetime.now().isoformat(),
'breakdown': {
'organizational': 95,
'operational': 92,
'protection_measures': 89
}
}

@self.app.route('/api/v1/ens/kpis', methods=['GET'])
def get_kpis():
"""Endpoint para obtener todos los KPIs"""
return {
'kpis': self.collect_all_kpis(),
'thresholds': self.get_threshold_status(),
'alerts': self.get_active_alerts()
}

@self.app.route('/api/v1/ens/dashboard', methods=['GET'])
def get_dashboard_data():
"""Endpoint para datos del dashboard"""
return {
'executive_summary': self.generate_executive_summary(),
'charts_data': self.prepare_charts_data(),
'tables_data': self.prepare_tables_data()
}

Procedimiento de Revisión de KPIs​

7.1 Calendario de Revisión​

Calendario_Revision_KPIs:
Revisión_Diaria:
hora: "09:00"
duración: "30 minutos"
participantes:
- "Responsable Operaciones"
- "Equipo SOC"
agenda:
- "KPIs críticos del día anterior"
- "Incidentes nocturnos"
- "Sistemas fuera de umbral"
- "Acciones inmediatas"

Revisión_Semanal:
día: "Miércoles"
hora: "11:00"
duración: "1 hora"
participantes:
- "CISO"
- "Responsable ENS"
- "Jefes de Área"
agenda:
- "Tendencias semanales"
- "Cumplimiento objetivos"
- "Planes de acción"
- "Recursos necesarios"

Revisión_Mensual:
día: "Primer martes del mes"
hora: "10:00"
duración: "2 horas"
participantes:
- "Comité de Dirección"
- "CISO"
- "Responsable ENS"
- "Auditoría Interna"
agenda:
- "Informe mensual ENS"
- "Análisis de tendencias"
- "Decisiones estratégicas"
- "Aprobación inversiones"

7.2 Proceso de Mejora Continua​

class ProcesoMejoraContinuaKPIs:
def __init__(self):
self.historico_kpis = []
self.acciones_mejora = []

def analizar_desviaciones(self, kpi_actual, kpi_objetivo):
"""Analiza desviaciones y propone mejoras"""
desviacion = kpi_objetivo - kpi_actual

if abs(desviacion) > 0.1: # Desviación significativa > 10%
analisis = {
'kpi': kpi_actual,
'objetivo': kpi_objetivo,
'desviacion': desviacion,
'causa_raiz': self.analisis_causa_raiz(kpi_actual),
'acciones_correctivas': self.generar_acciones_correctivas(desviacion),
'responsable': self.asignar_responsable(kpi_actual),
'fecha_limite': self.calcular_fecha_limite(desviacion)
}

self.acciones_mejora.append(analisis)
return analisis

def seguimiento_acciones(self):
"""Seguimiento de acciones de mejora"""
for accion in self.acciones_mejora:
if accion['fecha_limite'] < datetime.now():
self.escalar_accion_vencida(accion)
else:
self.verificar_progreso(accion)

Referencias y Documentación Relacionada​

  • OP.MON.1: Sistema de detección de intrusión
  • OP.MON.2: Sistema de métricas base
  • ORG.1: Política de seguridad ENS
  • CCN-STIC 815: Métricas e Indicadores en el ENS
  • GP-004: Gestión de indicadores y objetivos del SGC
  • R-TF-013-002: Registro de gestión de riesgos

Signature meaning

The signatures for the approval process of this document can be found in the verified commits at the repository for the QMS. As a reference, the team members who are expected to participate in this document and their roles in the approval process, as defined in Annex I Responsibility Matrix of the GP-001, are:

  • Author: Team members involved
  • Reviewer: JD-003, JD-004
  • Approver: JD-001
Previous
OP.MON.2 Sistema de métricas
Next
MP Medidas de protección
  • Documentos de referencia
  • Propósito
  • Alcance
  • Marco de KPIs Estratégicos ENS
    • 1.1 KPIs de Cumplimiento Global
    • 1.2 KPIs por Marco ENS
      • Marco Organizativo
      • Marco Operacional
      • Medidas de Protección
  • Dashboard Ejecutivo ENS
    • 2.1 Vista General del Dashboard
    • 2.2 Implementación Visual del Dashboard
  • Métricas Específicas para Proveedor de Servicios
    • 3.1 Métricas de Cadena de Suministro
    • 3.2 Métricas de Interfaz con Clientes
  • Sistema de Alertas y Umbrales
    • 4.1 Matriz de Umbrales y Escalado
    • 4.2 Automatización de Respuestas
  • Reporting y Visualización
    • 5.1 Informes Automatizados
    • 5.2 Portal de Métricas Web
  • Integración con Herramientas
    • 6.1 Stack Tecnológico de Monitorización
    • 6.2 APIs de Integración
  • Procedimiento de Revisión de KPIs
    • 7.1 Calendario de Revisión
    • 7.2 Proceso de Mejora Continua
  • Referencias y Documentación Relacionada
All the information contained in this QMS is confidential. The recipient agrees not to transmit or reproduce the information, neither by himself nor by third parties, through whichever means, without obtaining the prior written permission of Legit.Health (AI LABS GROUP S.L.)