blog

QuizUpゲーム、ユーザーのプライバシーを漏えいする

この記事を公開する前に、私はQuizUpの開発者であるPlain Vanillaに連絡を取り、セキュリティ上の懸念を発見したことを伝え、できる限りの協力を申し出ました。公開時点で数日が経過していますが...

Oct 27, 2014 · 12 min. read
シェア

開発者はユーザーに対して責任があります。多くの人を介さず、多くの精査を経ずに、これほど多くのユーザーに直接リーチすることは、人類の歴史上不可能でした。中央集権的な出版が500年以上行われてきたのは事実ですが、何百万人ものユーザーに届けるためには、何十人もの人々がそれを通さなければなりません。 批評家、検証者、編集者、調査員などです。今日では、非常に小さなチーム、あるいは一人の開発者でも、数日のうちに何百万人もの人々の私生活を読み解くことができます。ほとんどの場合、この力は誰にとっても有益ですが、開発者が道を踏み外すのを目にすることがますます多くなっています。ほとんどのユーザーは、開発者の設計を理解するのに十分な技術的知識を持っていませんし、技術的なバックグラウンドを持っている人でさえ、通常はそのような手間をかけたくありません。

私はこの記事を公開したときに、私はいくつかのセキュリティ上の懸念を発見し、私ができる限りの支援を提供したことを伝え、QuizUpの開発者であるプレインバニラにお照会ください。公開時点で数日が経過していますが、彼らは詳細を尋ねたり、どのような方法で私に応答していません。この件に関する詳細は、この記事の最後をご覧ください。

最近iOSで大ヒットしているゲームがあります。InstagramやSnapchatをも凌ぐインストール数で、App Storeの常連さんならお気づきかもしれませんが、「QuizUp」というゲームでモバイルプラットフォームを席巻しています。私がこのゲームを発見したのは、私が開発した人気トリビアゲーム「Trivium」の名前と同じ検索キーワードが使われていることに気づいたからです。ダウンロードして試してみました。ゲームは良かったのですが、何かしっくりこなかったのです。開発者には本能的な好奇心、特にテクノロジーに対する好奇心があり、それが私をさらに探求へと導きました。次に見つけたものは、まず私を驚かせ、そしてショックを与えました。

QuizUpは、ソーシャルネットワーキングクイズゲームとして位置づけられています。ゲームを始める前に、EメールかFacebookのアカウントで登録する必要があります。ゲームに入ると、プレイヤーは他のプレイヤーとマッチングされ、その後、質問の7ラウンドのためにオンラインでお互いをクイズ。クイズのカテゴリーは250まであります。私自身、何十万人ものユーザーを持つ非常に人気のあるクイズゲームを書いたことがあります。私が驚いたのは、リアルタイムで250のカテゴリーの問題を提供できたことです。技術的な観点からも、プレイヤーの観点からも素晴らしいことです。しかし、実はこれはトリッキーな戦略としか考えられません。QuizUpのロジックを研究し続けると、さらに驚くべき発見がありました。

App Storeが運営されて以来、Pathが連邦政府から80万ドルの罰金を科せられたり、カリフォルニア州がモバイルアプリのプライバシー侵害でデルタ航空を訴えたりと、iOSのプライバシーに関する条約違反がいくつかありました。そうは言っても、開発者はユーザーの個人情報のプライバシーに気を配るべきだという感覚を持つかもしれません。しかし、QuizUpはプライバシーを完全に無視しています。ほとんどの場合、プライバシー侵害とは、情報が平文で保存され、他人がそれにアクセスすることにほかなりません。QuizUpの場合、他のユーザーの個人情報が平文でiPhoneやiPod touchに送信されています。これには、フルネーム、Facebookアカウント、メールアドレス、写真、性別、誕生日、さらにはユーザーの現在地までが含まれますが、これらに限定されません。私がこれまでに出会った人々のうち、数百人の個人情報を入手することができました。

このデータの読み方を説明するつもりはありません。何百万人ものiOSユーザーの個人情報を入手する方法の説明を書きたくないからです。しかし、これは新人でも15分もあればできることです。この情報は、現実に人の居場所を特定するのに十分です。ベテランのインターネットユーザーなら、この種の「ストーカー」行為が少数派ではなく、ごく一般的なものであることを知っているかもしれません。プライバシー保護のため、もちろん編集してありますが、実際のユーザーデータのほんの一部を提供します。このデータは、ゲーム中にQuizUpから私の携帯電話に送信されたものです。ゲームをプレイした場合、プライバシーは他のユーザーに公開されます。

"player": {  
            "banner_slugs": [],  
            "banners": [],  
            "bio": null,  
            "birthday": null,  
            "coordinates": null,  
            "email": "p***********@aol.com",  
            "followers": [],  
            "following": [],  
            "gender": "male",  
            "has_email_login": false,  
            "id": "2****************6",  
            "is_ghost": false,  
            "location": {  
              "city_name": null,  
              "country_code": "US",  
              "country_name": "United States",  
              "region_code": "FL",  
              "region_name": "Florida" 
            },  
            "name": "Matt P*******",  
            "picture_urls": {  
              [*EDITOR NOTE: EXIF intact avatars which may show GPS location where they were taken*]  
              "large": "http://....com/players/*********/.jpg",  
              "mini": "http://....com/players/**********/.jpg",  
              "original": "https://fbcdn-profile-..net/*******988956887_.jpg",  
              "square": "http://....com/players/*******/.jpg",  
              "wallpaper/large": "http://....com/players/********/.jpg",  
              "wallpaper/original": "https://fbcdn-sphotos-b-..net/*******629378032_.jpg" 
            },  
            "platform": "iOS",  
            "team_member": false,  
            "title": "Golden",  
            "twitter": null 
          } 

QuizUpは、 "友達 "のセクションを持っています。あなたはあなたの連絡先にゲームをダウンロードするように招待するテキストメッセージを送信することができます。これは素晴らしい機能です。しかし、この機能を使用するには、QuizUpは、アドレス帳へのアクセスが必要です。アクセスを許可すると、すべての連絡先にメールが届き、やはりQuizUpのサーバーにクリアテキストで送信されます。SMSで1対1を手動で招待しているだけだと思うかもしれませんが、バックグラウンドで連絡先情報を送信しているのです。これも法律違反で、罰金を取られた「パス」と同じです。

調査が進むにつれて、私は何百もの小さな問題を見つけました。これらの問題には、パスワードを平文で送信したり、ツイッターの連絡先をめちゃくちゃにしたり、挙げればきりがありません。

私は自分のことを倫理的な開発者だと思っています。クライアントは、iOSアプリの開発だけでなく、サーバーの設定も企業に依頼することがよくあります。その過程でセキュリティやプライバシーに関する懸念は常に指摘されますが、一般的には取り上げられることはありません。しかし、私は偽のレビューを作成したり、ユーザーデータを収集したりすることには常に抵抗します。ほとんどの開発者はこのような倫理的なボトムラインを持っています。

私の調査を通じて、このゲームはユーザーのプライバシーを暴露するだけでなく、意図的にセキュリティポリシーの面でベストプラクティスに違反し、意図的にユーザーを欺くことがわかりました。QuizUpは、リアルタイムのソーシャルゲーム体験を提供すると主張することによって自分自身を推進しています。彼らは彼らのウェブサイト上で、プレスリリースですべての時間をリアルタイムに強調しています。残念ながら、このリアルタイムは非常に偽のリアルタイムです。

#p#

ゲーム開始後、質問に答える前に相手プレイヤーの答えが生成されます。このことから、少なくともいくつかのケースでは、相手との最後のゲームセッションを楽しませているだけだと推測できます。また、マッチングに使用する他のプレーヤーがいない場合、マッチングするためにいくつかの仮想プレーヤーを作成するようです。ネットワーク通信がどうなっているのか正確に把握するのは難しいですが、一人用のゲームをオンラインゲームのように見せるために、かなり力を入れていると考えていいでしょう。

"234092424316998311": {  
          "answers": {  
            "129970": {  
              "answer_id": "520575",  
              "answer_time": 0.39787783333332527  
            },  
            "130141": {  
              "answer_id": "521261",  
              "answer_time": 2.3160219166666707  
            },  
            "130145": {  
              "answer_id": "521277",  
              "answer_time": 2.704801374999988  
            },  
            "130210": {  
              "answer_id": "521538",  
              "answer_time": 1.2145604166667  
            },  
            "130234": {  
              "answer_id": "521631",  
              "answer_time": 1.4425444999999968  
            },  
            "130315": {  
              "answer_id": "521955",  
              "answer_time": 3.067427958333326  
            },  
            "130332": {  
              "answer_id": "522026",  
              "answer_time": 0.4041142916667013  
            }  
          } 

セキュリティーもプライバシーもないゲームですから、カンニングなんて朝飯前です。各ラウンドの開始時には、すべての問題の答えがすでに出ています。問題を考えて答えるまでの時間は簡単に変更できます。簡単なテストで、答え、スコア、ランキングを変更できることがわかります。数時間あれば、簡単にプログラムを破り、各カテゴリーのトッププレイヤーになることができます。

このゲームは、当然のことながら、分析にFlurryを使用しています。Flurryとのやりとりのデータはすべて安全です。開発者はFlurryトークンにアクセスできますが、プレイヤーだけでなく私にとっても問題ではありません。より大きな問題は、Facebookのトークンがプレーンテキストに直接アクセスできることです。 続きを読むもしあなたが技術的なバックグラウンドを持っているなら

ユーザーの承認を必要とせずにコンテンツを直接公開することは可能です。しかし、私のフェイスブックに関する知識は限られているので、このタスクは他の人に任せることにします。

{  
    "app_version":"1.0.2",  
    "device_token":"prod-production:6b650a251a6b29bcb0b5ae66f028e2c75da1b43e466cbe****************",  
    "install_uuid":"7901450C-C2DA-4C42-97EA-*************",  
    "app_id":"quizup",  
    "device_type":"iPod Touch Fifth Generation",  
    "platform":"ios",  
    "access_token":"CAAD2XpLDyg8BACHXXCveTWfhU7wh1fX4oZCMqraR2s6UfFfQ3wVcSnRqZCTWrUz5yTb1B6NZAcX83Be8wjIPAI9EDJbD0BNPW5rCfYIZB44cAAZAGT6rJvIKrh5d6IzB8S9wFgc8wQIhPH95kwUxktJBK1A8NzgajIONrr7pjrtK87hZAh4P*****************************" 
} 

友人のFacebook情報がQuizUpのNSUserDefaultsに直接平文で保存されているのを少なくとも2件確認しました。私はあまりFacebookを使用していないので、この種の問題を自由にテストすることはできません。

QuizUpもhttpsを使用してすべてのネットワーク接続を開始しますが、QuizUpがデバイスに送り返すデータは読み取り可能なテキストであり、そのデータは本質的にセンシティブです。このデータの多くは、使用される可能性はありません。例えば、相手のメールアドレスを知る必要はありません。

QuizUpはまた、Appleの検閲の原則に数多く違反しています。例えば、6.2項と6.3項はGame Centre IDのプライバシーを扱っていますが、QuizUpはこれにも対処しておらず、QuizUpはAppleのプライバシーポリシーにも違反しています。Appleがこれらの行動を監視するのは難しいですし、Appleを責めることはできません。これらの条項を無視した開発者に重い罰金を課すことは実際に可能ですが、問題はその罰則が背後にいる開発者に抑止効果をもたらすかどうかです。

ユーザーは開発者を信頼しているので、ここで議論されているような問題には気づきません。会社だけでなく従業員も、ユーザーの味方であることを保証するために多大な努力をしています。コスト削減のために近道をしたり、急いだりすることは、結局開発者の信頼を損なうだけです。私は、モラルを捨ててお茶を濁すことを優先する現在の開発者たちに失望しています。たとえわずかな貢献であっても、世界をより良い場所にするのであれば、きっとよく眠れるに違いありません。

この記事の準備のために、私はモバイルセキュリティの専門家であるニック・アモットに相談し、問題の検証、調査、研究を手伝ってもらいました。私はすべての結論を検証しようとしましたが、ソースコードがないため、特にリアルタイムのマッチメイキングとゲームの仕組みに関するものについては、完全に確信することはできません。セキュリティ分野のコミュニティがこの貴重な問題に注目し、調査してくれることを願っています。

彼らはセキュリティホールのいくつかを修正したと言っていますが、私が話しているすべての問題は、それが修正されるかどうかにかかっています。

2回目の更新、11月25日:QuizUpのプログラマーだという「Jokull」という人がHacker Newsで、対戦相手が見つからない可能性は非常に低く、プレイヤーはボットと対戦することになるが、ユーザー体験を最大化するために選択したと述べています。 これはまた、私があまり確信していなかったことを証明しています。何人かの読者の質問に答えますと、私が見つけた問題や、それを修正するための提案について、今のところ聞かれたことはありません。

Read next

リモートブートコマンド リモート支援の最も簡単な方法

ケース:私は自宅の個人的なコンピュータのリモート接続オフィスのリモート操作のためのコンピュータです。\n\n\nステップ2:ユニットコンピュータの制御端にネットワークの人々のリモート制御ソフトウェアの旗艦版をインストールし、制御端と同じアカウントを使用してログインします;\n\nステップ3:セットアップするコンピュータの制御端に:"実行オプション" - "に

Oct 26, 2014 · 2 min read