iOS端末の不正/迷惑アプリ、「App Store」で確認。1つはサードパーティアプリストアへ誘導

iOS端末の不正/迷惑アプリ、「App Store」で確認。1つはサードパーティアプリストアへ誘導

iOSのアプリ開発および配布は、Appleの厳しい審査によって管理されています。しかしながら、厳格とされる規制を回避する方法は存在します。「Haima」による不正アプリがその例として挙げられますが、その際利用されたのは、企業内配布用アプリの証明書を悪用する手口でした。しかし、必要な証明書を頻繁に変更しなければならないため、経費のかかる手口でした。

トレンドマイクロは、サードパーティによるアプリストアが巧妙化していることを確認しており、2017年2月下旬、サードパーティのアプリストアへと誘導するアプリが Appleの iOS端末向け正規アプリストア「App Store」で配布されている事例を確認しました。アプリは正規アプリを装い、検出を回避していました。このサードパーティのアプリストアで、iOS端末の制限を解除する「Jailbreak(脱獄)」アプリも配布されていました。

問題の不正アプリが誰を対象としているのか、はっきりしていません。アプリは日本語で設計されていますが、アプリから誘導されるアプリストア自体は中国語で運営されていました。また、アプリは複数の国の App Storeで確認されました。

アプリには、「こつこつ家計簿 – 無料のカレンダー家計簿」という日本語名が付けられており、「家計簿アプリ」に分類されます。(注:正規のアプリである「こつこつ家計簿-無料で簡単人気のカレンダー家計簿」とは別のものです。)このアプリは家庭向けファイナンスアプリを偽装していましたが、実際にはサードパーティのアプリストアへ誘導するアプリでした。なお、このアプリは、Appleにより既に App Storeから削除されています。

図1:
図1:App Storeで配布されていた不正アプリ
図2: 図3:
図4:
図2~4:アプリ起動までの過程

図5のコードは、アプリが最初に起動する際、端末のユーザ設定のプロパティリスト(拡張子「plist」)の「PPAASSWOpenKey」キーを確認することを示しています。このキーによって、アプリが以前に実行されたかどうかが判断されます。この場合、まだ実行されていないため、キーが存在しません。アプリは、サードパーティのアプリストアにアクセスする目的でデータを利用する許可を要求するため、else文に切り替えます。iOSにはアクセス許可を確認する機能があるため、ユーザが許可する必要があります(図2)。そして初回の要求が失敗すると、アプリは次に家計簿画面を表示させ、正規のアプリを偽装します(図3)。図3では、アプリが情報をエクスポートするため、データへのアクセスを求めています。

図5:
図5:家計簿の表示に切り替えるコード

アプリが閉じられるか、バックグラウンドに移行していなければ、継続して家計簿が表示されます。しかし、アプリがバックグラウンドに移行すると、もう一度サードパーティのアプリストアへの接続を試みます。今度は成功し、家計簿ではなく、サードパーティのアプリストアが表示されます(図4)。

図6:
図6:サードパーティの App Store表示へ切り替えるコード

サードパーティアプリストアのアプリ作成者は、なぜこのような動作を組み込む必要があったのでしょうか。Appleの正規 App Storeから自身のアプリストアへ誘導することができれば、ユーザからのアクセス促進には最適ですが、Appleの審査を通過するための相当な工作が必要なはずです。

■アプリのインストール
首尾よく App Storeにサードパーティのアプリストアを忍び込ませることができたら、次に、ユーザにアプリをインストールしてもらう必要があります。このため、アプリの作成者は、企業内配布用の証明書で署名されたアプリをインストールさせる際に用いられる一般的な手口を採用しています。

この手口では、アプリのインストールに利用される plistファイルを作成します。図7は、plistファイルの例です。なお、このファイルは、問題のサードパーティのアプリストアが利用する plistファイルとは異なります。

図7:
図7:plistファイルの例

次に、以下のようなリンクが作成されます。

  • itms-services://?action=download-manifest&url=https://{Webサーバアドレス}/install_app.plist.

URLを開くことにより、アプリがインストールされます。Appleの証明書で署名されたアプリの場合、もうひとつの関門があります。アプリは、ユーザの Apple IDで購入されたものでなければなりません。そのため、アプリはユーザの Apple IDを聞き出し、その後購入プロセスが完了します。

図8: 図9:
図10: 図11:
図8~11:アプリのインストールの過程

図12:
図12:plistファイルを作成するコードとインストールURL

図13:
図13:アプリのインストールプロセスを作成するコード

■マルウェアや不正アプリを拡散
このサードパーティのアプリストアによって、App Stpreで配布されているアプリだけでなく、通常は配布されないアプリを配布することも可能になります。そのようなアプリには、マルウェアや、その他の不正/迷惑アプリが含まれている恐れがあります。

例として「PG Client」というアプリがあり、これは iOS端末を脱獄するツールです。以前 App Storeで配布されていましたが、既に削除されています。なお、サードパーティのアプリストアからは引き続きダウンロード可能となっています。

図14:
図14:Jailbreakツール「PG Client」

他の不正アプリでは、「PPHelper(中国語名:PP助手)」というアプリをユーザPCにダウンロードするよう要求される場合がありますが、これも iOS端末用の脱獄ツールです。ユーザはこのアプリを Windows や Mac OS にインストールし、iOS端末を接続するよう促されます。PPHelperは、iOSの「デジタル著作権管理(Digital Rights Management 、DRM)」による保護の一部を実質的に回避し、iTunesとそっくりに機能して端末と通信し、ユーザの認証に関するファイルを取得します。

図15: 図16:
図17:
図15~17:PPHelperへの接続を要求する不正アプリ

図18:
図19:
図18~19:ユーザ端末の認証を要求するコード

■他のアプリを宣伝する
App Storeで配布されていた不正アプリは、上述のものだけではありませんでした。トレンドマイクロは、「爱应用助手」というアプリを確認しました。「LoveApp」と英訳されているこのアプリは、App Storeで配布されている他のアプリを宣伝します。これによって、Appleのアプリ検索に関する規約、または検索広告サービス「Search Ads」を回避することが可能になります。LoveAppの作成者は、Appleの正規の広告サービスを利用することなく自社の商品を宣伝しようとするアプリ開発者から収益を得ます。

開発者が自身のアプリのページを容易に表示させることができるように、iOSにはさまざまな APIが含まれています。LoveAppはこれを利用し、宣伝対象アプリの App Storeのリストへユーザを簡単に誘導します。

図20:
図20:宣伝されるアプリのインストール画面

LoveAppはバックグラウンドに表示され、宣伝されるアプリの App Storeのウィンドウが手前に表示されます。これを実行するコードが図21です。

図21:
図21:App Storeのウィンドウを開くコード

LoveAppにはプライバシーに関わる問題が複数あります。まず、インストール時に、「Identification For Advertisers(広告識別子、IDFA)」等いくつかのユーザ属性をサーバにアップロードします。これは、主にダウンロード数をカウントするために利用されます。

図22:
図22:アップロードされるユーザ属性

さらに、「TalkingData」というサードパーティの「Software Development Kit(ソフトウェア開発キット、SDK)」を利用し、ユーザ動作に関する情報を収集します。

図22:
図23:TalkingDataコール

そして、この SDKは多くの侵略的と言える APIコールを有し、Wi-Fiネットワーク名、実行中のプロセス、IPアドレスなど、ユーザのシステム情報のさまざまな部分を収集する機能が含まれます。ユーザの端末が脱獄されている場合には、SDKはユーザの Apple IDとインストールされているアプリケーション情報も収集します。これは十分に迷惑/不要アプリと判断する理由になります。

図24:
図24:その他の侵略的な APIコール

■被害に合わないためには
ユーザは、サードパーティのアプリストアからアプリをダウンロードすることのないように注意してください。サードパーティのアプリストアで配布されるアプリの安全性を Appleが保証することはできません。サードパーティのアプリストアを利用することによって、マルウェアや不正/迷惑アプリによるセキュリティ上のリスクを負うことになります。企業や組織は、承認されていないアプリストアのブロック、従業員の個人用端末の保護など、リスク軽減対策を導入する必要があります。

トレンドマイクロは本記事公開に先立って、App Storeで確認したこれらの不正/迷惑アプリについて Appleに報告済みです。

この事例に関連する SHA256値および検出名は以下のとおりです。

SHA256値 検出名
212015dbae6e36c703c513f762413ffe
fe5ad58720c22abb696bca94f3b6c14b
IOS_FakeAppStore.A
adcfa3d540f78297dde3dcbf0191271d
8592911d71703ce853b6de622421c1fb
IOS_JailBreakTool.A
c75777079d72c43516adc7bdee4db447
f22bbd25af26c08bcee42f885a820866
IOS_FakeAppStore.A

参考記事:

翻訳:室賀 美和(Core Technology Marketing, TrendLabs)