Modelos de autorización: RBAC, MAC y DAC
Compare los modelos de control de acceso basado en roles, obligatorio y discrecional, y aprenda cuándo es adecuado cada uno en contextos empresariales y gubernamentales.
Modelos de autorización: RBAC, MAC y DAC es una lección gratuita de Security+ Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Security+ Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Security+ Academy incluye 4 lecciones en total.
Descripción general de los modelos de control de acceso
Los modelos de control de acceso definen las reglas y políticas que determinan qué sujetos (usuarios y procesos) pueden acceder a qué objetos (archivos, sistemas y datos). El modelo elegido determina quién puede conceder acceso, cómo se asignan los permisos y cómo se aplica el control. El examen Security+ cubre cuatro modelos principales: control de acceso discrecional (DAC), control de acceso obligatorio (MAC), control de acceso basado en roles (RBAC) y control de acceso basado en reglas. Comprender las ventajas de cada modelo y sus casos de uso adecuados es esencial para diseñar sistemas de autorización eficaces.
Control de acceso discrecional (DAC)
En el control de acceso discrecional (DAC), el propietario del recurso decide quién puede acceder a sus recursos y puede conceder o revocar el acceso de otros usuarios. El aspecto «discrecional» significa que los propietarios toman las decisiones: el sistema las aplica, pero no las impone. Este es el modelo utilizado en la mayoría de los entornos informáticos personales (permisos de archivos de Windows NTFS y permisos de archivos de Linux/Unix). La limitación de seguridad del DAC es que requiere que cada propietario de recursos tome decisiones correctas sobre el acceso: un usuario que obtiene acceso a un archivo puede conceder ese acceso a otros sin la intervención del administrador, lo que puede propagar datos confidenciales más allá de la audiencia prevista.
# DAC example: Linux file permissions (owner controls access)
# Create a file and check default permissions
touch confidential_data.txt
ls -la confidential_data.txt
# -rw-rw-r-- 1 alice users (owner=alice, can read/write; group can read/write; others read)
# Owner (Alice) discretionarily removes all access for others
chmod 600 confidential_data.txt
# -rw------- 1 alice users (only Alice can read/write)
# Alice grants read to a specific user via ACL
setfacl -m u:bob:r confidential_data.txtRiesgos del DAC: el problema del delegado confundido
El DAC presenta dos riesgos de seguridad inherentes. Acceso transitivo: el usuario A concede acceso al usuario B y el usuario B concede acceso al usuario C; es posible que el propietario original ni siquiera sepa que C tiene acceso a su recurso. El problema del delegado confundido: un programa con privilegios que actúa en nombre de un usuario con menos privilegios puede utilizar inadvertidamente sus privilegios de una forma que el usuario no podría utilizar directamente. En entornos DAC, una sola cuenta comprometida puede acceder potencialmente a todos los recursos a los que se ha concedido acceso a ese usuario y también puede conceder acceso a otros antes de que se detecte el compromiso. El DAC es cómodo, pero plantea dificultades para contener estrictamente la información.
Control de acceso obligatorio (MAC)
En el control de acceso obligatorio (MAC), el sistema operativo aplica políticas de acceso basadas en etiquetas de seguridad asignadas tanto a los sujetos (usuarios) como a los objetos (datos). Los usuarios no pueden omitir ni cambiar estas políticas; solo el administrador del sistema o la política de seguridad pueden modificarlas. El MAC se utiliza en entornos gubernamentales y militares con información clasificada, donde los datos deben compartimentarse estrictamente. Un usuario con autorización «Secreto» no puede acceder a datos etiquetados como «Alto secreto», aunque el propietario de los datos quisiera concederle acceso. El modelo Bell-LaPadula (no leer hacia arriba, no escribir hacia abajo) y el modelo Biba (no escribir hacia arriba, no leer hacia abajo) son implementaciones formales de MAC.
# SELinux is a MAC implementation for Linux
# Check SELinux mode and policy
getenforce # Enforcing / Permissive / Disabled
sestatus # Detailed SELinux status
# View SELinux security context labels on files
ls -Z /etc/passwd
# system_u:object_r:passwd_file_t:s0 /etc/passwd
# Security context: user:role:type:level
# A process can only access files where its type has explicit permission
sudo ausearch -m avc -ts recent # View MAC policy denialsModelos MAC Bell-LaPadula y Biba
Dos modelos MAC formales expresan objetivos de seguridad mediante reglas matemáticas. Bell-LaPadula se centra en la confidencialidad: los sujetos no pueden leer datos por encima de su nivel de clasificación (no leer hacia arriba) ni escribir datos en un nivel de clasificación inferior (no escribir hacia abajo). Esto impide que la información confidencial llegue a usuarios no autorizados. Biba se centra en la integridad: los sujetos no pueden escribir en un nivel de integridad superior (no escribir hacia arriba) ni leer desde un nivel de integridad inferior (no leer hacia abajo). Biba evita que las entradas de baja integridad contaminen los datos de alta integridad. Los sistemas MAC reales (como SELinux) combinan aspectos de ambos modelos.
Control de acceso basado en roles (RBAC)
El control de acceso basado en roles (RBAC) asigna permisos a roles en lugar de asignarlos directamente a usuarios individuales y, después, asigna los usuarios a los roles. Esto resuelve el desafío de gestionar permisos individuales a gran escala. Algunos roles habituales en entornos empresariales son: admin, auditor, developer, HR_manager y finance_analyst. Cuando se incorpora un nuevo empleado, se le añade al rol adecuado y hereda inmediatamente todos los permisos que requiere dicho rol. Cuando un empleado cambia de puesto, cambia su rol y los permisos se ajustan automáticamente. RBAC es el modelo predominante en los sistemas IAM empresariales.
# RBAC example (database permissions)
# Create roles and assign permissions
CREATE ROLE readonly_analyst;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_analyst;
CREATE ROLE data_engineer;
GRANT SELECT, INSERT, UPDATE ON customer_data TO data_engineer;
# Assign users to roles
GRANT readonly_analyst TO alice;
GRANT data_engineer TO bob;
# When Alice is promoted: revoke old role, grant new one
REVOKE readonly_analyst FROM alice;
GRANT data_engineer TO alice;Ventajas de RBAC: escalabilidad y separación de funciones
La principal ventaja de RBAC es la escalabilidad administrativa. Modificar los permisos de un rol afecta instantáneamente a todos los usuarios de ese rol; no es necesario actualizar los registros de usuarios individuales en cientos de sistemas. RBAC admite de forma natural la separación de funciones al garantizar que ningún rol tenga permisos incompatibles (por ejemplo, un rol que pueda crear y aprobar transacciones financieras). RBAC también simplifica el cumplimiento: los auditores pueden revisar los roles y sus permisos en lugar de auditar miles de asignaciones de usuarios individuales. La limitación es la proliferación de roles: a veces las organizaciones crean demasiados roles granulares, lo que genera una complejidad de gestión que reduce la ventaja de escalabilidad.
Control de acceso basado en reglas
El control de acceso basado en reglas (que no debe confundirse con RBAC) concede o deniega el acceso según un conjunto de reglas condicionales, en lugar de basarse únicamente en la identidad o el rol. Las reglas de firewall son el ejemplo clásico: «Permitir TCP desde 192.168.1.0/24 a cualquier destino en el puerto 443. Denegar todo el tráfico restante». El acceso se evalúa siguiendo las reglas en orden hasta encontrar una coincidencia. El control basado en reglas se combina habitualmente con otros modelos: MAC utiliza etiquetas de seguridad como reglas y el control de acceso basado en atributos (ABAC) amplía la lógica basada en reglas para evaluar simultáneamente varios atributos (departamento del usuario, tipo de dispositivo, hora del día y clasificación del recurso) y tomar decisiones detalladas.
# Rule-based access control: iptables firewall rules
# Rules are evaluated in order; first match wins
# Allow established/related connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow specific source IP to SSH
iptables -A INPUT -s 10.0.0.100 -p tcp --dport 22 -j ACCEPT
# Allow HTTPS from anywhere
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Default deny all other inbound
iptables -A INPUT -j DROPControl de acceso basado en atributos (ABAC)
El ABAC (control de acceso basado en atributos) es el modelo de control de acceso más flexible y detallado. Las decisiones de acceso evalúan simultáneamente varios atributos: atributos del sujeto (departamento del usuario, nivel de autorización y ubicación), atributos del objeto (clasificación de los datos, departamento propietario y etiqueta de retención), atributos del entorno (hora del día, tipo de dispositivo y ubicación de la red) y atributos de la acción (leer, escribir y eliminar). Una política podría indicar: «Permitir el acceso si user.department = Finance AND resource.classification = Internal AND device.type = corporate AND time.hour BETWEEN 8 AND 18». ABAC permite tomar decisiones de políticas de confianza cero y se implementa mediante productos como XACML y motores de políticas IAM en la nube.
Elegir el modelo adecuado
El modelo de control de acceso adecuado depende de los requisitos de seguridad y del contexto de la organización. DAC: adecuado para la informática personal y equipos pequeños en los que se prioriza la comodidad sobre el control estricto. MAC: necesario en entornos gubernamentales o militares con información clasificada y una compartimentación estricta de la información. RBAC: ideal para empresas en las que la escalabilidad administrativa es fundamental y los roles se corresponden claramente con las funciones laborales. ABAC: adecuado para entornos de nube y arquitecturas de confianza cero en las que se necesitan políticas detalladas y basadas en el contexto. En la práctica, la mayoría de las organizaciones utiliza una combinación: RBAC como base y ABAC para las decisiones de acceso sensibles al contexto.
Listas de control de acceso (ACL)
Independientemente del modelo de control de acceso, las listas de control de acceso (ACL) son el mecanismo de implementación técnica más común. Una ACL asociada a un recurso especifica qué sujetos pueden realizar qué acciones. Las ACL del sistema de archivos (Windows NTFS, ACL POSIX de Linux) controlan el acceso a archivos y directorios. Las ACL de red controlan el flujo de tráfico en el router o a nivel de la red en la nube. Las ACL de base de datos controlan el acceso a nivel de tabla y de fila. Las ACL pueden implementar cualquiera de los modelos descritos: la ACL de un archivo implementa DAC cuando el propietario la controla; la ACL de un sistema de seguridad implementa MAC cuando las etiquetas determinan las entradas; la ACL de una aplicación implementa RBAC cuando las entradas hacen referencia a roles.
# Windows NTFS ACL example using icacls
# View current ACL on a folder
icacls 'C:\Sensitive\HR_Data'
# BUILTIN\Administrators:(OI)(CI)(F) <- Full control
# CONTOSO\HR_Team:(OI)(CI)(RX) <- Read and Execute
# Grant specific permissions to HR Managers group
icacls 'C:\Sensitive\HR_Data' /grant 'CONTOSO\HR_Managers:(OI)(CI)(M)'
# (OI)=Object Inherit, (CI)=Container Inherit, (M)=Modify
# Remove access for a former contractor
icacls 'C:\Sensitive\HR_Data' /remove 'CONTOSO\contractors'Comprobación rápida
Compruebe su comprensión de los conceptos de CompTIA Security+ (SY0-701) de esta lección.
Resumen de la lección
En esta lección ha aprendido que: DAC permite a los propietarios de los recursos controlar el acceso (es flexible, pero arriesgado); MAC utiliza etiquetas de seguridad aplicadas por el sistema (es estricto y se usa en entornos clasificados); RBAC asigna permisos a roles para ofrecer escalabilidad empresarial; y ABAC evalúa varios atributos para tomar decisiones detalladas de confianza cero. A continuación, exploraremos la identidad federada: SAML, OAuth y OpenID Connect.
Preguntas frecuentes
¿La lección «Modelos de autorización: RBAC, MAC y DAC» es gratis?
Sí — el texto completo de «Modelos de autorización: RBAC, MAC y DAC» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Security+ Academy, actualiza a CoddyKit PRO. El curso de Security+ Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Modelos de autorización: RBAC, MAC y DAC»?
Compare los modelos de control de acceso basado en roles, obligatorio y discrecional, y aprenda cuándo es adecuado cada uno en contextos empresariales y gubernamentales. Practicas Security+ Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Security+ Academy?
No se requiere experiencia previa. Security+ Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Modelos de autorización: RBAC, MAC y DAC»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Security+ Academy?
Sí. Cada lección de Security+ Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Políticas de contraseñas y autenticación multifactor
- Biometría y autenticación basada en tokens
- Modelos de autorización: RBAC, MAC y DAC
- Identidad federada: SAML, OAuth y OpenID Connect