Stagefright patří mezi nejhorší exploity, které Android v poslední době viděl. Kliknutím se dozvíte více o specifikách a dozvíte se, jak se chránit!
Jednou z nejsilnějších stránek Androidu je především jeho open source povaha, která zúčastněným stranám umožňuje forkovat, upravovat a redistribuovat OS způsobem, který vyhovuje jejich konkrétním potřebám. Ale právě tato výhoda open source působí jako dvousečná zbraň, pokud jde o problémy s malwarem a bezpečností. Je snazší najít a opravit chyby, když máte hodně schopných přispěvatelů na projektu, jehož zdrojový kód je volně dostupný. Oprava problému na úrovni zdroje se však často nepromítne do vyřešení problému v rukou konečného spotřebitele. Android jako takový není prvotřídní volbou, pokud jde o výběr operačního systému pro podnikové potřeby citlivé na data.
Na Google I/O 2014 společnost Google poprvé popostrčila směrem k bezpečnějšímu a podnikově přívětivému ekosystému spuštěním Program Android For Work. Android For Work přijal přístup se dvěma profily pro podnikové potřeby, pomocí kterého mohli správci IT vytvořit a odlišné uživatelské profily pro zaměstnance – jeden zaměřený na práci, ostatní profily jsou osobní použití. Díky použití hardwarového šifrování a zásad spravovaných správcem zůstala pracovní a osobní data odlišná a bezpečná. Následně Android For Work získal v pozdějších měsících větší pozornost, přičemž velký důraz byl kladen na zabezpečení zařízení proti malwaru. Google to také plánoval
povolit plné šifrování zařízení pro všechna zařízení které měly být vydány s Androidem Lollipop ihned po vybalení, ale to bylo zrušeno kvůli problémům s výkonem, protože tento krok byl pro OEM nepovinný.Tlak na bezpečný Android není zcela dílem společnosti Google, protože Samsung v tom sehrál poměrně významnou roli prostřednictvím svého Příspěvky KNOX do AOSP, což nakonec posílený Android For Work. Nedávné bezpečnostní exploity a zranitelnosti v Androidu však ukazují na obtížný úkol, pokud jde o popularitu pro podnikové přijetí. Příkladem je nedávná zranitelnost Stagefright.
Obsah:
- Co je Stagefright?
- Jak vážný je Stagefright?
- Čím se Stagefright liší od jiných „masivních zranitelností“?
- Dilema aktualizace
- Android, Post-Stagefright
- Závěrečné poznámky
Co je Stagefright?
Jednoduše řečeno, Stagefright je exploit, který využívá knihovnu kódu pro přehrávání médií v systému Android s názvem libstagefright. Engine libstagefright se používá ke spouštění kódu, který je přijímán ve formě škodlivého videa prostřednictvím MMS, takže k úspěšnému útoku vyžaduje pouze mobilní číslo oběti.
Oslovili jsme našeho interního odborníka, XDA Senior Recognized Developer a Developer Admin pulser_g2 poskytnout podrobnější vysvětlení.
"Když to píšu, zneužití [Stagefright] mělo být vysvětleno na BlackHat [Odkaz], i když zatím nejsou k dispozici žádné diapozitivy ani podrobnosti bílého papíru.
Dávám proto toto vysvětlení spíše jako hrubou představu o tom, co se děje, spíše než jako velmi podrobné vysvětlení s plnou přesností atd.
Existuje řada různých chyb, které tvoří Stagefright, a tyto mají své vlastní CVE [Běžná zranitelnost a ohrožení] čísla pro sledování:
- CVE-2015-1538
- CVE-2015-1539
- CVE-2015-3824
- CVE-2015-3826
- CVE-2015-3827
- CVE-2015-3828
- CVE-2015-3829
Bohužel dostupné patche nejsou propojeny přímo s každým CVE (jak by měly být), takže to bude trochu komplikované vysvětlovat.
1. [CVE-2015-1538]
V kódu pro zpracování MPEG4 je kód pro zpracování metadat 3GPP (veci, která popisuje formát a další informace, když je video ve formátu 3GPP) chybný. Neodmítal metadata, kde byla data nadměrně velká, spíše pouze kontrolovala, zda nejsou příliš malá. To znamenalo, že útočník mohl vytvořit „upravený“ nebo „poškozený“ soubor, který by měl delší část metadat, než by měl.
Jednou z velkých výzev při psaní kódu pro zpracování „nedůvěryhodných“ dat (tj. od uživatele nebo z jakéhokoli jiného místa mimo váš kód) je zpracování dat s proměnnou délkou. Videa jsou toho dokonalým příkladem. Software potřebuje dynamicky alokovat paměť v závislosti na tom, co se děje.
V tomto případě je vyrovnávací paměť vytvořena jako ukazatel na nějakou paměť, ale délka pole, na kterou ukazuje, byla o jeden prvek příliš krátká. Metadata byla poté načtena do tohoto pole a bylo možné, aby poslední položka v tomto poli nebyla "null" (nebo nula). Je důležité, že poslední položka v poli je nula, protože tak software říká, že pole je hotové. Díky možnosti nastavit poslední hodnotu nenulovou (protože pole bylo potenciálně o jeden prvek příliš malé), mohl být škodlivý kód načten jinou částí kódu a načíst příliš mnoho dat. Místo aby se zastavil na konci této hodnoty, mohl by pokračovat ve čtení dalších dat, která by číst neměl.
(Odkaz: OmniROM Gerrit)
2. [CVE-2015-1539]
Nejkratší možná "velikost" metadat by měla být 6 bajtů, protože se jedná o řetězec UTF-16. Kód vezme velikost celočíselné hodnoty a odečte od ní 6. Pokud by tato hodnota byla menší než 6, odečítání by "neproteklo" a zalomilo by se a skončili bychom s velmi velkým číslem. Představte si, že můžete počítat například jen od 0 do 65535. Pokud vezmete číslo 4 a odečtete 6, nemůžete jít pod nulu. Takže se vrátíte na 65535 a budete počítat odtamtud. To se tady děje!
Pokud byla přijata délka menší než 6, mohlo by to vést k nesprávnému dekódování snímků, protože proces byteswap používá proměnnou len16, jejíž hodnota se získá z výpočtu počínaje (velikost-6). To by mohlo způsobit mnohem větší swapovací operaci, než bylo zamýšleno, což by neočekávaným způsobem změnilo hodnoty v datech rámce.
(Odkaz: OmniROM Gerrit)
3. [CVE-2015-3824]
Velký! Tenhle je odporný. Je zde pravý opak tohoto posledního problému – přetečení celého čísla, kdy celé číslo může být „příliš velké“. Pokud dosáhnete 65535 (například) a nemůžete počítat výše, budete se točit a jít na 0 jako další!
Pokud na tomto základě přidělujete paměť (což dělá Stagefright!), skončíte s příliš malým množstvím paměti alokované v poli. Když do toho byla vložena data, potenciálně by to přepsalo nesouvisející data daty, které kontroloval tvůrce škodlivého souboru.
(Odkaz: OmniROM Gerrit)
4. [CVE-2015-3826]
Další ošklivý! Velmi podobné poslednímu - další přetečení celého čísla, kde by pole (používané jako vyrovnávací paměť) bylo příliš malé. To by umožnilo přepsat nesouvisející paměť, což je opět špatné. Někdo, kdo může zapisovat data do paměti, může poškodit jiná data, která spolu nesouvisí, a potenciálně to využít k tomu, aby váš telefon spustil nějaký kód, který řídí.
(Odkaz: OmniROM Gerrit)
5. [CVE-2015-3827]
Docela podobné těm posledním. Proměnná se používá při přeskakování nějaké paměti, a to může být během odečítání záporné (jako výše). To by vedlo k velmi velké délce „přeskočení“, přetečení vyrovnávací paměti, což by umožnilo přístup k paměti, ke které by se nemělo přistupovat.
(Odkaz: OmniROM Gerrit)
Existují také některé (potenciálně) související opravy, které vypadají, že se dostaly také do [Android] 5.1.
(Odkaz: OmniROM Gerrit)
To přidává kontroly k zastavení problémů s minulou opravou zabezpečení a přidává kontroly hranic, které mohou být přetečeny. V C jsou čísla, která mohou být reprezentována jako signovaná int, uložena jako signovaná int. Jinak zůstávají během provozu nezměněny. Při těchto kontrolách mohla být některá celá čísla podepsána (spíše než bez znaménka), což by později snížilo jejich maximální hodnotu a umožnilo přetečení.
(Odkaz: OmniROM Gerrit)
Některé další celočíselné podtečení (kde jsou čísla příliš nízká a pak se na těchto číslech provede odečítání, což jim umožní jít do záporu). To opět vede k velkému počtu, spíše než k malému, a to způsobuje stejné problémy jako výše.
(Odkaz: OmniROM Gerrit)
A nakonec další přetečení celého čísla. Stejně jako předtím se to chystá použít jinde a mohlo by to přetéct.
(Odkaz: OmniROM Gerrit)"
Jak vážný je Stagefright?
Podle blogový příspěvek zveřejněné mateřskou výzkumnou společností Zimperium Research Labs, využití Stagefright potenciálně odhaluje 95 % zařízení Android – zhruba 950 milionů – se této zranitelnosti týká, protože postihuje zařízení se systémem Android 2.2 a nahoru. Aby toho nebylo málo, zařízení před Jelly Bean 4.3 jsou vystavena „nejhoršímu riziku“, protože neobsahují adekvátní zmírnění tohoto exploitu.
Pokud jde o škody, které by Stagefright mohl způsobit, pulser_g2 poznamenal:
[blockquote author="pulser_g2"]"Stagefright by sám o sobě umožnil přístup systémovému uživateli na telefonu. Museli byste obejít ASLR (náhodné uspořádání adresního prostoru), abyste to skutečně zneužili. Zda se toho dosáhlo nebo ne, není v tuto chvíli známo. Tento exploit umožňuje spouštět „libovolný kód“ na vašem zařízení jako uživateli systému nebo média. Tito mají přístup ke zvuku a kameře na zařízení a uživatel systému je skvělým místem pro spuštění root exploitu. Pamatujete si všechny ty úžasné root exploity, které jste použili k rootnutí telefonu?
Ty by mohly být potenciálně tiše použity k získání root ve vašem zařízení! Ten, kdo má root, vlastní telefon. Museli by obejít SELinux, ale TowelRoot to zvládl a PingPong to zvládl také. Jakmile získají root, vše ve vašem telefonu je pro ně otevřené. Zprávy, klíče atd.“[/blockquote]Když mluvíme o nejhorších scénářích, k doručení kódu a spuštění tohoto zneužití je potřeba pouze MMS. Uživatel zprávu ani nemusí otevírat protože mnoho aplikací pro zasílání zpráv MMS předběžně zpracovává, než s nimi uživatel interaguje. To se liší od útoků typu spear-phishing, protože uživatel může zcela zapomenout na úspěšný útok a kompromitovat všechna současná i budoucí data v telefonu.
Čím se Stagefright liší od jiných „masivních zranitelností“?
„Všechny zranitelnosti představují určité riziko pro uživatele. Toto je obzvláště riskantní, protože pokud někdo najde způsob, jak na něj zaútočit na dálku (což je možné, pokud byl nalezen způsob, jak obejít ASLR), mohlo by to být spuštěno dříve, než si vůbec uvědomíte, že jste pod vodou Záchvat"
Starší exploity, jako je Android Installer Hijacking, FakeID, stejně jako root exploity jako TowelRoot a PingPong vyžadují v určitém okamžiku interakci uživatele, aby mohly být provedeny. I když stále „využívají“ skutečnost, že při zlomyslném použití může vzniknout mnoho škod, faktem zůstává, že Stagefright teoreticky potřebuje pouze mobilní číslo oběti, aby změnil svůj telefon na trojského koně, a proto je mu v poslední době věnována tolik pozornosti dní.
Android však není zcela vydán na milost a nemilost tomuto exploitu. Vedoucí inženýr zabezpečení Androidu Adrian Ludwig se zabýval některými obavami v a příspěvek na Google+:
[blockquote author="Adrian Ludwig"]"Existuje běžný, mylný předpoklad, že jakákoliv softwarová chyba se může změnit na bezpečnostní exploit. Ve skutečnosti většina chyb není zneužitelná a existuje mnoho věcí, které Android udělal, aby tyto šance zlepšil...
Seznam některých technologií, které byly představeny od doby Ice Cream Sandwich (Android 4.0), jsou uvedeny tady. Nejznámější z nich se nazývá Address Space Layout Randomization (ASLR), která byla plně dokončena v Androidu 4.1 s podporou PIE (Position Independent Executables) a je nyní na více než 85 % Androidu zařízení. Tato technologie znesnadňuje útočníkovi uhodnout umístění kódu, což je nutné pro vytvoření úspěšného exploitu...
S ASLR jsme neskončili, přidali jsme také NX, FortifySource, Read-Only-Relocations, Stack Canaries a další.“[/blockquote]
Stále však nelze popřít, že Stagefright je vážná věc pro budoucnost Androidu a jako taková ji zúčastněné strany berou vážně. Stagefright také zdůraznil bílé slony v místnosti - problém fragmentace a aktualizací, které se nakonec dostaly ke spotřebiteli.
Dilema aktualizace
Když už mluvíme o aktualizacích, je dobré vidět, že OEM přebírají odpovědnost za bezpečnost uživatelů, jak mnozí slíbili zlepšit proces aktualizace speciálně pro začlenění bezpečnostních oprav a záplat pro exploity, jako je Stagefright.
Mezi prvními, kdo vydal oficiální prohlášení, slíbil Google měsíční bezpečnostní aktualizace (kromě plánovaných aktualizací operačního systému a platforem) pro většinu svých zařízení Nexus, včetně téměř 3 roky starého Nexus 4. Samsung také následoval a oznámil, že bude spolupracovat s operátory a partnery na implementaci a měsíční program bezpečnostních aktualizací ale nepodařilo se specifikovat zařízení a podrobnosti o časové ose této implementace. To je zajímavé, protože zmiňuje „zrychlený“ přístup k aktualizacím zabezpečení ve spolupráci s operátory, takže můžeme očekávejte častější aktualizace (i když založené na zabezpečení, ale doufejme, že to také urychlí aktualizace firmwaru) u operátora zařízení.
Mezi další OEM, kteří se připojí k balíčku, patří společnost LG, která se připojí měsíční bezpečnostní aktualizace. Společnost Motorola také oznámila seznam zařízení, která budou aktualizována s opravami Stagefright a seznam zahrnuje téměř všechna zařízení, která společnost vyrobila od roku 2013. Sony to také řekla jeho zařízení brzy obdrží záplaty také.
Pro jednou také dopravci přicházejí s aktualizacemi. Sprint má vydal prohlášení že některá zařízení již obdržela opravu Stagefright, přičemž aktualizace je naplánována na další zařízení. AT&T také následovala vydáním záplaty na některá zařízení. Verizon také vydal opravy, i když se jedná o pomalé zavádění, které upřednostňuje špičkové smartphony, jako je Galaxy S6 Edge a Note 4. T-Mobile Note 4 také obdržel aktualizaci opravy Stagefright.
Jako koncový uživatel existuje několik preventivních kroků, které lze podniknout, abyste snížili své šance na napadení. Pro začátek deaktivujte automatické načítání zpráv MMS v aplikacích pro zasílání zpráv v telefonu. To by mělo mít pod kontrolou případy, kdy pro fungování exploitu nebyla vyžadována žádná interakce uživatele. Poté dávejte pozor, abyste nestahovali média z MMS zpráv z neznámých a nedůvěryhodných zdrojů.
Jako uživatel XDA můžete také proveďte úpravy na vašem sestavení a deaktivujte Stagefright. Toto není úplný a jistý způsob, jak se zachránit před Stagefright, ale můžete využít své šance a snížit pravděpodobnost úspěšného útoku, pokud jste uvízli na starším sestavení Androidu. Existují také vlastní řešení ROM, z nichž většina pravidelně synchronizuje zdroje s AOSP, a proto budou mít zahrnuty opravy Stagefright. Pokud používáte ROM založenou na AOSP, důrazně se doporučuje aktualizovat na novější verzi ROM, která obsahuje opravy Stagefright. Můžeš použít tuto aplikaci zkontrolovat, zda je váš aktuální denní řidič ovlivněn Stagefright.
Android, Post-Stagefright
Stagefright nebyl nic jiného než probuzení směrem k Androidu a jeho problému fragmentace a také aktualizací. Zdůrazňuje, že neexistuje jasný mechanismus, pomocí kterého by mohly být takové kritické opravy včas zavedeny do mnoha zařízení. Zatímco OEM se snaží zavádět záplaty pro zařízení, krutou pravdou je, že většina těchto oprav bude omezena pouze na nejnovější vlajkové lodě. Ostatní vlajkové lodě a starší zařízení, mnohem méně od menších OEM, budou i nadále vystaveny podobnému Stagefright.
Tento exploat má stříbro: Znovu upoutalo pozornost na proces aktualizace Androidu a postavilo jej do světla, které nepřitáhne tolik budoucích korporátních společností k přijetí Androidu pro podnikové použití. S tím, jak Google pracuje na větším přijetí v rámci podniků, bude nucen přehodnotit svou strategii aktualizací a míru kontroly, kterou umožňuje výrobcům OEM.
Vzhledem k tomu, že se Android M každým dnem blíží uvedení na trh, nebylo by žádným překvapením, kdyby se Google rozhodl oddělit stále více komponent AOSP ve prospěch svého balíčku služeb Play. To je koneckonců jedna oblast, nad kterou má Google stále úplnou kontrolu, pokud má být zařízení dodáváno s Obchodem Google Play. Tento má své stinné stránky ve formě nahrazení oblastí s otevřeným zdrojem stěnami z blízkých zdrojů.
Při spekulacích o budoucnosti Androidu existuje (velmi malá) možnost, že Google může také omezit změny, které mohou výrobci OEM provést na AOSP. s Rámec RRO je přítomen ve funkčním stavu v Android M, Google by mohl omezit OEM, aby prováděli pouze kosmetické změny ve formě RRO skinů. To by mělo umožnit rychlejší nasazení aktualizací, ale bylo by to za cenu, že OEM bude odepřena možnost plně přizpůsobit Android.
Další cestou, která může být možná, by bylo zavést ji jako povinnou pro všechna zařízení, se kterými jsou dodávána Obchod Google Play bude dostávat zaručené aktualizace zabezpečení po pevně stanovenou dobu, možná dvě let. Rámec Služeb Play by mohl být použit ke kontrole přítomnosti důležitých bezpečnostních aktualizací a záplat, přičemž v případě nesouladu bude přístup do Obchodu Play zrušen.
Závěrečné poznámky
Toto je v nejlepším případě stále spekulace, protože neexistuje žádný elegantní způsob, jak tento problém vyřešit. Kromě velmi totalitního přístupu bude vždy existovat nějaký nedostatek v dosahu oprav. Vzhledem k obrovskému počtu zařízení se systémem Android by bylo sledování stavu zabezpečení každého zařízení velmi obrovským úkolem. Nutností je přehodnotit způsob, jakým se Android aktualizuje, protože současný způsob rozhodně není nejlepší. My v XDA Developers doufáme, že Android bude i nadále věrný svým kořenům Open-Source a zároveň bude spolupracovat s plány uzavřených zdrojů společnosti Google.
Je váš telefon zranitelný vůči Stagefright? Myslíte si, že váš telefon někdy obdrží opravu Stagefright? Dejte nám vědět v komentářích níže!