Riassunto
Le protezioni per CVE-2022-21920 sono incluse negli aggiornamenti Windows dell'11 gennaio 2022 e negli aggiornamenti Windows successivi. Questi aggiornamenti contengono una logica migliorata per rilevare gli attacchi di downgrade per i nomi delle entità servizio in tre parti quando si usa il protocollo di autenticazione Microsoft Negotiate.
Questo articolo fornisce indicazioni quando l'autenticazione Kerberos non riesce.
Altre informazioni
L'installazione degli aggiornamenti di Windows dell'11 gennaio 2022 e degli aggiornamenti Windows successivi potrebbe causare l'esito negativo dell'autenticazione per gli SPN in 3 parti in cui l'autenticazione Kerberos non riesce. Per questi ambienti, è probabile che l'autenticazione Kerberos per i nomi SPN a 3 parti non funzioni da tempo. Potrebbe essere visualizzato l'evento seguente in Windows client per facilitare la triage.
Schermata dell'evento LSA 40970 che identifica un fallback NTLM per uno specifico SPN da un ambiente di test Microsoft. |
LSA Event 40970 Text version |
|
Il sistema di sicurezza ha rilevato un tentativo di downgrade quando si contatta l'SPN in 3 parti <nome SPN> con il codice di errore "Il database SAM nel Windows Server non ha un account computer per la relazione di trust della workstation (0x0000018b)" L'autenticazione è stata negata. |
Azione
Microsoft consiglia di capire perché l'autenticazione Kerberos per l'SPN in 3 parti non è riuscita. Di seguito sono riportati alcuni dei motivi più comuni per cui si verifica un errore di autenticazione Kerberos:
-
Il formato del nome SPN usato come destinazione per l'autenticazione non è corretto. Per altre informazioni, vedere Formati dei nomi per SPN univoci.
Nota: Le applicazioni e le API possono avere definizioni più rigide o diverse per ciò che costituisce un SPN legittimo per il servizio.
Esempi di un nome SPN legittimo
http/webserver
Host/machine2.contoso.com
Ldap/machine1.contoso.com/contoso.com
Servizio/computer1:10100
Esempi di nomi SPN con formato forse non correttoSPN
Motivo
Host/host/computer1
Host/host è molto probabilmente un errore perché "host" è in genere una classe di servizio e non un nome di computer. È possibile che l'SPN legittimo sia host/computer1.
Ldap/machine/contoso.com:10100
Le porte possono essere specificate nel nome host ("computer") e non nel nome dell'istanza del servizio. È possibile che l'SPN legittimo sia "ldap/machine:10100/contoso.com"
Ldap/dc-a/DC=CONTOSO,DC=COM
Alcune API prevedono un nome DNS invece di un FQDN. Ad esempio, la funzione DsBindA (ntdsapi.h) prevede di essere passata in un nome DNS. Se viene passato un NOME FQDN, il nome SPN potrebbe non essere valido.
L'SPN legittimo può essere "ldap/dc-a/contoso.com"Per risolvere questi problemi, è consigliabile usare l'SPN corretto o registrare l'SPN in formato non corretto nell'account del servizio corretto.
-
Il nome SPN usato come destinazione per l'autenticazione non esiste. Per risolvere il problema, è consigliabile registrare l'SPN nell'account del servizio corretto.
-
Il computer client Windows non ha una linea di vista per un controller di dominio (ad esempio i controller di dominio sono offline, non possono essere individuati nel DNS o l'accesso alla porta KDC è bloccato).
-
È possibile che si utilizzino nomi NetBIOS in uno scenario in cui i nomi NetBIOS non funzionano. Un esempio è l'accesso alle risorse di dominio da un computer non appartenente a un dominio e la risoluzione dei nomi NetBIOS è disabilitata o non funziona.
Microsoft consiglia di usare un nome dell'entità utente (UPN) o un DNS (Domain Name System) al posto del nome NetBIOS.
Registrazione dei nomi SPN
A seconda della configurazione dell'applicazione e dell'ambiente, i nomi SPN possono essere configurati nell'attributo Service Principal Name dell'account del servizio o dell'account computer che si trova nel dominio Active Directory con cui il client Kerberos sta tentando di stabilire la connessione Kerberos. Per il corretto funzionamento dell'autenticazione Kerberos, l'SPN di destinazione deve essere valido.
Per istruzioni su come abilitare l'autenticazione Kerberos, consultare la documentazione di distribuzione o il provider di supporto per ogni applicazione specifica. Alcuni programmi di installazione o applicazioni registrano automaticamente i nomi SPN. Sono disponibili diverse opzioni per la registrazione di un nome SPN sia per gli sviluppatori che per gli amministratori:
-
Per registrare manualmente i nomi SPN per un'istanza del servizio, vedere Setspn.
-
Per registrare SPN a livello di programmazione per un'istanza del servizio, vedere Come un servizio registra i nomi SPN che descrivono come:
-
Chiamare la funzione DsGetSpn per creare uno o più nomi SPN univoci per l'istanza del servizio. Per altre informazioni, vedere Formati dei nomi per SPN univoci.
-
Chiamare la funzione DsWriteAccountSpn per registrare i nomi nell'account di accesso del servizio.
-
Problemi noti
Attualmente non ci sono problemi noti con questo aggiornamento.