15Jul
Zakorenenie zariadenia s Androidom vám umožňuje prístup k širšiemu množstvu aplikácií a hlbším prístupom k systému Android. Niektoré aplikácie, ako je Google PayPal od spoločnosti Google, vôbec nebudú fungovať na koreňovom zariadení.
Spoločnosť Google používa na označenie toho, či je vaše zariadenie zakorenené alebo nie, niečo nazývané SafetyNet a blokuje prístup k týmto funkciám. Spoločnosť Google nie je jediný - buď veľa aplikácií tretích strán nebude pracovať na koreňových zariadeniach so systémom Android, aj keď môžu skontrolovať prítomnosť koreňa inými spôsobmi.
SafetyNet: Ako spoločnosť Google vedie, že ste zakorenili telefón s Androidom
zariadenia Android ponúkajú rozhranie "SafetyNet API", ktoré je súčasťou vrstvy služieb Google Play nainštalovaných v zariadeniach so systémom Android schválenými spoločnosťou Google. Tento rozhranie API "poskytuje prístup k službám spoločnosti Google, ktoré vám pomôžu posúdiť bezpečnosť a zdravie zariadenia so systémom Android. Ak ste vývojár pre systém Android, môžete túto aplikáciu API vo svojej aplikácii zavolať, aby ste si overili, či bolo zariadenie, na ktorom pracujete, narušené.
Toto rozhranie SafetyNet API je navrhnuté tak, aby skontrolovalo, či bolo poškodené nejaké zariadenie - či už bolo zakorenené používateľom, či je spustený vlastný ROM alebo bol nainštalovaný napríklad malware na nízkej úrovni.
Zariadenia, ktoré sa dodávajú so zariadením Google Play Store a inými nainštalovanými aplikáciami, musia prejsť softvérovou sadu "Compatibility Test Suite" spoločnosti Google. Zakorenenie zariadenia alebo inštalácia vlastnej pamäte ROM zabraňuje zariadeniu, aby bolo kompatibilné s CTS.Takto môže Bezpečnostné rozhranie API SafetyNet rozpoznať, či máte korene - len kontroluje kompatibilitu s CTS.Podobne ak dostanete zariadenie so systémom Android, ktoré nikdy nebolo dodané s aplikáciami spoločnosti Google - ako jedna z tých 20 dolárov tabliet dodávaných priamo z továrne v Číne - nebude to vôbec považovať za kompatibilné s CTS, aj keď ste ho nemali zakorenené,
Ak chcete získať tieto informácie, služby Google Play načítajú program s názvom snet a spúšťajú ho na pozadí zariadenia. Program zhromažďuje údaje z vášho zariadenia a pravidelne ich posiela spoločnosti Google. Spoločnosť Google používa tieto informácie na rôzne účely, od získania obrázka širšieho ekosystému Android k určeniu, či bol softvér vášho zariadenia zakázaný.Spoločnosť Google nevysvetľuje presne to, čo snet hľadá, ale je pravdepodobné, že snet skontroluje, či bol systémový oddiel upravený z výroby.
Bezpečnostný stav vášho prístroja môžete skontrolovať tak, že si stiahnete aplikáciu ako SafetyNet Helper Sample alebo SafetyNet Playground. Aplikácia požiada službu Google SafetyNet o stav vášho zariadenia a povie vám odpoveď zo servera spoločnosti Google.
Pre viac technických podrobností si prečítajte tento blogový príspevok od John Kozyrakis, technický stratég spoločnosti Cigital, softvérovej bezpečnostnej spoločnosti. Vykopal do služby SafetyNet a vysvetľuje viac o tom, ako to funguje.
Je to až na aplikáciu
SafetyNet je voliteľná pre vývojárov aplikácií a vývojári aplikácií si ju môžu vybrať alebo nie. Služba SafetyNet zabraňuje aplikácii pracovať len vtedy, keď vývojár aplikácie nechce pracovať na zakorenených zariadeniach.
Väčšina aplikácií nebude vôbec kontrolovať API SafetyNet. Dokonca aj aplikácia, ktorá skontroluje bezpečnostné rozhranie API SafetyNet, ako testovacie aplikácie uvedené vyššie, prestane prestať pracovať, ak dostanú zlú odpoveď.Vývojár aplikácie musí skontrolovať rozhranie API SafetyNet a nechať aplikáciu odmietnuť, ak sa dozvie, že softvér vášho zariadenia bol upravený.Aplikácia Google Pay for Android je dobrým príkladom toho v akcii.
Platba prostredníctvom Android nebude fungovať na zakorenených zariadeniach
Platobné riešenie spoločnosti Android platobného systému Android Pay nepracuje vôbec na koreňových zariadeniach so systémom Android. Pokúste sa spustiť a uvidíte iba správu s názvom "Android Pay nie je možné použiť.Spoločnosť Google nedokáže overiť, či je vaše zariadenie alebo softvér, ktorý je na ňom spustený, kompatibilný so systémom Android. "
Nie je to len zakorenenie, samozrejme aj bežiaci vlastný ROM by vás takisto znepokojoval touto požiadavkou. Aplikácia SafetyNet API bude tvrdiť, že nie je kompatibilná so systémom Android, ak používate vlastnú pamäť ROM, s ktorou zariadenie nebolo dodané.
Pamätajte si, že to nie je len detekovanie zakoreňovania. Ak bolo vaše zariadenie napadnuté niektorým škodlivým softvérom na úrovni systému so schopnosťou sledovať aplikácie Android Pay a ďalšie aplikácie, API SafetyNet by tiež zabránilo fungovaniu systému Android Pay, čo je dobrá vec.
Zakorenenie prístroja porušuje bežný bezpečnostný model systému Android. Platba Android bežne chráni vaše platobné údaje pomocou funkcií systému Sandbox v systéme Android, ale aplikácie sa môžu vymaniť z pieskovacieho poľa na koreňovom zariadení.Google nemá žiadny spôsob, ako vedieť, ako bezpečná platba Android bude na konkrétnom zariadení, ak je zakorenené alebo je spustená neznáma vlastná pamäť ROM, a preto ju blokujú.Inžinier systému Android Payplat vysvetlil problém na fóre vývojárov XDA, ak ste zvedaví viac informácií.
Ďalšie spôsoby, ako aplikácie dokážu rozpoznať koreň
SafetyNet je len jedným spôsobom, ako môže aplikácia skontrolovať, či je spustená na koreňovom zariadení.Napríklad zariadenia Samsung obsahujú bezpečnostný systém s názvom KNOX.Ak zakopnete prístroj, zablokuje sa ochrana KNOX.Spoločnosť Samsung Pay, vlastná aplikácia Samsung pre mobilné platby, odmietne fungovať na zakorenených zariadeniach. Spoločnosť Samsung používa na tento účel KNOX, ale mohla by rovnako dobre používať službu SafetyNet.
Rovnako tak veľa aplikácií tretích strán zablokuje používanie týchto aplikácií a nie všetky z nich používajú službu SafetyNet. Môžu len skontrolovať prítomnosť známych koreňových aplikácií a procesov v zariadení.
Je ťažké nájsť aktuálny zoznam aplikácií, ktoré nefungujú, keď je zariadenie zakorenené.RootCloak však poskytuje niekoľko zoznamov. Tieto zoznamy môžu byť zastarané, ale sú to tie najlepšie, ktoré môžeme nájsť.Mnohé z nich sú bankové a iné aplikácie pre mobilné peňaženky, ktoré zabraňujú prístupu na zakorenené telefóny pri pokuse o ochranu vašich bankových informácií pred tým, ako budú zachytené inými aplikáciami. Aplikácie pre služby streamingu videa môžu tiež odmietnuť fungovanie na zakorenenom zariadení ako akékoľvek opatrenie DRM, ktoré sa snažia zabrániť nahrávaniu chráneného video streamu.
Niektoré aplikácie môžu byť podvedené
Spoločnosť Google hrá hru Cat-and-mouse s SafetyNet a neustále ju aktualizuje v snahe zostať pred ľuďmi okolo. Napríklad vývojár spoločnosti Android Chainfire vytvoril novú metódu zakomponovania zariadení Android bez úpravy systémového oddielu, ktorý sa nazýva systémový root. Spoločnosť SafetyNet na začiatku neidentifikovala takéto zariadenia ako manipulované a Android Pay pracoval - ale SafetyNet sa nakoniec aktualizoval, aby zistil túto novú metódu založenia. To znamená, že Android Pay už nefunguje spolu so systémovým rootom.
V závislosti od toho, ako aplikácia kontroluje prístup k používateľom root, môžete ju podvádzať.Existujú napríklad metódy koreňovania niektorých zariadení Samsung bez toho, aby sa zabránilo zabezpečeniu KNOX, čo by vám umožnilo pokračovať v používaní funkcie Samsung Pay.
V prípade aplikácií, ktoré len skontrolujú root aplikácie vo vašom systéme, existuje modul Xposed Framework s názvom RootCloak, ktorý údajne umožňuje premeniť ich do práce. To funguje s aplikáciami ako DirecTV GenieGo, Best Buy CinemaNow a Filmy Flixster, ktoré bežne nefungujú na koreňových zariadeniach. Ak by sa však tieto aplikácie aktualizovali tak, aby používali bezpečnostnú sieť Google, nebolo by to tak jednoduché.
Väčšina aplikácií bude fungovať normálne aj po zakorenení vášho zariadenia. Aplikácie na mobilné platby sú veľkou výnimkou, rovnako ako niektoré ďalšie bankové a finančné aplikácie. Platené služby streamingu videa sa niekedy pokúšajú zablokovať sledovanie svojich videí.
Ak aplikácia, ktorú potrebujete, nefunguje na vašom zakorenenom zariadení, môžete vždy vyradiť zariadenie, aby ho používalo. Aplikácia by mala fungovať po vrátení zariadenia do bezpečného, továrenského stavu.
Image Credit: Danny Choo na Flickr