15Jul

SafetyNet vysvětleno: Proč Android Pay a další aplikace nefungují na zakořeněných zařízeních

click fraud protection

Zakořenění zařízení Android umožňuje přístup k širšímu spektru aplikací a hlubšímu přístupu k systému Android. Některé aplikace, jako Google Android Pay, však nebudou fungovat na kořenovém zařízení.

Společnost Google používá něco nazývaného SafetyNet k zjištění, zda má vaše zařízení kořen nebo nikoli, a blokuje přístup k těmto funkcím. Google není jediný - spousta aplikací třetích stran také nebude fungovat na zakořeněných zařízeních Android, i když mohou ověřit přítomnost kořenu jinými způsoby.

SafetyNet: Jak Google vědí, že jste zakořeněni Android Phone

Zařízení Android nabízí "SafetyNet API", která je součástí vrstvy služeb Google Play nainstalována v zařízeních schválených společností Google. Tento rozhraní API "poskytuje přístup ke službám Google, které vám pomohou posoudit bezpečnost a bezpečnost zařízení Android," tvrdí Google. Pokud jste vývojářem systému Android, můžete tuto aplikaci API zavolat do vaší aplikace a zkontrolovat, zda je zařízení, na kterém běžíte, poškozeno.

instagram viewer

Toto bezpečnostní rozhraní API SafetyNet je navrženo tak, aby ověřilo, zda bylo poškozeno zařízení - ať již je zakořeněno uživatelem, spuštěno je vlastní ROM nebo byl infikován např. Nízkým obsahem škodlivého softwaru.

Zařízení, která jsou dodávána s obchodem Google Play Store a dalšími nainstalovanými aplikacemi, musí projít Android "Compatibility Test Suite" společnosti Google. Zakomponování zařízení nebo instalace vlastní ROM zabraňuje tomu, aby zařízení bylo kompatibilní se službou CTS.Tak můžete bezpečnostní rozhraní API SafetyNet zjistit, zda máte kořeny - pouze kontroluje kompatibilitu CTS.Stejně tak, pokud získáte zařízení Android, které nikdy nepřicházelo s aplikacemi Google, jako jedna z těch 20 dolarů, které byly dodány přímo z továrny v Číně, nebude to vůbec považovat za "kompatibilní se službou CTS", a to ani v případě,.

Chcete-li získat tyto informace, služba Google Play stáhne program s názvem "snet" a spustí jej na pozadí zařízení.Program shromažďuje data z vašeho zařízení a pravidelně je odesílá společnosti Google. Společnost Google používá tyto informace pro nejrůznější účely, od získání obrazu širšího ekosystému Android k určení, zda byl software vašeho zařízení zablokován. Společnost Google nevysvětluje přesně, co snet hledá, ale je pravděpodobné, že snet zkontroluje, zda systémový oddíl byl změněn z výroby.

Stav SafetyNet vašeho zařízení můžete zkontrolovat stahováním aplikace jako SafetyNet Helper Sample nebo SafetyNet Playground. Aplikace požádá službu Google SafetyNet o stav vašeho zařízení a povědí vám odpověď, kterou dostane ze serveru Google.

Pro více technických podrobností si přečtěte tento blogový příspěvek, který napsal John Kozyrakis, technický stratég společnosti Cigital, softwarové bezpečnostní společnosti. Vykopal do služby SafetyNet a vysvětluje více, jak to funguje.

Je to až na aplikaci

SafetyNet je volitelná pro vývojáře aplikací a vývojáři aplikací se mohou rozhodnout, zda ji použijí nebo ne. Služba SafetyNet zabraňuje fungování aplikace pouze v případě, že vývojář aplikace nechce pracovat na zakořeněných zařízeních.

Většina aplikací vůbec nezkontroluje rozhraní API SafetyNet. Dokonce i aplikace, která kontroluje bezpečnostní rozhraní API SafetyNet - podobně jako zkušební aplikace uvedené výše - přestane fungovat, pokud obdrží špatnou odpověď.Vývojář aplikace musí zkontrolovat rozhraní API SafetyNet a nechat aplikaci odmítnout, pokud zjistí, že software vašeho zařízení byl změněn. Aplikace Google Pay for Android je dobrým příkladem toho v akci.

Platba Android nebude pracovat na zakořeněných zařízeních

Řešení mobilních plateb Android Pay na Googlu nefunguje vůbec na zakořeněných zařízeních Android. Zkuste to spustit a uvidíte pouze zprávu, že Android Pay nelze použít. Google nedokáže ověřit, zda je vaše zařízení nebo software na něm spuštěn, je kompatibilní se systémem Android. "

Není to jen o zakořenění, samozřejmě - běh vlastního ROM by vás také dal dohnat tomuto požadavku. Bezpečnostní rozhraní API SafetyNet tvrdí, že není kompatibilní se systémem Android, pokud používáte vlastní ROM, se kterým zařízení nepřišlo.

Nezapomeňte, že to není jen detekce zakořenění.Je-li vaše zařízení napadeno nějakým malware na úrovni systému, který má schopnost špionáže v aplikacích Android Pay a dalších aplikacích, bezpečnostní rozhraní API SafetyNet by rovněž zabránilo fungování platformy Android Pay, což je dobrá věc.

Zakořenění vašeho zařízení přeruší normální bezpečnostní model systému Android. Platba Android běžně chrání vaše platební data pomocí funkcí Sandboxu Android, ale aplikace se mohou vymanit z karantény na kořenovém zařízení.Google nemá žádný způsob, jak vědět, jak bezpečná platba se systémem Android bude na určitém zařízení, pokud je zakořeněna nebo je spuštěna neznámá vlastní ROM, a proto ji zablokují.Inženýr systému Android Payplat vysvětlil problém na fóru vývojářů XDA, pokud jste zvědaví, že si přečtete další informace.

Další způsoby, jak aplikace zjistit kořen

SafetyNet je jen jeden způsob, jak může aplikace zjistit, zda běží na kořenovém zařízení.Přístroje Samsung například obsahují bezpečnostní systém s názvem KNOX.Pokud zakopnete zařízení, zapne se bezpečnost KNOX.Samsung Pay, Samsung vlastní mobilní platební aplikace, odmítne fungovat na zakořeněných zařízeních. Společnost Samsung používá pro tento účel KNOX, ale stejně by mohla používat bezpečnostní síť.

Podobně, mnoho aplikací třetích stran vás zabrání v jejich používání a ne všechny používají službu SafetyNet. Mohou jen zkontrolovat přítomnost známých kořenových aplikací a procesů v zařízení.

Je těžké najít aktuální seznam aplikací, které nefungují, když je zařízení zakořeněno. RootCloak však obsahuje několik seznamů.Tyto seznamy mohou být zastaralé, ale jsou ty nejlepší, které můžeme najít. Mnoho bankovek a dalších mobilních peněženkových aplikací zabraňuje přístupu na zakořeněné telefony a snaží se chránit bankovní informace před jinými aplikacemi. Aplikace pro streamování videa mohou také odmítnout fungovat na zakořeném zařízení jako určitý druh měření DRM a pokusit se zabránit nahrávání chráněného video streamu.

Některé aplikace mohou být podvedeny

Společnost Google hraje hru s kočkou a myš s bezpečnostní sítí a neustále ji aktualizuje ve snaze zůstat před lidmi, kteří se kolem ní ocitli. Například vývojář Android Chainfire vytvořil novou metodu zakořenění zařízení Android bez úpravy systémového oddílu, známého jako "systemless root".Společnost SafetyNet nejprve nezjistila, že by taková zařízení byla zneužita a Android Pay pracoval - ale bezpečnostní síť byla nakonec aktualizována, aby detekovala tuto novou metodu zakořenění.To znamená, že Android Pay již funguje společně se systémovým systémem root.

V závislosti na tom, jak aplikace kontroluje přístup k uživateli root, možná ji budete moci triknout. Existují například způsoby zakořenění některých zařízení Samsung bez vypnutí zabezpečení KNOX, což by vám umožnilo pokračovat ve využívání funkce Samsung Pay.

V případě aplikací, které prostě kontrolují kořenové aplikace ve vašem systému, existuje modul Xposed Framework s názvem RootCloak, který údajně dovoluje, abyste je stejně tak trýznili. To funguje s aplikacemi jako DirecTV GenieGo, Best Buy CinemaNow a Filmy Flixster, které obvykle nefungují na zakořeněných zařízeních. Pokud by se však tyto aplikace aktualizovaly tak, aby používaly bezpečnostní síť Google, nebylo by tak snadné klamnout tímto způsobem.

Většina aplikací bude fungovat normálně i poté, co jste zařízení zakořenili. Mobilní platební aplikace jsou velkou výjimkou, stejně jako některé další bankovní a finanční aplikace. Placené služby streamingu videa se někdy snaží zabránit sledování videa také.

Pokud aplikace, kterou potřebujete, nefunguje na vašem zakořeněném zařízení, můžete jej vždy vykořenit, abyste jej mohli používat. Aplikace by měla fungovat po vrácení zařízení do bezpečné, tovární stavu. Obrázek

: Danny Choo na Flickr