A segurança da autenticação no Active Directory é um dos pontos críticos para qualquer infraestrutura de TI. Um dos erros mais comuns encontrados em auditorias e testes de segurança é o uso do protocolo LDAP sem criptografia (LDAP na porta 389), o que pode expor credenciais em texto claro e permitir ataques de interceptação.
Recentemente, um teste revelou que um firewall FortiGate estava autenticando no Active Directory via LDAP sem criptografia, permitindo a captura de credenciais através de uma simples análise de pacotes no Wireshark. Esse tipo de vulnerabilidade pode ser explorado por invasores para obter acesso privilegiado ao ambiente corporativo.
Neste artigo, vamos abordar os riscos do uso de LDAP inseguro e detalhar as melhores práticas para proteger a autenticação no Active Directory, garantindo que todo o tráfego seja protegido por criptografia.
O LDAP (Lightweight Directory Access Protocol) é um protocolo de diretório utilizado para acessar e gerenciar informações armazenadas em um serviço de diretório, como o Active Directory (AD) da Microsoft. Ele permite que clientes consultem e modifiquem dados em um banco de diretórios, sendo amplamente usado para autenticação, autorização e gerenciamento de usuários em redes corporativas.
Vulnerabilidades e Riscos do LDAP
- Tráfego sem Criptografia: Se usado na porta 389 sem SSL/TLS, as credenciais e dados podem ser interceptados por atacantes.
- Autenticação Simples (Simple Bind): Enviar credenciais em texto claro sem proteção aumenta o risco de vazamento.
- Ataques de Interceptação (MITM): Sem criptografia, um invasor pode capturar e modificar comunicações LDAP.
Boas Práticas para Segurança do LDAP
- Habilitar LDAPS (porta 636) ou STARTTLS para proteger o tráfego.
- Desativar conexões LDAP sem criptografia no Active Directory.
- Utilizar autenticação baseada em certificados para maior segurança.
- Monitorar logs de autenticação LDAP para identificar possíveis ataques.
LDAP é um protocolo essencial para ambientes corporativos, mas sua configuração inadequada pode expor credenciais e dados sensíveis. Adotar práticas seguras, como a exigência de LDAPS e a auditoria de conexões, ajuda a evitar riscos e manter a integridade da rede.
Os Riscos do Uso de LDAP Sem Criptografia
O protocolo LDAP (Lightweight Directory Access Protocol) é amplamente utilizado para autenticação e consulta de diretórios no Active Directory. Entretanto, por padrão, a comunicação ocorre em texto claro na porta 389, tornando possível a captura de credenciais com ferramentas de sniffing, como o Wireshark.
Principais problemas:
- Exposição de credenciais: Qualquer usuário mal-intencionado com acesso à rede pode capturar nomes de usuário e senhas em texto claro.
- Ataques Man-in-the-Middle (MITM): Um invasor pode interceptar e modificar comunicações LDAP para obter acesso não autorizado.
- Falta de confidencialidade: Informações sensíveis do diretório (como estrutura organizacional e listas de grupos) podem ser extraídas sem a necessidade de autenticação.
A solução para evitar esses riscos é garantir que todas as conexões LDAP utilizem criptografia através do LDAPS (LDAP sobre SSL/TLS) ou LDAP com STARTTLS.
Abaixo temos uma demonstração utilizando a autenticação de um Firewall Fortinet com o Windows Server. Note que não se trata de uma falha, mas sim uma característica de priorização de compatibilidade e performance, que nos dias atuais, precisa ser revista.
Devo lembrar que aqui não estou considerando a infraestrutura da empresa em questão, ou seja, não estou olhando para regras de mitigação ou ações de reforço de perímetro e sim explanando sobre uma vulnerabilidade baseada na forma com que dispositivos se comunicam com o controlador de domínio.
A ferramenta utilizada para este laboratório foi o Wireshark.
Como Proteger a Autenticação LDAP no Active Directory
1. Configurar o AD para Aceitar Apenas Conexões Seguras (LDAPS ou STARTTLS)
Por padrão, o Active Directory aceita tanto conexões inseguras na porta 389 quanto seguras na porta 636 (LDAPS). Para aumentar a segurança, podemos impedir conexões sem criptografia.
Bloqueando conexões LDAP sem criptografia
Execute o seguinte comando PowerShell no Controlador de Domínio para exigir o uso de LDAPS:
reg add "HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters" /v "LDAPServerIntegrity" /t REG_DWORD /d 2 /f
O que esse comando faz?
- O valor
2
garante que apenas conexões seguras (LDAPS ou STARTTLS) sejam aceitas. - Após aplicar essa configuração, reinicie o servidor para que a alteração tenha efeito.
2. Implementar Certificados SSL Para LDAPS
O LDAPS usa SSL/TLS para proteger a comunicação, e isso exige um certificado no controlador de domínio.
Verificando se o AD já possui um certificado SSL
Abra o PowerShell e execute:
Get-ChildItem Cert:\LocalMachine\My
Caso não haja um certificado válido, você precisará gerar um.
Criando um certificado SSL para LDAPS
Se houver uma Autoridade Certificadora (CA) interna, gere um certificado para os Controladores de Domínio:
New-SelfSignedCertificate -Subject "CN=DC01.contoso.com" -DnsName "DC01.contoso.com" -KeyUsage DigitalSignature, KeyEncipherment -KeyAlgorithm RSA -KeyLength 2048 -CertStoreLocation "Cert:\LocalMachine\My"
Substitua DC01.contoso.com
pelo FQDN do seu servidor AD.
Após gerar o certificado, reinicie os serviços do AD ou o servidor.
3. Configurar Clientes Para Usar Apenas LDAPS
Após forçar conexões seguras, é essencial que todos os clientes que utilizam LDAP (como Firewalls, Aplicativos e Servidores) sejam configurados para usar LDAPS na porta 636.
No FortiGate:
- Acesse Usuários & Dispositivos > Servidores LDAP
- Edite o servidor LDAP configurado
- No campo Modo de Conexão, escolha LDAPS
- Use a porta 636 e certifique-se de que o FortiGate confia no certificado do AD
Caso utilize algum outro software que dependa de LDAP, faça as devidas alterações para garantir que apenas conexões seguras sejam estabelecidas.
4. Testar e Monitorar a Conexão LDAP Segura
Testando a conexão LDAPS via PowerShell:
Test-NetConnection -ComputerName DC01.contoso.com -Port 636
Testando via ldp.exe
:
- Abra o Ldp.exe no servidor
- Clique em Connection > Connect
- Insira o nome do servidor e a porta 636
- Marque a opção SSL e clique em OK
Caso a conexão falhe, verifique os logs no Event Viewer em Applications and Services Logs > Directory Service.
Conclusão
A autenticação LDAP sem criptografia é uma vulnerabilidade crítica que pode ser explorada por atacantes para capturar credenciais e obter acesso ao ambiente corporativo. Implementando LDAPS ou LDAP com STARTTLS, garantimos a segurança das credenciais e a confidencialidade dos dados trafegados.
As melhores práticas incluem:
- Bloquear conexões LDAP sem criptografia
- Implementar certificados SSL para LDAPS
- Configurar clientes e dispositivos para usar apenas LDAPS
- Monitorar e testar regularmente as conexões seguras
Seguindo essas recomendações, sua infraestrutura AD estará protegida contra exposição de credenciais e ataques MITM.