image

Access unlimited bootcamps and 650+ courses forever

60
%OFF
Article image

IK

Ivan Kovalinkinas23/10/2025 18:22
Share

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

    💥 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.

    Conteúdo desenvolvido por:

    📘 Ivan Barbosa Kovalinkinas

    Share
    Recommended for you
    Cognizant - Mobile Developer
    Luizalabs - Back-end com Python
    PcD Tech Bradesco - Java & QA Developer
    Comments (0)