AppleはApp Storeで公開されるアプリに対してレビューを実施し、厳しい審査を行っています。
とはいえ、先日はiOS向けの海賊版ストリーミングアプリがApp Storeで承認されていることが見つかるなど、Appleのレビューも万全ではないようです。9to5Macは今回、この問題を掘り下げ、これらのアプリがAppleを騙すためにどのようなテクニックを使っているのかを詳細に分析しています。
この記事によると、先月、"Collect Cards"というアプリが、一部の国でApp Storeの最もダウンロードされた無料アプリとなりました。Appleはアプリを削除したものの、同じアプリの多くのバリエーションが後からApp Storeでリリースされたとのことです。
最初のレポートでは、これらのアプリはジオフェンス(位置情報の偽装)を実装して、実際の機能を隠し、Appleのレビュアーを騙していると考えられていましたが、アプリのコードを分析することで、どのようにしてこのようなことが行われているのか、よりよくわかるようになったそうです。
分析によると、これらのアプリは同じコードベースを共有していて、JavaScriptベースのクロスプラットフォーム・フレームワークであるReact Nativeで構築されており、開発者がApp Storeに新しいビルドを送信することなくアプリの一部を更新できるマイクロソフトのCodePush SDKを使用していたそうです。
React Nativeアプリを開発し、CodePushを使用することは、App Storeのルールに反しているわけではありません。実際、この機能を活用している人気のアプリはたくさんありますが、悪意のある開発者は、App Storeの審査を回避するためにこれらの技術を利用しているのです。
9to5Macが分析したアプリの1つは、複数の海賊版ストリーミングアプリのファイルを提供していると思われるGitHubリポジトリを指していて、このアプリはまた、IPアドレスに基づいてデバイスの位置を確認するために特定のAPIを使用しているそうです。
アプリが初めて開かれると、ジオロケーションAPIを呼び出すために数秒待機します。こうすることで、App Storeの自動審査プロセスではアプリのコードに異常は見られません。カリフォルニア州サンノゼに位置情報を偽装すると、アプリは隠されたインターフェイスを表示せず、Appleがアプリの基本機能を承認した後、開発者はCodePushを使ってアプリを好きなようにアップデートします。そして、アプリは "安全な"場所で本当のインターフェイスを公開します。
9to5Macは位置情報を悪用するアプリに対し、Appleが他の場所で動作をチェックすることで問題に対処することができると指摘しています。