アプリ内購入の欠陥により、開発者は高額なハッキングの危険にさらされる

アプリ内購入の欠陥により、開発者は高額なハッキングの危険にさらされる

  • Oligur
  • 0
  • vyzf
アプリ内購入の欠陥により、開発者は高額なハッキングの危険にさらされる
  • ニュース
App Storeアイコン
App Storeのビジネスは好調だ。
写真:PhotoAtelier/Flickr

一部の人気 iOS ゲームのずさんなコーディングにより、ハッカーが自分や他のユーザーに何千ドル相当のアプリ内購入を無料で提供できる可能性がある。

この脆弱性は、iPhoneおよびiPadユーザーがデバイスの隠しファイルシステムにアクセスできるようにするバックアップツール「iMazing」を開発するDigiDNAの開発者によって発見されました。開発者らは、iMazing 1.3のアプリのバックアップ/復元機能が、「Angry Birds 2」「Tetris Free」などのゲームのアプリ内購入処理に脆弱性を及ぼしていることを発見しました。

この方法を使用してアプリ内購入をハッキングすることがいかに簡単かを示すために、DigiDNA チームはAngry Birds 2 を改良し、ゲーム開始時に 999,999,999 個の宝石 (ゲーム内クレジット 10,000 ドル相当) を持つようにしました。

Rovioの「Angry Birds 2」は無料でダウンロードできますが、ゲームを進めるには、いわゆる「アプリ内購入」を利用して課金する必要があります。このゲームは発売後1週間で2,000万回以上ダウンロードされました。

この欠陥により、開発者は初回ダウンロード後に収益を生み出すゲーム内アップグレードを利用できなくなる可能性があります。Appleは2014年に開発者に100億ドル以上を支払い、いわゆるアプリ経済はハリウッドよりも大きな規模になりました。

アプリ内課金は、アプリ開発者にとって好まれるビジネスモデルです。多くのアプリは無料でダウンロードできますが、機能のロック解除、次のレベルへの進級、広告の削除にはアプリ内課金が必要です。特にゲーム業界では人気があります。アプリ内課金がなくなると、開発者はコードを保護しないと、理論上は莫大な費用を負担することになりかねません。

「他の多くのアプリも脆弱だ」と、この脆弱性を発見したDigiDNAの共同所有者ジェローム・ベダ氏は語った。

1万ドル相当のアングリーバードの宝石はこんな感じ
アングリーバード2のジェム1万ドル分はこんな感じ。
写真:iMazing

このハッキングは、XcodeGhostの暴露を受けて起こった。この暴露では、数十のアプリがマルウェアに汚染されていたことが明らかになったが、その中にはRovioにとっては残念なことにAngry Birds 2の中国版も含まれていた。

この脆弱性は、DigiDNAの共同所有者であるグレゴリオ・ザノン氏がiMazingバックアップツールの新バージョンをテスト中に発見しました。彼は、Angry Birds 2Tetris Freeといった人気ゲームのバックアップが、アプリ内購入を含め、あるApple IDから別のApple IDに転送できることを発見しました。

Zanon は IAP に依存する 5 つのアプリ ( Angry Birds 2Temple Run 2Tetris FreeCandy CrushClash of Clans ) をテストし、その結果を DigiDNA のブログに投稿しました。

この脆弱性についてAppleを責めないでください

DigiDNAは、この脆弱性はAppleの責任ではないと述べている。問題は、Zanon氏が「怠惰なコーディング」と呼ぶアプリ開発者の手口にある。侵害を受けたアプリの開発者は、購入済みアイテムをバックアップから除外するというAppleの推奨に従っていない。影響を受けるアプリは、購入済みアイテムをアプリのサンドボックスに保存しており、バックアップからアクセスできる。

以前は、ハッキングされたデータを含むiOSバックアップを編集・復元することで、アプリ内購入の脆弱性を悪用される可能性がありました。しかし、このような完全な復元には時間がかかるため、多くの人がこの脆弱性を悪用しなかったのでしょう。iMazingなどの新しいバックアップツールは、完全なバックアップの手間を省き、ハッキングされたアプリ内購入を簡単にエクスポートして共有できます。

ユーザーが自分のデバイスで「無料」のアプリ内購入を取得するには、iMazingを開いてアプリファイルをデバイスに復元するだけで済みます。これにはわずか1分しかかかりません。この脆弱性により、ハッカーがアプリのコード自体を操作することはできませんが、他人が購入したアプリをデバイス上で入手することは非常に容易になります。

アプリの脆弱性は2つの点で存在します。一つは、購入の譲渡とゲーム内通貨の調整です。後者は最悪のシナリオであり、バックアップ内の暗号化されていないファイルを編集することで、ゲーム内通貨を非常に高いレベルで操作することが可能です。ユーザーはアプリのバックアップを作成し、パッチ(.imazingappファイル形式)をオンラインで共有できます。

「一人のユーザーがIAPを購入すれば、そのアプリの状態を他の無限のユーザーに伝えることができます」とザノン氏は述べた。「一人が購入すれば、多くの人が楽しむのです。」

Cult of Macがこの脆弱性について問い合わせたAppleの担当者はコメントを拒否した。RovioとElectronic Artsもコメント要請にまだ応じていない。

ザノン氏とその同僚はほんの数個のアプリをテストしただけでしたが、約半数に脆弱性があることを発見しました。彼らは、この問題は広範囲に及んでおり、数千ものアプリがこの欠陥の影響を受ける可能性があると考えています。

「私たちの立場は明確です」とザノン氏は述べた。「ユーザーにアプリ内課金(IAP)をハッキングしてほしくはありません。開発者の怠慢に気づいただけで、公表したのは主にiMazingがハッキングと関連付けられることを避けたいからです。声を上げなければ、いずれこのニュースが漏れ、私たちの評判を傷つけてしまうかもしれません。つまり、iOS 9でアプリのバックアップ/復元を可能にする最初のソフトウェアになれたことは大変喜ばしいことですが、この素晴らしい機能が海賊行為と関連付けられるのは絶対に避けたいのです。」

Zanon 氏と Bédat 氏は、開発者に対し、アプリ内購入を処理するコードを見直すよう強く勧めました。

「脆弱なコードにパッチを当てるには、開発者は数時間しかかからないはずだ」とベダット氏は言う。