Introdução à injeção de LDAP

Atualmente, o aplicativo da web deve ser muito mais do que apenas a plataforma que processa as consultas do usuário. No período anterior, o aplicativo da Web era o local em que os usuários podem fazer seu trabalho e fazer logoff e, quando fazem o logoff, o aplicativo para de funcionar. Atualmente, porém, o aplicativo da Web precisa funcionar mesmo que o usuário não o esteja usando, o que pode ser implementado usando cookies. O Facebook confirmou recentemente que eles usam cookies para verificar as atividades dos usuários para garantir que seu sistema não esteja sendo abusado. Portanto, no momento em que os aplicativos on-line precisam ser mais poderosos, a segurança do aplicativo encabeça a lista dos requisitos. Aqui, focaremos em um tipo de modo de ataque cibernético que deve ser tratado para garantir a segurança do sistema.

O que é injeção de LDAP?

  • LDAP significa Lightweight Directory Access Protocol. Ele pode ser definido como um protocolo que é neutro em relação ao fornecedor e funciona na camada sobre a pilha TCP / IP. É usado para introduzir o mecanismo de verificação e autenticação de autoridade no aplicativo da web para garantir sua segurança e é usado com muita frequência durante o desenvolvimento de aplicativos da web. O LDAP é usado com muita frequência nos aplicativos Web que estão sendo usados ​​pela Internet ou intranet. É muito importante para o aplicativo da web acompanhar o LDAP, pois é um fator muito comum e importante que facilita o desenvolvimento seguro do aplicativo da web.
  • O LDAP também pode ser definido como o conjunto de padrões usados ​​para executar as verificações de segurança, a fim de descobrir se o usuário tem toda a permissão para acessar o sistema existente. Existem várias maneiras de fazer as verificações, mas, eventualmente, o motivo de todas as verificações é garantir a segurança do aplicativo da web. Proíbe o acesso não autorizado dos usuários que não têm os privilégios adequados. Com base nos direitos que o usuário detém para o aplicativo Web específico, ele garante que o usuário possa acessar apenas as coisas para as quais tem direito. Embora seja usado para cuidar da segurança do aplicativo Web, também pode ser enganado pelos hackers para extrair o suco do aplicativo.

Executando injeção LDAP com exemplo

  • O aplicativo da web precisa receber a entrada do usuário para processá-la ainda mais. O invasor pode aproveitar isso se o valor digitado pelos usuários não for higienizado adequadamente e for diretamente ao banco de dados para execução. Aqui veremos como a injeção LDAP pode ser iniciada em qualquer aplicativo da Web que esteja propenso a esse ataque.

IEnter your name

  • A consulta mencionada acima será transformada em comando amigável ao LDAP, para que o aplicativo facilite a execução da consulta.

String ldapQueryToSearch= "(sq=" + $userName + ")";
System.out.println(ldapQueryToSearch);

  • No caso acima, se o valor enviado pelo usuário não for higienizado, isso poderá levar ao nome de todos os usuários existentes, colocando “*” na caixa de entrada. Um asterisco indica todas as opções disponíveis; portanto, quando o banco de dados processa o asterisco em vez de qualquer nome de usuário específico, ele recebe todos os objetos armazenados no banco de dados LDAP. A consulta real que será executada no banco de dados será

findingLogin="(&(usrid="+username+")(userPwd=(MD5)"+base64(pack("H*", md5(pass)))+"))";

  • Quando os dados não são limpos e o banco de dados aceita o valor do asterisco no processo, o código será como abaixo.

findingLogin="(&(usrid=*)(usrid=*))(|(usrid=*)(userPwd=(MD5)Xkjr1Hj5LydgyfeuILpxM==))";

Assim que o código vulnerável acima for executado no banco de dados LDAP, ele passará por todos os objetos armazenados no banco de dados LDAP e causará danos ao aplicativo Web. O resultado da injeção de LDAP será então usado pelo hacker para abusar do sistema e causar a violação de segurança.

Como você pode proteger ataques de injeção LDAP de formulário?

  • Se houver uma vulnerabilidade no aplicativo, também deve existir sua correção. Quase não haverá vulnerabilidade que não possa ser resolvida ou corrigida para proteger o sistema. Da mesma maneira, existem várias maneiras que podem ser usadas para proteger o aplicativo Web da injeção LDAP.
  • A primeira e mais essencial maneira é higienizar a entrada antes de prosseguir com o processamento. A entrada enviada pelo usuário deve ser validada se corresponder ao requisito que é compatível com o que o aplicativo espera através desse campo de texto. Por exemplo, se o usuário tentar enviar caracteres especiais no campo de texto que solicita o nome, o usuário deverá ser alertado de que não pode preencher caracteres especiais nesse campo. Essa é a validação do lado do cliente. Agora, a validação do lado do servidor também será necessária para garantir que os dados fornecidos sejam genuínos.
  • O próximo é configurar o LDAP, mantendo a segurança em mente. A configuração do LDAP deve ser feita de maneira a restringir usuários não autorizados a fazer alterações maliciosas no sistema. Além disso, o próximo é que o resultado da consulta LDAP deve ser limitado e não pode divulgar dados que possam levar a violações de segurança. Se os dados não forem suficientes para prejudicar o sistema, o invasor não poderá afetar o aplicativo Web de nenhuma maneira, mesmo que tenha sido capaz de iniciar o ataque de injeção LDAP.

Conclusão

O Lightweight Directory Access Protocol fornece o caminho para o aplicativo para garantir que o usuário que está tentando acessar o sistema seja devidamente autenticado e autorizado a usá-lo. É muito importante considerar o LDAP enquanto cuida de todas as preocupações de segurança. O sistema deve ser amplo o suficiente para não permitir que nenhum hacker inicie um ataque LDAP. Como o banco de dados LDAP possui informações muito lucrativas, o administrador deve garantir que a entrada do usuário seja higienizada com muito cuidado e que a configuração seja feita mantendo todos os fatores de segurança em mente.

Artigos recomendados

Este é um guia para injeção de LDAP. Aqui discutimos o que é injeção de LDAP, seus exemplos e como proteger o ataque de injeção de LDAP. Você também pode consultar nossos outros artigos relacionados para saber mais.

  1. O que é injeção de SQL?
  2. O que é o Laravel?
  3. Teste de segurança
  4. O que é a interface Java?