El control de acceso a los sistemas es uno de los elementos básicos de cualquier programa de ciberseguridad y privacidad. Una gestión efectiva del control de acceso lógico permite:
- Establecer quién (tanto si se trata de una persona como de una aplicación) puede acceder a que entornos / sistemas, de acuerdo a la política de seguridad establecida.
- Definir los mecanismos de autenticación que permitirán validar la identidad del usuario
- Establecer qué permisos concretos tendrán los usuarios autorizados en el sistema, asegurándose de que éstos sean los mínimos estrictamente necesarios (garantizando así los principios de mínimo privilegio y necesidad de saber).
- Asegurar la segregación de funciones, de modo que se evite que un único usuario pueda concentrar todos los permisos necesarios para llevar a cabo de principio a fin y sin necesidad de la intervención de otras personas, acciones que sean susceptibles de fraude o que puedan suponer otro tipo de riesgo.
- Asegurar que el acceso se limita al tiempo mínimo necesario, revocando el acceso lo antes posible cuando deje de ser necesario.
- Garantizar una correcta trazabilidad de las actividades de los usuarios en el sistema y la generación de eventos y alertas de seguridad cuando el acceso implica actividades potencialmente peligrosas.
El reto de control en el caso de los administradores de aplicaciones
Cuando todos estos objetivos de control se cumplen, entonces la probabilidad de éxito de un incidente de seguridad o un ciberataque disminuye notablemente. En la mayoría de los casos, cuando se trata de usuarios que no tienen privilegios especiales en el sistema, estos objetivos se consiguen en gran medida con la simple concesión de una cuenta de usuario del sistema y la asignación de un perfil con unos permisos limitados a la funcionalidad y los datos necesarios para el desempeño del puesto de trabajo. Sin embargo, la cuestión se complica bastante cuando se trata de usuarios con permisos de administración en el sistema, especialmente en el caso de los administradores de aplicaciones o de bases de datos. En este caso, es muy difícil establecer la segregación de funciones, la limitación de acceso y la trazabilidad, dado que este tipo de usuario administrador tiene por definición los máximos privilegios de la aplicación, pudiendo modificar las configuraciones de seguridad, acceder sin restricciones a los datos y crear, modificar y asignar permisos de usuario en el sistema.
Se plantea aquí el famoso problema de «quién controla al controlador». A lo largo de mi experiencia he podido observar distintos programas de seguridad de distintas empresas, en donde el control de acceso de los usuarios comunes no privilegiados está razonablemente bien controlado, pero en los que el principal riesgo es la falta de control, precisamente, de las actividades de los usuarios administradores. Esta circunstancia deja a la organización con un significativo nivel de vulnerabilidad, no sólo relativo a posibles escenarios de fraude interno perpetrado con total impunidad por parte de algún administrador desleal, sino en aquellos casos en que como consecuencia de un ciberataque las credenciales de acceso de estos administradores caen en manos de los ciberdelincuentes.
La vieja (pero efectiva) solución de la «máquina de salto»
En este artículo vamos a describir brevemente un modelo de arquitectura de seguridad usado frecuentemente y que permite controlar de manera efectiva las actividades de usuarios privilegiados, como los de aplicaciones o de base de datos. La arquitectura de seguridad descrita es relativamente sencilla y barata de implementar y es de utilidad en plataformas tecnológicas de cierto tamaño en donde el nivel de riesgo asociado con los accesos no autorizados sea significativo. Dicha arquitectura se describe en el siguiente diagrama:
El modelo implica que se impide todo acceso directo por parte del usuario administrador de aplicación o base de datos al sistema que administran. Esto se consigue forzando al administrador a acceder a través de un único punto de acceso. Dicho punto restringido de acceso es una máquina controlada por otro administrador que recibe el nombre de «máquina de salto» (jumpbox). La forma de forzar el acceso del administrador a través de la máquina de salto es mediante un cortafuegos que aísla las aplicaciones y/o bases de datos a ser administradas y a las que sólo permite conexiones desde la máquina de salto. Toda comunicación desde y hacia la máquina de salto está cifrada. La máquina de salto se constituye así en un punto en donde concentrar de manera sencilla distintos controles de seguridad centralizada; por ejemplo, control de acceso y generación de logs de eventos de seguridad para ser monitorizados. Como hemos mencionado, es importante que la máquina de salto esté administrada por personal diferente ajeno a la administración de los sistemas que se pretende proteger con este diseño de arquitectura, consiguiendo así una apropiada segregación de responsabilidades.
Lo más normal es que el administrador tenga que hacer login en la máquina de salto mediante un mecanismo de doble factor de autenticación (ej: token). En aquellos casos en que se quiera un mayor control, la validez de la cuenta de acceso usada por el administrador se puede restringir a un periodo de tiempo limitado, por ejemplo, permitiendo el acceso sólo durante las horas de la jornada laboral y/o en determinados días de la semana. También se puede hacer que el administrador no tenga acceso directo al mecanismo de generación de tokens de acceso y que tenga que recibir éste por parte de otra persona justo antes de que tenga que realizarse la conexión. Esta persona actúa como autorizador del acceso, justificando la causa concreta de la misma.
Para proporcionar una mayor seguridad al entorno, es necesario configurar la auditoría de la máquina de salto, el firewall y los sistemas a ser administrador para que generen eventos de seguridad y los envíen a un sistema externo de monitorización de eventos de seguridad, controlado a su vez por personal de seguridad dedicado ajeno a la administración de los sistemas a los que supervisan. El equipo de seguridad revisará las posibles alertas de seguridad que se produzcan. De esta manera este equipo controlará a los administradores de aplicaciones, pudiendo saber mediante la correlación de eventos qué administrador accede y cuándo lo hace y las actividades realizadas en las aplicaciones o bases de datos administradas. Esta información se puede complementar con la referencia del sistema de gestión de incidencias / actividades de la organización, de modo que se pueda establecer la correlación de cada acceso con las razones que lo justifican. En caso de que el token de acceso sea proporcionado al administrador por un responsable de servicio distinto, momentos antes de tener que acceder, puede ser este responsable del servicio el que consigne en el sistema de gestión de incidencias / actividades la razón del acceso otorgado.
Finalizamos aquí este artículo esperando que sea de utilidad. Un fuerte abrazo y hasta pronto.