Resumo
As proteções para CVE-2022-21920 estão incluídas nas atualizações de Windows de 11 de janeiro de 2022 e Windows atualizações. Estas atualizações contêm lógicas melhoradas para detetar ataques de atualização para Nomes principais de Serviços de 3 partes ao utilizar o protocolo de autenticação Do Microsoft Negotiate.
Este artigo fornece orientações quando a autenticação Kerberos não é bem-sucedida.
Mais informações
A instalação das atualizações do Windows de 11 de janeiro de 2022 e de atualizações posteriores do Windows poderá fazer com que a autenticação falhe durante SPNs de 3 partes, quando a autenticação Kerberos não for bem-sucedida. Nestes ambientes, é provável que a autenticação Kerberos para SPNs de 3 partes não tenha funcionado durante algum tempo. Poderá ver o seguinte evento nos sistemas Windows cliente para ajudar na triagem.
Captura de ecrã do Evento LSA 40970 a identificar uma queda de NTLM para um SPN específico a partir de um ambiente de teste da Microsoft. |
Versão de Texto do Evento LSA 40970 |
|
O Sistema de Segurança detetou uma tentativa de desatualize ao contactar o SPN de 3 partes <nome SPN> com o código de erro "A base de dados SAM no servidor Windows não tem uma conta de computador para a relação de confiança da estação de trabalho (0x0000018b)" Foi negada a autenticação. |
Ação
A Microsoft recomenda que faça uma triagem do motivo pelo qual a autenticação Kerberos para o SPN de 3 partes falhou. Alguns motivos comuns para falhas de autenticação Kerberos incluem os seguintes:
-
O SPN que está a ser utilizado como destino da autenticação tem uma forma mal formatação. Para obter mais informações, consulte Formatos de Nome para SPNs Exclusivos.
Nota: As aplicações e APIs podem ter definições mais estritas ou diferentes para o que constituem um SPN legítimo para o respetivo serviço.
Exemplos de um SPN legítimo
http/webserver
Host/machine2.contoso.com
Ldap/machine1.contoso.com/contoso.com
Service/machine1:10100
Exemplos de SPNs possivelmente mal formatadosSPN
Razão
Anfitrião/anfitrião/máquina1
O anfitrião/anfitrião é provavelmente um erro, uma vez que "anfitrião" normalmente é uma classe de serviço e não um nome de máquina. É possível que o SPN legítimo seja anfitrião/máquina1.
Ldap/machine/contoso.com:10100
As portas podem ser especificadas no nome do anfitrião ("computador") e não no nome da instância de serviço. É possível que o SPN legítimo seja "ldap/machine:10100/contoso.com"
Ldap/dc-a/DC=CONTOSO,DC=COM
Algumas APIs esperam um nome DNS em vez de um FQDN. Por exemplo, a função DsBindA (ntdsapi.h) espera ser transmitida num nome DNS. Se um FQDN for transmitido, poderá resultar no SPN mal formatado.
O SPN legítimo pode ser "ldap/dc-a/contoso.com"Para resolver estes problemas, considere utilizar o SPN correto ou registar o SPN mal formatado para a conta de serviço correta.
-
O SPN que está a ser utilizado como destino da autenticação não existe. Para resolver este problema, considere registar o SPN na conta de serviço correta.
-
O computador cliente Windows não tem Linha de Visão para um controlador de domínio (como os DCs estão offline, não pode ser detetado em DNS ou o acesso à porta KDC está bloqueado).
-
Pode estar a utilizar nomes NetBIOS num cenário em que os nomes netBIOS não funcionam. Por exemplo, aceder a recursos de domínio a partir de uma máquina não associado ao domínio e a resolução de nomes NetBIOS está desativada ou não a funcionar.
A Microsoft recomenda a utilização de um UpN (User Principal Name) ou de um DNS (Sistema de Nomes de Domínio) em vez do nome NetBIOS.
Registar SPNs
Dependendo da configuração da aplicação e do seu ambiente, os SPNs podem ser configurados no atributo Nome Principal do Serviço da conta do serviço ou na conta do computador localizada no domínio do Active Directory com o que o cliente Kerberos está a tentar estabelecer a ligação Kerberos. Para que a autenticação Kerberos funcione corretamente, o SPN de destino tem de ser válido.
Consulte a documentação da implementação ou o fornecedor de suporte para cada aplicação específica para saber como ativar a autenticação Kerberos. Alguns instaladores ou aplicações da aplicação registam SPNs automaticamente. Existem diferentes opções para programadores e administradores registar um SPN:
-
Para registar manualmente SPNs numa instância de serviço, consulte Setspn.
-
Para registar SPNs através de programação para uma instância de serviço, consulte Como um Serviço Regista os seus SPNs para descrever como:
-
Ligue para a função DsGetSpn para criar um ou mais SPNs exclusivos para a instância de serviço. Para obter mais informações, consulte Formatos de Nome para SPNs Exclusivos.
-
Ligue para a função DsWriteAccountSpn para registar os nomes na conta de início de sessão do serviço.
-
Problemas conhecidos
Atualmente, não existem problemas conhecidos com esta atualização.