Un parche de noviembre introduce nuevos conflictos en Active Directory

Posted on Wednesday, January 12, 2022 in Administración de sistemas

Un parche de noviembre introduce nuevos conflictos en Active Directory

En un proyecto para un cliente en el que estuve trabajando el mes pasado, vimos que al intentar crear nuevos usuarios en Active Directory obteníamos el siguiente error:

ldap_add: Constraint violation (19)
        additional info: 000021C7: AtrErr: DSID-03200DF3, #1:
        0: 000021C7: DSID-03200DF3, problem 1005 (CONSTRAINT_ATT_TYPE),
data 0, Att 90303 (servicePrincipalName)

Un error aparentemente normal cuando efectivamente ya existe un usuario con ese principal. Pero este no era el caso, como confirmó una búsqueda LDAP.

Entonces intenté hacer la misma operación en un entorno de pruebas propio, totalmente distinto del entorno del cliente y con un servidor Active Directory distinto.
El resultado, el mismo: CONSTRAINT_ATT_TYPE.

Tras un día y medio probando todo lo posible sin avances, empezamos a ver otros clientes que tenían el mismo problema. Demasiada casualidad.

Resultó que todo esto era debido al cambio KB5008382 que Microsoft introdujo en Active Directory en noviembre.

Este cambio introduce nuevas restricciones en Active Directory a la hora de crear nuevos usuarios que efectivamente suponen un cambio de comportamiento en Active Directory afectando a muchos productos que usan SPNEGO.

Para un cambio tan relevante, es difícil entender que haya habido tan poca comunicación. Teniendo en cuenta que es un cambio para corregir un fallo de seguridad, es posible que no hayan querido dar muchos detalles con antelación para que no pudieran ser aprovechados por atacantes, pero una vez que el cambio fue publicado, podrían haberle dado más publicidad. Ni siquiera hay información pública sobre en qué consiste el fallo de seguridad que este cambio soluciona (aunque se pueden hacer especulaciones, como se verá después). ¿Seguridad por oscuridad?

En el siguiente articulo explico el contexto del problema con las posibles soluciones, con ayuda por parte de Cloudera y Bluemetrix en la investigación:

Violación de restricción en principal de Active Directory que no existe