OP.ACC.6 Acceso local
Objetivo
Definir los controles y procedimientos para el acceso local al sistema Legit Health Plus, garantizando la seguridad en las conexiones desde redes internas, estaciones de trabajo autorizadas y entornos controlados, cumpliendo con ENS, MDR y normativas de ciberseguridad para dispositivos médicos.
Alcance
Este procedimiento aplica a:
- Acceso desde estaciones de trabajo dentro de la red corporativa
- Conexiones desde equipos médicos con el software instalado
- Acceso administrativo local a servidores y sistemas
- Terminales y kioscos de acceso en instalaciones sanitarias
- Acceso desde redes segmentadas y VLANs médicas
- Conexiones de mantenimiento y soporte técnico local
Implementación en Legit Health Plus
Arquitectura de Acceso Local
Configuración de Estaciones de Trabajo
Requisitos Mínimos de Seguridad
Componente | Requisito | Configuración | Verificación |
---|---|---|---|
Sistema Operativo | Windows 10/11 Enterprise o macOS 12+ | Hardening según CIS Benchmarks | Quarterly audit |
Antivirus/EDR | Solución empresarial actualizada | CrowdStrike o similar | Monitoreo continuo |
Firewall Local | Habilitado y configurado | Reglas restrictivas | Revisión mensual |
Cifrado de Disco | BitLocker/FileVault activo | AES-256 | Verificación periódica |
Parches | Actualizaciones automáticas | Ventana de mantenimiento | WSUS/JAMF |
Navegador | Última versión estable | Configuración empresarial | GPO/MDM |
Política de Configuración Segura
# Script de configuración para estaciones Windows
# Aplicado vía Group Policy
# Configuración de seguridad local
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" `
-Name "LimitBlankPasswordUse" -Value 1
# Política de bloqueo de pantalla
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" `
-Name "InactivityTimeoutSecs" -Value 600 # 10 minutos
# Restricción de dispositivos USB
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\USBSTOR" `
-Name "Start" -Value 4 # Deshabilitado
# Auditoría de eventos
auditpol /set /category:"Logon/Logoff" /success:enable /failure:enable
auditpol /set /category:"Object Access" /success:enable /failure:enable
# Configuración de Windows Defender
Set-MpPreference -DisableRealtimeMonitoring $false
Set-MpPreference -DisableBehaviorMonitoring $false
Set-MpPreference -DisableBlockAtFirstSeen $false
Set-MpPreference -DisableIOAVProtection $false
Control de Acceso a la Red (NAC)
Validación de Dispositivos
class NetworkAccessControl:
"""
Sistema NAC para Legit Health Plus
"""
def validate_device(self, device_info: dict) -> dict:
"""
Valida dispositivo antes de permitir acceso a la red
"""
validation_result = {
"device_id": device_info["mac_address"],
"timestamp": datetime.utcnow(),
"checks": [],
"access_granted": False,
"vlan_assignment": None
}
# 1. Verificar registro del dispositivo
if not self.is_device_registered(device_info["mac_address"]):
validation_result["checks"].append({
"check": "device_registration",
"status": "FAILED",
"reason": "Dispositivo no registrado"
})
return validation_result
# 2. Verificar certificado del dispositivo
if not self.validate_device_certificate(device_info.get("certificate")):
validation_result["checks"].append({
"check": "certificate_validation",
"status": "FAILED",
"reason": "Certificado inválido o expirado"
})
return validation_result
# 3. Verificar cumplimiento de políticas
compliance = self.check_compliance(device_info)
if not compliance["compliant"]:
validation_result["checks"].append({
"check": "policy_compliance",
"status": "FAILED",
"reason": compliance["violations"]
})
return validation_result
# 4. Verificar estado de seguridad
security_posture = self.assess_security_posture(device_info)
if security_posture["risk_score"] > 0.7:
validation_result["checks"].append({
"check": "security_posture",
"status": "QUARANTINE",
"reason": "Riesgo elevado detectado",
"vlan": "REMEDIATION"
})
validation_result["vlan_assignment"] = "VLAN_REMEDIATION"
return validation_result
# 5. Asignar VLAN según tipo de dispositivo
vlan = self.determine_vlan(device_info["device_type"])
validation_result["access_granted"] = True
validation_result["vlan_assignment"] = vlan
return validation_result
def check_compliance(self, device_info: dict) -> dict:
"""
Verifica cumplimiento de políticas de seguridad
"""
violations = []
# Verificar antivirus actualizado
if not device_info.get("antivirus_updated"):
violations.append("Antivirus no actualizado")
# Verificar cifrado de disco
if not device_info.get("disk_encrypted"):
violations.append("Disco no cifrado")
# Verificar parches del SO
if device_info.get("pending_patches", 0) > 5:
violations.append("Parches críticos pendientes")
# Verificar firewall activo
if not device_info.get("firewall_enabled"):
violations.append("Firewall deshabilitado")
return {
"compliant": len(violations) == 0,
"violations": violations
}
Segmentación de Red
VLANs y Zonas de Seguridad
VLAN | Nombre | Propósito | Controles Especiales |
---|---|---|---|
10 | CLINICAL | Estaciones clínicas | Acceso completo a funciones diagnósticas |
20 | MEDICAL_DEVICES | Dispositivos médicos | Comunicación restringida, sin Internet |
30 | ADMINISTRATIVE | Gestión y administración | Acceso limitado a datos clínicos |
40 | GUEST | Invitados y pacientes | Solo acceso a portal de pacientes |
50 | MANAGEMENT | Administración IT | Acceso privilegiado con MFA |
99 | QUARANTINE | Dispositivos en cuarentena | Sin acceso, solo remediación |
Gestión de Sesiones Locales
Parámetros de Sesión
const sessionConfig = {
local: {
timeout: {
idle: 600, // 10 minutos de inactividad
absolute: 28800, // 8 horas máximo
warning: 60, // Aviso 1 minuto antes
},
lockscreen: {
enabled: true,
trigger: 300, // 5 minutos para bloqueo
requirePassword: true,
requireMFA: false, // Solo para reactivación rápida
},
restrictions: {
maxConcurrentLocal: 1, // Una sesión local por usuario
preventScreenCapture: true,
disableClipboard: false,
watermark: true,
},
},
};
Monitorización y Logs
Eventos de Acceso Local Monitorizados
Evento | Severidad | Acción | Retención |
---|---|---|---|
Login exitoso | INFO | Log + Dashboard | 90 días |
Login fallido | WARNING | Log + Alerta tras 3 intentos | 180 días |
Escalación de privilegios | HIGH | Log + Alerta inmediata + SIEM | 2 años |
Acceso fuera de horario | MEDIUM | Log + Notificación manager | 1 año |
Dispositivo no autorizado | HIGH | Bloqueo + Alerta SOC | 2 años |
Sesión expirada | INFO | Log | 30 días |
Procedimientos
PRO-AAC-015: Configuración de Acceso Local
-
Registro de Estación de Trabajo
- Inventario del equipo en CMDB
- Instalación de agente de gestión
- Aplicación de políticas de grupo
- Instalación de certificado de dispositivo
-
Hardening del Sistema
- Aplicación de baseline de seguridad
- Configuración de auditoría local
- Deshabilitación de servicios innecesarios
- Configuración de firewall local
-
Integración con NAC
- Registro de MAC address
- Configuración de 802.1X
- Pruebas de conectividad
- Asignación de VLAN
PRO-AAC-016: Gestión de Sesiones Locales
-
Inicio de Sesión
- Presentación de banner legal
- Autenticación multifactor
- Carga de perfil de usuario
- Notificación de último acceso
-
Durante la Sesión
- Monitoreo de actividad
- Aplicación de timeouts
- Bloqueo automático de pantalla
- Prevención de captura de pantalla si aplica
-
Cierre de Sesión
- Guardado de estado
- Limpieza de caché local
- Cierre de conexiones
- Registro de logout
PRO-AAC-017: Respuesta a Incidentes de Acceso Local
-
Detección de Anomalías
- Alertas automáticas del SIEM
- Revisión de logs
- Correlación de eventos
-
Contención
- Aislamiento del equipo afectado
- Suspensión de cuenta si necesario
- Captura de evidencia forense
-
Investigación
- Análisis de logs detallado
- Entrevista al usuario
- Determinación de causa raíz
-
Remediación
- Eliminación de malware si presente
- Cambio de credenciales
- Actualización de controles
- Documentación de lecciones aprendidas
Responsabilidades
Administradores de Sistemas
- Configurar y mantener estaciones de trabajo
- Aplicar políticas de seguridad
- Gestionar NAC y VLANs
- Responder a incidentes locales
Equipo de Seguridad
- Definir políticas de acceso local
- Monitorizar eventos de seguridad
- Auditar configuraciones
- Investigar incidentes
Usuarios Finales
- Proteger sus estaciones de trabajo
- Bloquear pantalla al ausentarse
- No compartir credenciales
- Reportar comportamientos anómalos
Service Desk
- Soporte de primer nivel
- Reseteo de contraseñas locales
- Asistencia en problemas de conectividad
- Escalamiento de incidentes
Registros y Evidencias
Documentación Requerida
| Registro | Descripción | Retención | Ubicación | |----------|-------------|-----------|-----------|| | R-TF-110-019 | Inventario de estaciones | Permanente | CMDB | | R-TF-110-020 | Configuración de hardening | 3 años | SharePoint | | R-TF-110-021 | Logs de acceso local | 1 año | SIEM | | R-TF-110-022 | Incidentes de acceso local | 5 años | JIRA |
Formato de Log
{
"event": "LOCAL_ACCESS",
"timestamp": "2024-01-20T09:15:30Z",
"workstation": "WS-CLINIC-001",
"user": "LH-HCP-dr-smith",
"ip_address": "192.168.10.45",
"mac_address": "AA:BB:CC:DD:EE:FF",
"vlan": "CLINICAL",
"action": "LOGIN_SUCCESS",
"authentication_method": "SMARTCARD",
"session_id": "local-sess-123456",
"compliance_status": "COMPLIANT"
}
Métricas y KPIs
Métrica | Objetivo | Frecuencia | Responsable |
---|---|---|---|
Estaciones compliance | >95% | Diario | IT Ops |
Intentos de acceso bloqueados | <10/día | Continuo | SOC |
Tiempo medio de login | <10 seg | Continuo | Infrastructure |
Dispositivos en cuarentena | <5% | Diario | NAC Admin |
Parches aplicados en plazo | 100% críticos | Semanal | Patch Mgmt |
Incidentes de seguridad local | <2/mes | Mensual | Security |
Referencias Cruzadas
Documentos Internos
- OP.ACC.5: Mecanismos de autenticación
- OP.ACC.7: Acceso remoto (complementario)
- MP.EQ.2: Protección de equipos
- T-024-009: Security Architecture
- GP-013: Marco de ciberseguridad
Cumplimiento Normativo
- ENS: [op.acc.6] Acceso local
- ISO 27001: A.9.4.2 - Procedimientos seguros de inicio de sesión
- MDR: Requisito 17.2 - Seguridad de acceso físico y lógico
- NIST 800-53: AC-7, AC-8, AC-9
- CIS Controls: Control 1, 4, 5
Documentos de referencia
- Guías CCN-STIC:
- Serie CCN-STIC-500 Guías para Entornos Windows
- Serie CCN-STIC-600 Guías para otros Entornos
- ISO/IEC 27000
- 27002:2013:
- 9.4.2 - Procedimientos seguros de inicio de sesión
- 27002:2013:
- NIST SP 800-53 rev4:
- [AC-7] Unsuccessful Login Attempts
- [AC-8] System Use Notification
- [AC-9] Previous Login Notification
- [IA-5] Authenticator Management
- [IA-6] Authenticator Feedback
- [SI-11] Error Handling
Guía de implantación
- La mayor parte de las medidas requeridas se pueden conseguir simplemente configurando los puestos de usuario según se indica.
- Como manera preventiva, la información que se visualiza antes de acceder a un sistema deberá procurar ser la menos posible para evitar dar a conocer qué información puede encontrar dentro alguien que pueda estar tentado de vulnerar el sistema. Por tanto, es recomendable que se muestre meramente el diálogo de acceso y en todo caso algo de información comercial sin valor relacionada con la información manejada. Por ejemplo, deberá evitarse texto de tipo advertencia por estar a punto de entrar a un portal o aplicación que contiene información confidencial de un determinado tipo, ya que habitualmente estas advertencias pueden atraer a usuarios no autorizados.
- Limitar el número de intentos de acceso para bloquear la oportunidad de acceso una vez efectuados un cierto número de fallos consecutivos, ya sea mediante bloqueo de la cuenta o retardo de la solicitud de contraseña.
- Guardar un registro o log de los accesos realizados a un sistema, tanto los accesos correctos como aquéllos realizados erróneamente. Esto último es especialmente importante de cara a detectar continuos intentos de vulnerar el sistema (mediante por ejemplo ataques de fuerza bruta), ya sea mediante revisiones periódicas de los registros (logs) o con herramientas automatizadas que detecten este tipo de eventos.
- El usuario deberá tener conocimiento de las obligaciones tras acceder satisfactoriamente a un sistema (por ejemplo, una ventana emergente). En caso de que el sistema no permita notificar inmediatamente tras el acceso, deberá notificársele por otras vías compensatorias (por ejemplo, un correo electrónico tras el alta en el sistema).
-
El sistema debe informar al usuario del último acceso con éxito realizado con su identidad (fecha y hora), una vez haya obtenido acceso. Este mecanismo (que puede ser implementado mediante diferentes mecanismos como: pop-up, correo electrónico, SMS, etc.) permitirá al usuario detectar si su cuenta de usuario ha sido comprometida y pueda activar el procedimiento de resolución de incidentes relacionados con contraseñas. Por ejemplo, tras un periodo de inactividad en la cuenta (vacaciones, bajas, etc.), si al usuario se le notifica un acceso reciente sabrá inmediatamente que alguien ha suplantado su identidad en el sistema.
-
En caso de no ser posible la implementación de este aviso de manera proactiva por parte del sistema, se deberán establecer los mecanismos necesarios para que el usuario pueda consultar el registro de accesos.
-
Se deberá controlar que el acceso a los sistemas se restrinja en determinados momentos (por ejemplo, días festivos, fin de la jornada laboral, etc.) y lugares (direcciones IP fuera del dominio de seguridad, teletrabajo, equipos no autorizados, etc.), para evitar accesos no supervisados que puedan generar modificaciones o fraudes clandestinos o no autorizados.
-
No obstante, es posible que existan sistemas que no requieran limitar el acceso (por ejemplo, porque precisamente el propósito del sistema sea ser accesible en cualquier momento y lugar), pero deberá estar debidamente documentada esta casuística.
-
El requisito de que en ciertos puntos se requiera una identificación singular no es alcanzable por medio de configuración del puesto del usuario, sino que requiere instrumentar workflow de los procesos. Como regla general, estos puntos deben ser pocos y el sistema no debe memorizar la identidad del usuario, sino que debe verificarla cada vez.
-
Como ejemplo, piense en la firma electrónica que se exige en banca por Internet cada vez que queremos realizar una transferencia; esta ‘firma’ complementa la identificación y autenticación de la sesión de usuario. Esta verificación puntual acota la ventana de riesgo ante un posible robo de sesión.
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