マシュマロ ルートと Verity の合併症の概要

Verity と Marshmallow がロックダウンされたデバイスの root 化にもたらす新しい複雑さについて学びます。

埃が溜まると、 Android 6.0 リリース、多くの Nexus ユーザーが OTA を求めており、 工場出荷時の画像、Android オペレーティング システムの最新版に向けた準備を整えています。

外部から見ると、Android 6.0 は (少なくとも視覚的には) Android 5.0 および 5.1 (Lollipop リリース) に非常に似ているように見えますが、機能面では多くの重要な変更があります。 内部. そのうちの 1 つは潜在的に カスタムROMとルートコミュニティへの影響. まず、背景について少し説明します。 これに興味がない場合は、「これが重要な理由」まで飛ばしてください。

Verity と呼ばれる機能

この問題 (root 化やデバイスの変更が好きな人にとっては問題です) は、ずっと前に AOSP に初めて登場したときに私が指摘したこと、つまり、 Android への dm-verity. Verity は、もともと ChromeOS に搭載されていたセキュリティ機能で、悪意のあるソフトウェアによるデバイスの変更を防止し、確実で信頼できるコンピューティング デバイスを提供するように設計されています。 Android 4.4 に戻って、Google は Android 向けの verity を発表しましたが、その後は沈黙を保っていました。 いくつかあったものの、 verityの使用に関する研究、ほとんどの場合、物事は静かです。 今までは、そうです。

Android 6.0 で、Google はデバイスのセキュリティに取り組み始めました。 このための基本的な要件の 1 つは、デバイス上のソフトウェアがユーザーの知らないうちに変更されることを防ぐことです。ただし、多くの要件はここにあります。 XDA では root 化が当然のことであり、ユーザーのデバイスがユーザーの知識や同意なしに root 化され、root アクセスがユーザーのデバイスを盗むために使用されることを想像してください。 データ。 このため、Google は一部のデバイスでシステム パーティションの検証を実装し始めました。 彼らはまた、最近更新しました サポートページ これをカバーするために。

これはroot化されたユーザーにとって何を意味しますか?

真実性を備えた状態で、 システム パーティションに加えられた変更は、起動時またはアクセス時に検出されます。. 上記のようなエラーのいずれかが発生します。 続行できるものもあれば、デバイスの起動を停止して保護するものもあります。 利用可能な状態は 3 つあります。 1 つはブートローダーのロックが解除されているときに表示され、ブートローダーを再度ロックするまで危険にさらされる可能性があることを示します。 これは、カーネル RAM ディスクにシステムの状態を確認するために使用されるキーが含まれているため、変更されたカーネル イメージが Verity をバイパスできるためです。

ロックダウンされたデバイスを使用している root 志望のユーザーにとって、物事はあまり楽しくないものに見えます。

次の状態は、verity が無効またはオフになっている場合、または RAM ディスクの変更によりチェックできない場合に (おそらく) 表示されます。 調査する Nexus 5X または 6P がないため確信は持てませんが、(メッセージに基づいた)私の疑いは次のとおりです。 別の ROM をロードすると、独自のカーネルがデバイスに配置され、「別のオペレーティング システム」ページが表示されます。 現れる。

最終的な状態は、デバイスが破損していることを示す赤色の警告です。 これは、イメージに verity が含まれているが、システム イメージが変更されていたため検証に失敗したことを意味すると思われます。 繰り返しになりますが、ハードウェアが手元にない場合は確認できませんが、このエラーは、在庫デバイスが悪意のあるソフトウェアによって変更された場合に表示されるエラーのようです。

何でこれが大切ですか?

Android M (6.0) では現在、root はファイル システムに加えてカーネル イメージを変更する必要があります。 これは、たとえ検証を無視したとしても(たとえば、古い Nexus デバイスの場合)、 ネクサス 7 2013)、root アクセスの機能を妨げる SELinux 保護をバイパスするには、新しいカーネル イメージが必要です。

Android Marshmallow で今すぐ root 権限が必要な場合は、変更されたブート イメージを使用する必要があります。

今までにも、 変更されたカーネル SELinux を許可モードに設定しますが、これは SELinux 保護によるセキュリティ上の利点が得られないことを意味するため、理想的な修正ではありません。 そして、その後、 舞台負け物語, SELinux やその他のセキュリティ攻撃に対する保護の利点が理解できたと思います。

XDA 上級認定開発者、 チェーンファイア、万物ルートのマスターがリリースしました。 SuperSU の更新バージョン これにより、SELinux は強制モードのままになりますが、ブート イメージの SELinux 構成を変更する必要があります。 これは、SuperSU と変更されたブート イメージをインストールする必要があることを意味します。

それはそれでいいのですが、 米国の通信事業者が参入するまで. 反消費者選択の砦であるAT&TやVerizonなどの有力企業は、ユーザーがブートローダーロックを通じてカスタムファームウェアをインストールできないようにデバイスをロックダウンすることを楽しんでいることで知られている。 実際、Verizon は、Sony Xperia Z3v の場合、ファームウェアのアップデートをユーザーに渡すことすらできないのが特に苦手です。 マシュマロを受信するように設定されていません 一方、残りの Z3 範囲 (実際には Z2 範囲) はそうなります。 一体、彼らはまだ Lollipop をデバイスに展開さえしていません。 かなり長い間 (2014 年 11 月) 通常の Z3 で。

非公式のブートローダーのロック解除 (一部の Samsung デバイスのエンジニアリング ブートローダーの漏洩を除けば、最近では非常にまれです) の代わりに、それが行われる可能性は非常に低いと思われます。 神の介入なしで Android 6.0 で root を取得できること、つまり dm-verity の組み合わせ (変更を加えて携帯電話が起動しないようにするため) を使用することです。 システム パーティション)、および RAM ディスクでの SELinux の変更(root を機能させるため)の要件により、これらの root を目指すユーザーにとってはかなり面白くないものになるように見えます。 ロックダウンされたデバイス。

アンドロイドペイ?

最後にAndroid Payです。 この記事の残りの部分とはまったく関係がないように聞こえるかもしれませんが、実際にはかなり関連しています。 Android Pay は新しい機能に依存しています セーフティネット API これは、デバイスがルート化されているか、その他の方法で変更されているか、または未承認の状態で実行されているかどうかに関するデバイス状態証明書を提供するように設計された、Google 独自のサービス フレームワーク内で行われます。

がある間、 プロジェクト SafetyNet へのスプーフィング応答を見ると、現在、Xused プラグインが必要ですが、その仕組みを考えると、これは変更される可能性は低いようです。 Xused には root が必要で、システム パーティションに変更を加えます。 そのため、ブートローダーでロックされたデバイスでこれを実行することが困難になります。 それでも、このようなことはGoogleとのいたちごっこに突入しているだけだ。 SafetyNet では、root 化されたデバイス (または実際に変更されたデバイス) は「非 CTS 準拠」とみなされますが、これは変更されたデバイスの婉曲表現です。

SafetyNet についてはさらに多くのことが書かれています この分解ブログ投稿で, しかし、確かにGoogleが取り締まろうとしている分野をいくつか特定できるようだ。 まず、彼らは root、Xused、およびシステム パーティションを変更するものを好みません。 第二に、Google は広告ブロックが有効になっているユーザーの検出を検討しているようです - SSL ハンドシェイク チェック pubads.g.doubleclick.net 確かに、Google はあなたがデバイス上の広告をブロックしているかどうかを知りたいと私に示唆しています。 通常、root が前提条件であることを考慮すると、VPN API を使用して実行できる可能性があります。 これは root なしなので、Google は少なくとも誰 (または何人) がブロックしているのかを把握したいと考えているようです。 広告。 広告ブロックは、Web ブラウザーでのサポートを Apple が推進していることを考えると、時事的な問題です (おそらく広告ブロックを奨励するためです) 人々はより多くのアプリを使用するようになり、エクスペリエンスを制御し、ブロック不可能な広告を提供できるようになります)、そしてこれらの動きは 面白い。

結論

Android Marshmallow (6.0) で現時点で root 権限が必要な場合は、変更されたブート イメージを使用する必要があります。 これが無期限に当てはまるかどうかはまだわかりませんが、しばらくの間はそうなる可能性が高いと思われます。SELinux の変更により、ブート イメージを変更せずに root アクセスを取得することが非常に困難になっています。 また、ブート イメージを変更するにはロック解除されたブートローダーが必要となるため、これにより root (および Xused) が終了する可能性があります。 およびその他のルート機能)は、エンド ユーザーがロックを解除できないブートローダーが同梱されているデバイス上にあります。 Dm-verity も登場しており、新しいデバイスでは強制モードで有効になっているようです。 これにより、たとえ root アクセス権を取得したとしても、ブートローダーのロックを再び解除しないと /system を変更することが困難になります。

これにより、ブートローダーがロックされたデバイスに対する見方が変わりますか? Android は、通信事業者がお得な特典を提供してくれるなら、ブートローダー ロックされたデバイスをまだ購入する段階に達しているのでしょうか?, それとも、ロックされていないデバイスのみに興味がありますか? ロックされたブートローダーではどのような root アプリや機能が欠落しますか?

以下のコメント欄でご意見をお気軽に共有してください。