Android, iPhone等のスマートフォン向けアプリ開発などの話題を中心に、時事ネタなどを気の向くままに書いています。
Home
 

iOSアプリの不正使用対策について




iOSアプリ(iPhone/iPod touch、iPad)もAndroidアプリ同様に不正使用が行われています。
しかし、Androidと比べると情報が少ないのでわかりにくいのですが、確実に不正使用されています。

そこで多くの開発者の方に情報を共有する事を目的に備忘録を兼ねて少しまとめてみたいと思います。
間違いがありましたならばご指摘ください。
なお、以下に記載するのは開発者向けの情報で、悪さをしようとしている人達に情報を与えるつもりは一切ありません。

参照: Androidアプリの不正使用対策

 

– 不正使用の現状 –

iOSアプリの不正使用方法に付いて話す時に触れないといけないのは、Jail Break(脱獄)だと思います。
Jail Breakは、Androidで言うとroot化とほぼ同じだと考えられます。

root化、つまり、特権を取得する事でそれまでに規制されていた様々な事ができる様になります。
例えば、AppleのApp Store以外からアプリを入れられる事です。App Store以外からアプリをい入れられる様になるため、Jail Break端末向けの配布サイト等も存在します。

なお、Jail Breakは米国では合法になっていますが、国内では不明です。

 

– Jail Breakの問題点 –

米国では合法なJail Breakが何が問題なのか?についてですが、AppleのApp Store以外からアプリを入れられる事は既に説明しました。
更に問題なのが、AppleのApp Storeからダウンロードしたアプリファイルを別の端末に入れる事ができてしまう事だと思います。
いわゆる「違法コピー」です。

当然、有料アプリが違法コピーされたら開発者、販売者は困りますね。
ウチもそんな事は絶対にされたくありません。

 

– Jail Breakの現状 –

先日のiOS 6.1.3リリース時に、海外のIT系ニュースサイトに「今までJail Breakツールが使用してきたiOSの脆弱性がiOS 6.1.3では塞がれている。」と記載がありました。
Appleもきちんと対応している様ですが、勿論アップデートしないユーザーには効果はありません。

そして、この該当Jail Breakツールのサイトには、「iOS 6.1.3へのアップデートは待って」的な事が記載されていました。
ちなみに、このツールは、2月に新バージョンを出した所、1週間弱で700万ダウンロードされたそうです。
それだけJail Breakをしている人が多いという事が判断できます。

最近では日本の高校生辺りでもJail Breakしていたりと普通に広まっている様です。
良いのか悪いのか。

勿論、Jail Breakをしている人が皆悪い人ではありませんが、簡単に悪い事が出来てしまう環境を持っている人が大量に居る事には変わりありません。

iOSもAndroidと大差ないという事ですね。
なお、Androidアプリの場合は全ての有料アプリを無料化できるツールが出回っています。その為、きちんとした対策が必要になっています。これらのツールを使うとGoogle Playで使用するLicense Verification Library (LVL)というライセンス管理ライブラリの機能は数秒で回避できてしまいます。
参照: Androidアプリの改造ツールの詳細と手口について(違法コピー天国の現状報告)

 

– その他の不正使用 –

先日、AppleのApp StoreにてiAd(Appleのアプリ内広告)を消すアプリが承認され、公開されました。
すぐに削除された様ですが、Jail Breakをしなくてもアプリ広告(iAd)を消す方法が存在する事がわかってしまいました。
取り敢えず、Jail Breakをしていない端末で同様なアプリを入れられるのは開発者だけではありますが、その様な手口も存在するという事を覚えておくと良いかもしれません。
※なぜ審査が通ったのかについては敢えて触れない様にします(笑)

勿論、Jail Break端末であれば、Android同様に広告を消す方法は通信不可にする、広告の通信するIPを塞ぐなど色々あるかと思います。具体的な方法はここには記載しませんが。

参照: Androidアプリの不正使用対策

ちなみに、Chrome向けの広告を消す拡張機能は1000万以上ダウンロード されている様です。
広告を消す機能の需要はかなりある様ですね。
さらにちなみに、この拡張機能はChrome Webアプリストアでは健在ですが、Androidアプリ版は先日Google Playから強制削除されました。

 

– 不正使用の対策を考慮する –

Jail Breakに関しては対策というか判断はできるのですが、考慮しないといけない点があるかと思います。
まずは、判断方法を見ていきましょう。

既にStackOverflowではJail Breakの判断方法が話されていました。

参照: How do I detect that an SDK app is running on a jailbroken phone?

こちらでは、ほぼ全てのJail Break端末に入っているであろう「Cydia」アプリを見付ける方法が記載されています。
「Cydia」アプリのアプリファイルの存在確認やURLスキームでの呼び出しでJail Break済みかどうかを見ています。

勿論、既に話に出てはいますが、「Cydia」アプリは必須では無い為、以下の代替案も提案されていますね。

  • “/bin/bash”を開けたらJail Break済み。
  •  /Application/Preferences.app/General.plist にアクセスできたらJail Break済み。

– この方法を対策に使用する際の問題点 –

上記方法を対策に使用する際は共通の問題点があります。
それは上でも記載した通り、「Jail Breakをしている人が皆悪い人ではない」という事です。

Jail Breakが判断できてもその該当アプリを違法コピーしているのかは別問題ですし、判断が難しい所だと思います。

 

数ヶ月前、違法コピーアプリと判断した場合に勝手にTwitterにツイートしてしまうアプリがありました。
しかし、正規に購入したユーザーまで違法コピーと判断して勝手にTwitterにツイートしてしまい、大騒ぎになった事がありました。

この事件同様に「Jail Breakが判断できてもアプリが違法コピーされているのかはわからない」という事を考慮しないといけないかと思います。
つまり、きちんと考慮して使用しないといけないという事になります。

 

– Androidアプリの場合はどうしてるの? –

Androidアプリ、特にGoogle PlayではLicense Verification Library (LVL)というライセンス管理ライブラリを使用する事で、アプリ内からライセンスの有無の確認ができる様になります。
アプリが個別にライセンス確認する仕組みです。

しかし、このLVLはオプションというか開発者が使用すれば、使用できるというものなので、「実装が面倒だから」、という理由で使用していないアプリもまだあります。
加えて、このLVLは既に回避方法が複数存在するため、必ずしも安全とは言えませんのでご注意ください。詳しくはこちら(Androidアプリ開発者のための不正使用対策)

 

– 広告削除への対策はどうする? –

iOSアプリにもAndroidアプリ同様に広告を削除する方法は複数あるかと思います。

Jail Break端末であれば、(具体名はここでは書きませんが)設定ファイルを書き換える、広告の通信を遮断する、等様々あるかと思います。

先日、某アプリ紹介サイトで広告の消し方として「フライトモード」に設定すると通信をしなくなるので広告を削除できる、と記載されていて驚きました。
勿論、驚いたのはその方法では無く、「アプリ紹介サイトが開発者を稼がせない方法を記載している事」にです。

それは兎も角、通信を切って広告が通信を出来なくする事はAndroidアプリでもある手口なので、特に驚きませんが、以下の様な場合には注意が必要かと思います。

  • iAdの様に通信不可の場合に広告を非表示にしている場合

通信ができない、または広告が取得できないからと言って広告枠部分を消してしまうと普通にアプリが使える様になってしまう可能性がある事を考慮して置いた方が良いかと思います。

 

ちなみに、Androidアプリの場合はアプリファイル自体を改造するリパッケージングという手口も存在します。
対策はこちら (Androidアプリ開発者のための不正使用対策)

 

– まとめ 

iOSアプリもAndroidアプリ同様に対策方法をきちんと考えていないとAndroidアプリの様に違法コピー天国になってしまう可能性があるかと思います。
既にそうなっている感もありますので、今後はアプリ内からライセンスがあるかどうかを確認する手段、例えばアプリ内課金システムでライセンスの確認する等をしていかないといけないのかも知れません。
iOSアプリの場合、Android、特にGoogle Playと違って15分キャンセル可能という違法コピーの温床になっている仕組みが無いのはまだ救いではありますね。

 

しかし、両プラットフォームに共通しているのは最終手段である「クレジットカードによる支払い拒否」が可能な事だと思います。

Androidアプリでは「散々アプリを使用した後でクレジットカード会社に連絡して支払い拒否」という手口を2年連続同じ日にされた事があります。別人の様ではありますが。
iOSアプリでは今の所ありませんが、それはそもそもクレジットカード払いでは無くプリペイドカード払いが多いから、という事も可能性はあります。

iOSアプリの支払い拒否の場合はAppleが取る3割の手数料分を含めて販売者が返金しないといけないという話もありますね。真偽は不明ですが。
Androidアプリの場合は10ドル以下は無料になった様です。そうなる前に250円のアプリを販売したのに350円払わされた事がありましたが(苦)

 

兎も角、iOSアプリも色々対策をしていかないといけないという事には変わりないですね。

何か有益な情報がありましたならば、メール、Twitterなどでご連絡ください。

2013/03/23 This post was written by Categories: iPhone Tagged with:
No comments yet



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

Top