揭秘 APP 偷窥用户隐私

0评 / 0

成因

读取不应有的权限

读取这些权限的目的报道中有提到,就是大数据画像。把你的私人信息传到服务器,分析你的日常活动范围,你的年龄段,你的工作,你的消费水平,然后向你精准投放广告。为了达到这个目的,可能需要读取你的位置信息,电话号码,手机通讯录,相册,屏幕截图,更有甚者读取剪贴板的。

由于这些操作是在后台进行的,所以在MIUI 12曝光之前,用户是压根不知道的。不要说普通用户了,就算是开发者,也很难知道别人家的APP干了啥。他们干了什么就只有操作系统知道,MIUI很聪明,没有直接动这些厂商的蛋糕,而是把他们的恶行暴露出来,把矛盾直接引向厂商和用户之间。

自启动

自启动是个老生常谈的问题了。这也是个安卓独有的问题。可以说几乎所有的APP自启动都只有一个目的:推送通知

通知就是从你手机顶部弹出来的气泡,他们会停留在手机的通知栏里直到你去点击或者滑动消除它。这个通知本来应该由 Google 服务来进行推送的,但是由于众所周知的原因,在大陆是无法使用 Google 服务的。于是就只有由APP自己推送。自己推送的方式就是从后台拉起一个通知服务,让这个服务一直在手机后台运行着。等有通知来的时候,服务器把通知内容发送给这个通知服务,然后这个通知服务就创建一个通知提示框,从手机的顶部弹出来。

对于即时通讯类APP,如微信/QQ/钉钉而言,他们存在的意义就是推送通知,所以他们常驻一个后台服务来用于推送通知,这本无可厚非。

但对于其他的APP而言,推送的通知绝大多数的广告,而这些广告正是这些APP的主要盈利方式。

唤醒其他APP

上面说到的自启动问题几乎现在所有的手机ROM都有自启动管理功能,你可以直接禁止某个APP的自启动,从操作系统层面杜绝他启动自己

但是道高一尺魔高一丈,这些APP为了推送广告,又搞出了新的花样。互相唤醒

A和B两个APP合作,当A被系统禁止了自启动时,A如果想要推送一条通知,由于A的服务被系统禁止自启动了,于是A无法处理服务器端发来的通知。这时B恰好在手机里运行着,那么B用一个服务来召唤A的服务。因为A是被B召唤的,不是自己启动自己。于是这个召唤不会被系统拦劫,这就是关联启动

现在已经有很多的厂商加入了这样的合作,这个合作计划叫做推送联盟。为的就是自家的通知能够成功推送到用户端。

解决方法

作为普通用户,可行的方法有下面几种:

①拒绝这些权限(应对后台读取信息)

直接拒绝掉权限,不授予相关权限。但如果APP设置为不给权限就退出自身(我自己的APP就是这么写的(*/ω\*)因为拿不到权限运行到一半会报错的。。。)你可能将无法使用这个APP。

于是MIUI 12加入了空白通行证功能,给APP返回一个空内容,假装用户接受的权限,但并没有把真实的信息发送给APP。

这个功能非常依赖使用者自身的判断能力。如果一个用户压根不知道这个APP要这个功能来干什么就盲目地使用空白通行证功能的话,反而会导致自己的使用体验大打折扣。(比如说你给一个地图APP 位置信息的空白通行证,我看你咋导航→_→)

②冻结这些APP(应对自启动和关联启动)

这步操作只适用于动手能力比较强的用户,解锁root权限使用冰箱一类的APP将这些无良自启怪冻结起来,要用的时候手动解冻,不用的时候他就像不存在于你的手机上一样,无法启动,也无法被唤醒。但这么做有一个弊端,就是你要往这些APP里面跳转的时候需要先手动解冻。

比如说我把“百度地图”冻起来,那么我的任何其他APP都无法直接跳转到百度地图进行导航,因为百度地图被冻结了。我必须先手动解冻百度地图,才能进行跳转。

所以就像我一开始说的那样,这个操作只适合动手能力比较强,且对安卓系统了解比较深刻的用户

③使用操作系统自身的功能

MIUI在APP设置页有自启动和关联启动的开关选项,通知权限、空白通行证等都可以在这里直接设置。说MIUI是目前最能保护隐私的安卓系统,我觉得一点都不为过。

EMUI在手机管家APP中可以管理每个APP的自启动和关联启动,如果你不知道应该怎么调整,可以选择自动,让手机管家帮你选择。

但是使用系统自身的功能只能避免第三方APP的骚扰,不要忘了,系统自身也是有广告的。小米全家桶和华为全家桶的广告,我觉得一点也不比其他APP少。

作为开发者,可行的方法有:

①使用系统级别的推送

小米、华为、魅族等厂商自己有了自己的推送服务,接入这些推送SDK,可以在APP不启动的情况下直接推送通知。

缺点是一个厂商一个写法,挺费时的,而且各个厂商还有不同的限制政策,可能导致A品牌手机能正常推送,B品牌手机缺收不到推送的情况。

②能不用就不用第三方SDK

对,我说的就是友盟。友盟推送这个东西找用户要的权限比我整个APP核心功能要得还要多,还注册一大堆的服务,简直就是毒瘤SDK,除了代码写起来短以外就没有别的好处了。

其实我这些解决方法全是治标不治本的,这些问题一直存在于安卓手机上,只是最近才被MIUI 12暴露到大众视野罢了。在开发者中,这些都是公开的秘密

关于报道中说的在上架时检测这一行为,如果存在后台读取隐私和自启动等行为,就不允许上架。这个方法是完全行不通的。我完全可以用服务器控制这一行为,APP首次启动时找服务器获取是否在后台读取隐私或者自启动的参数,保存到本地。我就可以通过服务器来控制APP先乖乖地当个好孩子,等你审核过了觉得“嗯,是个好孩子”上架成功以后,我再改掉这个参数,变身二哈大杀四方。而此时审核平台还蒙在鼓里。通过审核后检测到再下架也于事无补,因为用户已经下载了APP了,你无法阻止已经安装的APP在用户手机上作妖。

就算应用市场真的能做到检测,那我不要应用市场了又如何?我自己做一个官网,点击下载APP,用蒲公英发布,用bugly更新,或者我自己做一个更新服务器,推送新版本更新即可。推广我就用分享二维码,分享绑定下限关系,分享返利鼓动用户自发宣传。反正安卓是个开放的平台,只需要一个apk就可以安装应用,又不像iPhone必须走 App Store,我直接发布APP,不要应用市场,你又能奈我何?

我们再把视角拉高,从上帝视角来审视这个问题,会发现这其实是一个APP作者和用户之间循环往复的矛盾。

第一阶段:用户想要免费好用的APP→厂商和个人开发者推出了一系列免费APP,使用广告来盈利

一段时间后,用户反馈自己总是收到广告的骚扰,厂商发现广告的投送量和广告带来的收益不成正比,导致广告推广费用很高而收益微薄,于是进入了第二阶段。

第二阶段:精准推送

APP在后台搜集用户数据,定向精准投放用户感兴趣的广告。厂商的广告收益大幅提升,用户也不总是感到被骚扰(因为这些广告可能真的对自己有用)

精准投放是一个很成功的商业模式,微软的Windows 10,各大手机厂商的操作系统,首次启动的时候都会有是否开启精准投放的选项。

这个模式是成功的,但绝大多数APP都直接默认了用户允许这个模式,都不经过用户许可就悄悄开始了用户画像。所以才会有人说“中国的互联网用户不介意用隐私换便捷”这种大言不惭的鬼话,实则只是自欺欺人罢了。

转载于: https://www.zhihu.com/question/400155749/answer/1273208393

发表评论

电子邮件地址不会被公开。 必填项已用*标注