Article image

IK

Ivan Kovalinkinas23/10/2025 18:22
Compartilhe

A GPO padrão do seu AD pode ser o elo fraco — veja como corrigir.

  • #Segurança da Informação

💥 Sua Senha Está Realmente Segura? Entenda Como Fortalecer a Política de Senhas do Active Directory

Descubra como pequenas configurações podem proteger seu ambiente corporativo contra ataques de força bruta e aumentar a conformidade de segurança.

🧠 Introdução

Trago hoje um conceito de segurança muito importante — gestão de senha no ambiente corporativo.

Na estrutura padrão, quando é configurado o AD DS (Active Directory Domain Services), é criada automaticamente uma GPO chamada “Default Domain Policy”, aplicada à raiz do domínio.

No entanto, essa política padrão não segue todas as boas práticas de segurança, sendo suscetível a ataques de força bruta caso nenhuma alteração seja realizada.

🧱 Política Padrão: Default Domain Policy

image

O maior problema nesta GPO é o parâmetro "Account lockout threshold" que como 0 (desativado), o qual não efetua o bloqueio de conta após tentativas consecutivas de erro. Associado ao tamanho mínimo padrão ser 7 caracteres, isso facilitaria muito a uma pessoa mal intencionada efetuar tentativas de descobrir a senha através de força bruta.

🧩 Melhorias Recomendadas

Há a possibilidade de editar esta GPO e aprimorar sua segurança, por exemplo:

  • 🔁 Definir a idade máxima da senha para 30 dias (forçando troca mensal).
  • 🔠 Aumentar o tamanho mínimo exigido (adiciona complexidade).
  • 🚷 Ativar bloqueio de conta por tentativas falhas (evita força bruta).
  • Definir tempo de bloqueio e reinício do contador (bloqueia temporariamente o acesso).

Essas são alterações simples, mas que fazem grande diferença — além de adequar o ambiente às exigências de auditoria e compliance.

⚙️ Políticas de Senha de Granularidade Fina (FGPP)

Agora vamos além: a Fine Grained Password Policy (FGPP) permite definir políticas diferentes por grupo ou usuário — algo impossível via GPO padrão.

  • ⚖️ Caso um usuário esteja em uma GPO de senha e em uma FGPP, a FGPP prevalecerá.
  • Contudo, para manter uma administração organizada, o ideal é adotar apenas um modelo principal.

🧭 Cenário Prático

Vamos aplicar políticas de senha para os grupos abaixo e utilizaremos o PowerShell como ferramenta de administração.

  • Domain Users → usuários comuns
  • Domain Admins → administradores do domínio
  • Terceiros → prestadores de serviço externos

⚙️ Parâmetros do Cmdlet New-ADFineGrainedPasswordPolicy

  • Name – Nome da política  
  • DisplayName – Nome de exibição  
  • Precedence – Quanto maior o valor, menor a prioridade  
  • PasswordHistoryCount – Quantas senhas anteriores são lembradas  
  • MaxPasswordAge – Tempo máximo de validade da senha  
  • MinPasswordAge – Tempo mínimo antes de permitir nova troca  
  • MinPasswordLength – Tamanho mínimo exigido  
  • ComplexityEnabled – Exige senhas complexas  
  • ReversibleEncryptionEnabled – Impede criptografia reversível  
  • LockoutThreshold – Tentativas incorretas antes do bloqueio  
  • LockoutDuration – Duração do bloqueio  
  • LockoutObservationWindow – Tempo de reset do contador  
  • Description – Descrição da política  
  • ProtectedFromAccidentalDeletion – Protege contra exclusão acidental  

🧱 Exemplo de Implementação

▶️ Domain Users

$policyParams = @{
  Name                            = 'FGPP-Domain-Users'
  DisplayName                     = 'FGPP-Domain-Users'
  Precedence                      = 100
  PasswordHistoryCount            = 24
  MaxPasswordAge                  = '60.00:00:00'
  MinPasswordAge                  = '1.00:00:00'
  MinPasswordLength               = 12
  ComplexityEnabled               = $true
  ReversibleEncryptionEnabled     = $false
  LockoutThreshold                = 5
  LockoutDuration                 = '00:30:00'
  LockoutObservationWindow        = '00:15:00'
  Description                     = "Política de senha granular aplicada ao grupo Domain Users."
  ProtectedFromAccidentalDeletion = $true
}

New-ADFineGrainedPasswordPolicy @policyParams
Add-ADFineGrainedPasswordPolicySubject FGPP-Domain-Users -Subjects 'Domain Users'

🛡️ Domain Admins

$policyParams = @{
  Name                            = 'FGPP-Domain-Admins'
  DisplayName                     = 'FGPP-Domain-Admins'
  Precedence                      = 50
  PasswordHistoryCount            = 24
  MaxPasswordAge                  = '30.00:00:00'
  MinPasswordAge                  = '1.00:00:00'
  MinPasswordLength               = 30
  ComplexityEnabled               = $true
  ReversibleEncryptionEnabled     = $false
  LockoutThreshold                = 5
  LockoutDuration                 = '00:30:00'
  LockoutObservationWindow        = '00:30:00'
  Description                     = "Política de senha granular aplicada ao grupo Domain Admins."
  ProtectedFromAccidentalDeletion = $true
}

New-ADFineGrainedPasswordPolicy @policyParams
Add-ADFineGrainedPasswordPolicySubject FGPP-Domain-Admins -Subjects 'Domain Admins'

👥 Terceiros

$policyParams = @{
  Name                            = 'FGPP-Terceiros'
  DisplayName                     = 'FGPP-Terceiros'
  Precedence                      = 50
  PasswordHistoryCount            = 24
  MaxPasswordAge                  = '30.00:00:00'
  MinPasswordAge                  = '1.00:00:00'
  MinPasswordLength               = 15
  ComplexityEnabled               = $true
  ReversibleEncryptionEnabled     = $false
  LockoutThreshold                = 5
  LockoutDuration                 = '00:30:00'
  LockoutObservationWindow        = '00:30:00'
  Description                     = "Política de senha granular aplicada ao grupo Terceiros."
  ProtectedFromAccidentalDeletion = $true
}

New-ADFineGrainedPasswordPolicy @policyParams
Add-ADFineGrainedPasswordPolicySubject FGPP-Domain-Admins -Subjects 'Terceiros'

⚖️ Precedência e Aplicação

Nossa política padrão é a FGPP-Domain-Users, pois é aplicada ao grupo Domain Users — assim, todas as contas novas estarão automaticamente cobertas.

Caso precise criar novas políticas mais específicas, basta definir uma nova com precedência menor (valor numérico mais baixo), que sobrepõe as demais.

🧭 Administração via PowerShell

  • Listar todas as políticas
Get-ADFineGrainedPasswordPolicy -Filter *
  • Consultar uma política específica
Get-ADFineGrainedPasswordPolicy FGPP-Domain-Users

  • Ver política aplicada a um usuário
Get-ADUserResultantPasswordPolicy -Identity user.01
  • Desativar proteção de exclusão
Set-ADFineGrainedPasswordPolicy -Identity FGPP-Domain-Users -ProtectedFromAccidentalDeletion $false
  • Excluir política
Remove-ADFineGrainedPasswordPolicy -Identity FGPP-Domain-Users -Confirm:$false
  • Alterar configuração (Ex: idade máxima)
Set-ADFineGrainedPasswordPolicy -Identity FGPP-Domain-Users -MaxPasswordAge '30.00:00:00'

🧩 Conclusão

Essa foi uma abordagem ampla e prática sobre políticas de senha granulares (FGPP), trazendo uma visão de segurança corporativa e conformidade.

  • 💬 “Pequenos ajustes em políticas podem trazer grandes ganhos de segurança.”

Espero que este material contribua com sua gestão de identidade e acesso — e que compartilhe também um pouco da minha vivência e experiência em administração de infraestrutura.

- Links de referências:

Conteúdo desenvolvido por:

📘 Ivan Barbosa Kovalinkinas

Compartilhe
Comentários (0)