Zvýšení oprávnění - Privilege escalation

Diagram popisující eskalaci oprávnění. Šipka představuje rootkit získávající přístup k jádru a malá brána představuje normální zvýšení oprávnění, kde uživatel musí zadat uživatelské jméno a heslo správce.

Eskalace oprávnění je akt zneužití chyby , chyby v návrhu nebo dohledu nad konfigurací v operačním systému nebo softwarové aplikaci za účelem získání zvýšeného přístupu ke zdrojům, které jsou normálně chráněny před aplikací nebo uživatelem . Výsledkem je, že aplikace s více oprávněními, než jaké zamýšlel vývojář aplikace nebo správce systému, může provádět neautorizované akce.

Pozadí

Většina počítačových systémů je navržena pro použití s ​​více uživatelskými účty, z nichž každý má schopnosti známé jako oprávnění . Mezi běžná oprávnění patří prohlížení a úpravy souborů nebo úpravy systémových souborů.

Eskalace oprávnění znamená, že uživatelé dostávají oprávnění, na která nemají nárok. Tato oprávnění lze použít k odstranění souborů, zobrazení soukromých informací nebo instalaci nežádoucích programů, jako jsou viry. Obvykle k tomu dochází, když má systém chybu, která umožňuje obejití zabezpečení, nebo alternativně má chybné konstrukční předpoklady o tom, jak bude použit. Eskalace oprávnění probíhá ve dvou formách:

  • Eskalace svislých oprávnění , známá také jako zvýšení oprávnění , kdy uživatel nebo aplikace s nižším oprávněním přistupuje k funkcím nebo obsahu vyhrazenému pro uživatele nebo aplikace s vyššími oprávněními (např. Uživatelé internetového bankovnictví mají přístup k funkcím pro správu webu nebo lze obejít heslo smartphonu.)
  • Eskalace horizontálních oprávnění , kdy normální uživatel přistupuje k funkcím nebo obsahu vyhrazenému jiným běžným uživatelům (např. Uživatel internetového bankovnictví A přistupuje k účtu internetové banky uživatele B)

Vertikální

Kruhy oprávnění pro x86 jsou k dispozici v chráněném režimu

K tomuto typu eskalace oprávnění dochází, když je uživatel nebo proces schopen získat vyšší úroveň přístupu, než zamýšlel správce nebo vývojář systému, případně prováděním operací na úrovni jádra .

Příklady

V některých případech aplikace s vysokými oprávněními předpokládá, že by byla poskytována pouze se vstupem odpovídajícím specifikaci jeho rozhraní, a proto tento vstup neověřuje. Poté může útočník tento předpoklad zneužít, aby mohl spustit neoprávněný kód s oprávněními aplikace:

  • Některé služby Windows jsou nakonfigurovány tak, aby fungovaly pod uživatelským účtem Local System. Ke spuštění libovolného kódu s oprávněním zvýšeným na místní systém může být použita chyba zabezpečení, jako je přetečení vyrovnávací paměti . Alternativně může systémová služba, která se vydává za menšího uživatele, zvýšit oprávnění tohoto uživatele, pokud nejsou chyby zpracovávány správně, když je uživatel zosobněn (např. Pokud uživatel zavedl obslužný program škodlivých chyb )
  • V některých starších verzích operačního systému Microsoft Windows běží spořič obrazovky All Users pod účtem Local System - jakýkoli účet, který může nahradit aktuální binární soubor spořiče obrazovky v systému souborů nebo registru, může tedy zvýšit oprávnění.
  • V určitých verzích linuxového jádra bylo možné napsat program, který by nastavil jeho aktuální adresář /etc/cron.d, požadoval provedení jádrového výpisu pro případ, že by došlo k jeho havárii, a poté by byl sám zabit jiným procesem. Soubor s výpisem jádra by byl umístěn do aktuálního adresáře programu, tj. /etc/cron.d, A byl cronby s ním zacházel jako s textovým souborem , který by jej instruoval ke spuštění programů podle plánu. Protože obsah souboru by byl pod kontrolou útočníka, útočník by mohl spustit jakýkoli program s oprávněními root .
  • Cross Zone Scripting je typ útoku s eskalací oprávnění, při kterém webová stránka podvrací model zabezpečení webových prohlížečů, což mu umožňuje spouštět škodlivý kód na klientských počítačích.
  • Existují také situace, kdy aplikace může používat jiné služby s vysokými oprávněními a má nesprávné předpoklady o tom, jak by klient mohl manipulovat s používáním těchto služeb. Aplikace, která může spouštět příkazy příkazového řádku nebo shellu, může mít chybu zabezpečení typu Shell Injection, pokud jako provedený příkaz používá neověřený vstup. Útočník by pak mohl spouštět systémové příkazy pomocí oprávnění aplikace.
  • Kalkulačky Texas Instruments (zejména TI-85 a TI-82 ) byly původně navrženy tak, aby používaly pouze interpretované programy napsané dialekty TI-BASIC ; poté, co uživatelé objevili chyby, které by mohly být zneužity, aby umožnily spuštění nativního kódu Z-80 na hardwaru kalkulačky, vydala TI programovací data na podporu vývoje třetích stran. (To se neprojevilo na ARM založeném na TI -Nspire , u kterého byly nalezeny jailbreaky využívající Ndless, ale proti nim stále aktivně bojuje Texas Instruments.)
  • Některé verze iPhonu umožňují neoprávněnému uživateli přístup k telefonu, když je zamčený.

Jailbreaking

Útěk z vězení je úkon nebo nástroj používaný k vylomení chrootu nebo vězení v operačních systémech podobných UNIX nebo obejití správy digitálních práv (DRM). V prvním případě umožňuje uživateli vidět soubory mimo souborový systém, který správce zamýšlí zpřístupnit dotyčné aplikaci nebo uživateli. V kontextu DRM to umožňuje uživateli spouštět libovolně definovaný kód na zařízeních s DRM a vymanit se z omezení podobných chroot. Termín pochází z komunity pro jailbreaking iPhone / iOS a byl také používán jako termín pro hackování PlayStation Portable ; tato zařízení opakovaně podléhala jailbreakům, což umožnilo spuštění libovolného kódu, a někdy byly tyto jailbreaky deaktivovány aktualizacemi dodavatele.

Systémy iOS včetně iPhonu , iPadu a iPodu touch podléhají od vydání systému iOS jailbreakingu a pokračují v každé aktualizaci firmwaru. Mezi nástroje pro jailbreaking iOS patří možnost nainstalovat Cydia nebo Sileo, alternativy třetích stran k App Store , jako způsob, jak najít a nainstalovat vylepšení systému a binární soubory. Aby se zabránilo jailbreakingu iOS, Apple nechal zaváděcí ROM zařízení spouštět kontroly blob SHSH , aby zakázal nahrávání vlastních jader a zabránil downgradu softwaru na dřívější, jailbreakable firmware. V „neuzavřeném“ útěku z vězení se prostředí iBoot změní tak, aby provedlo zneužití zaváděcí ROM a umožnilo odeslání opraveného nízkoúrovňového zavaděče nebo hacknutí jádra k odeslání jailbroken jádra po kontrole SHSH.

Podobná metoda jailbreakingu existuje pro smartphony S60 Platform , kde nástroje jako HelloOX umožňují provádění nepodepsaného kódu a plný přístup k systémovým souborům. nebo upravený firmware (podobný hacknutému firmwaru M33 používanému pro PlayStation Portable ) k obcházení omezení nepodepsaného kódu . Nokia od té doby vydala aktualizace, aby omezila neoprávněné útěky z vězení, a to podobným způsobem jako Apple.

V případě herních konzolí se jailbreaking často používá k provádění domácích her . V roce 2011 společnost Sony za pomoci advokátní kanceláře Kilpatrick Stockton zažalovala 21letého George Hotze a spolupracovníků skupiny fail0verflow za útěk z vězení PlayStation 3 (viz Sony Computer Entertainment America v. George Hotz a PlayStation Jailbreak ).

Android

Telefony se systémem Android lze oficiálně zakořenit buď prostřednictvím procesu kontrolovaného výrobcem, pomocí exploitu k získání root, nebo provedením vlastní obnovy. Výrobci umožňují rootování prostřednictvím procesu, který ovládají, zatímco někteří umožňují rootování telefonu jednoduše stisknutím konkrétních kombinací kláves při zavádění nebo jinými metodami, které lze spravovat sami. Použití metody výrobce téměř vždy trvale zruší platnost záruky, a to i v případě, že je zařízení zrušeno a obnoveno. Softwarové exploity se obvykle zaměřují na proces na kořenové úrovni, který je přístupný uživateli, pomocí exploitu specifického pro jádro telefonu nebo pomocí známého exploitu Androidu, který byl opraven v novějších verzích; neaktualizací telefonu nebo záměrným snížením verze.

Strategie zmírňování

Operační systémy a uživatelé mohou ke snížení rizika eskalace oprávnění použít následující strategie:

Horizontální

K eskalaci horizontálních oprávnění dochází, když aplikace umožňuje útočníkovi získat přístup ke zdrojům, které by normálně byly chráněny před aplikací nebo uživatelem . Výsledkem je, že aplikace provádí akce se stejným uživatelem, ale s jiným kontextem zabezpečení, než jaký zamýšlel vývojář aplikace nebo správce systému ; toto je ve skutečnosti omezená forma eskalace oprávnění (konkrétně neoprávněný předpoklad schopnosti vydávat se za jiné uživatele).

Příklady

K tomuto problému často dochází ve webových aplikacích . Zvažte následující příklad:

  • Uživatel A má přístup k vlastnímu bankovnímu účtu v aplikaci internetového bankovnictví.
  • Uživatel B má přístup ke svému vlastnímu bankovnímu účtu ve stejné aplikaci internetového bankovnictví.
  • K této chybě zabezpečení dochází, když má uživatel A přístup k bankovnímu účtu uživatele B provedením nějaké škodlivé činnosti.

Tato škodlivá aktivita může být možná kvůli slabým stránkám nebo zranitelnostem webových aplikací.

Mezi potenciální chyby zabezpečení webových aplikací nebo situace, které mohou vést k tomuto stavu, patří:

Viz také

Reference