欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

精灵宝可梦go游戏可能存在风险 软件需要google账号完整权限

程序员文章站 2022-03-01 21:47:21
《Pokémon Go》是任天堂 Pokémon(中译名口袋妖怪、宠物小精灵、精灵宝可梦)系列目前最火的游戏,可是这款游戏在国外网友眼中手机上要的权限未免过大了,我想这篇文章你看完,可能... 16-07-12...

《pokémon go》是任天堂 pokémon(中译名口袋妖怪、宠物小精灵、精灵宝可梦)系列的最新游戏,由 niantic labs 联合开发,也是第一款 pokémon 手游。不需多说,看到这篇文章的你,多半正在玩或者已经下载好了游戏。可是这款游戏在国外网友眼中手机上要的权限未免过大了,我想这篇文章你看完,可能会想,这在中国的应用市场根本不算什么,要权限算什么?一起来看看权限在手机上能干什么。

国外玩家发现,《 pokémon go》存在严重的账户安全风险。

游戏提供两种登陆方式:google 或 pokémon 训练师俱乐部(pokemon.com)。在欧美几乎人人都有 google 账户,而之前 pokemon.com 由于技术故障无法接受新用户注册,因而大部分玩家都在用 google 账户登陆。

国外玩家 adam revee 注意到,使用 google 账户登陆之后,《pokémon go》直接获取了 google 账户的“完整账户权限”(full access)。adam revee 在自己的博客上记录了这一发现,被 twitter 上的数据安全大号@swiftonsecurity 转发,引起了安全界的广泛关注。

我在手机上检查了自己的账户,发现《pokémon go》的确标记为拥有整账户权限,相同待遇的只有 chrome 浏览器。

精灵宝可梦go游戏可能存在风险 软件需要google账号完整权限

为了重现这个事件,我打开游戏,抓了附近的两只小精灵,等完服务器同步(存盘)的过程,然后打开菜单,注销(sign out)自己的账号,退出游戏。接下来,我点击上面的 remove 按钮撤销了“pokemon go release”的权限。

然后我重新打开游戏,并使用 google 账户登陆。更严重的问题出现了:输入 google 账户→输入密码并确认后,直接进入了游戏的读取界面,并没有弹出一个权限确认的菜单。

精灵宝可梦go游戏可能存在风险 软件需要google账号完整权限

一般来说,使用 google 账户登陆的第三方服务,在输入账号密码之后会出现下图这样的界面,要求你确认第三方服务可使用的权限。

精灵宝可梦go游戏可能存在风险 软件需要google账号完整权限

以 medium 和 soundcloud 举例,前者获取了“电子邮件地址”和“基本资料信息”,后者仅需要“离线使用”权限。这些权限都需要确认允许才可以获取到。

我尝试了一下撤销权限还能不能玩游戏,情况很复杂。有时候能玩,但游戏地图道路读取不出来,只有飘在空中的 pokéstop 和道场;有时候干脆无法加载游戏,或者显示服务器故障。

为什么不让用户确认权限?@swiftonsecurity 指出,登陆界面的确系 google 的 oauth 界面,如假包换。但问题在于 niantic labs 可能设置了浏览器自动化,跳过了权限确认页面,自动帮用户点了按钮——这是严重的安全事故。

精灵宝可梦go游戏可能存在风险 软件需要google账号完整权限

另外,第三方应用的开发者在设计使用 google、facebook、twitter 或其他更流行的账号体系登陆时,通常应该遵循“最小权限原则”,只申请应用正常运转所必须的权限。《pokémon go》从目前的全部功能来看,并没有获取完整权限的必要。现在这样一上来就要求完整权限,还不经确认,比“全家桶”有过之无不及。

google 的账户帮助页面上有一段这样的描述:

当您向应用授予完整帐户权限后,该应用几乎可以查看和修改您 google 帐户中的所有信息(但不能更改密码、删除帐户,或以您的名义使用 google 电子钱包付款)。

某些 google 应用可能具有完整帐户权限。例如,您可能会看到,您下载到 iphone 的“google 地图”应用具有完整帐户权限。

请仅将“完整帐户权限”授予您完全信任且已安装到您的个人计算机、手机或平板电脑上的应用。

更具体讲,授予一个第三方应用“完整账户权限”,意味着它可以:

查看你的邮件;以你的身份发邮件;获取你 google drive 云盘里的所有文件,包括已经删除的;调取你的搜索记录,包括地图里的导航记录;看任何你在 google photos 里备份的照片,包括隐私照片;了解或修改其他各种各样的资料;登陆其他用 google 账户登陆的服务。

至于由 niantic labs 和任天堂旗下 pokémon company 这两家还算知名的公司联合开发的游戏,为何出现如此严重的账户权限事故,除了粗心大意,恐怕暂无其他解释。前面也有提到,“某些 google 应用可能具有完整权限”,或许是 niantic labs 从 google 旗下拆分之后,没有及时更新自己的开发工具,仍然以为自己开发的是 “google 应用”吧?

身为架构工程师的 adam renee 表示,他并非怀疑 niantic labs 会拿着用户 google 账户的完整权限胡作非为。问题在于,niantic labs 的数据安全水平如何,在业界并没有公开的资料。更何况现在《pokémon go》如此火爆,难免有黑客盯上这座数据金矿,谁也无法保证之前发生在网易、csdn、雅虎、target 等公司内的数据泄露事故,不会发生在 niantic labs 身上(此前已经有黑客修改游戏的 android apk 安装包,在游戏里添加恶意代码。)

目前 niantic labs 尚未对此做出回应。