Zásadní chyba v procesorech MediaTek zůstala v zařízeních neopravena kvůli zanedbání OEM. Google doufá, že to vyřeší bulletin zabezpečení Android z března 2020.
Každé první pondělí v měsíci Google zveřejňuje Bulletin zabezpečení systému Android, stránku, která odhaluje všechny chyby zabezpečení a jejich opravy odeslané samotným Googlem nebo jinými třetími stranami. Dnešek nebyl výjimkou: Google právě zveřejnil bulletin zabezpečení Androidu pro březen 2020. Jednou ze zranitelností, které jsou zdokumentovány v nejnovějším bulletinu, je CVE-2020-0069, kritické zneužití zabezpečení, konkrétně rootkit, která postihuje miliony zařízení s čipovými sadami od MediaTek, velké tchajwanské společnosti zabývající se návrhem čipů. Ačkoli je bulletin zabezpečení Android z března 2020 zdánlivě prvním zveřejněním CVE-2020-0069, podrobnosti o exploitu jsou ve skutečnosti otevřeny na internetu – konkrétněji na fórech XDA-Developers – od dubna roku 2019. Přestože MediaTek zpřístupnil opravu měsíc po objevení, zranitelnost je stále zneužitelná na desítkách modelů zařízení.
Ještě horší je, že tuto zranitelnost aktivně využívají hackeři. Nyní se společnost MediaTek obrátila na Google, aby tuto mezeru v opravách překonal a zajistil miliony zařízení proti tomuto kritickému bezpečnostnímu zneužití.Pro všechny čtenáře, kteří to neznají XDA-Developers, jsme web, který je domovem největších fór pro úpravy softwaru Android. Obvykle se tyto úpravy soustředí na získání přístupu root na zařízeních, aby bylo možné odstranit bloatware, nainstalovat vlastní software nebo upravit výchozí systémové parametry. Tablety Amazon Fire jsou oblíbeným cílem amatérských hackerů na našich fórech – jsou plné odinstalovatelných bloatware, nemají přístup k základním softwarovým aplikacím, jako je Obchod Google Play, a co je nejdůležitější, jsou velmi levný. Problém rootování tabletů Amazon Fire spočívá v tom, že jsou silně uzamčeny, aby uživatelům zabránily vyjít z opevněné zahrady Amazonky; Amazon neposkytuje oficiální metodu k odemknutí bootloaderu tabletů Fire, což je obvykle první krok k zakořenění jakéhokoli daného zařízení Android. Jediným způsobem, jak rootnout tablet Amazon Fire (bez hardwarových úprav), je tedy najít v softwaru exploit, který uživateli umožní obejít bezpečnostní model Androidu. V únoru 2019, tj přesně to, co XDA Senior Member diplomatic udělal když zveřejnil vlákno na našich fórech pro tablety Amazon Fire. Rychle si uvědomil, že tento exploit má mnohem širší rozsah než jen tablety Fire od Amazonu.
Po krátkém testování od členů diplomatické rady XDA a dalších členů komunity bylo potvrzeno, že tento exploit funguje na velkém počtu čipů MediaTek. Autor uvádí, že exploit funguje na „prakticky všech 64bitových čipech MediaTek“ a konkrétně jmenují následující jako zranitelné: MT6735, MT6737, MT6738, MT6739, MT6750, MT6753, MT6755, MT6757, MT6758, MT6761, MT6762, MT6763, MT6765, MT6771, MT6779, MT6795, 63, MT678917, MT678917 173, MT8176, MT8183, MT6580 a MT6595. Vzhledem k tomu, kolik čipových sad MediaTek bylo tímto exploitem ovlivněno, byl exploit pojmenován „MediaTek-su“ nebo zkráceně „MTK-su“. Dne 17. dubna 2019 zveřejnila společnost diplomatic druhé vlákno s názvem „Úžasný Temp Root pro MediaTek ARMv8“ na našem fóru „Miscellaneous Android Development“. V tomto vláknu sdílel skript, který mohou uživatelé spustit, aby jim udělil přístup superuživatele v shellu, stejně jako nastavit SELinux, modul linuxového jádra, který poskytuje řízení přístupu k procesům, vysoce nezabezpečeným „povolujícím“ Stát. Aby uživatel získal přístup root a nastavil SELinux na permisivní na svém vlastním zařízení, je to překvapivě snadné: Jediné, co musíte udělat, je zkopírovat skript do dočasné složky, změňte adresáře, kde je skript uložen, přidejte do skriptu oprávnění ke spuštění a poté spusťte skript.
Členové komunity XDA potvrdili, že exploit fungoval alespoň na následujících zařízeních:
- Acer Iconia One 10 B3-A30
- Acer Iconia One 10 B3-A40
- Řada tabletů Alba
- Alcatel řady 1 5033
- Alcatel 1C
- Alcatel 3L (2018) řada 5034
- Alcatel 3T 8
- Alcatel A5 LED 5085 série
- Alcatel řady A30 5049
- Alcatel Idol 5
- Alcatel/TCL A1 A501DL
- Alcatel/TCL LX A502DL
- Alcatel Tetra 5041C
- Amazon Fire 7 2019 – pouze do Fire OS 6.3.1.2 sestavení 0002517050244
- Amazon Fire HD 8 2016 – pouze do Fire OS 5.3.6.4 sestavení 626533320
- Amazon Fire HD 8 2017 – pouze do Fire OS 5.6.4.0 sestavení 636558520
- Amazon Fire HD 8 2018 – pouze do Fire OS 6.3.0.1
- Amazon Fire HD 10 2017 – pouze do Fire OS 5.6.4.0 sestavení 636558520
- Amazon Fire HD 10 2019 – pouze do Fire OS 7.3.1.0
- Amazon Fire TV 2 – pouze do Fire OS 5.2.6.9
- ASUS ZenFone Max Plus X018D
- ASUS ZenPad 3s 10 Z500M
- Řada ASUS ZenPad Z3xxM(F) založená na MT8163
- Tablet Barnes & Noble NOOK 7" BNTV450 & BNTV460
- Tablet Barnes & Noble NOOK 10,1" BNTV650
- Blackview A8 Max
- Blackview BV9600 Pro (Helio P60)
- BLU Life Max
- BLU Life One X
- Řada BLU R1
- BLU R2 LTE
- BLU S1
- BLU Tank Xtreme Pro
- BLU Vivo 8L
- BLU Vivo XI
- BLU Vivo XL4
- Bluboo S8
- BQ Aquaris M8
- CAT S41
- Coolpad Cool Play 8 Lite
- Dragon Touch K10
- Pocit echa
- Gionee M7
- HiSense Infinity H12 Lite
- Huawei GR3 TAG-L21
- Huawei Y5II
- Řada Huawei Y6II MT6735
- Lava Iris 88S
- Lenovo řady C2
- Lenovo Tab E8
- Lenovo Tab2 A10-70F
- LG K8+ (2018) X210ULMA (MTK)
- LG K10 (2017)
- LG Tribute Dynasty
- LG X power 2/M320 série (MTK)
- Řada LG Xpression Plus 2/K40 LMX420
- Lumigon T3
- Meizu M5c
- Meizu M6
- Meizu Pro 7 Plus
- Nokia 1
- Nokia 1 Plus
- Nokia 3
- Nokia 3.1
- Nokia 3.1 Plus
- Nokia 5.1
- Nokia 5.1 Plus/X5
- Na 7" tabletu Android
- Onn série tabletů 8" a 10" (MT8163)
- OPPO A5s
- OPPO F5 series/A73 -- Pouze Android 8.x
- Řada OPPO F7 – pouze Android 8.x
- Řada OPPO F9 – pouze Android 8.x
- Oukitel K12
- Vyloženě D7
- Realme 1
- Sony Xperia C4
- Sony řady Xperia C5
- Sony Xperia L1
- Sony Xperia L3
- Sony řady Xperia XA
- Sony řady Xperia XA1
- Southern Telecom Smartab ST1009X (MT8167)
- Řada TECNO Spark 3
- Řada Umidigi F1
- Umidigi Power
- Wiko Ride
- Wiko Sunny
- Wiko View3
- Řada Xiaomi Redmi 6/6A
- ZTE Blade A530
- ZTE Blade D6/V6
- ZTE Quest 5 Z3351S
Přečtěte si více
S výjimkou telefonů založených na MediaTek od Vivo, Huawei/Honor (po Android 8.0+), OPPO (po Android 8.0+) a Samsung, členové komunity XDA zjistili, že MediaTek-su funguje častěji než ne, když se o to pokusí na zařízeních s postižením čipsety. Podle diplomatického člena XDA zařízení Vivo, Huawei/Honor, OPPO a Samsung „používají úpravy jádra k zabránění přístupu root prostřednictvím exploits“, což znamená, že vývojář by se musel ponořit do zdrojového kódu jádra těchto zařízení, aby vytvořil „verze na míru“ využívat. To nestálo za další úsilí, takže se vývojář rozhodl nepřidat podporu pro tato zařízení, i když „teoreticky“ by exploit stále mohl fungovat.
Nyní by mělo být jasné, že tento exploit ovlivňuje velké množství zařízení na trhu. Čipy MediaTek pohánějí stovky levných a středních modelů smartphonů, levných tabletů a neznačkových set-top boxy, z nichž většina se prodává bez očekávání včasných aktualizací ze strany výrobce. U mnoha zařízení, která jsou stále ovlivněna MediaTek-su, je tedy nepravděpodobné, že se opravy dočkají týdny nebo měsíce po dnešním zveřejnění, pokud vůbec nějakou dostanou. Takže díky tomu, že MediaTek-su získal svou „kritickou“ závažnost s a CVSS v3.0 skóre 9,3?
Proč je MTK-su kritickou bezpečnostní chybou
Pro zopakování, typickým způsobem, jak dosáhnout přístupu root na zařízení Android, je nejprve odemknout bootloader, který zakáže ověření spouštěcího oddílu. Jakmile je bootloader odemčen, může uživatel zavést do systému binární soubor superuživatele a také aplikaci pro správu superuživatele, která bude kontrolovat, které procesy mají přístup k root. Odemknutí bootloaderu záměrně deaktivuje jednu z klíčových bezpečnostních funkcí na zařízení, a proto musí uživatel výslovně povolit, aby se to stalo, obvykle povolením přepínače v možnostech vývojáře a následným vydáním příkazu k odemčení zavaděč. S MediaTek-su však uživatel nemusí odemykat bootloader, aby získal root přístup. Místo toho vše, co musí udělat, je zkopírovat skript do svého zařízení a spustit jej v shellu. Uživatel však není jediný, kdo to může udělat. Jakákoli aplikace ve vašem telefonu může zkopírovat skript MediaTek-su do svého soukromého adresáře a poté jej spustit, aby získal root přístup v shellu. Ve skutečnosti, člen XDA diplomatický tuto možnost zdůrazňuje ve vláknu svého fóra, když navrhnou alternativní sadu pokynů pomocí některého z nich Aplikace Terminal Emulator pro Android nebo Termux spíše než ADB.
S přístupem root se bezpečnostní model Androidu v podstatě rozpadá. Oprávnění například ztratí smysl v kontextu root, protože aplikace s přístupem k root shellu si může udělit jakékoli oprávnění, které chce. Kromě toho je s root shellem přístupný celý datový oddíl – včetně souborů uložených v typicky nepřístupných soukromých datových adresářích aplikací. Aplikace s rootem může také tiše nainstalovat jakoukoli jinou aplikaci, kterou chce, na pozadí a poté jim udělit potřebná oprávnění k narušení vašeho soukromí. Podle XDA Recognized Developer topjohnwu, může škodlivá aplikace dokonce „vložit kód přímo do Zygote pomocí ptrace“, což znamená, že normální aplikace ve vašem zařízení by mohla být unesena, aby provedla příkazy útočníka. Tyto příklady se týkají pouze několika způsobů, jak může aplikace na pozadí narušit vaši důvěru bez vašeho vědomí. Škodlivé aplikace však mohou způsobit zkázu ve vašem zařízení, aniž by skrývaly, co dělají. Ransomware je například velmi silný s přístupem root; pokud nezaplatíte, může to být hypotetická ransomwarová aplikace zcela a nevratně znefunkčnění zařízení otřením celého zařízení.
Jedinou „slabinou“ MediaTek-su je, že uděluje aplikaci pouze „dočasný“ root přístup, což znamená, že proces ztratí přístup superuživatele po restartu zařízení. Kromě toho na zařízeních se systémem Android 6.0 Marshmallow a vyšším přítomnost Ověřený Boot a dm-verity blokovat úpravy oddílů pouze pro čtení, jako je systém a dodavatel. Tyto dva faktory jsou však většinou pouze překážkou pro moddery na našich fórech, nikoli pro zlomyslné herce. K překonání omezení dočasného rootu může škodlivá aplikace jednoduše znovu spustit skript MediaTek-su při každém spuštění. Na druhou stranu není potřeba překonávat dm-verity, protože trvalé úpravy systému nebo oddílů dodavatele pravděpodobně nebudou zajímat většinu autorů malwaru; vždyť už existují tun věcí, které může škodlivá aplikace dělat s root shellem.
Pokud vás na technické úrovni zajímá, co MediaTek-su využívá, MediaTek s námi sdílel níže uvedený graf, který shrnuje vstupní bod. Chyba zjevně existuje v jednom z ovladačů linuxového jádra MediaTek s názvem „CMDQ“. Popis uvádí, že „spuštěním IOCTL příkazy v uzlu zařízení CMDQ,“ může místní útočník „libovolně číst/zapisovat fyzickou paměť, vypisovat [] tabulku symbolů jádra do předem přidělenou vyrovnávací paměť DMA, [a] manipulovat s vyrovnávací pamětí DMA za účelem úpravy nastavení jádra tak, aby deaktivoval SELinux a eskaloval na 'root' privilegium."
Podle grafu, který s námi MediaTek sdílel, tato chyba zabezpečení ovlivňuje zařízení MediaTek s Linux Kernel verze 3.18, 4.4, 4.9 nebo 4.14 se systémem Android verze 7 Nougat, 8 Oreo nebo 9 Pie. Tato chyba zabezpečení není zneužitelná na zařízeních MediaTek se systémem Android 10, zjevně, protože „přístupové oprávnění CMDQ zařízení SELinux také vynucuje." Toto zmírnění pravděpodobně pochází z aktualizace BSP MediaTek spíše než z Androidu sám. Jediným zmírněním této chyby zabezpečení systému Android 10 je jeho omezení aplikací spouštějících binární soubory ve svém domovském adresáři; nicméně, jak poznamenává XDA Recognized Developer topjohnwu, škodlivá aplikace může jednoduše spustit kód MediaTek-su v dynamické knihovně.
Přestože společnost MediaTek tento problém opravila ve všech dotčených čipových sadách, nemůže donutit výrobce zařízení, aby tyto opravy implementovali. MediaTek nám řekl, že mají záplaty připravené již v květnu 2019. Amazon nepřekvapivě okamžitě opravoval problém na svých zařízeních, jakmile byli informováni. Od doby, kdy MediaTek zpřístupnil opravu svým partnerům, však uplynulo 10 měsíců, přesto v března 2020 desítky výrobců OEM neopravily svá zařízení. Většina postižených zařízení je na starších verzích Androidu se zastaralými úrovněmi oprav zabezpečení Android (SPL) a situace s aktualizacemi je ještě horší, když vezmete v úvahu stovky méně známých modelů zařízení využívajících tyto čipy MediaTek. MediaTek má a vážné problém zde, takže se obrátili o pomoc na Google.
Na rozdíl od MediaTek, Google umět nutit výrobce OEM, aby aktualizovali svá zařízení licenční smlouvy nebo podmínky programu (jako je Android One). Aby OEM mohl prohlásit, že zařízení je v souladu s 2020-03-05 Security Patch Level (SPL), musí zařízení obsahovat veškerý rámec, Linuxové jádro a příslušné opravy ovladačů dodavatele v bulletinu zabezpečení Android z března 2020, který obsahuje opravu pro CVE-2020-0069, nebo MediaTek-su. (Zdá se, že Google to ve skutečnosti nevynucuje OEM vlastně slučují všechny záplaty při deklaraci určité SPL, ačkoli.) Nyní, když vychází bulletin z března 2020, by tento příběh měl být u konce, ne? Bohužel musíme také držet Google nohy u ohně za to, že se při začleňování záplat přetahoval.
Chyba v procesu opravy zabezpečení
V případě, že to ještě není jasné, ne každá bezpečnostní chyba musí skončit v bulletinu zabezpečení systému Android. Mnoho zranitelností je objeveno a opraveno prodejci, aniž by se kdy objevily v měsíčním bulletinu. MediaTek-su měl být jedním z nich, ale z několika důvodů několik výrobců OEM nedokázalo integrovat opravy nabízené společností MediaTek. (Existuje mnoho možných důvodů, od nedostatku zdrojů přes obchodní rozhodnutí až po selhání v komunikaci.) Když jsem dříve uvedl, že MediaTek se „obrátil na Google“ s žádostí o pomoc, což znamenalo, že MediaTek aktivně hledal pomoc od Googlu, aby přiměl OEM, aby konečně opravili své zařízení. Ve skutečnosti tomu tak ale nemuselo být. Chápu to tak, že Google neznal MediaTek-su, dokud to nebylo mimochodem uvedeno v bezpečnostní zprávě z TrendMicro zveřejněno 6. ledna 2020. ve zprávě TrendMicro dokumentoval další bezpečnostní zranitelnost, nazývaná „use-after-free v ovladači pořadače„zranitelnost, která byla aktivně využívána ve volné přírodě. TrendMicro zaznamenali, jak tři škodlivé aplikace získaly přístup root pomocí jedné ze dvou metod, buď chyby zabezpečení „použití-po-zdarma v ovladači pojiva“ nebo MediaTek-su.
V kódu to TrendMicro sdílené, můžeme jasně vidět, jak se škodlivé aplikace zaměřovaly na konkrétní modely zařízení (např. Nokia 3, OPPO F9 a Redmi 6A) a využívá na nich MediaTek-su.
Nemohu mluvit za TrendMicro, ale zdá se, že nevěděli, že MediaTek-su byl dosud neopravený exploit. Koneckonců se soustředili na využití „použití-po-free v ovladači pojiva“ a objev použití MediaTek-su se zdá být dodatečným nápadem. (Jsem si jistý, že pokud TrendMicro věděli o situaci kolem MediaTek-su, koordinovali by své úsilí o zveřejnění se společností Google.) Byli jsme informováni pouze o 5. února 2020 jsme sami zjistili, jak špatné to bylo, a 7. února jsme kvůli tomu kontaktovali Google, 2020. Google byl tak znepokojen důsledky zveřejnění MediaTek-su, že nás požádal, abychom odložili zveřejnění tohoto příběhu až do dnešního dne. Po zvážení nenapravitelné škody, která může být způsobena uživatelům, na které se malware zaměřuje MediaTek-su, dohodli jsme se na pozastavení tohoto příběhu až do oznámení Androidu v březnu 2020 Bezpečnostní bulletin. Přesto s ohledem na to, jak dlouho bude mnoha zařízením trvat získání nejnovější aktualizace zabezpečení, pokud vůbec někdy budou získejte to vůbec, za pár měsíců bude určitě spousta zařízení, která jsou stále zranitelná vůči MediaTek-su Nyní. To by mělo být děsivé pro každého, kdo má zranitelné zařízení.
I když je tato velmi závažná, „kritická“ zranitelnost ve volné přírodě aktivně využívána, pouze Google zasunuto do opravy tohoto problému do bulletinu z března 2020, což je asi 2 měsíce poté, co byli upozorněni na problém. I když Google informuje své partnery pro Android o nejnovějším bulletinu zabezpečení Android celých 30 dní před zveřejněním bulletinu (tj. Výrobci OEM byli informováni o tom, co je v bulletinu z března 2020 na začátku února 2020), Google může a často také aktualizuje bulletin se změnami nebo novými opravami. Proč se Google nerozhodl urychlit zahrnutí opravy pro tak závažný problém, je mimo mě, zvláště když MediaTek měl opravu před 10 měsíci. Pokud by byla taková chyba objevena v zařízeních Apple, nepochybuji, že by vydali opravu mnohem, mnohem rychleji. Google v podstatě vsadil na riskantní sázku, že MediaTek-su zůstane až do vydání bulletinu z března 2020 tak zdánlivě nízkoprofilový, jako byl. I když se zdá, že Google měl v tomto ohledu štěstí, netušíme, kolik autorů malwaru už o zneužití ví. Koneckonců, sedí v náhodném vláknu XDA fóra pro skoro celý rok.
V tomto debaklu je ještě jedna strana, kterou jsem moc neoslovil, a to je autor exploitu, diplomat člen XDA. Budiž mu ke cti, že si nemyslím, že měl při vydávání MediaTek-su nějaký zlý úmysl. Můžeme jasně vysledovat původ exploitu k diplomatické touze modifikovat tablety Amazon Fire. Diplomatic mi říká, že jeho primárním cílem při vývoji této základní metody bylo pomoci komunitě. Přizpůsobení vašeho zařízení je to, o čem XDA je, a diplomatické úsilí v komunitě je to, co lidi na fórech baví. Ačkoli diplomatické odmítnutí otevřít projekt open source vzbuzuje určité obavy, vysvětluje, že chtěl, aby si komunita užívala tohoto přístupu root tak dlouho, jak je to možné. Když jsem poprvé kontaktoval diplomata, také uvedl, že spolupracoval s některými partnery, což mu bránilo sdílet zdrojový kód a výzkum projektu. I když jsem nebyl schopen získat více podrobností o této spolupráci, zajímalo by mě, zda by se diplomatická společnost rozhodla zveřejnit tento exploit, pokud by MediaTek nabídl program odměny za chyby. Nedokážu si představit, že by zranitelnost takového rozsahu nevyplatila tučnou sumu peněz, pokud by MediaTek takový program skutečně měl. Diplomatic tvrdí, že toto zneužití bylo možné od čipové sady MediaTek MT6580 z konce roku 2015, takže se musíme ptát, zda diplomat není vůbec prvním člověkem, který tento exploit našel. Říká mi, že až do zveřejnění tohoto článku neměl tušení, že MediaTek-su byl aktivně využíván.
Pokud chcete zkontrolovat, zda je vaše zařízení zranitelné vůči MediaTek-su, spusťte ručně skript zveřejněný členem diplomatické rady XDA v tomto vláknu XDA fóra. Pokud zadáte kořenový shell (budete vědět, když se symbol změní z $ na #), budete vědět, že exploit funguje. Pokud to funguje, budete muset počkat, až výrobce vašeho zařízení vydá aktualizaci, která opraví MediaTek-su. Pokud vaše zařízení hlásí úroveň opravy zabezpečení 2020-03-05, což je nejnovější SPL z března 2020, pak je téměř jistě chráněno proti MediaTek-su. V opačném případě budete muset pouze zkontrolovat, zda je vaše zařízení zranitelné.
Aktualizace 1 (2. 3. 2020 ve 21:45 EST): Tento článek byl aktualizován, aby objasnil, že člen XDA diplomatic si byl skutečně vědom rozsahu této chyby zabezpečení, jakmile objevil ho již v únoru 2019, ale že až do zveřejnění tohoto článku nevěděl o jeho využití v přírodě. článek. Opravili jsme také naše znění týkající se jednoho důvodu, proč diplomatická společnost odmítla sdílet zdrojový kód projektu.