📚 Control de Acceso Basado en Reglas (Rule-Based Access Control)
Definición general:
El control de acceso basado en reglas no es un modelo exclusivo, sino un término paraguas para describir cualquier modelo en el que el acceso sea determinado por reglas impuestas por el sistema y no por el usuario.
Ejemplos claros de modelos basados en reglas:
-
MAC (Mandatory Access Control / Control de Acceso Obligatorio)
-
RBAC (Role-Based Access Control / Control de Acceso Basado en Roles)
-
ABAC (Attribute-Based Access Control / Control de Acceso Basado en Atributos)
Características importantes:
-
Centralización: Las reglas las establece la organización, no el propietario de los datos.
-
No discrecional: Los usuarios no pueden modificar libremente los permisos.
-
Automatización: Permite aplicar políticas que se ajustan automáticamente a condiciones específicas (ubicación, hora, nivel de riesgo, etc.).
🎯 Ejemplo práctico: Acceso condicional
¿Qué es el acceso condicional?
Es un tipo de control de acceso basado en reglas donde se supervisa el contexto en tiempo real para ajustar los permisos.
Ejemplos reales:
-
Si un usuario intenta acceder a un recurso desde otro país → Bloquear o pedir MFA.
-
Si un dispositivo no tiene el antivirus actualizado → Bloquear acceso a datos sensibles.
-
Si se detecta un patrón inusual de actividad → Suspender cuenta o exigir verificación.
Ejemplos de uso real:
-
Control de Cuentas de Usuario (UAC) en Windows:
Cuando un usuario intenta realizar cambios administrativos, el sistema requiere confirmación o credenciales. -
Comando sudo en Linux/Unix:
Exige autenticación para ejecutar comandos como superusuario.
🔐 Aplicaciones y herramientas en usos reales
-
Microsoft Conditional Access (Azure AD) → Muy usado para definir reglas basadas en ubicación, dispositivo, hora, etc.
-
Okta Policies → Control granular para acceso seguro y basado en contexto.
-
AWS IAM Policies + Conditions → ABAC con control en tiempo real según etiquetas, IP, etc.
-
Windows UAC → Protección contra cambios no autorizados en el sistema operativo.
-
Linux sudoers + sudo policy → Control de qué comandos pueden ejecutarse con privilegios.
🚨 Purple Team → ¿Cómo se ataca y cómo se defiende?
Principales ataques
-
Bypass de UAC (User Account Control Bypass) → Técnicas que evitan la ventana de confirmación para ejecutar código malicioso como administrador.
-
Manipulación de sudoers en Linux → Un atacante que consigue acceso root puede añadir su usuario para escalar privilegios.
-
Rogue policies o Policy Injection en entornos cloud → Un atacante que obtiene acceso a sistemas de gestión de políticas puede crear reglas permisivas.
Defensas esenciales
-
Configuración estricta de UAC (siempre preguntar)
-
Auditoría y control de sudoers (revisión de permisos y cambios en tiempo real)
-
Revisión periódica de políticas en IAM (en cloud)
-
Aplicación de reglas de acceso condicional estrictas (MFA, geolocalización, postura del dispositivo)
✅ Resumen práctico
-
El control de acceso basado en reglas impone decisiones automáticas según políticas.
-
MAC, RBAC y ABAC son modelos que aplican este principio.
-
El acceso condicional ajusta dinámicamente los permisos según contexto y comportamiento.
-
Herramientas como Azure AD, Okta o AWS IAM aplican políticas basadas en reglas.
-
Para protegerse, es esencial auditar, revisar configuraciones y aplicar controles de verificación como MFA.
📊 CUADRO-RESUMEN DE APLICACIONES REALES POR MODELO DE CONTROL DE ACCESO
📊 APLICACIONES REALES DE CONTROL DE ACCESO
MAC (Mandatory Access Control - Control de acceso obligatorio)
-
Entornos militares y gubernamentales → Sistemas que manejan información clasificada (Ej: sistemas del Departamento de Defensa).
-
Sistemas SELinux/AppArmor → En Linux para imponer restricciones estrictas de acceso a procesos y archivos.
-
Bases de datos altamente sensibles → Para asegurar que solo usuarios con la clasificación adecuada acceden a los datos.
DAC (Discretionary Access Control - Control de acceso discrecional)
-
Sistemas de archivos Windows (NTFS) → Usuarios pueden establecer permisos sobre carpetas y archivos.
-
Sistemas Unix/Linux tradicionales → Propietario de archivos puede decidir quién puede leer, escribir o ejecutar.
-
Aplicaciones colaborativas → Google Drive o Dropbox (puedes decidir con quién compartir archivos).
RBAC (Role-Based Access Control - Control de acceso basado en roles)
-
Active Directory (Windows Server) → Asignación de roles/grupos para acceso a recursos.
-
Bases de datos empresariales (ej: Oracle, SQL Server) → Usuarios asignados a roles con permisos específicos.
-
Aplicaciones SaaS (Salesforce, ServiceNow) → Asignación de roles administrativos, usuarios, soporte, etc.
ABAC (Attribute-Based Access Control - Control de acceso basado en atributos)
-
AWS IAM Policies (en la nube) → Controla accesos según etiquetas, IP, horario, etc.
-
Microsoft Azure AD Conditional Access → Acceso según ubicación, estado del dispositivo, pertenencia a grupos.
-
Google Cloud IAM Conditions → Define accesos por atributos dinámicos (tipo de recurso, identidad, contexto).
ACCESO CONDICIONAL (Ejemplo de Rule-Based Access Control avanzado)
-
Microsoft Azure AD Conditional Access → MFA si el usuario está fuera del país o en un dispositivo no administrado.
-
Okta Adaptive MFA → Solicita MFA sólo si el inicio de sesión es anómalo.
-
AWS IAM + Policies → Acceso permitido solo durante horarios laborales.
✅ Resumen:
-
MAC → Clasificación y alta seguridad (militar/gobierno)
-
DAC → Usuarios controlan sus propios archivos (oficinas/casero)
-
RBAC → Roles predefinidos controlan permisos (corporativo/empresarial)
-
ABAC → Condiciones dinámicas definen accesos (cloud/Zero Trust)
-
Acceso Condicional → Basado en contexto y comportamiento (seguridad avanzada/cloud)