Resumo
O CVE-2021-42278 aborda uma vulnerabilidade de bypass de segurança que permite que os possíveis invasores representem um controlador de domínio usando a spoofing da conta de computador sAMAccountName.
Este artigo fornece detalhes adicionais e uma seção de perguntas frequentes para as alterações de segurança do Gerenciador de Contas de Segurança (SAM) do Active Directory feitas por atualizações do Windows lançadas em 9 de novembro de 2021 e posteriores, conforme documentado no CVE-2021-42278.
Verificações de validação do Active Directory
Depois de instalar o CVE-2021-42278,o Active Directory executará as inspeções de validação listadas abaixo nos atributos sAMAccountName e UserAccountControl de contas de computador criadas ou modificadas por usuários que não têm direitos de administrador para contas de máquina.
-
Validação sAMAccountType para contas de usuário e computador
-
As contas ObjectClass=Computer (ou subclasse do computador) devem ter sinalizadores UserAccountControl de UF_WORKSTATION_TRUST_ACCOUNT ou UF_SERVER_TRUST_ACCOUNT
-
ObjectClass=User deve ter sinalizadores UAC de UF_NORMAL_ACCOUNT ou UF_INTERDOMAIN_TRUST_ACCOUNT
-
-
Validação sAMAccountName para contas de computador
O sAMAccountName de uma conta de computador cujo atributo UserAccountControl contém o sinalizador UF_WORKSTATION_TRUST_ACCOUNT deve terminar com um único sinal de dólar ($). Quando essas condições não são atendidas, o Active Directory retorna o código de falha 0x523 ERROR_INVALID_ACCOUNTNAME. As validações com falha são registradas na ID do evento Directory-Services-SAM 16991 no log de eventos do Sistema.
Quando essas condições não são atendidas, o Active Directory retorna um código de falha de ACCESS_DENIED. As validações com falha são registradas na ID do evento Directory-Services-SAM 16990 no log de eventos do Sistema.
Eventos de auditoria
Classe de objeto e falha de validação userAccountControl
Quando a classe Object e a validação UserAccountControl falharem, o seguinte evento será registrado no log do sistema:
Log de Eventos |
Sistema |
Tipo de Evento |
Erro |
Fonte de Eventos |
Directory-Services-SAM |
ID do Evento |
16990 |
Texto do Evento |
O gerente de conta de segurança bloqueou um não administrador da criação de uma conta do Active Directory neste domínio com sinalizadores de tipo de conta userAccountControl e objectClass. Detalhes: Nome da conta: %1%n Objeto AccountClass: %2%n userAccountControl: %3%n Endereço do chamador: %4%n SID do chamador: %5%n%n |
Falha na validação do Nome da Conta SAM
Quando a validação do Nome da Conta SAM falhar, o seguinte evento será registrado no log do sistema:
Log de Eventos |
Sistema |
Tipo de Evento |
Erro |
Fonte de Eventos |
Directory-Services-SAM |
ID do Evento |
16991 |
Texto do Evento |
O gerente de conta de segurança bloqueou um não administrador de criar ou renomear uma conta de computador usando um sAMAccountName inválido. sAMAccountName em contas de computador deve terminar com um único sinal de $ à frente. Tentativa de sAMAccountName: %1 SAMAccountName recomendado: %1$ |
Eventos de auditoria bem-sucedidos de criação de contas de computador
Os seguintes eventos de auditoria existentes estão disponíveis para a criação bem-sucedida de conta de computador:
-
4741(S): uma conta de computador foi criada
-
4742(S): uma conta de computador foi alterada
-
4743(S): uma conta de computador foi excluída
Para obter mais informações, consulte Audit Computer Account Management.
Perguntas frequentes
P1. Como essa atualização afeta objetos existentes no Active Directory?
A1. Para objetos existentes, a validação ocorre quando os usuários que não têm direitos de administrador modificam os atributos sAMAccountName ou UserAccountControl.
P2. O que é um sAMAccountName?
A2. sAMAccountName é um atributo exclusivo em todas as entidades de segurança do Active Directory e inclui usuários, grupos e computadores. As restrições de nome para sAMAccountName são documentadas em 3.1.1.6 Restriçõesde atributo para atualizações de origem .
P3. O que é um sAMAccountType?
A3. Para obter mais informações, leia os seguintes documentos:
Há três valores sAMAccountType possíveis que correspondem a quatro sinalizadores UserAccountcontrol possíveis da seguinte maneira:
userAccountControl |
sAMAccountType |
---|---|
UF_NORMAL_ACCOUNT |
SAM_USER_OBJECT |
UF_INTERDOMAIN_TRUST_ACCOUNT |
SAM_TRUST_ACCOUNT |
UF_WORKSTATION_TRUST_ACCOUNT |
SAM_MACHINE_ACCOUNT |
UF_SERVER_TRUST_ACCOUNT |
SAM_MACHINE_ACCOUNT |
P4. Quais são os valores possíveis para UserAccountControl?
A4. Para obter mais informações, leia os seguintes documentos:
P5. Como posso encontrar objetos não compatíveis que já existem no meu ambiente?
A5. Os administradores podem pesquisar em seus diretórios contas não compatíveis existentes usando um script do PowerShell, como os exemplos a seguir.
Para encontrar contas de computador que tenham um sAMAccountName não compatível:
Get-ADComputer -LDAPFilter "(samAccountName=*)" |? SamAccountName -NotLike "*$" | select DNSHostName, Name, SamAccountName |
Para encontrar contas de computador que tenham um UserAccountControl sAMAccountType não compatível:
Get-ADComputer -LDAPFilter "UserAccountControl:1.2.840.113556.1.4.803:=512” |