Fortnite インストーラーが悪用されて、Galaxy スマートフォンにアプリをサイレント インストールされる可能性

click fraud protection

Android 版フォートナイト モバイルのインストーラー アプリは、最初のリリースで悪用可能でした。 Samsung Galaxy スマートフォンにアプリをサイレント インストールするために悪用される可能性があります。

Android での Fortnite Mobile のリリースは、特にそれ以来、それほど素晴らしいものではありませんでした。 サポートされているデバイスの多く 本当に 許容可能なフレームレートでゲームをプレイするのに苦労する. ゲームは Samsung Galaxy 3日間限定. Fortnite インストーラーは最初に利用可能になりました Samsung Galaxy アプリ 以前、Epic Games は、Samsung 以外のプレイヤーが Epic の Web サイトで入手した Fortnite インストーラーからゲーム全体をダウンロードしてインストールすることを許可していました。 Fortnite インストーラーが利用可能になった直後、Epic Games は静かにインストーラーのアップデートをプッシュしました。 その理由がわかりました。彼らはパッチを適用しました。 マン・イン・ザ・ディスク 悪意のあるアプリによる次のことを可能にするエクスプロイト サイレントインストール 彼らが望んでいたアプリ Samsung Galaxy スマートフォンの場合. この欠陥がどのように機能するかについては混乱があるため、問題を解決するよう努めます。 まず、Android でのアプリのインストールの基本を説明する必要があります。


Androidスマートフォンでのアプリインストールの流れ

ファーストパーティソースからのサイレントインストール

ユーザーに許可を求めずに Android に APK をサイレント インストールするには、システムレベルのアプリケーションが必要です。 INSTALL_PACKAGES 許可が与えられました。 この権限を持つアプリケーションの例には、ほとんどの Android デバイスの Google Play ストアが含まれます。 Samsung、Huawei、およびその他のデバイス メーカーのデバイス上のファーストパーティ アプリケーション ストアにも、INSTALL_PACKAGES 権限が付与されている場合があります。 Google Play ストアからアプリをインストールする場合、ダウンロードが処理され、自動的にインストールされます。 「インストール」を押した後は、それ以上の介入なしでアプリが自動的にインストールされます。 (Google Play ストアでも 自動的に 

特定の実行時権限を付与します のような オーバーレイ一方、Play ストアの外部からインストールされたアプリは、ユーザーにこれらのアクセス許可を付与するよう求める必要があります。)

デバイス上のアプリに INSTALL_PACKAGES 権限があるかどうか知りたい場合は、ADB コマンドを使用して確認できます。

adb shell
dumpsys packagepackage.name.here | grep "INSTALL_PACKAGES"

たとえば、Google Play ストアのパッケージ名は「com.android.vending". この権限を持つ別のアプリは、パッケージ名が「Shell」です com.android.shell. ご利用される方へ Andromeda プラグイン経由の rootless Substratum Android Oreo では、PC から実行される Andromeda スクリプトはシェル プロセスを実行し続けるため、Substratum はそれを使用してパッケージ (テーマ オーバーレイ) をインストールし、 オーバーレイマネージャーコマンド オーバーレイを有効にします。

サードパーティソースからのサイドローディングアプリ

ファーストパーティのアプリ ストア以外からアプリをダウンロードしてインストールしようとする場合は、まず不明なインストール ソースを有効にする必要があります。 これにより、 パッケージマネージャーサービス Android フレームワーク (INSTALL_PACKAGES 権限を持つ) 内では、サードパーティのソースからアプリをサイドローディングするリスクを認識していることを認識してください。 Android Oreo より前のデバイスでは、セキュリティ設定に 1 つの切り替えボタンがあり、不明なソースからのインストールを許可します。 Android Oreo 以降のバージョンの場合、APK のインストールを呼び出すアプリは、 REQUEST_INSTALL_PACKAGES 許可が必要であり、パッケージ マネージャー サービス経由でアプリのインストールを要求できるように、ユーザーはそのアプリをホワイトリストに登録する必要があります。 REQUEST_INSTALL_PACKAGES は「appop」権限であるため、設定の権限マネージャー内または cmd appops シェルコマンド。

不明なソースからのインストールがグローバルに、または要求元のアプリケーションに対して特定的に有効になると、ユーザーはアプリをサイドロードできるようになります。 ただし、パッケージ マネージャーでは、アプリをサイレント インストールすることはできません。 代わりに、アプリをインストールするかどうかをユーザーに確認し、インストール時に付与を要求する機密のアクセス許可を一覧表示します。 ユーザーが同意すると、要求された非実行時権限を使用してアプリがインストールされます。 OEM は、パッケージ マネージャーをカスタマイズすることもできます。たとえば、中国語版のパッケージ マネージャー Huawei の EMUI 5 には、APK をスキャンして安全かどうかを判断し、アクセス許可を制御する機能があります。 付与された 前に インストール。 私は中国から輸入されたEMUI 5を実行しているHonor Note 8でこれを確認しましたが、他の中国のHuaweiおよびHonorデバイスにもパッケージマネージャーにこの機能があると思います。

いずれにせよ、承認されたファーストパーティ ソースからアプリをインストールする場合とサードパーティ ソースからアプリをインストールする場合の違いはこれくらいです。 INSTALL_PACKAGES を使用して Play ストアまたは同等のアプリ ストアからアプリをインストールしようとすると、 許可すると、開始後にユーザーが介入することなく、インストールがすべて単独でサイレントに処理されます。 ダウンロード。 ただし、XDA Labs、APKMirror、またはその他のサードパーティ ソースから APK をダウンロードすると、標準のパッケージ インストーラーがインストールを処理し、ユーザーにそのパッケージをインストールするように求めます。 では、Fortnite インストーラーはどこに登場し、なぜこれがすべてに関係するのでしょうか?

フォートナイトのインストールプロセスの欠陥

今日の初めに、Google 脆弱性を公開した 彼らはフォートナイト インストーラーの最初のバージョンで発見しました。 この脆弱性は Exynos Samsung Galaxy S8+ (dream2lte) で確認されましたが、Samsung Galaxy Note 9 や Samsung Galaxy Tab S4 を含む他のすべての Samsung Experience デバイスにも影響を及ぼしました。 この脆弱性により、 すでにインストールされている悪意のあるアプリケーション フォートナイトインストーラーがフォートナイトをインストールしようとする方法を利用するため 初めて Samsung Galaxy デバイスの場合。 Samsung Galaxy アプリのプライベート API を使用することで、Fortnite インストーラーは、標準パッケージ インストーラーを介してユーザーに Fortnite のインストールを求める必要性を回避します。 これは、Galaxy Apps がインストールをサイレントに処理するために必要な権限を持っているためです。 サイレント インストールされているアプリが本物の Fortnite である場合、このサイレント インストール プロセスに問題はありません。 しかし、Fortnite インストーラーが Fortnite ゲーム用にダウンロードした APK ファイルを保存する場所が原因で、簡単に悪用されてしまいました。

Samsung Galaxy Apps の AndroidManifest は、Galaxy Apps が標準のパッケージ インストーラーをバイパスして、独自に他のアプリをインストールする権限を持っていることを示しています。

Issue Tracker のレポートによると、フォートナイト インストーラーはフォートナイト モバイル APK を次の場所にダウンロードします。 /sdcard/Android/data/com.epicgames.portal/files/downloads/. /sdcard はへのシンボリック リンクであるため、これは Android では「外部ストレージ」とみなされます。 /data/media/CURRENT_USER、/sdcard は Android の初期にアプリ データが存在していたときに使用されていた名前です。 物理SDカードに保存されます。 現在、アプリ データは通常、/data/data/ 内のアプリ固有のディレクトリに保存されており、各アプリは独自の /data/data ディレクトリ内のファイルにのみアクセスできます。 したがって、Fortnite インストーラーがダウンロードした Fortnite APK を独自の /data/data/ ディレクトリに保存した場合、読み取り権限のないアプリは不可能になります。 root アクセスなしで)このディレクトリで何が起こっているかを知ることができます。

ただし、Fortnite インストーラー以来、 ダウンロードしたAPKを外部ストレージに保存しました、によって監視され、上書きされる可能性があります。 外部ストレージの読み取り権限を持つアプリ. 通常、アプリは、MTP 経由または他のアプリによってユーザーがアクセスする必要があるファイルを保存するときに、/data/media (「仮想 SD カード」) に書き込みます。 アプリが /data/media を読み書きするには、READ_EXTERNAL_STORAGE と それぞれ WRITE_EXTERNAL_STORAGE 権限 (両方とも同じ権限グループに属しているため、 一緒に付与されます)。 Android 4.4 KitKat より前では、ほとんどのアプリはインストール時にこれらの権限を要求していました。そうしないと、権限が要求されません。 パッケージの指定された外部ストレージ ディレクトリ内のファイルの読み取りまたは書き込みが可能 /data/media/.../Android/. の導入により、 FUSE による FAT-on-sdcard スタイルのディレクトリ権限をエミュレートする Android 4.4 KitKat では、アプリは外部ストレージ内の指定されたディレクトリ内のファイルにアクセスするための権限を必要としなくなりました。 他のディレクトリにあるファイルにアクセスするには、引き続き外部ストレージのアクセス許可が必要になります。これは、悪意のあるアプリがフォートナイトのインストール プロセスをハイジャックするために行う可能性があります。

以下のビデオに示されているように、READ_EXTERNAL_STORAGE 権限を持つ悪意のあるアプリは、外部ストレージ内のフォートナイト インストーラーのダウンロード ディレクトリを監視します。 ダウンロードが完了し、指紋が検証されたことを検出すると、指紋が置き換えられます。 WRITE_EXTERNAL_STORAGE のおかげで、独自の悪意のあるパッケージを含む Fortnite パッケージがダウンロードされました 許可。 ただし、Samsung Galaxy アプリはインストール前に Fortnite APK を検証する方法が原因で、 (...パッケージ名が「com.epicgames.fortnite」かどうかを確認するだけです)、Galaxy を使用することは可能です アプリ ユーザーの介入や通知を行わずに、悪意のあるパッケージをバックグラウンドでサイレントにインストールします。—悪意のあるパッケージの名前が「com.epicgames.fortnite」である限り。 さらに悪いことに、この悪意のあるパッケージが SDK レベル 22 以下 (Android 5.1 Lollipop 以前) をターゲットにしていた場合、 実行時権限は SDK レベル 23 以降 (Android 6.0 Marshmallow および Android 6.0 Marshmallow および 後で)。

しかし、Samsung 以外のデバイスではどうなるでしょうか? Samsung Galaxy Apps は Samsung 以外のデバイスにはインストールされないため、悪意のある APK バックグラウンドでサイレントにインストールされることはありません. Fortnite インストーラーはサードパーティ アプリであるため、最初にユーザーに有効化を求めるプロンプトが表示される必要があります。 不明なソースからインストールし、偽のパッケージをインストールするリクエストをパッケージ インストーラーに送信します。 フォートナイトAPK。 アプリをインストールするかどうかを尋ねられたときに、ユーザーが「インストール」をタップするかどうかは異なります。 Samsung 以外の携帯電話には悪意のあるアプリがバックグラウンドでサイレントにインストールされる危険がないにもかかわらず、これは問題です。 平均的なユーザーは、名前に「Fortnite」と Fortnite アプリのアイコンを使用して作成された悪意のある APK がインストールのために提示されたとしても、それほど賢明ではありません。

それでも、Samsung Galaxy スマートフォンと Samsung 以外のスマートフォンでこの欠陥を悪用することには明確な違いがあります。 前者は Man-in-the-Disk 攻撃であり、隠されたシステム API を利用して任意のアプリをサイレントにインストールします。 背景、任意の権限があり、偽の Fortnite をインストールしているとユーザーを騙す必要はありません APK。 後者は 標準的な Man-in-the-Disk 攻撃。APK やその他の重要なデータを外部ストレージ ディレクトリに保存する他のアプリにも発生する可能性があります。、最近の結果が示すように、 チェックポイント 役職。 たまたま、隠された Galaxy Apps API のおかげで、この Man-in-the-Disk 攻撃は Samsung Galaxy デバイスではより危険です。

欠陥の修正

Epic Games の名誉のために言っておきますが、彼らは Google Issue Tracker の報告に非常に迅速に対応し、可能な限り早くバージョン 2.1.0 へのアップデートを展開しました。 修正は簡単でした。ダウンロードしたフォートナイト APK を、/data/media の外部ストレージ ディレクトリではなく、/data/data のフォートナイト インストーラーの内部ストレージ ディレクトリに保存するだけです。 Epic Games のエンジニアはこの欠陥を 90 日後に公開するよう要求しましたが、Google はこれを拒否し、修正が公開されてから 7 日後に問題を公開しました。 Epic Games の CEO、ティム・スウィーニー氏は、 ない 最初のセキュリティレポートから公開までの迅速な対応に満足しています。 彼は次のような声明を発表した Android セントラル.

Epic は、Google がフォートナイトの詳細なセキュリティ監査を実施した直後に Google が行った取り組みに心から感謝しています。 Android でリリースし、その結果を Epic と共有して、欠陥を修正するアップデートを迅速に発行できるようにします。 発見した。

しかし、多くのインストールがまだ更新されておらず、依然として脆弱なままであるにもかかわらず、欠陥の技術的詳細をこれほど早く公表したのは Google の無責任でした。

Epic のセキュリティ エンジニアは、私の勧めに応じて、アップデートがより広範囲にインストールされるまでの時間を確保するために、一般公開を通常 90 日間延期するよう Google に要求しました。 グーグルは拒否した。 ですべて読むことができます https://issuetracker.google.com/issues/112630336

Google のセキュリティ分析の取り組みは高く評価されており、Android プラットフォームに利益をもたらしていますが、Google ほど強力な企業はもっと実践する必要があります。 Epic によるフォートナイトの外部配布に対する対抗 PR 活動の過程でユーザーを危険にさらさないこと。 グーグルプレイ。

既存の Samsung Galaxy デバイスのどれだけがまだ古い Fortnite インストーラーを持っているかについてはわかりません。 おそらく、Epic Games は、Fortnite Mobile でメッセージを送信して、インストールを更新するようにこれらのユーザーに通知する必要があります。 Firebase の気の利いた新しいアプリ内メッセージング機能 トリックができるかもしれない。 ただし、古いインストーラーを使用しているユーザーがすでに正規のインストーラーをダウンロードしている場合は、おそらく大した問題ではありません。 Fortnite の場合、悪意のある APK は既存の Fortnite の上にインストールできないため、MITD 攻撃は機能しません。 インストール。 いずれにせよ、Android でのフォートナイトのリリース後、Epic Games についてまだ多くの論争があるときに、この欠陥が発見されたことは非常に早いことです。 Google Playをやめる決断—これは確かに、Epic Games の決定が不用意だったという議論を助けるでしょう。 この問題をこれほど早く公表した背後に、それが Google の意図があったのかどうかはわかりません。