Resumen
Las protecciones para CVE-2022-21920 se incluyen en las actualizaciones de Windows del 11 de enero de 2022 y Windows posteriores. Estas actualizaciones contienen lógica mejorada para detectar ataques de degradación para nombres de entidad de seguridad de servicio de 3 partes al usar el protocolo de autenticación Microsoft Negotiate.
En este artículo se proporcionan instrucciones cuando la autenticación Kerberos no se realiza correctamente.
Obtener más información
Instalar las actualizaciones de Windows del 11 de enero de 2022 y las actualizaciones de Windows posteriores puede provocar errores de autenticación para SPNs de 3 partes en los que la autenticación Kerberos no se realiza correctamente. En estos entornos, es probable que la autenticación Kerberos para SPN de 3 partes no haya funcionado durante algún tiempo. Es posible que vea el siguiente evento en Windows cliente para ayudar a la triage.
Captura de pantalla del evento 40970 de LSA que identifica una reserva de NTLM para un SPN específico de un entorno de prueba de Microsoft. |
Versión de texto del evento LSA 40970 |
|
El sistema de seguridad ha detectado un intento de degradación al ponerse en contacto con el SPN de tres partes <spn> con código de error "La base de datos de SAM en Windows Server no tiene una cuenta de equipo para la relación de confianza de la estación de trabajo (0x0000018b)" Se ha denegado la autenticación. |
Acción
Microsoft recomienda que mida por qué no se pudo realizar la autenticación Kerberos para el SPN de 3 partes. Algunos motivos comunes para el error de autenticación Kerberos son los siguientes:
-
El SPN que se usa como destino para la autenticación está malformado. Para obtener más información, vea Formatos de nombre para SPN únicos.
Nota: Las aplicaciones y las API pueden tener definiciones más estrictas o diferentes para lo que constituye un SPN legítimo para su servicio.
Ejemplos de un SPN legítimo
http/webserver
Host/machine2.contoso.com
Ldap/machine1.contoso.com/contoso.com
Servicio/máquina1:10100
Ejemplos de SPN posiblemente malformadosSPN
Motivo
Host/host/machine1
Host/host es probablemente un error, ya que "host" suele ser una clase de servicio y no un nombre de equipo. Es posible que el SPN legítimo sea host/máquina1.
Ldap/machine/contoso.com:10100
Los puertos se pueden especificar en el nombre de host ("equipo") y no en el nombre de la instancia de servicio. Es posible que el SPN legítimo sea "ldap/machine:10100/contoso.com"
Ldap/dc-a/DC=CONTOSO,DC=COM
Algunas API esperan un nombre DNS en lugar de un FQDN. Por ejemplo, la función DsBindA (ntdsapi.h) espera que se pase en un nombre DNS. Si se pasa un FQDN, puede dar como resultado el SPN malformado.
El SPN legítimo puede ser "ldap/dc-a/contoso.com"Para solucionar estos problemas, considere la posibilidad de usar el SPN correcto o registrar el SPN malformado en la cuenta de servicio correcta.
-
El SPN que se usa como destino para la autenticación no existe. Para solucionar este problema, considere la posibilidad de registrar el SPN en la cuenta de servicio correcta.
-
El Windows cliente no tiene Línea de visión para un controlador de dominio (como los controladores de dominio están sin conexión, no se pueden detectar en DNS o se bloquea el acceso al puerto KDC).
-
Es posible que esté usando nombres NetBIOS en un escenario en el que los nombres NetBIOS no funcionan. Un ejemplo es obtener acceso a recursos de dominio desde un equipo no unido a un dominio y la resolución de nombres NetBIOS está deshabilitada o no funciona.
Microsoft recomienda usar un nombre principal de usuario (UPN) o un sistema de nombres de dominio (DNS) en lugar del nombre NetBIOS.
Registro de SPNs
Según la configuración de la aplicación y su entorno, es posible que los SPN se configuren en el atributo Nombre principal del servicio de la cuenta de servicio o en la cuenta de equipo ubicada en el dominio de Active Directory con la que el cliente Kerberos intenta establecer la conexión Kerberos. Para que la autenticación Kerberos funcione correctamente, el SPN de destino debe ser válido.
Consulte la documentación de implementación o el proveedor de soporte técnico para cada aplicación específica para obtener instrucciones sobre cómo habilitar la autenticación Kerberos. Algunos instaladores de aplicaciones o aplicaciones registran SPN automáticamente. Hay diferentes opciones para que desarrolladores y administradores registren un SPN:
-
Para registrar manualmente spns para una instancia de servicio, vea Setspn.
-
Para registrar SPNs mediante programación para una instancia de servicio, vea Cómo registra un servicio sus SPNs describiendo cómo:
-
Llame a la función DsGetSpn para crear uno o varios SPN únicos para la instancia de servicio. Para obtener más información, vea Formatos de nombre para SPNs únicos.
-
Llame a la función DsWriteAccountSpn para registrar los nombres en la cuenta de inicio de sesión del servicio.
-
Problemas conocidos
Actualmente, no hay problemas conocidos con esta actualización.