Introduzione all'iniezione LDAP

Al giorno d'oggi l'applicazione Web dovrebbe essere molto più di una semplice piattaforma che elabora le query dell'utente. Nel periodo precedente, l'applicazione Web riguardava il luogo in cui gli utenti potevano venire a fare il loro lavoro e disconnettersi e, quando si disconnettono, l'applicazione smette di funzionare. Ma in questi giorni l'applicazione web deve funzionare anche se l'utente non la utilizza, che potrebbe essere implementata utilizzando i cookie. Facebook ha recentemente confermato di utilizzare i cookie per controllare le attività degli utenti per garantire che il loro sistema non venga abusato. Quindi, nel momento in cui le applicazioni online devono essere più potenti, la sicurezza dell'applicazione è in testa all'elenco dei requisiti. Qui ci concentreremo su un tipo di modalità di attacco informatico che deve essere curata per garantire la sicurezza del sistema.

Che cos'è l'iniezione LDAP?

  • LDAP è l'acronimo di Lightweight Directory Access Protocol. Può essere definito come un protocollo indipendente dal fornitore e che funziona sullo strato su stack TCP / IP. Viene utilizzato per introdurre il meccanismo di controllo e autenticazione dell'autorità nell'applicazione Web per garantirne la sicurezza e molto frequentemente utilizzato durante lo sviluppo di applicazioni Web. LDAP viene utilizzato molto spesso nelle applicazioni Web utilizzate su Internet o Intranet. È molto importante che l'applicazione Web si associ a LDAP poiché è un fattore molto comune e importante che facilita lo sviluppo sicuro dell'applicazione Web.
  • LDAP può anche essere definito come l'insieme di standard utilizzati per eseguire i controlli di sicurezza al fine di scoprire se l'utente dispone di tutte le autorizzazioni per accedere al sistema esistente. Esistono diversi modi per eseguire i controlli, ma alla fine il motivo di tutti i controlli è garantire la sicurezza dell'applicazione Web. Vieta l'accesso non autorizzato agli utenti che non dispongono dei privilegi adeguati. In base ai diritti che l'utente detiene per la particolare applicazione Web, garantisce che l'utente possa accedere solo alle cose per le quali ha diritto. Sebbene sia usato per prendersi cura della sicurezza dell'applicazione Web, può anche essere ingannato dagli hacker per estrarre il succo dall'applicazione.

Esecuzione dell'iniezione LDAP con l'esempio

  • L'applicazione Web deve ricevere l'input dall'utente per elaborarlo ulteriormente. L'aggressore può trarre vantaggio da ciò se il valore immesso dagli utenti non viene sanificato correttamente e va direttamente al database per l'esecuzione. Qui vedremo come l'iniezione LDAP potrebbe essere avviata su qualsiasi applicazione web soggetta a questo attacco.

IEnter your name

  • La query sopra menzionata verrà trasformata in un comando compatibile con LDAP in modo che l'applicazione faciliti l'esecuzione corretta della query.

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

  • Nel caso precedente, se il valore inviato dall'utente non viene sanificato, può portare a ottenere il nome di tutti gli utenti esistenti inserendo "*" nella casella di input. Un asterisco indica tutte le opzioni disponibili, quindi quando il database elaborerà l'asterisco piuttosto che un determinato nome utente, gli verranno dati tutti gli oggetti memorizzati nel database LDAP. Sarà la query effettiva che verrà eseguita nel database

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

  • Quando i dati non vengono disinfettati e il database accetta il valore dell'asterisco per il processo, il codice sarà come di seguito.

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

Non appena il codice vulnerabile di cui sopra verrà eseguito nel database LDAP, attraverserà tutti gli oggetti archiviati nel database LDAP e causerà danni all'applicazione Web. Il risultato dell'iniezione LDAP verrà quindi utilizzato dall'hacker per abusare del sistema e causare la violazione della sicurezza.

Come è possibile proteggere dagli attacchi di iniezione LDAP?

  • Se c'è una vulnerabilità nell'applicazione, deve esistere anche la sua riparazione. Non ci sarà quasi alcuna vulnerabilità che non può essere risolta o riparata per proteggere il sistema. Allo stesso modo, esistono diversi modi per proteggere l'applicazione Web dall'iniezione LDAP.
  • Il primo e più essenziale modo è di disinfettare l'input prima di portarlo oltre per l'elaborazione. L'input inviato dall'utente deve essere validato se corrisponde al requisito che si adatta a qualunque cosa l'applicazione si aspetti attraverso quel campo di testo. Ad esempio, se l'utente tenta di inviare caratteri speciali nel campo di testo che richiede il nome, l'utente deve essere avvisato che non è possibile inserire caratteri speciali in quel campo. Questa è la convalida lato client. Ora sarà necessaria anche la convalida sul lato server per assicurarsi che i dati forniti siano autentici.
  • Il prossimo è configurare LDAP tenendo presente la sicurezza. La configurazione LDAP deve essere eseguita in modo da limitare gli utenti non autorizzati a apportare modifiche dannose al sistema. Inoltre, il prossimo è che il risultato della query LDAP deve essere limitato e non può rivelare alcun dato che possa portare a violazioni della sicurezza. Se i dati non saranno sufficienti a danneggiare il sistema, l'attaccante non sarà in grado di influenzare l'applicazione Web in alcun modo, anche se fosse in grado di lanciare l'attacco di iniezione LDAP.

Conclusione

Il protocollo Lightweight Directory Access Protocol consente all'applicazione di garantire che l'utente che sta tentando di accedere al sistema sia correttamente autenticato e autorizzato a utilizzare il sistema. È molto importante considerare LDAP mentre ci si prende cura di tutti i problemi di sicurezza. Il sistema dovrebbe essere ampio o forte per non permettere a nessun hacker di lanciare un attacco LDAP. Poiché il database LDAP contiene informazioni molto redditizie, l'amministratore deve assicurarsi che l'input dell'utente sia stato disinfettato con molta attenzione e che la configurazione debba essere eseguita tenendo conto di tutti i fattori di sicurezza.

Articoli consigliati

Questa è una guida all'iniezione LDAP. Qui discutiamo cos'è LDAP Injection, i suoi esempi e come proteggere l'attacco LDAP Injection. Puoi anche consultare i nostri altri articoli correlati per saperne di più-

  1. Che cos'è SQL Injection?
  2. Che cos'è Laravel?
  3. Test di sicurezza
  4. Cos'è l'interfaccia Java?

Categoria: