In informatica, si intende con privilege escalation (inteso come sorpasso delle autorizzazioni) lo sfruttamento di una falla, di un errore di progetto o di configurazione di un software applicativo o di un sistema operativo al fine di acquisire il controllo di risorse di macchina normalmente precluse a un utente o a un'applicazione. Un'applicazione con maggiori autorizzazioni di quelle previste dallo sviluppo originale o fissate dall'amministratore di sistema può, ovviamente, mettere in opera azioni impreviste e non autorizzate.
La "scalata" verso un livello più alto di autorizzazioni è possibile in caso di progetto errato o di funzionalità di sistema mal gestite: ciò apre una falla nella sicurezza tramite la quale un utente o un software male intenzionato può mettere in opera azioni dei seguenti tipi:
Questo tipo di privilege escalation esiste quando l'utente o il processo è in grado di ottenere un livello di accesso più alto di quello di un amministratore o di quello voluto dallo sviluppatore del sistema, possibilmente eseguendo operazioni a livello del kernel (kernel-level).
In alcuni casi un'applicazione con alti privilegi si presume sarà soltanto provvista di input che vada bene con la sua specifica interfaccia, senza però convalidare l'input. Un Attacker può quindi essere in grado di utilizzare questo presupposto in modo che un codice non autorizzato giri con gli stessi privilegi dell'applicazione:
/etc/cron.d, per richiedere che un core dump sia capace in caso di crash che esso stesso venga ucciso da un altro processo. Il file core dump dovrebbe essere posizionato nella directory corrente del programma, cioè, /etc/cron.d, e cron dovrebbe essere trattato come un file di testo istruendo esso a far girare programmi su schedule. Poiché i contenuti dei file dovrebbero essere sotto il controllo dell'attacker, esso dovrebbe essere capace di eseguire qualunque programma con i privilegi di root.Un esempio famoso era un programma che faceva uso del demone cron che consentiva agli utenti la schedulazione del lavoro. In genere veniva eseguito come root avendo quindi libero accesso a tutti i file di sistema e a tutti gli account utente. Principalmente l'attacco avveniva in questo modo:
Fortunatamente questo particolare bug è stato risolto ma rimane sempre un ottimo esempio di questo tipo di attacco.
I sistemi operativi e gli utenti possono usare le seguenti strategie per ridurre il rischio di privilege escalation:
Horizontal privilege escalation accade quando un'applicazione permette all'attacker di guadagnare l'accesso alle risorse le quali normalmente dovrebbere essere state protette da un'applicazione o da un utente. Il risultato è che l'applicazione esegue azioni con lo stesso ma differente contesto di sicurezza di quello inteso dalla sviluppatore dell'applicazione o dall'amministratore del sistema; ciò è effettivamente una forma limitata di privilege escalation (specificatamente, il non autorizzato presupposto sulle capacità di imitare altri utenti).
Questo problema capita spesso nelle applicazioni web. Consideriamo il seguente esempio:
Questa attività malevola può essere possibile dovuta a debolezze o vulnerabilità delle comuni applicazioni web. Le potenziali vulnerabilità dell'applicazione web che possono portare a questa condizione includono: