Upload
others
View
19
Download
0
Embed Size (px)
Citation preview
常用第三方SDK收集使用个人信息测评报告
南都个人信息保护研究中心中国金融认证中心(CFCA)
联合发布2019年7月
前言
在手机App的世界里,法规条文里所谓的“第三方应用或服务”似乎是个
看得见摸不着的存在。但事实上,不管是你每天收到的新闻推送,还是促销
活动广告,甚至短信验证码,都有可能出自第三方之手。
这些集成在App里的第三方工具包被称为SDK(Software Development
Kit,软件开发工具包)。它们可以帮助App高效率、低成本地实现地图、支
付、统计、社交、广告等一系列功能,同时自身也具备获取相当一部分设备
信息和用户个人信息的能力。
2018年3月,以色列移动SDK管理平台公司SafeDK发布的《安卓市场中
的移动SDK数据趋势》显示,2018年第一季度,Google Play里排名靠前的16
万款App中,平均每个中国开发的App会使用19.3个SDK。
从App使用SDK的普遍性来看,SDK安全无疑已经成为整个移动互联网
生态中极其关键的一环。然而,SDK未经允许收集用户个人信息的行为,以
及自身存在的安全漏洞,已经引发了十分严重的安全问题。
第三方广告SDK “有米”“个信”曾被发现未经允许收集用户的个人信息,
使用这两款SDK的App因此被苹果应用商店和Google Play悉数下架;更甚
者,有影响了300多款知名App的SDK“寄生推”通过预留的“后门”,进行恶意
广告行为和应用推广。
为了进一步厘清目前市场上常用的SDK在收集、使用用户个人信息方面
存在哪些问题,南都个人信息保护研究中心选择了60款用户量较大的App,
并委托中国金融认证中心(CFCA)对市面上使用率较高的SDK进行了分析,
希望了解SDK个获取个人信息的合规现状,引起社会对SDK安全风险的重
视,促进政府监管和行业自律。
目录
1
一、测评方法 2
(一)测评对象 2
(二)样本采集 2
1.采集方法 2
2.采集时间 2
二、测评结果 3
(一)总体情况 3
1.SDK使用个数和类别 4
2.信息收集 5
3.必要性分析 7
(二)SDK集中分析 9
1.系统权限 9
2.向服务器上送信息 10
三、结论 11
1.使用最广泛的SDK多来自头部互联网公司 11
2.多个SDK获取个人敏感数据,App却未告知用户 11
3.有SDK或存在隐瞒收集用户个人信息的情况 11
四、声明与保留 12
一、测评方法
(一)测评对象
本次测评根据App所提供的服务与人们生活的相关度,综合用户量和使用频率等因素,选取了社交交友、生活服务、休闲娱乐、购物导购、旅游交通、移动金融六大行业的60款App,每个行业10款。
测评对象的选择主要是通过统计60款App集成的SDK个数和调用
次数,并对App使用最广泛的SDK进行系统权限、实际行为、上送信
息等方面的分析。
(二)样本采集
1. 采集方法
本次测评从官方网站、应用宝下载60款App的APK安装包和SDK官方文档,采用逆向分析、抓包、函数挂钩等技术手段进行分析。
值得注意的是,在建立SDK对照库时,我们删去了纯粹为辅助开发、不涉及用户个人信息的第三方开发框架代码。另外,由于有的APK安装包采用了加固、混淆等手段,SDK对照库不一定包含了市面上所有SDK,因此本报告中App使用的SDK个数并非精确结果,报告仅对主流的SDK及其官方文档作出分析和判断。
2. 采集时间
本次测评的采集时间为 2019年4月,测试时间为2019年6月至7月。上述取证时间之外的修改不计入本次测评结果。
对于单个App,我们还进行了时间为5-30分钟不等的逐个检测,并记录下对应的SDK行为。
2
1.SDK使用个数和类别 经过分析,60款App共使用了至少966个SDK,平均每款App使
用19.3个(注:移动金融类未计在内,因为该行业普遍对App进行加
固,难以确切检测出使用的SDK)。
图一:各行业App使用SDK数量
其中生活服务类App平均使用的SDK个数最多,为20.2个,旅游
交通类最少,平均使用15.4个SDK。
二、测评结果
(一)总体情况
3
在实际使用中,消息推送类
SDK被调用得最多——60款App
一共调用了高达264个,远远超
过其他任何类别。此外,综合
类、辅助开发类SDK也被调用了
上百次。
去掉重复项后,60款App共
使用了至少113个不同的SDK。其
中微信SDK被最多App使用,共
47款App;其次是腾讯Open和
小米推送SDK,分别有41款App
和40款App使用。
除了上述三个SDK,还有
四个SDK被超过半数App使用,
分别为华为SDK、支付宝SDK、
Facebook SDK和爱彼迎SDK。
不难发现,使用最广泛的
SDK都来自头部互联网公司,比
如腾讯、小米、华为、阿里、
Facebook,涉及社交分享、第
三方登录、消息推送、支付等各种功能种类。
从SDK的功能类别来看,60款App使用的113个SDK中,消息推
送类、生活服务类和辅助开发类的较多,分别为18个、14个和12个。
4
图二:SDK类别分布
2. 信息收集 对60款App进行5-30分
钟时长不等的逐一检测后,
我们把SDK实际收集的信息
划分为手机设备信息
(如IMEI、IMSI等设备唯一
识别码)、网络信息(如IP
地址、MAC地址、Wi-Fi热
点等)、手机状态信息
(如已安装/运行中的应用
信息)、用户行为信息(如
锁屏、安装、升级、卸载应
用软件)、用户个人信息
(如电话号码、地理位置、
通话记录)等五类。
据统计,在检测时间
内,60款App使用的966个SDK中,有150个获取了IMEI、IMSI等手
机设备信息,在所有类别中最为频繁;其次是Wi-Fi连接信息(IP地
址、MAC地址)、扫描周围热点、Wi-Fi热点信息(SSID)、运营
商与基站信息等各类网络信息,都有35个以上SDK获取;还有10个
SDK获取了用户行为信息,比如锁屏、安装/升级/卸载App。
此外,用户的电话号码、地理位置、手机视频和相册等个人信
息也被一些SDK获取,尤其是地理位置信息,被32个SDK获取。
其中每日优鲜App使用的支付宝SDK获取了用户的手机号;Soul
和陌陌App使用的声网SDK、中国银行手机银行和苏宁易购App使用
的讯飞SDK获取了用户手机对环境或通话的录音。
值得注意的是,钉钉、铁路12306、闲鱼等App使用的支付宝
SDK,派派、陌陌等App使用的声网SDK , 百度贴吧App使用的百度
图三:收集用户个人信息的SDK
5
昊天SDK以及铁路12306 App使用的梆梆安全SDK都收集了传感器信
息。很多情况下,步数、心跳等与健康相关的个人信息就是通过“传
感器”权限收集。
上述SDK中,一些收集行为与其功能之间存在较易理解的相关性。
比如陌陌App使用的讯飞SDK会“对环境或通话录音”,从而实现
语音聊天功能;同程旅游App为了基于用户所在位置进行精准推送,
会使用高德地图SDK获取“地理位置”信息。
但与此同时,也有一些SDK收集的个人信息难以直接看出与其功
能之间的联系。
以获取“电话号码”为例,支付宝属于支付类SDK,获取手机号的
行为与其支付功能并无直接关系,但在嵌入每日优鲜App时,它却
获取了用户的电话号码,该行为的正当性存疑。
值得注意的是,这种获取电话号码的行为只发生在每日优鲜App
中,嵌入其他App时,支付宝SDK并未被检测出获取用户电话号码的
情况,但并不排除是因为时间或其他客观因素限制未能触发。
假设SDK收集这些信息都有对应的App功能,App作为直接跟用
户交互的一方,是否做到了向用户告知?我们一一查阅了与收集上述
列表中用户个人信息的SDK相对应的所有App的《隐私政策》。
我们发现,百度、百度贴吧App嵌入了读取“手机视频和相册”的
SDK,而且他们都在《隐私政策》里明确了收集范围和目的。
比如百度在隐私政策里写道:“为了给您提供拍照图像搜索、二
维码识别、拍照翻译等服务,我们会向系统申请使用‘相机权限’。
苏宁易购App嵌入的讯飞SDK,可以实现“对环境或通话录音”。
苏宁易购隐私政策对此解释说,这是直播录制功能所需。“当您选择
我们的相关应用进行直播录制时,我们需要开启您所使用设备的摄像
头和麦克风使用权限,以完成完整的直播录制及录制过程中附带的功
能,并在首次开启权限时以弹窗告知形式征询您的同意”。
不过,也有不少App并没有做到收集前告知。
6
我们测评发现,中国银行手机银行App的讯飞SDK可以“对环境
或通话录音”,却没有提供任何隐私政策;宜人财富App和宜人贷借
款App使用的TalkingData SDK获取了用户的地理位置,但两款App
的隐私政策都没有提及会收集位置信息。也就是说,用户的隐私很
可能在不知情的情况下被SDK收集了。
3. 必要性分析 6月1日,全国信息安全标准化技术委员会发布《网络安全实
践指南—移动互联网应用基本业务功能必要信息规范》(下称《
规范》),针对16类App常用的基本业务功能界定了必要信息的范
围。
由于SDK在实际行为中能够获取的权限和收集的信息通常会受到
宿主App的限制,因此,理论上SDK收集用户个人信息也应达到
《规范》的要求。因此,下表列出了113个SDK超出《规范》界定的
必要信息之外收集的其他用户个人信息。
需要特别强调的是,获取其他信息并不代表违规,根据相关法
律法规的要求,获取这些信息前需要弹窗询问用户是否同意,如果
7
表一:收集其他信息的SDK以及相应App
用户点击“不同意”,也不能影响App核心功能的使用。
虽然国内对于第三方SDK超出必要范围收集其他个人信息尚没
有法律法规条文的规定,但依照“知情同意”的原则,本报告认为 ,
从用户的角度来说, 即使这些信息并不是App本身需要, 而是SDK
需要收集的,也应该进行弹窗获取用户同意,以保障用户知情同意
的权利。
(二)SDK集中分析
1. 系统权限 综合考虑60款App以及市面上使用最多的SDK,我们选出了15
个SDK进行深度分析。除了官方文档没有说明权限的五个SDK外,
其余10个SDK中,极光数据分析SDK需要申请的系统权限最多,为14
8
图四:10个SDK申请的系统权限个数
项;百度地图SDK其次,需要申请10项,其他8个SDK都是10项系统
权限以下。
接下来我们把SDK申请获得的系统权限(通常在“设置-权限管
理”功能显示),和SDK代码可以获取的信息(通过逆向分析、抓
包、函数挂钩等技术手段分析)做了对比,如果后者范围超过前
者,就说明该SDK可能存在隐瞒收集用户个人信息的情况。
10个在官方文档里提供了申请权限信息的SDK 中,三成SDK
能够通过代码收集的用户个人信息都超出了声明的系统权限,包括
Ping++、TalkingData、友盟,收集的个人信息不乏支付卡信息、地
理位置等个人敏感信息。
9
图五:SDK申请系统权限v.s.SDK有能力收集的个人信息
2. 向服务器上送信息 经分析,SDK明文上传的内容大部分是设备信息、网络信息和手
机状态信息,比如操作系统版本、Wi-Fi信息等。但也有少数SDK会
向自己的服务器回传未经加密的用户个人信息甚至个人敏感信息。
这里的未经加密可能存在两种情况,一种是未对通信渠道加密
(如采用http传输),另一种是未对传输内容加密(如使用https传输
但未对数据本身加密)
比如Ping++ SDK、TalkingData SDK、携程SDK、百度地图
SDK、会向服务器传输未经加密的位置信息。这些个人信息在App开
发者、单个或多个第三方之间流动,增加了个人信息泄露、滥用的
风险。
10
1. 使用最广泛的SDK多来自头部互联网公司
被测的60款常用App平均每个使用19.3个SDK,其中使用最广
泛的是微信SDK,属于“属于综合类SDK”。测评结果显示,使用最广
泛的SDK基本都来自头部互联网公司,比如腾讯、小米、华为、阿
里、Facebook,涉及的功能种类有社交分享、第三方登录、消息推
送、支付等。在实际使用中,消息推送类SDK被调用的次数最多。
2. 多个SDK获取个人敏感信息,App却未告知用户
60款App共使用了113个不同的SDK。这些SDK收集的信息中,
手机设备信息和网络信息被收集得最为频繁。在用户个人信息方
面,支付宝SDK获取了用户的手机号,TalkingData SDK可以获取用
户的地理位置,但都未在对应App的《隐私政策》里明确告知,且
这些信息与实现SDK的功能有何关系较难看出。
此外,中国银行手机银行App的讯飞SDK可以“对环境或通话录
音”,却没有提供任何隐私政策;宜人财富App和宜人贷借款App使
用的TalkingData SDK获取了用户的地理位置,但两款App的隐私政
策都没有提及会收集位置信息。
3. 有SDK或存在隐瞒收集用户个人信息的情况
我们对15个市场上的主流SDK进行深入分析后发现,
Ping++、TalkingData、友盟等三个SDK能够通过代码收集的用户个
人信息都超出了其官方文档所声明的系统权限,其中不乏支付卡信
息、地理位置、传感器数据等个人敏感信息。
此外,还有少数SDK会向自己的服务器传输用户个人信息。比
如Ping++、TalkingData、携程、百度地图等四个SDK会传输未经加
密的位置信息。这种行为增加了个人信息泄露、滥用的风险。
三 、结论
11
(1)本次测评主要考察60款常用App所使用的以及市面上的主流
SDK在固定时间内收集用户个人信息的行为,不保证覆盖SDK及其所
有行为。
(2)采样时间截止于2019年4月。我们注意到各个企业的隐私政
策、App的版本和功能可能不时调整,因此本此抽样仅对截止日的
样本负责。
(3)南都个人信息保护研究中心保留最终解释权。
发布方: 南都个人信息保护研究中心
技术支持:中国金融认证中心(CFCA)
2019年,在个人信息保护领域,什么问题最值得关注?欢迎你
与我们分享你的观点。
你可以通过以下方式与我们联系:[email protected],
或者关注我们的微信公众号【隐私护卫队】直接留言。
四、声明与保留