Sai cos'è l'iniezione LDAP? È una tecnica di iniezione di codice che prende di mira le applicazioni che costruiscono query di iniezione utilizzando input utente non sanificati. LDAP (Lightweight Directory Access Protocol) è comunemente utilizzato per le ricerche di directory, come l'autenticazione degli utenti o il recupero di dati aziendali. Quando gli aggressori forniscono input appositamente creati contenenti metacaratteri LDAP, possono modificare la logica delle query di directory per accedere o alterare i dati in modo improprio. In effetti, una vulnerabilità di iniezione LDAP si verifica quando i filtri vengono creati dinamicamente a partire da valori controllati dall'utente senza sanificazione o convalida dell'input.
Come funziona: meccanismi di un attacco di iniezione LDAP #
Un attacco di iniezione LDAP si verifica quando i dati forniti dall'utente vengono incorporati in modo non sicuro in una query LDAP. Si consideri un login Filtro:
(&(cn=” + nome utente + “)(userPassword=” + password + “))Se un aggressore invia sequenze * o di terminazione invece di un nome utente valido, la logica del filtro si riduce a una valutazione più ampia o a una condizione sempre vera, bypassando di fatto l'autenticazione. Questo è esattamente il modo in cui funziona questa iniezione: iniettare la logica LDAP per sovvertire il comportamento previsto.
Pertanto, la vulnerabilità di iniezione LDAP deriva dalla creazione di query tramite input non attendibili che includono caratteri speciali, come parentesi, virgolette e caratteri jolly, che rimodellano la semantica della query.
Inoltre, si verificano quando il codice dell'applicazione copia in modo non sicuro i dati dell'utente in una query LDAP e non riesce a neutralizzare i metacaratteri, consentendo agli aggressori di interrompere o manipolare la logica della query, accedere a dati non autorizzati o alterare il flusso di esecuzione.
Perché è importante un attacco di iniezione LDAP? #
Un attacco di iniezione LDAP può interrompere l'autenticazione, far trapelare informazioni sensibili o persino modificare la struttura delle directory. Imperva sottolinea che gli autori delle minacce possono compromettere i processi di autenticazione, visualizzare o modificare nomi utente/password, installare malware e aumentare i privilegi, con conseguenti violazioni dei dati, danni alla reputazione e perdite finanziarie.
Le vulnerabilità di iniezione LDAP possono diffondersi a cascata attraverso servizi interconnessi, soprattutto in enterprise ambienti che utilizzano LDAP per l'accesso singolo (SSO), l'autorizzazione o il coordinamento dell'identità e delle autorizzazioni degli utenti.
Segnali di una vulnerabilità di iniezione LDAP esistente #
Nella sicurezza informatica, la governance si riferisce al modo in cui la leadership, le politiche e i principali segnali d'allarme:
- Il codice concatena l'input dell'utente direttamente nei filtri LDAP.
- Mancanza di convalida dell'input o di escape.
- Utilizzo di caratteri speciali come () * & | = nell'input senza restrizioni.
- Risultati di query inattesi, ad esempio l'autenticazione riesce indipendentemente dalle credenziali oppure vengono restituiti ampi elenchi di utenti con un input minimo.
Le query mal costruite a partire dall'input dell'utente possono consentire il recupero non autorizzato dei dati o l'aggiramento della logica.
Come mitigarli? #
Per mitigare la vulnerabilità dell'iniezione LDAP è necessario:
a. Convalida dell'input / Elenco consentito
Accetta solo caratteri o pattern sicuri noti. Rifiuta o elimina i caratteri di controllo come *, (, ), &, |, =. PortsWigger consiglia di bloccare gli input contenenti metacaratteri LDAP o di applicare rigidi pattern alfanumerici.
b. Escape / Codifica
Utilizzare funzioni di escape specifiche di LDAP: escape del nome distinto per i contesti DN ed escape del filtro di ricerca per i predicati. OWASP fornisce una descrizione dettagliata Promemoria sulla prevenzione con guida personalizzata
c. Query parametrizzate / API sicure
Evita di creare filtri tramite concatenazione di stringhe. Utilizza librerie LDAP che supportano il binding dei parametri o le API per la costruzione di filtri (ad esempio, Filter.createANDFilter(…) dell'SDK UnboundID) per garantire che l'input dell'utente venga trattato come dati, non come sintassi.
D. Principio del privilegio minimo (PoLP)
Associa LDAP con diritti di accesso minimi. Anche se si verifica un'iniezione, limita le azioni che un aggressore può eseguire. Underscore PoLP combinato con fiducia zero e MFA per limitare l'impatto.
e. Framework/Librerie sicure
Utilizzare framework che eludano o sanifichino automaticamente gli input e scoraggino la creazione di query non elaborate.
f. Strumenti di analisi del codice
In .NET, utilizzare l'analisi CA3005 per rilevare input HTTP non attendibili che raggiungono istruzioni LDAP; correggere mediante la sanificazione, l'escape o l'inserimento nell'elenco degli input consentiti.
g. Test (statico, dinamico, test di penetrazione)
Integrare sia Static AppSec (SAST) e Dinamico (DAST) scansione per rilevare la vulnerabilità di iniezione LDAP sia a riposo che in fase di esecuzione.
h. Registrazione, monitoraggio, avvisi
Rileva modelli di filtro anomali, tentativi falliti o strutture di query inaspettate. Semperis consiglia di monitorare Active Directory per rilevare query LDAP irregolari o manipolazioni di metadati.
Tabella riassuntiva del glossario #
| Termine | Significato |
|---|---|
| Iniezione LDAP | Una tecnica di iniezione di codice che sfrutta l'input utente non purificato nei filtri LDAP. |
| Che cos'è l'iniezione LDAP | Una vulnerabilità derivante dalla creazione di query LDAP con input non attendibili. |
| Attacco di iniezione LDAP | L'effettivo sfruttamento in cui l'input altera la logica di query LDAP o ottiene l'accesso. |
| Vulnerabilità di iniezione LDAP | La falla a livello di codice consente attacchi di iniezione LDAP. |
Perché questo è importante in DevSecOps? #
Per Team DevSecOps, prevenire la vulnerabilità dell'iniezione LDAP è fondamentale per proteggere i flussi di autenticazione e il controllo degli accessi supportato dalla directory. Integrazione continua pipelineDevono includere controlli statici del codice per la costruzione di query non sicure e test dinamici per la manipolazione dei filtri. I responsabili della sicurezza devono imporre l'uso di librerie di escape, l'utilizzo di API parametriche e il rispetto delle policy di privilegi minimi e di convalida degli input.
Rafforzamento di DevSecOps Pipelineè con Xygeni #
Ora che sai cos'è l'iniezione LDAP, sai che proteggere le applicazioni moderne da essa richiede più di semplici correzioni a livello di codice. I team DevSecOps devono applicare la sicurezza in tutto ciclo di vita dello sviluppo del software, dal codice alla compilazione alla distribuzione.
Strumenti come Xygeni consentire ai team di rilevare precocemente i rischi di iniezione integrando l'analisi statica, IaC scansione e applicazione sicura delle policy direttamente in CI/CD Flussi di lavoro. Grazie al monitoraggio continuo di query non sicure, rischi di dipendenza o configurazioni errate, Xygeni aiuta a prevenire gli attacchi di iniezione LDAP prima che raggiungano la produzione.
L'integrazione di piattaforme come Xygeni allinea la sicurezza alla velocità di sviluppo, offrendo visibilità in tempo reale, controlli automatizzati e indicazioni di correzione su misura per un'ingegneria sicura fin dalla progettazione.
