

先日、iOS向けの複数の海賊版ストリーミングアプリが審査プロセスを巧みに欺き、App Storeで承認されていたことを報じました。開発者が用いた手法の一部については簡単に触れましたが、9to5Macは今回、これらのアプリがAppleを欺くためにどのように設計されているかを詳細に調査しました。
開発者がApp Storeの審査を回避するために使用するテクニック
先月、「Collect Cards(カードを集める)」というアプリが、一部の国でApp Storeの無料アプリダウンロードランキングのトップに躍り出ました。私たちのレポート後、Appleはこのアプリを削除しましたが、その後、同じアプリの多くのバージョンがApp Storeでリリースされました。しかし、開発者は一体どのようにしてApp Storeの審査チームを欺くことができるのでしょうか?
当初のレポートでは、これらのアプリはジオフェンスを利用して、Appleの担当者がアプリの実際の機能を把握できないようにしていると説明しました。しかし、これらのアプリのコードを分析することで、これがどのように行われているのか、より深く理解できるようになりました。
ご想像の通り、これらのアプリは、異なる開発者アカウントによって配布されているにもかかわらず、同じコードベースを共有しています。JavaScriptベースのクロスプラットフォームフレームワークであるReact Native上に構築されており、MicrosoftのCodePush SDKを使用しているため、開発者はApp Storeに新しいビルドを送信することなく、アプリの一部を更新できます。
React Nativeアプリの開発とCodePushの使用は、App Storeのルールに違反していません。実際、多くの人気アプリがCodePushを使用しています。しかし、悪意のある開発者はこれらの技術を悪用してApp Storeの審査を回避しています。
9to5Macが分析したアプリの1つは、複数の海賊版ストリーミングアプリ用のファイルを提供していると思われるGitHubリポジトリを指し示しています。このアプリは、IPアドレスに基づいてデバイスの位置情報を確認するために特定のAPIも使用しています。国、地域、都市、さらには推定経度と緯度などのデータを返します。
アプリを初めて起動すると、位置情報APIを呼び出すまで数秒待機します。これにより、App Storeの自動審査プロセスでアプリのコードに異常が発見されることはありません。また、プロキシ経由でアプリを実行し、位置情報をカリフォルニア州サンノゼに偽装することで、アプリの動作を確認しました。この位置情報では、アプリは隠しインターフェースを表示しません。

Appleがアプリの基本機能を承認した後、開発者はCodePushを使ってアプリを好きなようにアップデートできます。すると、アプリは「安全な」場所に本来のインターフェースを公開します。
Apple はこれに対して何ができるでしょうか?
もちろん、Appleもレビューシステムを欺こうとするアプリから逃れることはできません。しかし、他の場所でのアプリの動作を確認するための追加テストを実施することで、改善の余地はあります。同時に、Appleは詐欺アプリをより積極的に発見し、App Storeから削除すべきです。
2017年、UberはクパチーノにあるApple本社の「ジオフェンス」を構築していると非難されました。このジオフェンス内でUberアプリを実行すると、Web上でユーザーの指紋認証や追跡に使用されるコードが自動的に無効化されました。しかしながら、Appleはこのような事態を防ぐために十分な対策を講じていないようです。
2021年の文書によると、App Storeレビューチームは500人以上の専門家を擁し、毎週10万件以上のアプリをレビューしています。それでもなお、ほとんどのアプリは手動レビュープロセスに進む前に、App Storeガイドラインに違反していないかを確認する自動レビュープロセスを経ています。
記事の公開後、Appleの広報担当者は9to5Macに対し、これらのアプリはApp Storeから削除されたと語ったが、同様のアプリが承認されないようにするための同社の対策については詳細は明らかにされていない。
havebin.com を Google ニュース フィードに追加します。
FTC: 収益を生み出す自動アフィリエイトリンクを使用しています。詳細はこちら。