15Jul

SafetyNet Explained: Waarom Android Pay en andere apps niet werken op apparaten met rooten

Rooten op uw Android-apparaat geeft u toegang tot een grotere verscheidenheid aan apps en een diepere toegang tot het Android-systeem. Maar sommige apps, zoals Google's Android Pay, werken helemaal niet op een geroot apparaat.

Google gebruikt iets dat SafetyNet heet om te detecteren of uw apparaat is geroot of niet en blokkeert de toegang tot die functies. Google is trouwens niet de enige - veel apps van derden werken ook niet op geroote Android-apparaten, hoewel ze op andere manieren kunnen controleren op de aanwezigheid van root.

SafetyNet: hoe Google weet dat u uw Android-telefoon hebt geramd

Android-apparaten bieden een "SafetyNet API", die deel uitmaakt van de Google Play Services-laag die is geïnstalleerd op door Google goedgekeurde Android-apparaten. Deze API 'biedt toegang tot Google-services die u helpen de gezondheid en veiligheid van een Android-apparaat te beoordelen', aldus Google. Als u een Android-ontwikkelaar bent, kunt u deze API in uw app bellen om te controleren of er is geknoeid met het apparaat waarop u werkt.

Deze SafetyNet API is ontworpen om te controleren of er met een apparaat is geknoeid - bijvoorbeeld of het is geroot door een gebruiker, een aangepast ROM uitvoert of is geïnfecteerd met malware van een laag niveau.

Apparaten die worden geleverd met Google's Play Store en andere geïnstalleerde apps moeten de Android "Compatibility Test Suite" van Google doorgeven. Door een apparaat te rooten of een aangepast ROM te installeren, voorkomt u dat een apparaat "CTS-compatibel" is. Dit is hoe de SafetyNet API kan bepalen of je bent geroot, het controleert alleen op CTS-compatibiliteit. Als u een Android-apparaat krijgt dat nooit met Google-apps is geleverd, zoals een van die $ 20-tablets die rechtstreeks vanuit een fabriek in China zijn verzonden, wordt het helemaal niet als "CTS-compatibel" beschouwd, zelfs als u het nog niet hebt geroot..

Om deze informatie te verkrijgen, downloadt Google Play Services een programma met de naam "snet" en voert het op de achtergrond op uw apparaat uit. Het programma verzamelt gegevens van uw apparaat en stuurt dit regelmatig naar Google. Google gebruikt deze informatie voor verschillende doeleinden, van een beeld krijgen van het bredere Android-ecosysteem tot het bepalen of er met de software van uw apparaat is geknoeid. Google legt niet precies uit wat snet zoekt, maar het is waarschijnlijk dat snet controleert of uw systeempartitie is gewijzigd vanuit de fabrieksstatus.

U kunt de SafetyNet-status van uw apparaat controleren door een app zoals SafetyNet Helper Sample of SafetyNet Playground te downloaden. De app zal de SafetyNet-service van Google vragen over de status van uw apparaat en u vertellen welk antwoord de server van Google ontvangt.

Lees voor meer technische details deze blogpost geschreven door John Kozyrakis, een technisch strateeg bij Cigital, een bedrijf voor softwarebeveiliging. Hij dook in SafetyNet en legt meer uit over hoe het werkt.

Het is aan de app

SafetyNet is optioneel voor app-ontwikkelaars en app-ontwikkelaars kunnen ervoor kiezen om het te gebruiken of niet. SafetyNet voorkomt alleen dat een app werkt als de ontwikkelaar van een app niet wil dat deze werkt op geroote apparaten.

De meeste apps zullen de SafetyNet API helemaal niet controleren. Zelfs een app die de SafetyNet API controleert, zoals de test-apps hierboven, zal niet stoppen met werken als ze een slecht antwoord ontvangen. De ontwikkelaar van de app moet de SafetyNet API controleren en ervoor zorgen dat de app weigert te functioneren als hij ontdekt dat de software van uw apparaat is aangepast. De eigen Android Pay-app van Google is daar een goed voorbeeld van.

Android Pay werkt niet op geroote apparaten

Google's Android Pay-oplossing voor mobiele betalingen werkt helemaal niet op geroote Android-apparaten. Probeer het te starten en u ziet gewoon een bericht met de melding 'Android Pay kan niet worden gebruikt. Google kan niet verifiëren of uw apparaat of de daarop draaiende software compatibel is met Android. "

Het gaat niet alleen om rooten, natuurlijk zou het uitvoeren van een aangepast ROM u ook van deze vereiste doen afwijken. De SafetyNet-API beweert dat deze niet "Android-compatibel" is als u een aangepast ROM gebruikt waarvoor het apparaat niet is meegeleverd.

Onthoud dat dit niet alleen het rooten detecteert. Als uw apparaat werd geïnfecteerd door bepaalde malware op systeemniveau met de mogelijkheid om Android Pay en andere apps te bespioneren, zou de SafetyNet API ook voorkomen dat Android Pay zou functioneren, wat een goede zaak is.

Uw apparaat rooten breekt het normale beveiligingsmodel van Android. Android Pay beschermt normaal gesproken uw betalingsgegevens met behulp van Android-sandboxfuncties, maar apps kunnen de sandbox op een geroot apparaat verlaten. Google kan op geen enkele manier weten hoe veilig Android Pay op een bepaald apparaat zou zijn als het geroot is of een onbekend aangepast ROM uitvoert, zodat het wordt geblokkeerd. Een Android Pay-technicus legde het probleem uit op het XDA Developers-forum als je nieuwsgierig bent om meer te lezen.

Andere manieren Apps kunnen hoofddetectie detecteren

SafetyNet is maar één manier om te controleren of een app op een geroot apparaat werkt. Samsung-apparaten bevatten bijvoorbeeld een beveiligingssysteem met de naam KNOX.Als u uw apparaat rooit, wordt de KNOX-beveiliging geactiveerd. Samsung Pay, Samsung's eigen app voor mobiel betalen, weigert te werken op geroote apparaten. Samsung gebruikt KNOX hiervoor, maar het kan net zo goed SafetyNet gebruiken.

Evenzo zullen tal van apps van derden je ervan weerhouden om ze te gebruiken, en niet allemaal gebruiken ze SafetyNet. Ze kunnen alleen controleren op de aanwezigheid van bekende root-apps en -processen op een apparaat.

Het is moeilijk om een ​​actuele lijst met apps te vinden die niet werken wanneer een apparaat wordt geroot. RootCloak biedt echter verschillende lijsten. Deze lijsten zijn misschien verouderd, maar ze zijn de beste die we kunnen vinden. Velen zijn bank- en andere mobiele portemonnee-apps, die de toegang op geroote telefoons blokkeren in een poging om uw bankgegevens te beschermen tegen opname door andere apps. Apps voor videostreamingservices kunnen ook weigeren te functioneren op een geroot apparaat als een soort DRM-maatregel, en proberen te voorkomen dat u een beschermde videostream opneemt.

Sommige apps kunnen worden bedrogen

Google speelt een kat-en-muisspel met SafetyNet en werkt het voortdurend bij in een poging mensen voor te blijven. Android-ontwikkelaar Chainfire heeft bijvoorbeeld een nieuwe methode ontwikkeld voor het rooten van Android-apparaten zonder de systeempartitie aan te passen, ook wel "root zonder systeem" genoemd. SafetyNet heeft in eerste instantie niet gedetecteerd dat dergelijke apparaten geknoeid zijn en Android Pay werkte, maar SafetyNet werd uiteindelijk bijgewerkt om deze nieuwe roeimethode te detecteren. Dit betekent dat Android Pay niet langer werkt samen met een systeemloze root.

Afhankelijk van hoe een app controleert op roottoegang, kunt u deze mogelijk misleiden. Er zijn bijvoorbeeld methoden om sommige Samsung-apparaten te rooten zonder de KNOX-beveiliging uit te schakelen, waardoor u Samsung Pay kunt blijven gebruiken.

In het geval van apps die alleen op root-apps op uw systeem controleren, is er een Xposed Framework-module met de naam RootCloak die u naar verluidt de mogelijkheid geeft om ze toch te laten werken. Dit werkt met apps zoals DirecTV GenieGo, Best Buy CinemaNow en Movies by Flixster, die normaal niet werken op geroote apparaten. Als deze apps echter zijn bijgewerkt om het SafetyNet van Google te gebruiken, zouden ze niet zo gemakkelijk te misleiden zijn op deze manier.

De meeste apps zullen normaal blijven werken zodra je je apparaat hebt geroot. Mobiele betalingsapps vormen de grote uitzondering, net als sommige andere bank- en financiële apps. Betaalde videostreamingsservices proberen je soms ook te blokkeren van het bekijken van hun video's.

Als een app die u nodig hebt niet werkt op uw geroote apparaat, kunt u uw apparaat altijd van de kaart verwijderen om het te gebruiken. De app zou moeten werken nadat je je apparaat hebt teruggebracht naar de veilige fabrieksstatus.

Image Credit: Danny Choo op Flickr