先週の初めに McAfee Labs のモバイルマルウェアリサーチチームは、‘Minecraft’ というゲームの拡張プログラムとしてGoogle Playストアで配布されていたマルウェアを発見しました。このマルウェアは、‘ValerySoftware’ という開発者によって作成され、高度な難読化が施されていました。
Google Playストア上の統計情報によると、これらのアプリケーションはそれぞれ500回程度インストールされており、おおよそ3,000の端末がこのマルウェアに感染したと考えられます。
このマルウェアの特徴としては:
- 複数の暗号化・難読化が施されている
- 外部サーバーからAPKファイルをダウンロードする
- Google Playストアから他アプリのインストールを試みる
- 広告を表示する、または、広告にアクセスする
- ユーザ情報や端末情報を収集する
- 外部コマンドによりアプリの起動・終了を行う
- 外部コマンドによりアプリのインストール・アンインストールコマンドを行う
ストア上の否定的なユーザーコメントからもこれらのアプリが有益な機能を提供していないことがわかりますが、このマルウェアの場合、ユーザーに見える動作としては、(アンインストールを妨害する目的で)デバイス管理者権限を要求した後、WebView機能でいくつかのHTMLコンテンツを表示するだけというものでした。
その一方で、このマルウェアはバックグラウンドで、複数の暗号化されたファイルを復号して動的に読み込み、ユーザに気づかれることなく悪意ある活動を開始します。
上記のフロー図で示しているように、このマルウェアは悪質な動作を隠蔽するために、いくつもの暗号化や難読化を施しています。ELF形式の実行ファイルを使い、APKファイル内のassetsフォルダにある暗号化されたファイル “asset.dat” から、悪質なコードを抽出するようにすることで、静的解析を難しくしています。また、マルウェアの動作に関連したファイルやクラスについてもファイル名や文字列をランダムなものとすることで、アンチウイルス製品による検知を回避しようとしています。
たとえば、コントロールサーバーのURLが記載されたJSON形式のファイルは、難読化された状態で、暗号化されたDEXファイル内に格納されています。
解読したJSON形式のファイルに記載されているドメインについて調査を行ったところ、これらのドメイン名はヨーロッパのあるサイバー犯罪集団と関係があることが判明しています。
また、このマルウェア作者は、アンチエミュレーター技術を使うことで、動的解析環境での振る舞い検知を回避していました。
さらには、また、このマルウェアの作者は、広告収入を得る目的で、“Robo Templates” というフレームワークを使い多数の広告ライブラリーを組み込んでいます。広告表示に使用するリソース (画像、JavaScript、HTML) もまたBASE64形式でエンコードされた状態で、DEXファイルにコードとして埋め込まれています。そのため、これらのリソースファイルは暗号化されたDEXファイル (classes3.dex) を復号して解析しないと発見することができません。
このマルウェアには、指定されたURLからAPKファイルをダウンロードする機能も組み込まれています。下記スクリーンショットにおける赤枠で囲まれたクラスもまた、マルウェアによって挿入された悪質なコードとなります。
Google社ではマルウェアに対する取締りを強化していますが、今回発見された脅威のように、依然として公式ストアでもマルウェアは発見され続けています。アプリをインストールする前に他のユーザーのレビューコメントを見る、アプリケーションが要求するパーミッションの妥当性を確認する、さらには、同じ開発者によって作成された他のアプリを確認することで、そのアプリの有用性や開発者の信頼性を判断することができます。もし、インストールするアプリに少しでも不審な点があればインストールしないようにしてください。
McAfee Mobile Security はこのAndroidに対する脅威をAndroid/Agent.FL として検出します。
※本ページの内容は McAfee Blog の抄訳です。
原文: Obfuscated Malware Discovered on Google Play
著者: Fernando Ruiz