Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Privilege escalation

La scalata di privilegi: gli attacchi che danno accesso a risorse o documenti cui l'utente non ha accesso
La scalata di privilegi: gli attacchi che danno accesso a risorse o documenti cui l'utente non ha accesso
Link copiato negli appunti

Con il termine privilege escalation intendiamo una classe di attacchi in cui si cerca di raggiungere funzionalità e privilegi di accesso a file e risorse, non riservate all'utente di cui impersoniamo il ruolo (e i diritti). Ci sono due tipologie di attacchi privilege escalation :

  • Verticale: l'attacco viene indirizzato verso utenti con privilegi maggiori (amministratori) dell'aggressore.
  • Orizzontale: l'attacco viene diretto verso altri utenti con profili analoghi a quello dell'aggressore.

L'attacco privilege escalation viene categorizzato come vulnerabilità logica, in quanto permette a un attaccante di sfruttare l'imprecisione nel riconoscimento dell'utente da parte del sistema per acquisire permessi e funzionalità. Esistono diversi fattori che possono invitarci a tentare un attacco di questo tipo, ne vediamo alcuni:

Risorse non protette

Esasperiamo per un momento il concetto per renderlo di facile comprensione. Può capitare, durante lo spidering di un'applicazione web, di incontrare risorse del tipo aggiungiutente.php, concedidirittidaamministratore.php e così via (chi sta sorridendo sappia che vulnerabilità di questo genere sono ancora molto frequenti!), che non sono pagine web, ma solo script che vengono richiamati da altre pagine (per esempio pannelli di controllo per amministratori) attraverso un link o inclusi dinamicamente nel codice di una pagina.

Occasionalmente questi script richiedono parametri in ingresso per eseguire l'operazione per cui sono stati creati, altre volte no. In entrambi i casi può succedere che la nostra risorsa (visibile dallo spider ma non dall'utente) non sia sottoposta a un controllo di accesso quindi digitando www.sitoattaccato.it/iosonoamministratore.php, potremmo ritrovarci amministratori di un sistema senza troppe difficoltà.

Manipolazione di url dinamici e parametri:

Nel caso di controlli di accesso basati su url o su invio di dati tramite form, posso tentare di manipolare informazioni che sembrano importanti.

Ad esempio: se da utente registrato (non amministratore) osservo la barra degli indirizzi e individuo il parametro admin=false posso pensare che cosa succederebbe se al posto di false avessi true? Oppure: se durante l'analisi di uno scambio request/response, individuo uno o più campi hidden con nomi interessanti come admin=false oppure visualizzapannelloamministratore=false o simili. Posso domandarmi se la modifica di quei parametri possa aiutarmi ad aver accesso a funzioni più importanti.

Nota per gli sviluppatori: se non potete fare a meno di fornire involontariamente informazioni riguardo al controllo degli accessi, vi consiglio di estendere questo controllo a tutte le possibili metodologie di trasferimento dati.

In parole povere non limitiamo il controllo dell'accesso e dell'identità di un utente a un parametro querystring, estendiamolo per esempio a un cookie, a un sessionid, al mac adress (se riusciamo a recuperarlo) in modo da avere più parametri separati per effettuare il controllo.

File statici raggiungibili

Raccontiamo una piccola storia. Capita spesso, navigando il web, di imbatterci in documenti che riteniamo interessanti e che vogliamo raggiungere. La lettura di questi documenti è però riservata agli utenti registrati e se la registrazione è gratuita non vediamo il motivo per non eseguirla. Una volta ottenuto l'accesso come utenti registrati, leggiamo il nostro documento. Mentre scopriamo i tanti privilegi di utenti registrati (gratuitamente), ci accorgiamo che un'altro documento ci interessa, ma l'accesso è consentito ad altri utenti registrati, quelli a pagamento.

Umiliati per il nostro status di utenti non paganti, torniamo al nostro documento iniziale notando che ha un indirizzo preciso: www.sito.it/documenti/documentogratis.pdf. Beh perché non provare: www.sito.it/documenti/documentoapagamento.pdf. Magicamente abbiamo l'accesso al documento che ci interessava.

Questo è un semplice esempio di risorsa non protetta all'interno di un'applicazione web. Può capitare (e spesso capita) che le risorse documentali di un'applicazione web siano in un repository specifico (il cui controllo degli accessi non è attivo) raggiungibile semplicemente digitando l'url corretto. Questo tipo di struttura espone l'applicazione a un attacco privilege escalation verso permessi di accesso a documenti (potenzialmente) sensibili.

Ti consigliamo anche