Control de acceso
Asegurando quién puede hacer qué y cómo en un sistema
El control de acceso es la columna vertebral de la seguridad en cualquier sistema de información. Define quién o qué puede interactuar con los recursos, garantizando que se cumplan los objetivos de confidencialidad, integridad y disponibilidad (la tríada CIA). A través de un sistema bien diseñado, puedo asegurarme de que solo los usuarios correctos (o sistemas) puedan acceder a la información correcta en el momento correcto.
Conceptos clave del control de acceso
1. Sujeto y objeto
- Sujetos: Son los actores que solicitan acceso, como personas, dispositivos, procesos de software, o sistemas.
- Ejemplo: Un empleado que inicia sesión en una aplicación o un proceso de software que consulta una base de datos.
- Objetos: Son los recursos a los que se accede.
- Ejemplo: Un archivo de datos, un servidor, una red o una aplicación.
2. Los cuatro pilares del control de acceso (IAM)
El control de acceso moderno utiliza sistemas de Gestión de Identidad y Acceso (IAM) para administrar la interacción entre sujetos y objetos. Estos sistemas abarcan cuatro procesos fundamentales:
1. Identificación:
- Representar de forma única a un usuario, dispositivo o proceso en el sistema mediante un ID o cuenta.
- Ejemplo práctico: Un cliente crea una cuenta en un sitio de comercio electrónico con un nombre de usuario único.
2. Autenticación:
- Confirmar que el sujeto es quien dice ser.
- Tipos de factores de autenticación:
- Algo que sabes: Contraseñas, PIN.
- Algo que tienes: Token, certificado digital.
- Algo que eres: Huella digital, reconocimiento facial.
- Ejemplo práctico: Un cliente ingresa su contraseña o verifica su identidad mediante un código enviado a su correo.
3. Autorización:
- Determinar qué derechos tiene el sujeto sobre un objeto.
- Modelos de autorización:
- Modelo discrecional (DAC): El propietario del recurso decide quién tiene acceso.
- Modelo obligatorio (MAC): Las reglas son impuestas por el sistema.
- Ejemplo práctico: Un cliente puede agregar productos al carrito, pero no modificar los datos de facturación de otro usuario.
4. Contabilidad:
- Registrar y monitorear el uso de los recursos.
- Ejemplo práctico: Un sistema registra todas las transacciones realizadas por un cliente en un sitio de comercio electrónico.
3. Autenticación, autorización y contabilidad (AAA)
En algunos entornos, los procesos de autenticación, autorización y contabilidad (AAA) se implementan juntos mediante servidores y protocolos dedicados. Esto es común en redes empresariales, donde se administran dispositivos y usuarios simultáneamente.
Ejemplo práctico: Sitio de comercio electrónico
Imagina que configuro un sitio para vender productos en línea. Para asegurarme de que el sistema sea funcional y seguro:
- Identificación: Los clientes crean cuentas para identificarse de manera única.
- Autenticación: Un cliente debe proporcionar su contraseña o un código enviado a su correo para verificar su identidad.
- Autorización: Defino reglas que permiten a los clientes ver sus pedidos, pero no los de otros. También aseguro que solo puedan realizar compras si tienen un método de pago válido.
- Contabilidad: Registro todas las acciones, como agregar productos al carrito, realizar un pedido o actualizar su dirección. Si algo sale mal, como un intento de fraude, estos registros me ayudan a identificar el problema.
Reflexión crítica con respuestas
1. ¿Cómo afecta cada proceso del control de acceso a la tríada CIA?
Respuesta:
- Confidencialidad:
- Identificación y autenticación garantizan que solo los usuarios correctos puedan acceder a datos confidenciales.
- Ejemplo: Un cliente debe autenticarse con su contraseña para ver sus pedidos.
- Integridad:
- Autorización asegura que los usuarios no puedan modificar recursos que no les pertenecen.
- Ejemplo: Un cliente no puede cambiar el precio de un producto en el carrito.
- Disponibilidad:
- Contabilidad monitorea el sistema para identificar intentos de abuso o ataques que puedan interrumpir el acceso a los servicios.
- Ejemplo: Si detecto intentos masivos de inicio de sesión fallidos, puedo bloquear al atacante para proteger mi servidor.
2. ¿Qué pasa si no implemento correctamente uno de los procesos de IAM?
Respuesta:
Si no configuro uno de los procesos, el sistema queda vulnerable:
- Identificación mal implementada: Los usuarios podrían no estar registrados de forma única, lo que generaría confusión o accesos indebidos.
- Autenticación débil: Los atacantes podrían hacerse pasar por usuarios legítimos mediante contraseñas simples o comprometidas.
- Autorización errónea: Los usuarios podrían acceder o modificar recursos para los que no tienen permisos, comprometiendo la integridad de los datos.
- Sin contabilidad: No tendría registros para investigar incidentes, lo que dificultaría detectar ataques o mejorar la seguridad.
3. ¿Cómo puedo garantizar que el control de acceso también proteja las interacciones entre sistemas?
Respuesta:
Debo asegurarme de que no solo las personas, sino también los dispositivos y procesos, sean autenticados y autorizados.
- Identificación y autenticación de sistemas: Usar certificados digitales para que los servidores confirmen su identidad antes de intercambiar datos.
- Autorización de procesos: Configurar reglas específicas para que las API o procesos solo accedan a los recursos necesarios.
- Contabilidad automatizada: Registrar todas las conexiones entre sistemas para identificar anomalías.
Recursos adicionales
Introducción a IAM (Microsoft)
Guía sobre autenticación de usuarios en NIST (en inglés)
Artículo práctico sobre modelos de autorización en OWASP