Ako detekcia koreňov anime hry viedla k odhaleniu bezpečnostnej chyby v telefónoch od LG, OnePlus, Huawei, Xiaomi a ďalších

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.

Fate/Grand Order (anglicky)Vývojár: Spoločnosť Aniplex Inc.

Cena: zadarmo.

4.

Stiahnuť ▼

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ľ.

Systémový panel 2Vývojár: Spoločnosť NextApp, Inc.

Cena: zadarmo.

4.2.

Stiahnuť ▼

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

Google

Pixel 2

Android 9 Pie

Nie

Google

Pixel 3

Android 9 Pie

Nie

Google

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ť.