Androidデバイスをルート化すると、さまざまなアプリにアクセスできるようになり、Androidシステムにさらに深くアクセスできるようになります。しかし、いくつかのアプリ-のような GoogleのAndroidPay –ルート化されたデバイスではまったく機能しません。
Googleは、SafetyNetと呼ばれるものを使用して、デバイスがルート化されているかどうかを検出し、それらの機能へのアクセスをブロックします。 Googleだけではありません。多くのサードパーティ製アプリも機能しません。 ルート化されたAndroidデバイス 、ただし、他の方法でルートの存在を確認する場合があります。
SafetyNet:Androidスマートフォンをroot化したことをGoogleが知る方法
関連: クレジットカードを盗まれるのにうんざりしていませんか? ApplePayまたはAndroidPayを使用する
Androidデバイスは「 SafetyNet API 、」の一部です GooglePlay開発者サービス Google承認のAndroidデバイスにインストールされたレイヤー。 Googleによると、このAPIは「Androidデバイスの健康と安全性を評価するのに役立つGoogleサービスへのアクセスを提供します」。 Androidデベロッパーの場合は、アプリでこのAPIを呼び出して、実行しているデバイスが改ざんされていないかどうかを確認できます。
このSafetyNetAPIは、デバイスが改ざんされていないかどうかを確認するように設計されています。たとえば、デバイスがユーザーによってルート化されているか、カスタムROMを実行しているか、低レベルのマルウェアに感染しているかなどです。
GoogleのPlayストアやその他のアプリがインストールされた状態で出荷されるデバイスは、GoogleのAndroid「互換性テストスイート」に合格する必要があります。デバイスをルート化するか、カスタムROMをインストールすると、デバイスが「CTS互換」になるのを防ぎます。これは、SafetyNet APIがルート化されているかどうかを判断する方法であり、CTSの互換性をチェックするだけです。同様に、中国の工場から直接出荷された20ドルのタブレットのように、Googleのアプリが付属していないAndroidデバイスを入手した場合、ルート化していない場合でも、「CTS互換」とは見なされません。 。
この情報を取得するために、Google Play開発者サービスは「snet」という名前のプログラムをダウンロードし、デバイスのバックグラウンドで実行します。プログラムはデバイスからデータを収集し、定期的にGoogleに送信します。 Googleは、Androidエコシステム全体の写真を取得することから、デバイスのソフトウェアが改ざんされているかどうかを判断することまで、さまざまな目的でこの情報を使用します。 Googleは、snetが何を探しているのかを正確に説明していませんが、システムパーティションが工場出荷時の状態から変更されているかどうかをsnetがチェックしている可能性があります。
次のようなアプリをダウンロードして、デバイスのSafetyNetステータスを確認できます。 SafetyNetヘルパーサンプル または SafetyNetプレイグラウンド 。アプリは、デバイスのステータスについてGoogleのSafetyNetサービスに問い合わせ、Googleのサーバーから取得した応答を通知します。
技術的な詳細については、 このブログ投稿 ソフトウェアセキュリティ会社であるCigitalのテクニカルストラテジストであるJohnKozyrakisによって書かれました。彼はSafetyNetを掘り下げ、それがどのように機能するかについて詳しく説明します。
それはアプリ次第です
SafetyNetはアプリ開発者にとってオプションであり、アプリ開発者はそれを使用するかどうかを選択できます。 SafetyNetは、アプリの開発者がルート化されたデバイスでの動作を望まない場合にのみ、アプリの動作を阻止します。
ほとんどのアプリはSafetyNetAPIをまったくチェックしません。上記のテストアプリのように、SafetyNet APIをチェックするアプリでも、悪い応答を受け取っても動作を停止しません。アプリのデベロッパーは、SafetyNet APIを確認し、デバイスのソフトウェアが変更されたことを知った場合、アプリの機能を拒否する必要があります。 Google独自のAndroidPayアプリは、この実際の良い例です。
AndroidPayはルート化されたデバイスでは機能しません
GoogleのAndroidPayモバイル決済ソリューションは、ルート化されたAndroidデバイスではまったく機能しません。起動してみると、「AndroidPayは使用できません。」というメッセージが表示されます。 Googleは、デバイスまたはその上で実行されているソフトウェアがAndroidと互換性があることを確認できません。」
もちろん、それは応援だけではありません– カスタムROMの実行 また、この要件に違反することになります。デバイスに付属していないカスタムROMを使用している場合、SafetyNetAPIは「Android互換」ではないと主張します。
関連: ルートに対するケース:Androidデバイスがルート化されない理由
これはroot化を検出するだけではないことを忘れないでください。デバイスがAndroidPayやその他のアプリをスパイする機能を備えたシステムレベルのマルウェアに感染している場合、SafetyNetAPIはAndroidPayの機能も妨げます。これは良いことです。
デバイスをroot化すると、Androidの通常のセキュリティモデルが破られます。 Android Payは通常、Androidのサンドボックス機能を使用して支払いデータを保護しますが、 アプリはroot化されたデバイスのサンドボックスから抜け出すことができます 。 Googleは、特定のデバイスがルート化されているか、不明なカスタムROMを実行している場合に、Android Payがどの程度安全であるかを知る方法がないため、ブロックします。 AndroidPayのエンジニアが問題を説明しました XDADevelopersフォーラムで もっと読みたい場合は。
アプリがルートを検出できる他の方法
SafetyNetは、ルート化されたデバイスで実行されているかどうかをアプリが確認できる1つの方法にすぎません。たとえば、SamsungデバイスにはKNOXという名前のセキュリティシステムが含まれています。デバイスをroot化すると、KNOXセキュリティが作動します。 Samsung独自のモバイル決済アプリであるSamsungPayは、ルート化されたデバイスでの機能を拒否します。 SamsungはこれにKNOXを使用していますが、SafetyNetも使用できます。
同様に、サードパーティのアプリの多くはそれらの使用をブロックし、すべてがSafetyNetを使用しているわけではありません。デバイス上に既知のルートアプリとプロセスが存在するかどうかを確認するだけです。
デバイスがルート化されているときに機能しないアプリの最新リストを見つけるのは困難です。ただし、RootCloakは いくつか リスト 。これらのリストは古くなっている可能性がありますが、私たちが見つけることができる最高のリストです。多くは銀行やその他のモバイルウォレットアプリであり、他のアプリによって銀行情報が取得されないように保護するために、ルート化された電話でのアクセスをブロックします。ビデオストリーミングサービス用のアプリは、ルート化されたデバイスで一種のDRM対策として機能することを拒否し、保護されたビデオストリームを記録できないようにする場合もあります。
一部のアプリはだまされる可能性があります
GoogleはSafetyNetでいたちごっこゲームをプレイしており、周りの人々の先を行くために常に更新しています。たとえば、Android開発者のChainfireは、「システムレスルート」と呼ばれる、システムパーティションを変更せずにAndroidデバイスをルート化する新しい方法を作成しました。 SafetyNetは当初、改ざんされたデバイスなどを検出せず、Android Payは機能しましたが、SafetyNetは最終的に更新され、この新しいルート化方法を検出しました。これは、AndroidPayを意味します 動作しなくなりました システムレスルートと一緒に。
関連: 点滅するROMを忘れる:XposedFrameworkを使用してAndroidを微調整します
アプリがrootアクセスをチェックする方法によっては、それをだますことができる場合があります。たとえば、KNOXセキュリティを作動させずに一部のSamsungデバイスをルート化する方法が報告されています。これにより、SamsungPayを引き続き使用できます。
システム上のルートアプリをチェックするだけのアプリの場合、 Xposedフレームワーク 名前の付いたモジュール RootCloak 伝えられるところによると、とにかく彼らをだまして働かせることができます。これは、DirecTV GenieGo、Best Buy CinemaNow、Movies by Flixsterなどのアプリで機能します。これらのアプリは、通常はルート化されたデバイスでは機能しません。ただし、これらのアプリがGoogleのSafetyNetを使用するように更新された場合、この方法でだますのはそれほど簡単ではありません。
デバイスをルート化すると、ほとんどのアプリは正常に動作し続けます。他の銀行や金融アプリと同様に、モバイル決済アプリは大きな例外です。有料の動画ストリーミングサービスでは、動画の視聴をブロックしようとする場合があります。
必要なアプリがルート化されたデバイスで機能しない場合は、いつでもデバイスのルート化を解除して使用できます。デバイスを安全な工場出荷時の状態に戻した後、アプリは機能するはずです。
画像クレジット: FlickrのDannyChoo