私たちはコンピューターに関する古典的なコンピューター サイエンスの知識を携帯電話に当てはめる傾向がありますが、それが常に同じように機能するとは限りません。これらのケースの 1 つは、Android がアプリケーション データを相互に管理および分離し、あるアプリケーションが他のアプリケーションのデータを取得できないようにする方法にあります。
この地域の高齢者は、アプリのデータが公共の場所に保存されることもあった Android 西部開拓時代のことを覚えているでしょう。しかし、長年にわたり、Android はアプリのデータに対して非常に懐疑的であり、同じアプリだけがデータにアクセスできるようになっていました。いくつかの例外を除いて。
アプリが互いに分離されている
残念ながら、 Google のあらゆる努力にもかかわらず、マルウェアは Android に忍び込み続けており、私たちの多くはこれらの悪意のあるアプリを 10 年前の Windows ウイルスと同等に考え続けています。魔法のように増殖し、拡張し、あらゆるものを監視します。 Android 上の 1 つ。
実のところ、これは見かけよりもはるかに複雑です。Android は Linux アプリケーションの分離を利用して、各アプリケーションが独自の「バブル」内で動作し、Android API によって確立された接続ポイントを除いて外部にアクセスできないからです。これはサンドボックスとして知られているものです。
各 Android アプリケーションは独自のバブル内に存在し、システム API と通信する場合を除き、他のアプリやシステムからのデータにアクセスできません。
各アプリケーションには、データを含むリソースを隔離するプロセスに関連付けられた一意の識別子があり、他のアプリがアプリケーションを傍受、読み取り、変更、削除できないようにします。 Google がドキュメントで述べているように、Android サンドボックスは長年にわたって Android のさまざまなバージョンで強化されてきました。
たとえば、Android 9 以降、アプリは独立した SELinux サンドボックスで実行する必要があり、データが他の人にアクセスできる状態にならないようにする必要があります。Android 10 以降、Google はバージョンごとにシステム ファイルへのアクセスを制限しています。
これはすべて次のように要約されます。悪意があるかどうかにかかわらず、あるアプリケーションは別のアプリケーションのデータにアクセスできません。 これらのアプリが明示的にそのように構成されていない限り。はい。Messenger と Facebook、WhatsApp と WhatsApp Business など、同じ開発者が作成し、同じ署名で署名されたアプリ間でデータを共有することができます。
では、マルウェアはどのようにしてそれを行うのでしょうか?
マルウェアは、この種の保護を回避しようとする場合、最も簡単なルートを選択します。 Linux カーネルのサンドボックス化に対処する代わりに、悪意のあるアプリが選択する最も一般的なソリューションは、データに物理的にアクセスする代わりに、 アクセシビリティ許可を使用して画面に表示される内容を監視することです。
マルウェア作成者にとって、Android のサンドボックスを回避するよりも、アクセシビリティ権限を悪用する方が簡単です。
アクセシビリティ権限は、アプリ上で何が起こっているかを確認して制御できるため、非常に強力であり、マルウェアの主要なツールになります。銀行のデータにアクセスする(場合によってはデータベースなどを復号化する必要がある)代わりに、画面に表示されている内容を監視し、ユーザーが資格情報を入力するのを待ち、それをキャプチャしてインターネット経由で送信する方が簡単です。マルウェアの所有者。銀行が SMS 経由で確認コードを送信する場合、この許可を使用してコードを取得することもできます。
もう 1 つのより根本的な方法は、現在では少し時代遅れですが、マルウェアがセキュリティ ホールを利用して root 権限を取得することです。 root 権限があれば、アプリケーションは他のアプリケーションのプライベート データを含むモバイル ストレージにアクセスするための完全な制御を持ちます。 Android 携帯電話には何千ものモデルがあり、それぞれバージョンが若干異なるため、この種のエクスプロイトは数年前に実用的ではなくなりました。
ただし、多くのマルウェアは、最も簡単で労力がかからない方法、つまりフィッシングを選択します。悪意のあるアプリが別のアプリになりすまし、ユーザーがそのアプリを銀行のアプリであると信じてそのアプリに資格情報を入力したり、偽の Web サイトにリダイレクトしたりすることは、オペレーティング システムの数多くの保護機能を回避して生データにアクセスすることよりも簡単です。
アプリが他のアプリのデータをスパイするのを防ぐ Android シールドと、マルウェアがそれを回避する方法・関連動画