マカフィーのモバイルマルウェアリサーチチームは、Google Play公式ストアにおいて有名アプリの海賊版が配布されていることを発見しました。海賊版アプリはたいてい、公式マーケットで配布されている正規アプリ(特に有料アプリ)を改変しサードパーティーマーケットで再配布するのが一般的です。しかし、今回私たちは、大胆にも公式ストア上で海賊版アプリが配布されているのを発見しました。
今回発見した海賊版アプリは、“AE-funStudios”というデベロッパーによって開発された4つのアプリで、アプリタイトルはそれぞれ、“Flashlight”、“Race Car”、“Gun Shoot”、“Chess”とよくみかけるツールやゲームが並び、それぞれのダウンロード数は1万~10万と多くのユーザーが利用しているアプリでした。
一見して正規アプリのように見えるこれらのアプリケーションがなぜ海賊版であるのか、これらのうち1つであるチェスアプリ(パッケージ名:com.chess.chessfree.chessboard.chessgame.free)のソフトウェアの構成を覗いてみましょう。このゲームアプリには、アセットフォルダ内に“ttttt”という怪しいファイルが格納されています。このファイルには拡張子はありませんが、そのファイルタイプはAPKファイルであり、異なるアプリデベロッパーによって開発された“Chess Free”というアプリが格納されています。海賊版アプリは、起動後に“VirtualCore”クラスを使用して仮想空間を作成し、正規アプリをその仮想空間上にインストールし実行します。
海賊版アプリでは、GitHubでオープンソースとして公開されている“VirtualApp”という仮想化技術のコンポーネント“com.lody.virtual”が利用されています。そのため、このコンポーネント自体は悪意あるものではなく、Android 8.0 Oreoで導入された“Instant App”に類似した技術であり、アプリケーションを端末にインストールさせることなく、仮想空間上でアプリを動作させるためのフレームワークを提供します。このコンポーネントは、ローカルプロセス上に仮想のメモリ空間を作成して、そのメモリ空間上にAPKファイルを動的にロードして、実行するという仕組みで動作しています。
海賊版アプリでは、アプリ起動後に、この“VirtualApp”のコンポーネントを利用し、包含するAPKファイルを端末にインストールすることなく、内部に包含する正規アプリのAPKをロードして、あたかも自分のアプリの一部のように動作させています。この仕組みを利用することで、マルウェア作者はアプリのリパッケージ(正規アプリを分解して、マルウェアのコードを挿入し、再構築する)を行うことなしに、正規アプリをそのまま流用することが可能となるため、トロイの木馬の作成がより容易になってしまうしょう。
一方で、この仮想化技術は万能な仕組みではなく、すべての正規アプリがこの仮想空間のフレームワーク上で実行できるわけではありません。リパッケージ対策など悪用や転用防止対策が施されている正規アプリであれば、この仮想化の仕組みを使用しても、正常にアプリは動作しないため、悪用や転用されるリスクは非常に小さくなるでしょう。
この海賊版アプリのデベロッパーの目的はどこにあるのでしょうか。下記スクリーンショットからアプリの配布画面には「広告を含む」という表示があることから、モバイル広告収入を得ようとした意図がみられます。しかしながら、私たちが解析した海賊版アプリには、海賊版アプリ上で広告を表示させるようなコードや、正規アプリの通信を傍受したり改変したりして広告収入を横取りするようなコードは発見されませんでした。もしかすると、今後のアプリのアップデートで広告収入を得ようと画策していたのかもしれません。
広告収入とは別の悪いシナリオとして、この海賊版アプリのデベロッパーは開発者アカウントの犯罪組織に販売することを計画しているのかもしれません。ある調査サイトの情報によるとFacebookやInstagramなどの有名なアカウントは、「目に見えないデータの経済性」のレポートで紹介されているように、ブラックマーケットにおいて高値で取引されています。そして、売買された開発者アカウントはマルウェアやスパイウェアの配布に悪用されてしまうかもしれません。その根拠として、包含された正規アプリはどれも同カテゴリーの人気アプリでありおおよそ100万~500万ユーザーを獲得しています。その人気に便乗する形で海賊版バージョンが配布されているため、必然的にユーザー数も多くなっていくと予想できるのですからあながちありえない話ではありません。
マカフィーモバイルセキュリティでは、このような海賊版アプリをAndroid/PUP.Pirates.Cとして検出することで、ユーザーの端末を保護すると共に正規開発者の権利を守ります。悪意あるアプリに対する脅威から自身の端末を保護するためには、公式ストアの推奨アプリやより人気の高いアプリを利用してください。また、マルウェアや海賊版アプリの開発者は手を抜く傾向にあるため、マーケット上のアプリの説明やスクリーンショット、ユーザーレビュー対応がとてもいい加減になる傾向がありますので、アプリのタイトル、評価、スクリーンショットそしてユーザーレビューを確認するようにしてください。