国产App的隐私困局,由百度“监听电话”事件引发的思考

移动开发 移动应用 移动安全
2018年的新年可能对BAT三大巨头都并不好过。支付宝被爆出年度账单存在陷阱,微信忙着解释他们不看用户聊天记录,而百度则是涉嫌侵害消费者个人信息安全被起诉。

2018年的新年可能对BAT三大巨头都并不好过。支付宝被爆出年度账单存在陷阱,微信忙着解释他们不看用户聊天记录,而百度则是涉嫌侵害消费者个人信息安全被起诉。

今年一月,百度旗下App被江苏省消保委提起诉讼。

2017年7月,江苏省消保委结合手机应用市场上侵犯消费者个人信息的情况,对涉及视听应用、图文阅读、金融支付、旅游出行等用户较多且具有一定行业代表性的27家手机APP所属企业进行了调查和约谈。

[[220986]]

大部分企业都按时提交了实质性整改方案。绝大多数企业均对其APP进行了优化,比如,删除不必要敏感权限、增加消费者提示框、提供消费者权限选择界面、完善非注册用户信息保护等,以尊重消费者的知情权和选择权,对消费者个人信息提供了较全面的隐私保护和安全保障。

2017年7月4日,江苏省消保委就北京百度网讯科技有限公司旗下的“手机百度”、“百度浏览器”等两款手机APP存在的相关问题,发送相关《调查函》以及要求百度派员前来接受约谈。而百度公司仅对相关问题做了书面的简单说明,并将权限通知及选择等义务推卸给手机操作系统,“消极应对省消保委调查”。

百度在最终提交的整改方案中,对“手机百度”、“百度浏览器”中 “监听电话”、“读取短彩信”、“读取联系人”等涉及消费者个人信息安全的相关权限拒不整改,也未有明确措施提示消费者APP所申请获取权限的目的、方式和范围并供消费者选择,无法有效保障消费者知情权和选择权。

其实百度并没有监控网民通话的意图。

百度调用的是READ_PHONE_STATE权限,READ_PHONE_STATE能够读取的信息包括用户的设备和 SIM 硬件 ID 以及来电的电话号码等敏感数据,而百度表示调用权限是为了读取来电电话号码,识别骚扰电话,严格来说,百度的权限是为了监听电话状态,而小米操作系统把它称为“监听电话”,操作系统翻译的不准确导致了误会。

但是,这并不意味着百度没有任何问题,事实上,权限滥用的问题是国内Android应用市场的通病。

读取IMEI等设备ID这其实也是业界比较普遍的做法,这些设备ID能够帮助厂商统计用户数量,也可以帮助了解用户情况从而修复bug。然而与国外厂商不同的是,国内很多手机厂商在获取IMEI号码时往往采取强制手段。例如微信会在程序启动时申请IMEI及本地存储权限,如果用户拒绝权限就会自动退出,这种“不给信息就不服务”的做法在国内的应用中非常普遍,也饱受网民诟病。

 

[[220987]]

另一方面,应用权限过多的确是中国应用市场的现状,一个应用往往会获取近百个权限,而其中大部分都是无必要的权限。

为了更加深入地探究应用权限的现状,我们调查了市面上主流应用的权限数量,这些应用来自各大厂商,我们尽量选取了能够进行横向比较的应用,以便进行分析。

 

为了更加直观地展现我们对相关单元格进行了着色,红色越深,代表权限越多。

 

[[220988]]

在调查过程中,我们甚至发现这些大量的种类繁多的权限和组件还引起了杀毒软件的注意:

从统计图上我们可以观察到:

  1. 虽然国内外厂商的App对比不够全面(原因是很多国内应用并没有对应的国外应用,例如安全防护类别;而且国外的巨头涉猎的应用范围也不广泛,往往只做特定领域的应用,因此无法以厂商对比),但我们还是可以看出,国内的应用获取的权限往往比国外应用更多。
  2. 即便是同类应用,权限数量也会有巨大的差别,差距最为悬殊的当属支付工具类,权限数量最低的京东钱包(18)与支付宝(229)差了10倍。
  3. 支付工具可能存在一定的“安全属性”,但哪怕是不存在“安全属性”的浏览器,权限数量最高的UC浏览器(195)与Chrome(33)还是差了不少。

权限都有啥?

我们以UC浏览器的权限为例,在权限列表中,我们看到一些不明所以,与浏览器身份不符的权限:

 

[[220989]]

而继续查看权限列表,我们还发现多个与推送有关的权限。

 

这些权限针对的是不同手机厂商的推送组件。由于Google在中国的退出,Google自家的Android推送解决方案GCM(FCM)变得不稳定,各家手机厂商往往都开始建立自家的推送系统,正因如此,国内的开发者们又多了一项任务——适配各个厂商的推送组件。这也是导致国内外app厂商权限差异的原因之一。

好消息是,推送服务不统一的问题未来可能迎来解决方案。

据工信部旗下泰尔终端实验室发布消息称,目前泰尔终端实验室联合包括华为、OPPO、vivo、小米、三星、魅族、金立、努比亚、谷歌、百度、阿里巴巴、腾讯、个推、极光等国外内主要相关企业共同制定安卓统一推送服务(Unified Push Service,简称UPS)技术标准,旨在为国内的消息推送服务建立统一的标准,为终端用户提供更好的手机使用体验,为应用开发者更好解决消息推送需求,并取得了阶段性成果。

虽然无法与Google官方推送平台相提并论,但接口不统一的问题还是能够迎刃而解,并且由于推送需要经过官方UPS渠道,应用后台频繁唤醒的问题也会得到解决。

权限真的重要吗?

前面提到,大部分的应用权限都没有很强的必要性,为什么不用更少的权限为用户服务呢?

作为用来识别用户唯一性的设备ID在某些app上变成了强制获取。微信启动时会弹出电话权限、本地存储权限的提示窗,如果拒绝权限申请就会停止工作,似乎获取这样的信息会决定app的功能性。

 

我们使用AppOps忽略请求就能够顺利进入App,使用过程中也没有功能受限。这不禁让人质疑强制提供设备ID的必要性和正当性。

 

同样对于用户的识别信息的处理,苹果有着不一样的方案和思路。

 

[[220990]]

为了避免用户数据暴露用户隐私,苹果在2016年6月的WWDC 大会上提出Differential Privacy 差分隐私技术。简单来说就是个人信息从自己的终端发出之前随机添加信息,使得你发出去的信息无法与你个人真实信息对应,避免个人隐私暴露。这项技术的目的就是把用户作为一个整体研究用户行为,而非一个个的个体,之所以提出这项技术,也是希望在收集数据的同时避免泄露身份信息。

另一方面,大规模收集用户数据一旦遭受网络攻击后果不堪设想。这一点即便是大企业也未能幸免。在过去一年大大小小的数据泄漏事件中,我们看到了不少知名大企业的身影。

互联网巨头 Yahoo 数据泄漏:10亿账号的用户姓名、生日、邮箱地址、密码、电话、安全问题和答案全被泄露

美国三大信贷之一 Equifax 数据泄漏:超过 1.43 亿的美国用户数据泄漏,包括姓名,社保号码,出生日期,地址,及驾驶证信息;20.9 万用户的信用卡号,以及部分英国和加拿大用户信息。

移动出行 Uber 数据泄漏:5700 万乘客用户信息泄漏,5万名司机信息泄露。

我们怎么应对?

面对这些隐私收集器,我们能做的其实并不多,在此提供两种针对非root手机的解决方案:

首先是使用前面提到的AppOps忽略相应的权限,AppOps可以在没有Root的情况下使用,但是需要在每次开机后连接电脑用adb授予相应权限。如果你的手机已经root就不用连接电脑授权。

第二款应用名为APK Permission Remover,同样不需要root,原理是删除apk包内相应权限后重新打包,由于数字签名与官方不同,这样打包后的应用无法更新,并且只对部分应用有效。

 

对于root后的手机,选择的余地就更多了,各类权限限制工具都是可能的方案。

细心的读者可能会发现,无论是阿里的账单事件,腾讯的聊天记录事件,还是百度的监听电话事件,今年年初的三起事件无一例外都围绕着隐私这个话题,随着网民意识的不断提高,保护隐私会逐渐成为大家关注的焦点,而对于互联网公司而言,安分开发才是正道。

责任编辑:未丽燕 来源: FreeBuf.COM
相关推荐

2013-03-05 10:05:52

2022-11-07 19:08:28

transform属性浏览器

2020-12-03 06:13:46

iOS

2024-01-09 07:48:07

推荐排序算法策略数据背景

2012-05-23 16:37:20

Web App百度

2010-06-02 16:22:58

2018-02-25 22:40:53

百度百度APP搜索

2010-01-28 10:29:44

2013-07-31 09:28:10

AppWeb百度

2009-12-14 20:05:05

内容

2013-08-28 10:00:55

百度360华为

2011-11-18 13:44:40

2014-04-29 15:29:28

百度联盟大数据

2010-08-26 10:58:41

云服务

2012-03-31 14:49:50

海量APP

2014-07-25 17:12:39

数据库WOT2014MongoDB

2014-09-04 02:25:24

百度世界大会2014直达号BaiduEye

2020-10-14 11:20:35

人工智能人脸识别技术

2012-09-10 09:13:57

云计算3B大战搜索之困

2013-08-22 17:08:50

点赞
收藏

51CTO技术栈公众号