开发者对用户负责。今天,不需要很多人或经过大量审查就可以直接接触到这么多用户,这在人类历史上从未发生过。集中发布是我们500多年来一直在做的事情,但它必须经过几十个人才能到达数百万用户。这些人包括评审员、验证员、编辑和调查员。如今,一个小团队,甚至一个开发人员,都可以在几天内涉足数百万人的个人生活。大多数时候,这种强大的力量对每个人都有好处,但我们越来越多地看到开发人员误入歧途。大多数用户没有足够的技术知识来理解开发者的设计,即使是有技术背景的人通常也不愿意费心。在发表这篇文章之前,我联系了QuizUp-PlainVanilla的开发者。我告诉他们我发现了一些安全问题并愿意以任何方式提供帮助。自发布以来已经好几天了,他们没有向我询问详细信息或以任何方式回复我。有关详细信息,请参阅本文末尾。最近iOS平台上的一款游戏很火,安装量甚至远超一开始的Instagram和Snapchat。经常关注AppStore的人可能已经注意到一款名为“QuizUp”的游戏正在席卷移动平台。当我注意到它使用的搜索词之一恰好是我开发的一款名为“Trivium”的热门游戏的名称时,我找到了这款游戏。我下载并尝试了这个游戏。虽然游戏还不错,但总感觉有些东西与它应该做的不太一样。开发人员有一种本能的好奇心,尤其是对技术,这驱使我不断探索。接下来发生的事情让我感到惊讶,然后让我震惊。QuizUp定位为社交网络问答游戏。您需要在运行前使用电子邮件或Facebook帐户注册。进入游戏后,玩家将与另一名玩家进行匹配,然后在线互相提问7轮问题。问题类别多达250种。我自己编写了一款非常流行的问答游戏,拥有数十万用户。令我惊奇的是,他们可以实时提供250个类别的问题。无论是从技术角度还是球员角度,都非常了不起。但实际上,这只能算是一个取巧之计。随着我继续研究QuizUp的逻辑,我有了更多令人惊讶的发现。自AppStore运营以来,已经发生多起侵犯iOS隐私的事件,包括Path被联邦政府罚款80万,加州起诉达美航空公司移动应用隐私曝光等。话虽如此,您可能觉得开发人员应该关心用户个人数据的隐私。另一方面,QuizUp完全无视隐私。在大多数情况下,侵犯隐私只不过是信息以纯文本形式存储而其他人获得访问权限。而QuizUp就是将另一个用户的个人信息以明文形式传递给你的iphone或iPodtouch。这些信息包括但不限于:全名、Facebook帐户、电子邮件地址、照片、性别、生日甚至用户的当前位置。我设法获得了我遇到的数百人的个人信息。我们的联系不过是QuizUp。当然,这些人也能得到我的信息。需要提醒的是,这些人并没有在软件中加为好友,他们只是陌生人。我不打算解释如何读取这些数据,因为我不想写解释如何获取数百万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":"UnitedStates","region_code":"FL","region_name":"Florida"},"name":"MattP*******","picture_urls":{[*EDITORNOTE:EXIFintactavatarswhichmayshowGPSlocationwheretheyweretaken*]"large":"https://img.ydisp.cn/news/20220914/jo0ooqridnn.","mini":"https://img.ydisp.cn/news/20220914/fta0zkl32gz.","原创":"https://fbcdn-profile-a.akamaihd.net/******988956887_n.jpg","square":"https://img.ydisp.cn/news/20220914/sfmkq4i15jb.","wallpaper/large":"https://img.ydisp.cn/news/20220914/h31gbpk1atv.","wallpaper/original":"https://fbcdn-sphotos-b-a.akamaihd.net/*******629378032_n.jpg"},"platform":"iOS","team_member":false,"title":"Golden","twitter":null}QuizUp上有一个“朋友”栏,您可以在其中提供联系人发送短信邀请他们下载游戏。这本来是个不错的功能。但是为了使用这个功能,QuizUp需要访问您的地址簿。一旦您允许它访问,所有联系人都会收到电子邮件,并且它仍然是明文发送到QuizUp的服务器,你可能以为我只是通过短信手动邀请一对一,但是后台是发送联系方式的,这也是违法的,罚款的“Path”是One财产。随着调查的深入,我发现了数百个小问题,这是不可或缺的安全研究人员的协助,他们也对这个问题感兴趣。这些问题包括明文传输密码,搞乱推特联系人等等,我就不一一列举了。我自认为是一个有职业道德的开发者。客户经常要求我们公司开发iOS应用程序并配置服务器。在此过程中,我们总是提出对安全和隐私的担忧。但是一般没有人收养我们。但我将始终抵制生成虚假评论和收集用户数据。大多数开发者都有这个道德底线,至少我希望如此。通过调查,我发现这款游戏不仅暴露了用户的隐私,而且还故意违反安全策略的最佳实践,意图欺骗用户。QuizUp声称在推广时会提供实时社交游戏体验。他们一直在他们的网站和新闻稿上强调实时性。不幸的是,这个实时是一个非常虚假的实时。#p#开始游戏后,在回答问题之前会生成另一个玩家的答案。基于此我可以推断,至少在某些情况下,你只是在玩弄对方的上次会话。当没有其他玩家可以匹配时,他们似乎还会创建虚拟玩家进行匹配。虽然很难弄清楚确切的网络通信,但可以肯定地说,他们付出了很多努力,试图让单人游戏看起来像在线游戏。"234092424316998311":{"answers":{"129970":{"answer_id":"520575","answer_time":0.39787783333332527},"130141":{"answer_id":"521261","answer_time":2.97160"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.404114291666}013谢谢其他安全漏洞,我可以实时看到每个类别的游戏当前玩家数。在空荡荡的房间里找匹配,居然可以在几秒内匹配到玩家。这再次证明,他们所说的实时在线游戏至少部分具有欺骗性。我当然没有确切的方法来检验我的观点。没有安全和隐私还好,游戏作弊也是小菜一碟。每轮游戏开始时,所有问题的答案都已经揭晓。您可以轻松修改思考问题和回答问题的时间。一个简单的测验表明您可以修改答案、分数和排名。花几个小时轻松击败程序并成为每个类别的顶级玩家。这款游戏如我所料使用了Flurry进行分析。所有与Flurry的交互数据都是安全的。虽然开发者可以获得Flurry代币,但对我和玩家来说都不是问题。更大的问题是Facebooktoken可以直接获取明文。请阅读下文(部分内容再次被屏蔽)。如果你有一些额外的技术背景,你可以在没有用户许可的情况下直接发布。不过,我对Facebook的了解有限,这个任务留给其他人去探索。{“app_version”:“1.0.2”,“device_token”:“产品生产:6b650a251a6b29bcb0b5ae66f028e2c75da1b43e466cbe****************”,“install_uuid”:“7901450C-C2DA-4C42-97EA-*************","app_id":"quizup","device_type":"iPodTouchFifthGeneration","platform":"ios","access_token":"CAAD2XpLDyg8BACHXXCveTWfhU7wh1fX4oZCMqraR2s6UfFfQ3wVcSnRqZCTWrUz5yTb1B6NZAcX83Be8wjIPAI9EDJbD0BNPW5rCfYIZB44cAAZAGT6rJvIKrh5d6IzB8S9wFgc8wQIhPH95kwUxktJBK1A8NzgajIONrr7pjrtK87hZAh4P*********************************”}我已经确认了至少两个实例,我朋友的Facebook信息被QuizUp直接以明文形式存储在NSUserDefaults中,他们甚至有些没有使用这个程序。我不怎么用facebook所以不太方便考这种题。尽管QuizUp也对所有网络连接使用https,但它们发送回设备的数据直接是人类可读的文本,并且数据本质上是敏感的。大量数据根本无法使用。例如,我没有任何理由需要知道对方玩家的电子邮件地址。最令人震惊的是这些风险投资公司,其中有许多是大型知名公司。我的问题是,他们是认真审查了这家公司,还是根本不在乎。我不知道这两个哪个更严重。一家公司不用在技术和研发上投入那么多钱也能赚到这么多钱。这是泡沫现象吗?QuizUp还违反了Apple的许多审查原则,因此它本可以一开始就拒绝合作。比如6.2和6.3章节针对的是GameCenterID的隐私问题,这次QuizUp也不是故意的。QuizUp还违反了Apple强制执行的隐私条款,Apple通常不会容忍违反这些条款的行为。17.1和17.2明显违反,17.4也有嫌疑。Apple很难监控这些行为。当然,这不能怪苹果。毕竟每天都有大量的软件进出系统。事实上,他们可以对无视这些条款的开发商进行重罚,但问题是,这些处罚对后来的开发商有震慑作用吗?用户相信开发者不会乱来,他们不会意识到我们在这里讨论的问题。我们的公司和我们的员工竭尽全力确保我们站在用户一边。偷工减料或开快车以降低成本最终只会损害开发商的信誉。令我失望的是,如今一些开发人员已经放弃了他们的道德底线,选择浑水摸鱼。我相信,如果你让世界变得更美好,即使付出一点点努力,你也会睡得更好。在准备这篇文章的过程中,我咨询了移动安全领域的专家NickAmott,他帮助我验证、调查和研究了这个问题。我试图验证我所有的结论,但没有源代码我不能绝对肯定,尤其是那些与实时匹配和游戏机制相关的。希望外面的安全界关注和研究有价值的问题。11月25日更新:QuizUp在TechCrunch上回答了这些问题。我坚持我的意见,再次呼吁第三方安全研究专家进行调查。为了保护QuizUp用户,我的文章不会公开发表。但如果有媒体或研究人员联系我,我会提供。我也很乐意发布我之前发送给他们但他们声称从未收到过的电子邮件。他们说已经修复了一些安全漏洞,所有重现我所说的问题的尝试都取决于这些问题是否被修复。11月25日第二次更新:一个自称是QuizUp程序员的“Jokull”在HackerNews上说,我们有极小的可能性找不到其他玩家,而玩家最终会和机器人。但是我们选择最大化用户体验。这也证明了我之前不确定的事情。回答一些读者的问题:到目前为止,他们还没有问我发现的问题和解决问题的建议。更新11/26:PlainVanilla的高管联系了我。他们正在积极尝试修复我发现的错误。这需要时间和精力,但我认为这是一个比较好的结果。我也会为读者提供后续进展。他们立即修复了服务器端的信息泄露漏洞,客户端将不再发送对方玩家的敏感数据。我希望这个教训能提醒创业公司在冲向市场之前更多地考虑用户隐私。原文链接:KyleRichter译文:伯乐在线-梧桐译文链接:http://blog.jobbole.com/52258/