Introdução
O gerenciamento de segurança no Active Directory é uma tarefa essencial para garantirmos a integridade dos dados e protegermos o ambiente contra ameaças, sejam elas internas ou externas.
Para isso, existem diversos recursos e mecanismos que permitem aos administradores definir e aplicar políticas de segurança, bem como monitorar e auditar as ações realizadas por usuários e grupos.
Neste artigo, falarei sobre três elementos chave do gerenciamento de segurança no Active Directory: AdminSDHolder, SDPROP e o atributo AdminCount.
Abordarei o que cada um desses elementos faz, e como eles se relacionam entre si para garantir a segurança do ambiente.
AdminSDHolder
AdminSDHolder é um objeto interno do Active Directory que é responsável por garantir que as contas privilegiadas mantenham um conjunto de permissões pré-definidas.
O AdminSDHolder funciona definindo um conjunto de permissões padrão que são aplicadas a todas as contas que possuem o atributo AdminCount definido como "1".
Isso significa que qualquer conta que receba privilégios administrativos tenha suas permissões restritas ao que foi definido pelo AdminSDHolder.
O AdminSDHolder é criado automaticamente durante o processo de instalação e configuração do Active Directory em um controlador de domínio.
Especificamente, o AdminSDHolder é criado como um objeto de segurança em um contêiner chamado "System" na raiz do domínio.
A imagem abaixo ilustra a localização do objeto no Active Directory.
O objetivo do AdminSDHolder é garantir que determinados objetos do Active Directory que possuem privilégios elevados, como por exemplo, membros do grupo "Domain Admins", "Enterprise Admins" e "Schema Admins", mantenham as permissões de segurança adequadas.
Para determinarmos com exatidão os usuários e grupos protegidos por padrão, considerem a tabela abaixo.
O AdminSDHolder é um recurso crítico para a segurança do Active Directory e ajuda a garantir que os objetos privilegiados sejam protegidos contra alterações não autorizadas nas permissões de segurança.
Para garantir que as permissões de segurança desses objetos privilegiados não sejam alteradas, o AdminSDHolder reaplica periodicamente as configurações de segurança nele contidas, garantindo assim que as permissões de segurança permaneçam consistentes em todo o ambiente do Active Directory.
É importante termos ciência de que, embora o AdminSDHolder seja automaticamente criado no nível do domínio, ele tem implicações de segurança para toda a floresta.
Isso ocorre porque, se as permissões de segurança de objetos privilegiados forem comprometidas em um domínio, de alguma forma isso pode afetar a segurança de toda a floresta.
Portanto, é importante garantir que o AdminSDHolder esteja configurado corretamente em todos os domínios de uma floresta, para garantir a segurança adequada do ambiente do Active Directory.
SDPROP
O que é o SDProp?
SDPROP (Security Descriptor Propagation) é um processo que é executado automaticamente no DC que hospeda a função de PDC Emulator a cada 60 minutos (por padrão) e que garante que as permissões definidas pelo AdminSDHolder sejam aplicadas a todas as contas que possuem o atributo AdminCount definido como "1".
Isso inclui contas de usuário, grupos e computadores que possam ter recebido privilégios elevados no domínio.
Ele garante que as permissões sejam aplicadas mesmo que tais objetos tenham sido movidos ou renomeados dentro do Active Directory.
O SDProp aplica as definições de segurança do AdminSDHolder a todos os objetos que são membros dos grupos privilegiados.
O SDProp é uma parte importante da estrutura de segurança do Active Directory e ajuda a garantir que as permissões de segurança sejam consistentes em toda a árvore do Active Directory, o que ajuda a proteger os recursos do sistema contra acesso não autorizado.
Ele compara as permissões no objeto AdminSDHolder do domínio com as permissões definidas nas contas e grupos protegidos no domínio.
Se as permissões em qualquer uma das contas e / ou grupos protegidos não corresponderem às permissões definidas no objeto AdminSDHolder, as permissões nas contas e grupos protegidos serão redefinidas para corresponder às do objeto AdminSDHolder do domínio.
Além disso, a herança de permissões é desabilitada em grupos e contas protegidas, o que significa que, mesmo que as contas e grupos sejam movidos para locais diferentes no Active Directory, eles não herdam permissões de seus novos objetos pai.
A herança está desabilitada no objeto AdminSDHolder para que as alterações de permissão nos objetos pai não alterem as permissões do AdminSDHolder.
Normalmente, não alteramos o intervalo no qual o SDProp é executado, exceto para fins de teste.
Se precisarmos alterar o intervalo de execução do SDProp, no PDC Emulator do domínio,devemos alterar ou modificar o valor DWORD denominado "AdminSDProtectFrequency" em "HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters".
O intervalo de valores deve ser informado em segundos, variando entre 60 a 7200 (um minuto a duas horas).
Para reverter as alterações, exclua a chave AdminSDProtectFrequency.
Isso fará com que o intervalo de execução do SDProp seja revertido para o intervalo padrão de 60 minutos.
Um ponto importante é saber que, a redução desse intervalo pode aumentar a sobrecarga de processamento consumido pelo LSASS.exe no controlador de domínio.
O impacto desse aumento, depende do número de objetos protegidos no domínio.
Executando o SDProp manualmente
Uma abordagem interessante para testarmos as alterações do AdminSDHolder é executar o SDProp manualmente, o que faz com que a tarefa seja executada imediatamente, sem afetar a execução agendada.
O procedimento para execução manual do SDProp é feito de forma diferente nos controladores de domínio que executam sistemas operacionais anteriores ao Windows Server 2008, se comparado aos controladores de domínio que executam o Windows Server 2008 R2 ou posteriores.
Aqui, focarei em versões suportadas do sistema operacional.
Para isso, utilizamos o utilitário ldp.exe no PDC Emulator para alterar o atributo denominado "RunProtectAdminGroupsTask" para 1.
Também é possível forçar a execução via LDIFDE ou scripts em powershell.
Atributo AdminCount
Outro elemento importante para controle é o atributo "AdminCount".
O atributo AdminCount é um atributo interno do Active Directory que é definido automaticamente para todas as contas de usuário ou grupos que recebem privilégios elevados.
Quando esse atributo é definido como "1", a conta é considerada uma conta privilegiada e terá suas permissões gerenciadas pelo AdminSDHolder e pelo processo SDPROP.
A imagem abaixo ilustra essa situação.
O atributo AdminCount é utilizado pelo sistema operacional Windows Server para determinar se um usuário deve receber privilégios adicionais.
Quando uma conta de usuário ou grupo é adicionado a um grupo altamente privilegiado, como os mencionados na tabela acima, o Windows verifica se o valor do atributo "AdminCount" é igual a 0 ou 1.
Se o valor for 0, o atributo é alterado para "1" e o usuário recebe privilégios elevados.
Se o valor for 1, o Windows manterá esse valor.
Um detalhe importante é saber que, quando um usuário que possui o atributo "AdminCount" definido como "1" é removido de um grupo privilegiado, o valor do atributo não é alterado.
Isso significa que o usuário ainda possui permissões elevadas, mas não tem privilégios adicionais.
No entanto, ele pode se inserir em grupos privilegiados.
Portanto, o impacto é que o usuário ainda possui permissões elevadas, mas não pode realizar tarefas que exigem privilégios adicionais.
Existem algumas maneiras de consultarmos o atributo "AdminCount" no ambiente do Active Directory. Entre elas temos:
1- Usando o console "Usuários e Computadores do Active Directory":
Abra o console "Usuários e Computadores do Active Directory", selecione o usuário que deseja verificar e abra suas propriedades. Na guia "Attribute Editor", role para baixo até encontrar o atributo "AdminCount" e verifique seu valor.
2- Através do comando: Get-ADUser -Identity <nome_do_usuário> -Properties AdminCount
Se o usuário possuir o atributo definido como "1", esse comando retornará o valor do atributo "AdminCount" do usuário especificado.
3- Usando o ADSI Edit: O ADSI Edit é uma ferramenta de gerenciamento do Active Directory disponível na instalação padrão do Windows.
Com o ADSI Edit, podemos navegar até a entrada do usuário que desejamos verificar e consultar o valor do atributo "AdminCount".
No entanto, é importante notar que nem todos os usuários terão o atributo "AdminCount" definido em seu objeto.
O atributo "AdminCount" é definido automaticamente pelo Active Directory quando um usuário é adicionado a um grupo privilegiado.
Portanto, se um usuário nunca foi adicionado a nenhum desses grupos, o valor do atributo "AdminCount" será zero.
Conclusão
Em suma, o objeto AdminSDHolder, o processo SDProp e o atributo AdminCount são elementos fundamentais na administração e segurança de objetos do Active Directory.
O AdminSDHolder define as permissões padrão para usuários com privilégios elevados, enquanto o SDProp garante que essas permissões sejam aplicadas a todos os objetos do diretório.
O AdminCount, por sua vez, é um atributo que controla a elevação de privilégios.
É importante entendermos como esses conceitos funcionam para garantirmos a segurança e a integridade do Active Directory.
Além disso, é crucial implementarmos práticas de segurança adequadas, como a limitação do número de usuários com privilégios elevados e a monitoração constante do uso desses privilégios.
Com essas medidas, é possível minimizar os riscos de violações de segurança e mantermos a estabilidade do ambiente de rede.
Até a próxima!!!