O blog da AWS

Aprimorando a segurança para o Lightweight Directory Access Protocol (LDAP)

Por Caio Ribeiro César e Márcio Morales

 

O protocolo LDAP (Lightweight Directory Access Protocol) foi projetado para fornecer acesso a um serviço de diretório em rede por meio do Transmission Control Protocol (TCP). Os administradores têm controle sobre como gerenciar dados e tecnologias LDAP envolvidas neste procedimento.

Ao gerenciar dados, o que vem à mente é a metodologia e a arquitetura para mantê-lo seguro. Esta postagem descreve como manter o LDAP seguro no Amazon Web Services, juntamente com as informações para administradores que usam o Microsoft Active Directory como sua tecnologia de serviço de diretório no Amazon Web Services.

A Microsoft lançou recentemente um comunicado (ADV190023), sobre as orientações para LDAP no Active Directory para evitar vulnerabilidades de elevação de privilégio nos controladores de domínio. Em resposta a este comunicado, o AWS Directory Services oferecerá suporte à assinatura LDAP (LDAP Signing) e ao LDAP sobre SSL / TLS (LDAPS). O LDAP Signing não requer nenhuma ação do cliente para ativar. O LDAPS do lado do cliente requer configuração na AWS e no AD autogerenciado dos clientes.

Os aplicativos da AWS, como o Amazon Workspaces, usam o AWS Managed Microsoft Active Directory (AWS Managed Microsoft AD) e o AD Connector para se comunicar com o AD autogerenciado dos clientes para autenticação e autorização. Essas comunicações usam o protocolo LDAP. O comunicado da Microsoft descreve os planos para alterar as configurações de segurança LDAP padrão nos controladores de domínio do AD por meio do Windows Update. As novas configurações bloquearão as conexões do cliente LDAP com os controladores de domínio que não utilizam pelo menos uma das duas técnicas de segurança LDAP:

· LDAP signing. Essa técnica de segurança usa uma chave de sessão Kerberos para assinar digitalmente as comunicações LDAP. A assinatura LDAP garante a integridade dos dados – os dados recebidos no destino são exatamente os que foram enviados da origem.

· LDAP over SSL/TLS (LDAPS). Essa técnica utiliza SSL para negociar uma chave compartilhada para criptografar as comunicações LDAP. Além da integridade, o LDAPS garante a confidencialidade dos dados – os dados são legíveis apenas pelo destinatário pretendido.

Portanto, após a atualização, ter integridade ou  confidencialidade é um pré-requisito para a comunicação LDAP e futuramente a segurança dos servidores de diretório da Microsoft será aprimorada configurando o servidor para rejeitar a comunicação LDAP insegura. Como o AWS Managed AD e o AD Connector oferecerão suporte à integridade dos dados por padrão, LDAP binds efetuados com Simple Authentication e SASL irão solicitar assinatura (validação de integridade).

O que é integridade de dados e como ela se aplica ao LDAP? É a confiabilidade dos seus dados ao longo do seu ciclo de vida. Com os controles de integridade de dados implementados, os ataques intermediários são mais difíceis de serem executados. Para assinatura LDAP, o token de sessão Kerberos ajudará os administradores a impedir a violação de sessões LDAP.

O que é a confidencialidade dos dados e comoe ela se aplica ao LDAP? É a proteção dos dados contra acesso não autorizado usando criptografia. Se as sessões forem detectadas, as informações contidas nas comunicações usando LDAPS (LDAP sobre SSL) não poderão ser lidas ou modificadas. Para essa proteção, o Active Directory usa chaves criptográficas e certificado emitidos por um Certificado de Autoridade interno.

Os clientes que usam controladores de domínio do Amazon EC2 (ou até onpremises) precisam estar cientes deste requisito e executar todas as etapas necessárias descritas nos links a seguir: LdapEnforceChannelBinding / LDAP Signing. Para estes clientes, para verificar se os aplicativos do lado do cliente estão usando LDAP simple bind/ comunicações não assinadas:

a) Filtre eventos 2886 nos logs do “Directory Server” para verificar se há binds LDAP sem implementações de segurança (simple binds; sem integridade ou confidencialidade).

b) Filtre eventos 2887 nos logs do “Directory Server” para verificar o número de LDAP binds sem implementações de segurança realizados dentro de um período de 24 horas.

c) Se você estiver recebendo o evento 2888, isso significa que o servidor de diretório está configurado para rejeitar unsigned LDAP binds, porém os clientes ainda estão tentando efetuar o bind através do método não seguro.

d) Para reunir mais informações sobre o cliente que está executando LDAP binds inseguras (como endereço IP), aumente a configuração da categoria de log de eventos “Eventos de Interface LDAP” para o nível 2 ou superior e filtre para o evento 2889.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics

A metodologia de localização de aplicativos LDAP que usam o mecanismo de autenticação bind “legacy” também pode ser feita na camada de rede, utilizando ferramentas como o WireShark. No exemplo abaixo, adicionamos um filtro para “ldap” e expandimos o método de autenticação “bindRequest”. Como você pode ver, estávamos utilizando  um simple bind, com a senha visível para qualquer pessoa que colete o tráfego e intercepte a sessão via Man in the Middle (MitM):

Filtrando para o protocolo “ldap”.

Abaixo temos o rastreamento coletado para o mesmo aplicativo LDAP, quando configuramos a assinatura LDAP como necessária para a integridade, mas o aplicativo ainda está usando simple bind. Verificamos se o bindRequest envia a senha em rich text e, posteriormente, a comunicação é descartada:

659         2.922296              10.0.8.205            10.0.5.31              LDAP      245         bindResponse(135) strongAuthRequired (00002028: LdapErr: DSID-0C09023C, comment: The server requires binds to turn on integrity checking if SSL\TLS are not already active on the connection, data 0, v4563)

 

No próximo exemplo, temos a conexão feita pelo mesmo aplicativo LDAP, desta vez usando a autenticação LDAP SASL com  Kerberos e o controlador de domínio configurado para exigir assinatura para verificação de integridade:

Podemos até utilizar o “ldp.exe” para testar se é possível efetuar um simple bind ou até com credenciais em um Controlador de Domínio específico:

Simple Bind sendo rejeitado no Controlador de Domínio com o erro “a more secure authentication method is required for this server” / “é necessário um método de autenticação mais seguro para este servidor”.

Bind com credenciais bem-sucedido no Controlador de Domínio.

 

Informações para clientes da Amazon Web Services:

  • Para ambos os serviços de AWS Managed Microsoft AD (MAD) e AD Connector, os métodos de LDAP signing e LDAPS estão disponíveis. Para mais informações sobre o client-side LDAPS, visite nossa documentação. Nenhuma ação do cliente é necessária para ativar o LDAP signing nestes serviços.
  • Para configurar o client-side LDAPS, ações de configuração são necessárias no ambiente AWS e no AD autogerenciado. Para obter mais informações sobre como habilitar o LDAP seguro para aplicações executadas na AWS com o serviço de diretório (AWS Directory Service), verifique esta publicação.

 

Conclusão

Neste post, discutimos sobre os mecanismos de segurança do Lightweight Directory Access Protocol e o que os clientes precisam saber sobre o Microsoft Advisory ADV190023 e como ele se aplica aos serviços de diretório da Amazon Web Services como AD Connector, Amazon Managed Active Directory (MAD) e controladores de domínio sendo executados em EC2 (Elastic Compute Cloud).

Para saber mais sobre o uso do AWS Managed Microsoft AD ou AD Connector, visite a documentação do AWS Directory Service. Para obter informações e preços gerais, consulte a página inicial do AWS Directory Service. Se você tiver comentários sobre esta postagem, envie um comentário na seção Comentários abaixo. Se você tiver perguntas sobre implementação ou solução de problemas, inicie um novo thread no fórum do Serviço de Diretório ou entre em contato com o Suporte da AWS.

 


Sobre os autores

 

Caio Ribeiro César currently works as a Specialized Solutions Architect for Microsoft Technologies in the AWS Cloud. He started his career as a sysadmin and continued for over 13 years in areas such as Information Security, Identity Online and Email Platforms.

 

 

 

 

Marcio Morales is a Sr. Microsoft Specialist SA at Amazon Web Services. He works with AWS customers to provide guidance and technical assistance for Microsoft workloads on AWS.