Man mano che emergono nuovi metodi e tecnologie per proteggere i dati, così fanno le tattiche usate dai malintenzionati per violarli.

Una delle tecniche di attacco che ha guadagnato notorietà negli ultimi anni è l’Iniezione LDAP.
Questo tipo di attacco colpisce i sistemi che utilizzano il protocollo LDAP (Lightweight Directory Access Protocol), un protocollo standard per l’elaborazione delle directory di dati come Active Directory di Microsoft.
L’Iniezione LDAP sfrutta le vulnerabilità in un’applicazione quando questa non sanifica correttamente gli input forniti dagli utenti, permettendo agli attaccanti di modificare le query LDAP e accedere, modificare o cancellare dati sensibili.

In questo articolo, esploreremo le meccaniche dietro l’iniezione LDAP, i rischi associati e le strategie per prevenire questi attacchi.

attacco LDAP Injection

Che cos’è l’LDAP Injection?

L’Injection LDAP, acronimo di Lightweight Directory Access Protocol, rappresenta una categoria di vulnerabilità informatiche utilizzate per compromettere il processo di autenticazione all’interno di alcuni siti web. Questi attacchi sono in grado di sfruttare siti web che costruiscono query LDAP basate sui dati forniti dagli utenti.

Molte organizzazioni si affidano al protocollo LDAP per implementare l’accesso tramite una singola autenticazione (single sign-on) e per autenticare gli utenti per diverse applicazioni, sia locali che basate sul web. All’interno delle directory LDAP vengono conservati oggetti contenenti informazioni sugli utenti e sulle risorse dell’organizzazione stessa. Ad esempio, una directory LDAP può contenere elenchi di:

  • nomi utente
  • password
  • indirizzi email

dei vari utenti all’interno dell’organizzazione.
Qualora una directory LDAP sia utilizzata per l’autenticazione di un sito web, un aggressore può inserire codice dannoso in un campo di input destinato agli utenti, ottenendo così accesso non autorizzato all’intera directory e la possibilità di visualizzare o modificare nomi utente e password.

Come funzionano gli attacchi informatici di iniezione LDAP?

Questo genere di attacchi informatici sfrutta la presenza di vulnerabilità di sicurezza causate da dati di input non sanificati da parte dell’utente.
In altre parole, le LDAP injection creano query malformate per ottenere l’accesso e potenzialmente modificare i dati in una directory.

Le query LDAP contengono caratteri speciali come asterischi, parentesi e virgolette.
Questi caratteri controllano il significato delle query LDAP e ne determinano:

  1. tipologia
  2. numero

di oggetti restituiti da una query.

Gli attaccanti possono alterare la query e il suo comportamento previsto modificando questi caratteri di controllo all’interno della query.
Ad esempio, in una query di accesso che utilizza LDAP, un aggressore può inserire il nome utente insieme a diversi metacaratteri che manipolano il protocollo ignorando il campo della password.

Tipi di attacco di LDAP Injaction

Esistono diversi tipi di attacchi di injection LDAP, tra cui i seguenti:

  1. Iniezione di operatori LDAP: inserendo operatori specifici di LDAP, come (|) o (&), un attaccante può manipolare la logica delle query.
    Questo può essere usato, ad esempio, per bypassare l’autenticazione.
  2. Iniezione di Wildcards: l’uso di caratteri jolly, come *, può portare a risultati non previsti in una query LDAP, come l’elenco di tutti gli utenti in un directory.
  3. Comment injection: l’attaccante inserisce un commento, come #, per neutralizzare parte di una query e far eseguire solo la porzione di suo interesse.
  4. Iniezione di DN (Distinguished Name): manipolando il DN, che è un riferimento univoco a una voce in LDAP, un attaccante può accedere o modificare voci diverse da quelle previste.
  5. Blind LDAP injection: simile alla blind SQL injection, in questo tipo di attacco l’attaccante fa domande precise al server LDAP e deduce informazioni basate sulle risposte, anche se il server non restituisce direttamente dati sensibili.

Differenze tra SQL Injection e LDAP Injection

Prima di giungere a una conclusione, è essenziale comprendere le distinzioni tra SQL Injection e LDAP Injection.
Sebbene entrambi siano attacchi di iniezione di codice in cui un utente malevolo inserisce parti del proprio codice in un flusso di dati esistente per eludere le misure di sicurezza, ci sono differenze fondamentali. L’iniezione LDAP e l’iniezione SQL seguono un meccanismo di funzionamento simile.
Entrambi gli attacchi si verificano principalmente a causa di una convalida insufficiente o debole dell’input, che non rifiuta input malformati o non rimuove i caratteri di controllo LDAP o SQL dannosi prima di includere l’input non attendibile in una query.

La principale differenza tra queste due forme di attacco risiede nel protocollo o nel linguaggio che sfruttano e, di conseguenza, nella sintassi dei dati dell’attacco. LDAP è un protocollo utilizzato per accedere alle informazioni nelle directory, mentre SQL è un linguaggio di interrogazione utilizzato per i database.

Di conseguenza, gli attacchi mirano a memorizzare informazioni in diversi tipi di archivi.
L’iniezione LDAP si rivolge alle directory, mentre l’iniezione SQL si concentra sui database.

Come prevenire un attacco con iniezione LDAP?

Concludendo, per difendersi dagli attacchi di iniezione LDAP, è fondamentale adottare misure preventive solide.

Gli attacchi di questo tipo possono essere utilizzati per:

  1. ottenere accesso a dati sensibili
  2. alterare le informazioni LDAP
  3. assumere il controllo di un sistema che fa uso di LDAP.

Pertanto, la sicurezza è una priorità assoluta. Come per ogni tipo di attacco basato sull’iniezione, la strategia più efficace per prevenire le iniezioni LDAP consiste nella sanificazione accurata dell’input non attendibile e nell’applicazione di una rigorosa convalida dello stesso.