OP.AAC.3 Segregación de funciones y tareas
Objetivo
Establecer la segregación de funciones y tareas en el sistema Legit Health Plus para prevenir errores, impedir el abuso de privilegios y garantizar que las actividades críticas requieran la participación de múltiples personas, cumpliendo con los requisitos del ENS, MDR y las mejores prácticas de seguridad para dispositivos médicos.
Alcance
Este procedimiento aplica a:
- Todas las funciones y roles dentro del sistema Legit Health Plus
- Procesos críticos de diagnóstico médico y gestión de datos de pacientes
- Actividades de desarrollo, despliegue y mantenimiento del software
- Funciones de administración, configuración y auditoría
- Gestión de algoritmos de IA/ML y modelos diagnósticos
- Procesos de validación clínica y certificación regulatoria
Guía de implantación
- La segregación de funciones tiene dos objetivos:
- prevenir errores
- impedir el abuso de privilegios por parte de los usuarios autorizados
-
Debe documentarse un esquema de funciones y tareas en el que se contemplen las que son incompatibles en una misma persona. La incompatibilidad debe garantizar que para llevar a cabo un proceso o actividad crítica siempre se requieren al menos 2 personas.
-
Debe establecerse un procedimiento de asignación de personas a funciones y tareas a personas que garantice que no se viola el esquema anterior, ni cuando se asignan responsabilidades inicialmente, ni cuando se actualizan.
-
Hay que evitar que las personas que trabajan en la operación diaria del sistema participen en el desarrollo de aplicaciones (desarrolladores) o en su configuración (administradores).
- nadie puede autorizarse a sí mismo
- los desarrolladores no pueden modificar datos de explotación
- los desarrolladores no pueden pasar software a explotación
- los desarrolladores no pueden configurar software en explotación
- los operadores ni desarrollan software ni pueden modificar los desarrollos
- los usuarios ni desarrollan ni pueden modificar los desarrollos
- los usuarios ni configuran ni pueden modificar la configuración
-
Hay que evitar que las personas que trabajan en la auditoría o supervisión participen en cualquier otra función.
-
Deberá prestarse una especial atención a los roles asociados a cuentas de administración del sistema (administración de equipos, de aplicaciones, de comunicaciones, de seguridad), fragmentando las funciones administrativas entre varias personas cuando la categoría del sistema lo requiera. En todo caso el número de personas con derechos de administración debe ser lo más reducido posible sin menoscabo de la usabilidad del sistema.
Implementación en Legit Health Plus
Matriz de Segregación de Funciones
Funciones Incompatibles
Función Principal | Funciones Incompatibles | Justificación |
---|---|---|
Desarrollo de Software | Despliegue a Producción, Administración de Producción | Prevenir cambios no autorizados |
Administración de Sistemas | Auditoría, Desarrollo, Aprobación de Cambios | Evitar auto-aprobación |
Diagnóstico Clínico | Administración de Pacientes Propios, Modificación de Algoritmos | Conflicto de intereses |
Auditoría | Cualquier función operativa | Independencia del auditor |
Gestión de Modelos IA | Validación Clínica, Aprobación Regulatoria | Separación desarrollo-validación |
Control de Calidad | Desarrollo, Despliegue | Independencia de QA |
Gestión de Incidentes | Administración de Logs, Desarrollo | Preservar evidencia |
Procesos Críticos con Doble Control
Proceso | Rol 1 | Rol 2 | Tipo de Control |
---|---|---|---|
Despliegue a Producción | DevOps Engineer | QA Lead + Security | Aprobación secuencial |
Modificación de Algoritmos IA | ML Engineer | Clinical Validator | Desarrollo + Validación |
Acceso a Datos Masivos | Data Analyst | Privacy Officer | Solicitud + Aprobación |
Cambios en Configuración Crítica | System Admin | Security Officer | Ejecución + Supervisión |
Eliminación de Datos de Pacientes | Clinical Admin | DPO | Solicitud + Confirmación |
Actualización de Certificados | Security Admin | Infrastructure Lead | Generación + Instalación |
Modelo de Roles y Responsabilidades
Estructura Organizacional
Implementación Técnica de Segregación
Control de Segregación en el Sistema
class SegregationOfDuties:
"""
Implementación de segregación de funciones en Legit Health Plus
"""
# Definición de funciones mutuamente excluyentes
MUTUALLY_EXCLUSIVE_ROLES = [
{"developer", "production_admin"},
{"ml_engineer", "clinical_validator"},
{"system_admin", "auditor"},
{"data_analyst", "privacy_officer"},
{"security_admin", "developer"},
{"clinical_user", "patient_admin"}
]
# Procesos que requieren aprobación dual
DUAL_CONTROL_PROCESSES = {
"production_deployment": {
"initiator": ["developer", "devops"],
"approver": ["qa_lead", "security_officer"],
"min_approvers": 2
},
"algorithm_update": {
"initiator": ["ml_engineer"],
"approver": ["clinical_validator", "regulatory_officer"],
"min_approvers": 2
},
"patient_data_deletion": {
"initiator": ["clinical_admin"],
"approver": ["dpo", "clinical_director"],
"min_approvers": 2
},
"security_config_change": {
"initiator": ["security_admin"],
"approver": ["ciso", "infrastructure_lead"],
"min_approvers": 1
}
}
def validate_role_assignment(self, user_id: str, new_role: str) -> bool:
"""
Valida que la asignación de un nuevo rol no viole la segregación
"""
current_roles = self.get_user_roles(user_id)
for exclusive_set in self.MUTUALLY_EXCLUSIVE_ROLES:
if new_role in exclusive_set:
if any(role in exclusive_set for role in current_roles):
raise SegregationViolation(
f"Role {new_role} es incompatible con roles actuales"
)
return True
def initiate_dual_control_process(self, process: str, initiator: str):
"""
Inicia un proceso que requiere control dual
"""
if process not in self.DUAL_CONTROL_PROCESSES:
raise ValueError(f"Proceso {process} no definido")
config = self.DUAL_CONTROL_PROCESSES[process]
initiator_roles = self.get_user_roles(initiator)
# Verificar que el iniciador tiene el rol adecuado
if not any(role in config["initiator"] for role in initiator_roles):
raise PermissionError(f"Usuario no autorizado para iniciar {process}")
# Crear workflow de aprobación
workflow = {
"id": generate_uuid(),
"process": process,
"initiator": initiator,
"timestamp": datetime.utcnow(),
"required_approvals": config["min_approvers"],
"approvals": [],
"status": "pending"
}
return workflow
Configuración de Entornos Segregados
Entorno | Propósito | Roles con Acceso | Restricciones |
---|---|---|---|
Development | Desarrollo de código | Developers, ML Engineers | Sin datos reales de pacientes |
Testing | Pruebas de QA | QA Team, Clinical Validators | Datos anonimizados |
Staging | Pre-producción | DevOps, Security Team | Espejo de producción, acceso limitado |
Production | Sistema en vivo | Ops Team, Support (limitado) | Solo personal autorizado |
DR/Backup | Recuperación | Infrastructure Team | Acceso de emergencia |
Controles Compensatorios
Para organizaciones pequeñas donde la segregación completa no es posible:
Matriz de Controles Compensatorios
Situación | Riesgo | Control Compensatorio |
---|---|---|
Una persona con múltiples roles | Abuso de privilegios | Auditoría detallada + Supervisión externa |
Desarrollador con acceso a producción | Cambios no autorizados | Logs inmutables + Revisión periódica |
Admin con acceso total | Modificación de evidencia | SIEM externo + Alertas automáticas |
Falta de personal para dual control | Errores no detectados | Automatización + Validación diferida |
Procedimientos
PRO-AAC-007: Asignación de Roles
-
Solicitud de Rol
- Formulario R-TF-110-009 con justificación
- Aprobación del supervisor directo
- Revisión de compatibilidad
-
Validación de Segregación
- Sistema verifica automáticamente incompatibilidades
- Revisión manual para casos especiales
- Documentación de excepciones si aplica
-
Aprobación
- CISO aprueba roles críticos
- Manager aprueba roles estándar
- Registro en matriz de roles
-
Implementación
- Configuración en sistema de identidades
- Notificación al usuario
- Actualización de documentación
PRO-AAC-008: Control Dual de Procesos Críticos
-
Iniciación
- Usuario inicia proceso en sistema
- Sistema identifica requisito de dual control
- Creación de ticket de aprobación
-
Notificación
- Alerta automática a aprobadores
- Incluye detalles del cambio solicitado
- Establece deadline según criticidad
-
Revisión y Aprobación
- Aprobadores revisan independientemente
- Cada uno documenta su decisión
- Sistema verifica quórum requerido
-
Ejecución
- Solo tras aprobaciones completas
- Log detallado de todas las acciones
- Notificación de completado
PRO-AAC-009: Revisión de Segregación
-
Auditoría Trimestral
- Extracción de matriz de roles actual
- Identificación de violaciones potenciales
- Análisis de acumulación de privilegios
-
Análisis de Riesgos
- Evaluación de controles compensatorios
- Identificación de puntos débiles
- Propuesta de mejoras
-
Remediación
- Corrección de violaciones identificadas
- Implementación de controles adicionales
- Actualización de políticas
Responsabilidades
Chief Information Security Officer (CISO)
- Definir política de segregación de funciones
- Aprobar excepciones documentadas
- Supervisar cumplimiento general
- Reportar a dirección sobre riesgos
Managers de Área
- Proponer estructura de roles de su equipo
- Garantizar segregación en sus procesos
- Participar en revisiones periódicas
- Justificar necesidades especiales
Equipo de Seguridad
- Implementar controles técnicos
- Monitorizar violaciones de segregación
- Investigar incidentes relacionados
- Mantener matriz de segregación
Auditoría Interna
- Verificar cumplimiento de políticas
- Evaluar efectividad de controles
- Identificar mejoras necesarias
- Mantener independencia completa
Registros y Evidencias
Documentación Requerida
| Registro | Descripción | Retención | Ubicación | |----------|-------------|-----------|-----------|| | R-TF-110-009 | Solicitud de asignación de rol | 5 años | SharePoint | | R-TF-110-010 | Matriz de segregación actual | Permanente | Git + SharePoint | | R-TF-110-011 | Log de procesos dual control | 3 años | AWS CloudWatch | | R-TF-110-012 | Informe de auditoría de segregación | 5 años | SharePoint | | R-TF-110-013 | Registro de excepciones aprobadas | 7 años | SharePoint |
Evidencias de Auditoría
{
"audit_record": {
"timestamp": "2024-01-20T14:30:00Z",
"type": "dual_control_process",
"process": "production_deployment",
"initiator": "dev-john-doe",
"approvers": [
{ "user": "qa-jane-smith", "decision": "approved", "time": "2024-01-20T14:45:00Z" },
{ "user": "sec-bob-wilson", "decision": "approved", "time": "2024-01-20T14:50:00Z" }
],
"execution": "2024-01-20T15:00:00Z",
"result": "success"
}
}
Métricas y KPIs
Indicadores de Segregación
Métrica | Objetivo | Frecuencia | Responsable |
---|---|---|---|
% Procesos con dual control | 100% críticos | Mensual | Security Team |
Violaciones de segregación detectadas | 0 | Continuo | SIEM |
Tiempo medio aprobación dual | <2 horas | Semanal | Process Owner |
Excepciones activas | <5% usuarios | Trimestral | CISO |
Cobertura de auditoría | 100% anual | Trimestral | Internal Audit |
Efectividad controles compensatorios | >95% | Semestral | Risk Management |
Dashboard de Monitoreo
- Matriz de roles actual en tiempo real
- Procesos pendientes de aprobación dual
- Alertas de intentos de violación
- Tendencias de acumulación de privilegios
- Estado de controles compensatorios
Referencias Cruzadas
Documentos Internos Relacionados
- OP.AAC.1: Identificación - Base para asignación de roles
- OP.AAC.2: Requisitos de acceso - Permisos por rol
- OP.AAC.4: Gestión de derechos - Ciclo de vida de privilegios
- GP-013: Gestión de Ciberseguridad - Marco general
- T-024-006: Threat Model - Amenazas de insider
- R-TF-013-002: Risk Management - Riesgos de segregación
Cumplimiento Normativo
- ENS: [op.acc.3] Segregación de funciones y tareas
- ISO 27001: A.6.1.2 - Segregación de tareas
- MDR: Requisito 17.2 - Controles de seguridad
- FDA Guidance: Principio de menor privilegio
- SOC 2: CC6.1 - Separación de funciones incompatibles
- NIS2: Artículo 21 - Gestión de acceso privilegiado
Documentos de referencia
- Guías CCN-STIC:
- Guía CCN-STIC-801 - ENS Responsables y funciones
- ISO/IEC 27000
- 27002:2013:
- 6.1.2 - Segregación de tareas
- 27002:2013:
- NIST SP 800-53 rev4:
- [AC-5] Separation of Duties
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