Privilege escalation: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(30 versioni intermedie di 22 utenti non mostrate)
Riga 1:
In [[informatica]], si intende con '''''privilege escalation''''' (inteso come ''sorpasso delle [[Autorizzazione (informatica)|autorizzazioni]]'' ) lo sfruttamento di una [[bug|falla]], di un errore di progetto o di [[configurazione (informatica)|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 (informatica)|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.
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.
 
== Aspetti generali ==
==Background==
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:
Privilege escalation esiste quando un’applicazione con privilegi elevati ha un bug che permette di bypassare la sicurezza, o in alternativa, si presuppone sia imperfetto il modo con cui essa sarà utilizzata. Privilege escalation esiste in tre forme:
 
# '''VerticalScalata privilege escalationverticale''', anche conosciuta come ''[[privilege elevation]]'', dove: un utente (user) con privilegi più bassi accede a funzioni, oautorizzazioni contenuti riservati ad utenti (users) cone privilegi più alti di (adquelli esempioassegnatigli: unper Utentefare Aun deiesempio servizifinanziario, Bancariun'utenza Onlineche accede allea funzionilivelli di Amministratore)amministrazione.
## Come corollario, questo comporta anche la possibilità per l'utente divenuto amministratore di retrocedere i privilegi di altri amministratori al livello di semplice utente.
# '''Horizontal privilege escalation''', dove un utente normale accede a funzioni o contenuti riservati ad altri utenti normali (ad esempio: un Utente A dei servizi Bancari Online accede all’account Bancario Online di un Utente B)
# '''Scalata orizzontale''': un utente a pari livello di autorizzazione di altri utenti, ma con accesso ad aree differenti rispetto a questi ultimi, guadagna accesso a dette aree.
# '''Privilege descalation''', dove un utente con un alto privilegio ma nella riservatezza (esempio utente/amministratore della sicurezza, comunemente visto nell’ambiente [[SOx]] ) è in grado di fare il downgrade (degradare) il livello di accesso di altri utenti fino a quello delle funzioni di un utente normale.
 
==Vertical privilege escalation==
Questo tipo di privilege escalation esiste quando l’utentel'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).
 
===Esempi di vertical privilege escalation===
In alcuni casi un’applicazioneun'applicazione con alti privilegi si presume sarà soltanto provvista di input che vada bene con la sua specifica interfaccia, senza però convalidare l’inputl'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’applicazionedell'applicazione:
# Alcuni servizi [[Windows]] sono configurati per girare sotto un account utente del [[Local System]]. Una vulnerabilità così come il [[buffer overflow]] può essere usata per eseguire un codice arbitrario con privilegi elevati nel [[Local System]]. In alternativa, un servizio di sistema che si sta spacciando per un utente minore può elevare i propri privilegi se durante tale operazione gli errori che ne conseguono non vengono maneggiati correttamente.
# Sotto alcune passate versioni del sistema operativo [[Microsoft Windows]], tutti gli [[Salvaschermo|screensaver]] di tutti gli utenti girano sotto l’accountl'account [[Local System]], ogni account che può sostituire il corrente screensaver binario nel [[file system]] o [[Registro di sistema|Registro]] può perciò aumentare i privilegi.
# '''*''' In certe versioni del [[kernel]] di [[Linux]] era possibile scrivere un programma che dovrebbe posizionare la sua [[directory corrente]] in <code>/etc/cron.d</code>, 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è, <code>/etc/cron.d</code>, e <code>[[cron]]</code> 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’attackerdell'attacker, esso dovrebbe essere capace di eseguire qualunque programma con i privilegi di [[root (informatica)|root]].
# [[Cross Zone Scripting]] è un tipo di attacco privilege escalation nel quale un sito web sovverte il modello di sicurezza dei browser del web così che può girare codice malevolo sui computer di tipo [[client]]..
# Un [[jailbreak (informatica)|jailbreak]] è l’attol'atto o lo strumento usato per effettuare l’evasionel'evasione [[chroot]] o [[jail]] in sistemi operativi tipo [[UNIX]] o bypassando i digital rights management ([[Digital rights management|DRM]]). Nel primo caso, esso permette all’utenteall'utente di vedere file esterni al [[file system]] che l’amministratorel'amministratore intende rendere disponibili per le applicazioni o su richiesta degli utenti. Nel contesto del DRM, ciò permette che l’utentel'utente faccia girare arbitrariamente un codice definito su dispositivi gravati dal DRM così pure da evadere le restrizioni del tipo [[chroot]]. I dispositivi gravati dal DRM come l’l'[[Xbox]], [[PlayStation Portable|PSP]], [[iPhone]], e [[iPod touch]] sono state ripetutamente soggetti a jailbreaks, permettendo l’esecuzionel'esecuzione di codice arbitrario, ma hanno avuto i jailbreaks disabilitati dagli updates dei rispettivi venditori.
* In particolare l’l'[[iPhone]] è stato un terreno fertile di battaglia. Il gruppo di hacker dell’dell'[[iPod Touchtouch]]/[[iPhone]] tuttavia, risponde ai più recenti updates dei venditori creando nuovi modi per abilitare applicazioni di terzi quasi istantaneamente. È stato solo quando aumentò la popolarità dell’dell'[[iPhone]] che il termine jailbreaking diventò ben noto in tutto il mondo.
* Un metodo simile di [[jailbreaking]] esiste per la piattaforma [[S60]] degli [[smartphones]], il quale richiede l’installazionel'installazione di patch softmod-style, che richiede il patching di certi file [[Read Only Memory|ROM]] mentre sono caricati nella [[RAM]] o il firmware editato (simile all’all'[[M33]] firmware hackato usato per la [[PlayStation Portable]]) per raggirare le restrizioni su codice non firmato. [[Nokia]] ha rilasciatopubblicato degli updates per mettere un freno ai jailbreaking non autorizzati, in maniera simile ad [[Apple]].
# Ci sono anche situazioni dove un’applicazioneun'applicazione può usare altri servizi con alti privilegi e assunzioni incorrette su come un client potrebbe manipolare l’usol'uso di questi servizi. Un'applicazione che può eseguire una [[Command line]] o una [[shell (informatica)|shell]] di comandi potrebbe avere una vulnerabilità [[Shell Injection]] se usa input invalidati come parte di un comando eseguito. Un attacker dovrebbe essere in grado di far girare comandi di sistema usando i privilegi delle applicazioni.
# I calcolatori della [[Texas Instruments]] (in particolare il [[TI-85]] e il [[TI-83]]) furono originariamente progettati per usare solo programmi interpretati scritti nella dialettica del [[TI-BASIC]]; tuttavia, dopo che gli utenti scoprirono dei bug che potrebbero essere utilizzati per permettere al codice nativo [[Z-80]] di girare su l’hardwarel'hardware del calcolatore, i [[Texas Instruments]] pubblicarono i dati necessari alla programmazione (programming data) per supportare lo sviluppo di terzi. (Ciò non manda avanti gli [[ARM-based]] [[TI-Nspire]], per i quali i jailbreaks non sono stati ancora trovati con successo.)
 
===*Esempio famoso di attacco usando il Demone Cron===
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 [https://web.archive.org/web/20130712211000/http://root/ root] avendo quindi libero accesso a tutti i file di sistema e a tutti gli account utente. Principalmente l’attaccol'attacco avveniva in questo modo:
 
# L’attaccanteL'attaccante crea un programma che avrà come directory di lavoro proprio quella del demone cron.
# Dopo di che serve che venga creato un core dump e questo può avvenire in 2 modi, o va in errore così da generare un [[core dump]] o si lascia uccidere così da ottenere lo stesso un [[core dump]].
# I [[core dump]] sono generati nella directory di lavoro che coincide in questo caso con quella del [[demone cron]]. Poiché i [[dump]] sono fatti dal sistema possono essere scritti senza che venga fermato dal sistema di protezione. L’immagineL'immagine della memoria del programma attaccante aveva una struttura tale da essere formata da un insieme valido di comandi per il [[demone cron]] che poteva eseguirli come [[root (utente)|root]] di sistema avendo massimi privilegi.
# A questo punto l’attaccantel'attaccante si ritrovava un codice arbitrario che era in esecuzione come [[superuser]].
Fortunatamente questo particolare bug è stato risolto ma rimane sempre un ottimo esempio di questo tipo di attacco.
 
Riga 36 ⟶ 35:
I sistemi operativi e gli utenti possono usare le seguenti strategie per ridurre il rischio di privilege escalation:
# [[Data Execution Prevention]]
# [[Address space layout randomization]] (per rendere più difficile i [[buffer overruns]] ed eseguire istruzioni privilegiate su indirizzi conosciuti in memoria)
# Facendo girare applicazioni con il minimo privilegio (per esempio facendo girare [[Internet Explorer]] con la SID dell’Amministratoredell'Amministratore disattivata nel processo di [[tokenizzazione]]) in modo da ridurre l’abilitàl'abilità dell’azionedell'azione [[buffer overrun]] di abusare dei privilegi di un utente elevato.
# Richiedendo che il codice in [[kernel-mode]] abbia la firma digitale
# Fare l’ l'up-to-date del [[software]] [[antivirus]]
# Facendo il [[Patching]]
# Usando compilatori che ingannino il [[buffer overruns]]
# Criptando il [[software]] e/o i componenti del [[firmware]]
 
==Horizontal privilege escalation==
[[Horizontal privilege escalation]] accade quando un’applicazioneun'applicazione permette all’attackerall'attacker di guadagnare l’accessol'accesso alle risorse le quali normalmente dovrebbere essere state protette da un’applicazioneun'applicazione o da un utente. Il risultato è che l’applicazionel'applicazione esegue azioni con lo stesso ma differente contesto di sicurezza di quello inteso dalla sviluppatore dell’applicazionedell'applicazione o dall’amministratoredall'amministratore del sistema; ciò è effettivamente una forma limitata di privilege escalation (specificatamente, il non autorizzato presupposto sulle capacità di imitare altri utenti).
 
===Esempi di horizontal privilege escalation===
Questo problema capita spesso nelle [[Applicazione web|applicazioni web]]. Consideriamo il seguente esempio:
# Utente A ha accesso all’accountall'account della banca in un’applicazioneun'applicazione di servizi bancari online.
# Utente B ha accesso all’accountall'account della banca nella medesima applicazione di servizi bancari online.
# La vulnerabilità si manifesta quando l’Utentel'Utente A è in grado di accedere all’accountall'account dell’Utentedell'Utente B eseguendo qualche tipo di attività malevola.
Questa attività malevola può essere possibile dovuta a debolezze o vulnerabilità delle comuni applicazioni web.
Le potenziali vulnerabilità dell’applicazionedell'applicazione web che possono portare a questa condizione includono:
# La prevedibile [[session ID]]'s nel [[HTTP cookie]] dell’utentedell'utente
# [[Session fixation]]
# [[Cross-site Scriptingscripting]]
# La semplice intuizione delle [[password]]
 
==Bibliografia==
* James Quintana Pearce (2007-09-27), IPhone Hackers, Forbes, https://www.forbes.com/technology/2007/09/27/apple-orange-iphone-tech-cx_pco_0927paidcontent.html {{Webarchive|url=https://web.archive.org/web/20081103034710/http://www.forbes.com/technology/2007/09/27/apple-orange-iphone-tech-cx_pco_0927paidcontent.html |date=3 novembre 2008 }}, retrieved 2008-08-04
* {{Cita news |url=https://www.computerworld.com/article/2538370/reports--next-iphone-update-will-break-third-party-apps--bust-unlocks.html |titolo=Reports: Next iPhone update will break third-party apps, bust unlocks |nome=Gregg |cognome=Keizer |pubblicazione=[[Computerworld (blog)|Computerworld]] |data=31 dicembre 2007 |accesso=9 novembre 2019 |lingua=en}}
* httphttps://symbianism.blogspot.com/2009/02/helloox-103-one-step-hack-for-symbian.html
* https://web.archive.org/web/20160911140221/http://thinkabdul.com/2007/10/29/tutorial-bypass-symbian-signed-install-unsigned-sisxj2me-midlets-on-nokia-s60-v3-with-full-system-permissions/
* Andrew S.Tenenbaum "I moderni sistemi operativi" Pearson 3ª ed.
* http://www.pillolhacking.net/2010/07/10/vulnerabilita-pam-local-privilege-escalation-in-ubuntu-9-10-e-10-04/ {{Webarchive|url=https://web.archive.org/web/20100925232729/http://www.pillolhacking.net/2010/07/10/vulnerabilita-pam-local-privilege-escalation-in-ubuntu-9-10-e-10-04/ |date=25 settembre 2010 }}
* http://www.citi.umich.edu/u/provos/papers/privsep.pdf
 
==Voci correlate==
Riga 64 ⟶ 72:
* [[Privilege revocation]]
* [[Defensive programming]]
* [[World Wide Web#Security|World Wide Web security]]
* [[GetAdmin]]
* [[Permessi (Unix)]]
 
{{portale|informatica}}
==Bibliografia==
* James Quintana Pearce (2007-09-27), IPhone Hackers, Forbes, http://www.forbes.com/technology/2007/09/27/apple-orange-iphone-tech-cx_pco_0927paidcontent.html, retrieved 2008-08-04
* http://www.computerworld.com/s/article/9054719/Reports_Next_iPhone_update_will_break_third_party_apps_bust_unlocks?taxonomyId=11&intsrc=hm_topic
* http://symbianism.blogspot.com/2009/02/helloox-103-one-step-hack-for-symbian.html
* http://thinkabdul.com/2007/10/29/tutorial-bypass-symbian-signed-install-unsigned-sisxj2me-midlets-on-nokia-s60-v3-with-full-system-permissions/
* "Microsoft Minimizes Threat of Buffer Overruns, Builds Trustworthy Applications". Microsoft. September 2005. http://download.microsoft.com/documents/customerevidence/12374_Microsoft_GS_Switch_CS_final.doc. Retrieved 2008-08-04. [dead link]
* Andrew S.Tenenbaum "I moderni sistemi operativi" Pearson 3ª ed.
* http://www.pillolhacking.net/2010/07/10/vulnerabilita-pam-local-privilege-escalation-in-ubuntu-9-10-e-10-04/
* http://www.citi.umich.edu/u/provos/papers/privsep.pdf
 
[[Categoria:Tecniche di attacco informatico]]
 
[[de:Rechteausweitung]]
[[en:Privilege escalation]]
[[fr:Élévation des privilèges]]
[[pl:Eskalacja uprawnień]]
[[ru:Повышение привилегий]]