Zistilo sa, že smartfóny od niekoľkých výrobcov ako LG, OnePlus, Huawei, Xiaomi unikajú procesné informácie aplikácií. Tu je to, čo to znamená.
Používa sa mobilný operačný systém Android na viac ako 2 miliardy zariadení každý mesiac bežnými spotrebiteľmi aj technologickými nadšencami. Hoci počet ľudí, ktorí odomknú bootloader a rootujú svoje smartfóny, je relatívne malý, keď v porovnaní s celkovou populáciou používateľov Androidu je nás stále veľa na fórach ako XDA a Reddit. Magisk je nepostrádateľným nástrojom pre drotársku komunitu. Poskytuje bezsystémový prístup root a má nástroje ako MagiskHide, ktoré umožňujú rootnutým používateľom pokračovať v používaní aplikácií, hier a služieb, ktoré si užívajú, bez obmedzení. Populárna Anime hra však šikovne zneužíva bezpečnostnú chybu systému na obídenie anti-root detekcie Magisk. Tu je návod, ako to funguje a ktoré zariadenia sú ovplyvnené touto chybou zabezpečenia.
- Hra použila chybu na zistenie, či bolo zariadenie zakorenené. Ak je zariadenie rootované, hra blokuje používateľa v hraní.
- Chyba umožňuje aplikácii čítať stav iných aplikácií v pamäti bez toho, aby potrebovala špeciálne povolenia. Chyba neumožňuje aplikáciám kradnúť údaje z iných aplikácií. Chyba nie je závažná a je celkom neškodná.
- Google to už vie problému a aktualizovali svoje testovacie nástroje, aby zabezpečili ochranu všetkých zariadení.
Pozadie
Populárna anime hra s názvom Fate/Grand Order blokuje zakorenených používateľov v pokusoch o hranie hry. XDA uznávaný vývojár topjohnwu, predtým hlavný vývojár spoločnosti Magisk objavil spôsob aby obišiel root detekciu Fate/Grand Order, ale jeho riešenie nefungovalo na jeho OnePlus 6 napriek jeho maximálnemu úsiliu. Vývojár, rozhodnutý nevzdať sa, analyzoval Fate/Grand Order, aby zistil, ako stále zisťuje root na jeho zariadení OnePlus. Ako vysvetľuje vo svojom Stredný príspevok, to ho priviedlo k odhaleniu bezpečnostnej chyby, ktorú Fate/Grand Order zdanlivo zneužíval na pokračovanie v zisťovaní prístupu root na zariadeniach OnePlus.
Cena: zadarmo.
4.
Procfs a Android
Na operačných systémoch založených na Unixe existuje špeciálny súborový systém nazývaný "procfs", ktorý obsahuje informácie o procesy (myslené aplikácie), ako napríklad využitie pamäte (myslenie na RAM), stav (či je proces spustený, spánok atď.). Vo väčšine operačných systémov založených na Unixe majú používatelia a aplikácie jednoduchý prístup k procfs, aby videli, aké druhy aplikácie a služby sú spustené v ich systéme (predstavte si to ako Správca úloh systému Windows.) Avšak Google začal uzamknutie prístupu k procfs počnúc systémom Android 7.0 Nougat. Pred Androidom Nougat boli aplikácie ako SystemPanel schopné zhromažďovať údaje o tom, aké aplikácie boli spustené bez toho, aby potrebovali špeciálne povolenia. Po Android Nougat musia aplikácie používať rozhrania API, ako napr UsageStats alebo Služba dostupnosti, pričom obe sú hradené povoleniami, ktoré musí udeliť používateľ.
Cena: zadarmo.
4.2.
Google bráni aplikáciám čítať stav iných aplikácií prostredníctvom procfs pripojením /proc s príznakom „hidepid=2“. Pripojením procfs s hidepid=2 môžu aplikácie vidieť iba stav svojho vlastného procesu. Aplikácia teda bude musieť použiť akceptované rozhrania API, ako sú UsageStats alebo AccessibilityService, aby získala informácie o aplikáciách a službách spustených na zariadení.
Zraniteľnosť
Čo ak procfs nie je pripojený s hidepid=2? Potom by aplikácie mohli voľne čítať stav iných aplikácií (a bodov pripojenia) spustených v systéme bez toho, aby potrebovali ďalšie povolenia*. Google montuje procfs s hidepid=2 na svoje vlastné zariadenia, ale túto požiadavku nevynucuje na zariadeniach od iných výrobcov. Viaceré zariadenia od LG, OnePlus, Huawei/Honor, Xiaomi a ďalších sa nemontovali s procfs hidepid=2, čo využívajú aplikácie ako Fate/Grand Order na zistenie, či je Magisk prítomný na zariadenie.
*Zmena zabezpečenia v systéme Android 9 Pie zabraňuje aplikáciám čítať informácie mimo ich vlastného „kontextu SELinux“, pretože každá aplikácia je teraz izolovaná samostatne. SELinux je modul jadra, ktorý funguje ako strážca brány a blokuje aplikáciám a službám prístup k súborom, ku ktorým by nemali. Kontext SELinuxu je ako označenie pre súbor, ktorý obsahuje informácie ako používateľ a rola. Aplikácie s rovnakým kontextom SELinux môžu čítať informácie o iných aplikáciách v rovnakom kontexte, ak príznak hidepid=2 nie je povolený pre procfs. Na zariadeniach so systémom Android 9 Pie sa nové zmeny SELinux v systéme Android Pie budú vzťahovať iba na aplikácie, ktoré sú vytvorené so zameraním na Android Pie. Aplikácie, ktoré sú zacielené na Android 8.1 Oreo alebo starší, budú používať staré pravidlá SELinux, čo im umožní prístup informácie o procesoch v rovnakom kontexte SELinux, pokiaľ je procfs pripojený bez hidepid=2. Väčšina aplikácií spustených na vašom zariadení by mala byť zacielená aspoň na Android 8.0 Oreo nové požiadavky služby Google Play, ale mnohé ešte neboli aktualizované tak, aby boli zacielené na Android Pie.
Nasledujúce snímky obrazovky ukazujú dôsledky nepripojenia procfs s hidepid=2.
Ako zlé je to?
Ak by sme mali porovnať túto zraniteľnosť systému s exploitmi ako napr Fusée Gelée, Blueborne, KRACK, a Meltdown/Spectre, potom táto chyba bledne v porovnaní. Aplikácie to nemôžu použiť na získanie prístupu root alebo na ukradnutie vašich hesiel. Vaše bankové účty sú v bezpečí, rovnako ako vaše kreditné karty. Najhoršie, čo môže aplikácia urobiť, je zistiť, či je na vašom zariadení spustená iná aplikácia, ktorá má veľmi obmedzené využitie. Pamätajte, že toto je štandardné správanie v mnohých distribúciách GNU/Linux a že Google len nedávno začal blokovať prístup k procfs pomocou Android Nougat. Táto chyba umožňuje aplikáciám obísť potrebu určitých povolení na monitorovanie iných procesov, no stále nedokážu prelomiť karanténu Androidu a ukradnúť údaje z iných aplikácií. Bez ohľadu na to je to neúmyselné správanie a porušuje funkciu ochrany osobných údajov systému Android, takže to musí byť opravené.
Je ovplyvnené moje zariadenie?
Tu je zoznam zariadení, o ktorých sme zistili, že nepripájajú procfs s hidepid=2:
OEM |
Zariadenie |
Verzia pre Android |
procfs Úniky |
---|---|---|---|
Asus |
ZenFone 5Z |
Android 8.0 Oreo |
Áno |
BlackBerry |
KEY2 |
Android 8.0 Oreo |
Nie |
Nevyhnutné |
PH-1 |
Android 9 Pie |
Nie |
Pixel 2 |
Android 9 Pie |
Nie |
|
Pixel 3 |
Android 9 Pie |
Nie |
|
Pixel 3 XL |
Android 9 Pie |
Nie |
|
Česť |
Mágia 2 |
Android 9 Pie |
Áno |
HTC |
U12+ |
Android 8.0 Oreo |
Áno |
Huawei |
Mate 20 X |
Android 9 Pie |
Áno |
LG |
G7 ThinQ |
Android 8.0 Oreo |
Áno |
LG |
V40 ThinQ |
Android 8.1 Oreo |
Áno |
Motorola |
Moto G4 |
Android 8.1 Oreo |
Nie |
Nokia |
7.1 |
Android 8.1 Oreo |
Nie |
OnePlus |
6 |
Android 8.1 Oreo/Android 9 Pie |
Áno |
OnePlus |
6T |
Android 9 Pie |
Áno |
Razer |
Telefón 2 |
Android 8.1 Oreo |
Áno |
Samsung |
Galaxy Note 8 |
Android 8.0 Oreo |
Nie |
Samsung |
Galaxy Note 9 |
Android 8.1 Oreo/Android 9 Pie |
Nie |
Samsung |
Galaxy S7 |
Android 8.0 Oreo |
Nie |
Samsung |
Galaxy S8 |
Android 8.0 Oreo |
Nie |
Samsung |
Galaxy S9 |
Android 9 Pie |
Nie |
Samsung |
Galaxy S9+ (Exynos) |
Android 8.0 Oreo |
Áno |
Sony |
Xperia XZ1 |
Android 9 Pie |
Nie |
Xiaomi |
Mi Mix 2S |
Android 9 Pie |
Áno |
Xiaomi |
POCO F1 |
Android 8.1 Oreo |
Áno |
Ako skontrolovať, či je ovplyvnené vaše zariadenie
Je celkom jednoduché skontrolovať, či vaše zariadenie neuniká procesným informáciám do iných aplikácií (inými slovami, procfs nie je pripojený s hidepid=2). Aj keď môžete použiť príkazy shellu ako my, môžete to skontrolovať aj pomocou aplikácie vyvinutej spoločnosťou topjohnwu. Jeho aplikácia vám tiež umožňuje prepojiť procfs s hidepid=2, ak je váš telefón rootovaný.
Stiahnite si ProcGate
Dôjde k náprave?
Áno, toto bude opravené. Google bude teraz vyžadovať, aby všetky zariadenia pripájali procfs s hidepid=2. Budú to presadzovať do aktualizácie Compatibility Test Suite (CTS), súbor testov, ktorými musia prejsť všetky zariadenia, aby mohli používať aplikácie a služby Google Play. Všetci výrobcovia OEM (ktorí chcú predávať zariadenia s predinštalovaným Obchodom Google Play) musia v blízkej budúcnosti nakoniec vydať aktualizáciu na opätovné pripojenie procfs s hidepid=2. Keďže zariadenia OnePlus boli prvé objavené s týmto problémom, OnePlus už bol upozornený a pracuje na oprave. Tento článok aktualizujeme, ak sa k tejto chybe vyjadria iní OEM, ale nie je potrebné sa pýtať, či OEM vášho zariadenia vydá aktualizáciu. Ak chcú, aby ich aktualizácia prešla CTS, musia túto chybu opraviť.