# Análisis en profundidad de los ACL en Active Directory: Tipos de ACE, ACCESS_MASK y Derechos de Control de Acceso
Active Directory utiliza 22 tipos de ACE, agrupados en 4 categorías para la gestión de accesos. El primer tipo incluye ACCESS_ALLOWED_ACE_TYPE, ACCESS_DENIED_ACE_TYPE, SYSTEM_AUDIT_ACE_TYPE, SYSTEM_MANDATORY_LABEL_ACE_TYPE y SYSTEM_SCOPED_POLICY_ID_ACE_TYPE. Estos ACE operan sobre ACCESS_MASK y el SID del sujeto, aplicando permisos y denegaciones básicos.
El segundo tipo —ACCESS_ALLOWED_OBJECT_ACE_TYPE y ACCESS_DENIED_OBJECT_ACE_TYPE— amplía las capacidades. Admite ACCESS_MASK, GUID para derechos extendidos e herencia a objetos hijos. Este tipo predomina en AD por su flexibilidad.
El tercer tipo (ACCESS_ALLOWED_CALLBACK_ACE_TYPE, ACCESS_DENIED_CALLBACK_ACE_TYPE, SYSTEM_AUDIT_CALLBACK_ACE_TYPE, SYSTEM_RESOURCE_ATTRIBUTE_ACE_TYPE) añade expresiones condicionales a ACCESS_MASK y SID. Las reglas lógicas evalúan el token de acceso —por ejemplo, restringiendo el acceso según reclamos de dispositivos—.
El cuarto tipo combina ACE de objetos con expresiones condicionales: ACCESS_ALLOWED_CALLBACK_OBJECT_ACE, ACCESS_DENIED_CALLBACK_OBJECT_ACE, SYSTEM_AUDIT_CALLBACK_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE_TYPE. Sin embargo, las expresiones condicionales son ignoradas por los mecanismos de verificación en este caso.
Ausencia de Derechos GENERIC en los Descriptores de Seguridad
ACCESS_MASK es un campo de 32 bits donde bits individuales definen derechos. Los mapeos estándar incluyen GENERIC_READ, GENERIC_WRITE y GENERIC_ALL, pero estos bits están prohibidos en los descriptores de seguridad. Configurarlos produce resultados impredecibles y son ignorados por el algoritmo de autorización.
Los bits GENERIC son relevantes durante las comprobaciones de acceso mediante AccessCheckByTypeResultListAndAuditAlarmByHandle con GenericMapping. Este parámetro mapea los derechos GENERIC a derechos específicos del objeto. AD define sus propios mapeos de forma independiente, que difieren de los del sistema de archivos o servicios.
Al crear un ACE, los bits GENERIC están bloqueados. En la práctica, GENERIC_ALL es solo una combinación de bits específicos del objeto según el mapeo estándar de AD.
Banderas de ACCESS_MASK y Derechos de Control de Acceso
Banderas clave:
- RIGHT_DS_CREATE_CHILD / RIGHT_DS_DELETE_CHILD: objectGUID es el schemaID del tipo de hijo (p. ej., computer en OU=Computers). Sin GUID —se aplica a todos los tipos.
- RIGHT_DS_LIST_CONTENTS: lectura de hijos; objectGUID ignorado.
- RIGHT_DS_WRITE_PROPERTY_EXTENDED: objectGUID para escrituras validadas, pero se verifica por nombre de atributo.
- RIGHT_DS_READ_PROPERTY / RIGHT_DS_WRITE_PROPERTY: objectGUID es un conjunto de propiedades o schemaID. Sin GUID —todas las propiedades.
- RIGHT_DS_DELETE_TREE: eliminación de árboles de objetos.
- RIGHT_DS_LIST_OBJECT: visibilidad del objeto en modo List Object (dSHeuristics).
- RIGHT_DS_CONTROL_ACCESS: objectGUID para derechos extendidos. Sin GUID —todos.
Derechos de Control de Acceso: Derechos Extendidos, Escrituras Validadas, Conjuntos de Propiedades
Los derechos de control de acceso se dividen en tres categorías:
- Derechos Extendidos —derechos para realizar acciones (p. ej., sincronización de dominio).
- Escrituras Validadas —modificación de atributos específicos con comprobaciones de validación.
- Conjuntos de Propiedades —acceso a grupos de atributos para ACL más compactas.
AllExtendedRights en un objeto computer no otorga acceso de escritura a msDS-AllowedToActOnBehalfOfOtherIdentity (RBCD). Se trata de una escritura validada del conjunto de propiedades User-Account-Restrictions (GUID=4c164200-20c0-11d0-a768-00aa006e0529). Requiere derechos separados de WRITE_PROPERTY o del conjunto de propiedades.
Herencia de ACE en la Jerarquía de AD
Los ACE con banderas como OBJECT_INHERIT_ACE, CONTAINER_INHERIT_ACE, NO_PROPAGATE_INHERIT_ACE, INHERIT_ONLY_ACE e INHERITED_ACE se propagan a los hijos. Los tipos simples heredan a cualquier contenedor. Los ACE de objetos (con GUID) están restringidos por InheritedObjectType.
Puntos Clave
- 22 tipos de ACE agrupados en 4 categorías: básicos, de objeto, callback y callback de objeto.
- Los bits GENERIC-* no se almacenan en el SD; solo se usan para mapeo durante las comprobaciones.
- Los derechos de control de acceso incluyen derechos extendidos (acciones), escrituras validadas (atributos) y conjuntos de propiedades (grupos).
- RBCD requiere derechos de escritura validada, no cubiertos por AllExtendedRights.
- La herencia de ACE se gestiona con banderas e InheritedObjectType para un control preciso.
— Editorial Team
Aún no hay comentarios.