Resumo
O CVE-2021-42278 resolve uma vulnerabilidade de desativação de segurança que permite que potenciais atacantes representem um controlador de domínio através do spoofing da conta de computador sAMAccountName .
Este artigo fornece detalhes adicionais e uma secção de perguntas mais frequentes para as alterações de proteção do Gestor de Contas de Segurança (SAM) do Active Directory efetuadas pelas atualizações do Windows disponibilizadas a 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 realizará as inspeções de validação listadas abaixo nos atributos sAMAccountName e UserAccountControl de contas de computador criadas ou modificadas por utilizadores que não têm direitos de administrador para contas de computador.
validação sAMAccountType para contas de utilizador e computador
- As contas ObjectClass=Computer (ou subclasse do computador) têm de ter sinalizadores UserAccountControl de UF_WORKSTATION_TRUST_ACCOUNT ou UF_SERVER_TRUST_ACCOUNT
- ObjectClass=User tem de 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 tem de terminar com um único cifrão ($). Quando estas condições não são cumpridas, o Active Directory devolve o código de falha 0x523 ERROR_INVALID_ACCOUNTNAME. As validações falhadas são registadas no ID do evento Directory-Services-SAM 16991 no registo de eventos do Sistema.
Quando estas condições não são cumpridas, o Active Directory devolve um código de falha de ACCESS_DENIED. As validações falhadas são registadas no ID do evento Directory-Services-SAM 16990 no registo de eventos do Sistema.
Eventos de auditoria
Falha na validação da classe de objeto e userAccountControl
Quando a validação da classe Object e userAccountControl falhar, o evento seguinte será registado no registo do Sistema:
| Registo de Eventos | Sistema |
|---|---|
| Tipo de Evento | Erro |
| Origem do Evento | Directory-Services-SAM |
| ID de Evento | 16990 |
| Texto do Evento | O gestor de conta de segurança bloqueou a criação de uma conta do Active Directory neste domínio com sinalizadores de tipo de conta objectClass e userAccountControl não correspondentes. Detalhes: Nome da conta: %1%n Objeto de contaClasse: %2%n userAccountControl: %3%n Endereço do autor da chamada: %4%n SID do Autor da Chamada: %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á registado no Registo do sistema:
| Registo de Eventos | Sistema |
|---|---|
| Tipo de Evento | Erro |
| Origem do Evento | Directory-Services-SAM |
| ID de Evento | 16991 |
| Texto do Evento | O gestor de conta de segurança impediu um não administrador de criar ou mudar o nome de uma conta de computador com um sAMAccountName inválido. sAMAccountName em contas de computador tem de terminar com um único sinal de $ à direita. Tentativa de sAMAccountName: %1 SAMAccountName recomendado: %1$ |
Eventos de auditoria da criação de contas de computador com êxito
Os seguintes eventos de auditoria existentes estão disponíveis para a criação bem-sucedida da conta de computador:
- 4741(S): foi criada uma conta de computador
- 4742(S): uma conta de computador foi alterada
- 4743(S): Uma conta de computador foi eliminada
Para obter mais informações, veja Auditar a Gestão de Contas de Computador.
Perguntas mais frequentes
T1. Como é que esta atualização afeta os objetos existentes no Active Directory?
A1. Para objetos existentes, a validação ocorre quando os utilizadores que não têm direitos de administrador modificam os atributos sAMAccountName ou UserAccountControl .
Q2. O que é um sAMAccountName?
A2. sAMAccountName é um atributo exclusivo em todos os principais de segurança no Active Directory e inclui utilizadores, grupos e computadores. As restrições de nome para sAMAccountName estão documentadas em Restrições de Atributos 3.1.1.6 para Atualizações de Origem.
T3. O que é um sAMAccountType?
A3. Para obter mais informações, leia os seguintes documentos:
Existem três valores de sAMAccountType possíveis que correspondem a quatro sinalizadores UserAccountcontrol possíveis da seguinte forma:
| 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 |
T4. Quais são os valores possíveis para UserAccountControl?
A4. Para obter mais informações, leia os seguintes documentos:
- Utilizar os sinalizadores UserAccountControl para manipular as propriedades da conta de utilizador
- 2.2.16 userAccountControl Bits
- classe Win32_UserAccount
- ADS_USER_FLAG_ENUM enumeração (iads.h)
5.º Trimestre. Como posso encontrar objetos não conformes que já existem no meu ambiente?
A5. Os administradores podem procurar contas não conformes existentes no diretório através de um script do PowerShell, como os exemplos abaixo.
Para localizar contas de computador que tenham um sAMAccountName não conforme:
Get-ADComputer -LDAPFilter "(samAccountName=*)" \|? SamAccountName -NotLike "*$" \| select DNSHostName, Name, SamAccountName |
|---|
Para localizar contas de computador que tenham um UserAccountControl sAMAccountType não conforme:
Get-ADComputer -LDAPFilter "UserAccountControl:1.2.840.113556.1.4.803:=512” |
|---|