# Escalada de privilegis

L'escalada de privilegis és l'acte d'explotar un error, un defecte de disseny o un error de configuració en un sistema operatiu o aplicació de programari per obtenir un accés elevat als recursos que normalment estan protegits d'una aplicació o usuari. El resultat és que una aplicació amb més privilegis dels previstos pel desenvolupador de l'aplicació o l'administrador del sistema pot dur a terme accions no autoritzades.

## Rerefons

La majoria dels sistemes informàtics estan dissenyats per utilitzar-se amb diversos comptes d'usuari, cadascun dels quals té habilitats conegudes com a privilegis. Els privilegis habituals inclouen veure i editar fitxers o modificar fitxers del sistema.
L'escalada de privilegis significa que els usuaris reben privilegis als quals no tenen dret. Aquests privilegis es poden utilitzar per esborrar fitxers, veure informació privada o instal·lar programes no desitjats com ara virus. Normalment es produeix quan un sistema té un error que permet evitar la seguretat o, alternativament, té supòsits de disseny defectuosos sobre com s'utilitzarà. L'escalada de privilegis es produeix de dues formes:
* Escalada de privilegis vertical, també coneguda com a elevació de privilegis, on un usuari o aplicació amb privilegis inferiors accedeix a funcions o contingut reservat per a usuaris o aplicacions amb privilegis superiors (per exemple, els usuaris de la banca per Internet poden accedir a les funcions administratives del lloc o es pot ometre la contrasenya d'un telèfon intel·ligent).
* Escalada de privilegis horitzontals, on un usuari normal accedeix a funcions o contingut reservat per a altres usuaris normals (per exemple, l'usuari de banca per Internet A accedeix al compte bancari d'Internet de l'usuari B)

## Vertical

Aquest tipus d'escalada de privilegis es produeix quan l'usuari o procés és capaç d'obtenir un nivell d'accés més alt que el previst per un administrador o desenvolupador del sistema, possiblement mitjançant la realització d'operacions a nivell del nucli.

### Exemples

En alguns casos, una aplicació amb privilegis elevats assumeix que només se li proporcionarà una entrada que coincideixi amb l'especificació de la seva interfície, per la qual cosa no valida aquesta entrada. Aleshores, un atacant pot aprofitar aquesta suposició per executar codi no autoritzat amb els privilegis de l'aplicació:
* Alguns serveis de Windows estan configurats per executar-se amb el compte d'usuari del sistema local. Es pot utilitzar una vulnerabilitat com un desbordament de memòria intermèdia per executar codi arbitrari amb privilegi elevat a Sistema local. Alternativament, un servei del sistema que suplanta la identitat d'un usuari inferior pot augmentar els privilegis d'aquest usuari si els errors no es gestionen correctament mentre l'usuari està suplantat (per exemple, si l'usuari ha introduït un gestor d'errors maliciós )
* Sota algunes versions heretades del sistema operatiu Microsoft Windows, el salvapantalles de Tots els usuaris s'executa amb el compte del sistema local; per tant, qualsevol compte que pugui substituir el binari del salvapantalles actual al sistema de fitxers o al registre pot elevar els privilegis.
* En determinades versions del nucli Linux era possible escriure un programa que establiria el seu directori actual a /etc/cron.d, sol·licitava que es realitzés un buidatge del nucli en cas que es col·loqui i després s'eliminés per un altre procés. El fitxer d'abocament del nucli s'hauria col·locat al directori actual del programa, és a dir, /etc/cron.d, i cron l'hauria tractat com un fitxer de text que li indicava que executés els programes a la programació. Com que el contingut del fitxer estaria sota el control de l'atacant, l'atacant seria capaç d'executar qualsevol programa amb privilegis de root.
* Cross Zone Scripting és un tipus d'atac d'escalada de privilegis en què un lloc web subverteix el model de seguretat dels navegadors web, permetent així executar codi maliciós als ordinadors client.
* També hi ha situacions en què una aplicació pot utilitzar altres serveis d'alt privilegi i té suposicions incorrectes sobre com un client podria manipular el seu ús d'aquests serveis. Una aplicació que pugui executar ordres de la línia d'ordres o de l'intèrpret d'ordres podria tenir una vulnerabilitat d'injecció de shell si utilitza una entrada no validada com a part d'una ordre executada. Aleshores, un atacant podria executar ordres del sistema utilitzant els privilegis de l'aplicació.
* Les calculadores de Texas Instruments (especialment la TI-85 i la TI-82) van ser originalment dissenyades per utilitzar només programes interpretats escrits en dialectes de TI-BASIC; tanmateix, després que els usuaris van descobrir errors que es podrien explotar per permetre que el codi Z-80 natiu s'executi al maquinari de la calculadora, TI va publicar dades de programació per donar suport al desenvolupament de tercers. (Això no va continuar amb el TI-Nspire basat en ARM, per al qual s'han trobat jailbreaks amb Ndless, però Texas Instruments encara lluita activament.)
Algunes versions de l'iPhone permeten a un usuari no autoritzat accedir al telèfon mentre està bloquejat.

### Jailbreaking

En seguretat informàtica, el jailbreaking es defineix com l'acció d'eliminar les limitacions que un proveïdor va intentar codificar en el seu programari o serveis. Un exemple comú és l'ús de conjunts d'eines per sortir d'un chroot o una presó en sistemes operatius semblants a UNIX o eludir la gestió de drets digitals (DRM). En el primer cas, permet a l'usuari veure fitxers fora del sistema de fitxers que l'administrador pretén posar a disposició de l'aplicació o usuari en qüestió. En el context de DRM, això permet a l'usuari executar codi definit arbitràriament en dispositius amb DRM, així com sortir de restriccions semblants a chroot. El terme es va originar amb la comunitat de jailbreaking d'iPhone/iOS i també s'ha utilitzat com a terme per a la pirateria de PlayStation Portable; aquests dispositius han estat subjectes repetidament a jailbreaks, que permeten l'execució de codi arbitrari, i de vegades s'han desactivat aquests jailbreaks per actualitzacions del proveïdor.

### Android

Els telèfons Android es poden arrelar oficialment mitjançant un procés controlat pels fabricants, utilitzant un exploit per obtenir l'arrel o mitjançant una recuperació personalitzada. Els fabricants permeten l'arrelament mitjançant un procés que controlen, mentre que alguns permeten que el telèfon s'arreli simplement prement combinacions de tecles específiques en el moment d'arrencar o mitjançant altres mètodes autoadministrats. L'ús d'un mètode del fabricant gairebé sempre restableix el dispositiu de fàbrica, cosa que fa que l'arrelament sigui inútil per a les persones que vulguin veure les dades i també anul·la la garantia de manera permanent, fins i tot si el dispositiu es desroteja i es torna a executar. Els exploits de programari habitualment s'orienten a un procés de nivell arrel que és accessible per l'usuari, utilitzant un exploit específic del nucli del telèfon o utilitzant un exploit d'Android conegut que s'ha pegat en versions més noves; no actualitzant el telèfon o baixant la versió intencionadament.

### Estratègies de mitigació

Els sistemes operatius i els usuaris poden utilitzar les estratègies següents per reduir el risc d'escalada de privilegis:
* Prevenció de l'execució de dades
* Aleatorització de la disposició de l'espai d'adreces (per dificultar que els desbordaments de memòria intermèdia executin instruccions privilegiades a adreces conegudes a la memòria)
* Execució d'aplicacions amb menys privilegis (per exemple, executant Internet Explorer amb el SID de l'administrador desactivat al testimoni del procés) per tal de reduir la capacitat dels exploits d'excés de memòria intermèdia per abusar dels privilegis d'un usuari elevat.
* Cal que el codi del mode del nucli estigui signat digitalment.
* Pedaç
* Ús de compiladors que capturen els desbordaments de memòria intermèdia
* Xifratge de components de programari i/o microprogramari.
* Ús d'un sistema operatiu amb controls d'accés obligatoris (MAC) com SELinux
* Mecanisme de reubicació de dades del nucli (reubica dinàmicament la informació de privilegis al nucli en execució, evitant atacs d'escalada de privilegis mitjançant la corrupció de la memòria)

## Horitzontal

L'escalada de privilegis horitzontal es produeix quan una aplicació permet que l'atacant tingui accés a recursos que normalment haurien estat protegits d'una aplicació o d'un usuari. El resultat és que l'aplicació realitza accions amb el mateix usuari però amb un context de seguretat diferent del previst pel desenvolupador de l'aplicació o l'administrador del sistema; aquesta és efectivament una forma limitada d'escalada de privilegis (específicament, l'assumpció no autoritzada de la capacitat de suplantar la identitat d'altres usuaris). En comparació amb l'escalada de privilegis vertical, horitzontal no requereix cap actualització del privilegi dels comptes. Sovint es basa en els errors del sistema.

## Referències

* ↑ «What is Privilege Escalation? - CrowdStrike» (en anglès). [Consulta: 21 novembre 2023].
* ↑ «Definition of JAILBREAK» (en anglès). www.merriam-webster.com. [Consulta: 24 desembre 2022].
* ↑ Cyrus Peikari. Security Warrior: Know Your Enemy (en anglès). "O'Reilly Media, Inc.", 2004, p. 304. ISBN 978-0-596-55239-8.
* ↑ Diogenes, Yuri; Erdal Ozkaya, Safari Books Online. Cybersecurity - Attack and Defense Strategies - Second Edition (en anglès). 2a edició, 2019, p. 304. ISBN 978-1-83882-779-3. OCLC 1139764053.