15
常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA) 联合发布 2019年7月

常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

常用第三方SDK收集使用个人信息测评报告

南都个人信息保护研究中心中国金融认证中心(CFCA)

联合发布2019年7月

Page 2: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

前言

    在手机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安全风险的重

视,促进政府监管和行业自律。

Page 3: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

目录

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

Page 4: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

一、测评方法

(一)测评对象

    本次测评根据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

Page 5: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

1.SDK使用个数和类别 经过分析,60款App共使用了至少966个SDK,平均每款App使

用19.3个(注:移动金融类未计在内,因为该行业普遍对App进行加

固,难以确切检测出使用的SDK)。

图一:各行业App使用SDK数量

其中生活服务类App平均使用的SDK个数最多,为20.2个,旅游

交通类最少,平均使用15.4个SDK。 

二、测评结果

(一)总体情况

3

Page 6: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

    在实际使用中,消息推送类

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类别分布

Page 7: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

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

Page 8: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

昊天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

Page 9: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

我们测评发现,中国银行手机银行App的讯飞SDK可以“对环境

或通话录音”,却没有提供任何隐私政策;宜人财富App和宜人贷借

款App使用的TalkingData SDK获取了用户的地理位置,但两款App

的隐私政策都没有提及会收集位置信息。也就是说,用户的隐私很

可能在不知情的情况下被SDK收集了。

3. 必要性分析 6月1日,全国信息安全标准化技术委员会发布《网络安全实

践指南—移动互联网应用基本业务功能必要信息规范》(下称《

规范》),针对16类App常用的基本业务功能界定了必要信息的范

围。

由于SDK在实际行为中能够获取的权限和收集的信息通常会受到

宿主App的限制,因此,理论上SDK收集用户个人信息也应达到

《规范》的要求。因此,下表列出了113个SDK超出《规范》界定的

必要信息之外收集的其他用户个人信息。

需要特别强调的是,获取其他信息并不代表违规,根据相关法

律法规的要求,获取这些信息前需要弹窗询问用户是否同意,如果

7

表一:收集其他信息的SDK以及相应App

Page 10: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

用户点击“不同意”,也不能影响App核心功能的使用。

虽然国内对于第三方SDK超出必要范围收集其他个人信息尚没

有法律法规条文的规定,但依照“知情同意”的原则,本报告认为 ,

从用户的角度来说, 即使这些信息并不是App本身需要, 而是SDK

需要收集的,也应该进行弹窗获取用户同意,以保障用户知情同意

的权利。

(二)SDK集中分析

   1. 系统权限 综合考虑60款App以及市面上使用最多的SDK,我们选出了15

个SDK进行深度分析。除了官方文档没有说明权限的五个SDK外,

其余10个SDK中,极光数据分析SDK需要申请的系统权限最多,为14

8

图四:10个SDK申请的系统权限个数

Page 11: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

项;百度地图SDK其次,需要申请10项,其他8个SDK都是10项系统

权限以下。

接下来我们把SDK申请获得的系统权限(通常在“设置-权限管

理”功能显示),和SDK代码可以获取的信息(通过逆向分析、抓

包、函数挂钩等技术手段分析)做了对比,如果后者范围超过前

者,就说明该SDK可能存在隐瞒收集用户个人信息的情况。

10个在官方文档里提供了申请权限信息的SDK 中,三成SDK

能够通过代码收集的用户个人信息都超出了声明的系统权限,包括

Ping++、TalkingData、友盟,收集的个人信息不乏支付卡信息、地

理位置等个人敏感信息。

9

图五:SDK申请系统权限v.s.SDK有能力收集的个人信息

Page 12: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

2. 向服务器上送信息 经分析,SDK明文上传的内容大部分是设备信息、网络信息和手

机状态信息,比如操作系统版本、Wi-Fi信息等。但也有少数SDK会

向自己的服务器回传未经加密的用户个人信息甚至个人敏感信息。

这里的未经加密可能存在两种情况,一种是未对通信渠道加密

(如采用http传输),另一种是未对传输内容加密(如使用https传输

但未对数据本身加密)

比如Ping++ SDK、TalkingData SDK、携程SDK、百度地图

SDK、会向服务器传输未经加密的位置信息。这些个人信息在App开

发者、单个或多个第三方之间流动,增加了个人信息泄露、滥用的

风险。

10

Page 13: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

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

Page 14: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)

(1)本次测评主要考察60款常用App所使用的以及市面上的主流

SDK在固定时间内收集用户个人信息的行为,不保证覆盖SDK及其所

有行为。

(2)采样时间截止于2019年4月。我们注意到各个企业的隐私政

策、App的版本和功能可能不时调整,因此本此抽样仅对截止日的

样本负责。

(3)南都个人信息保护研究中心保留最终解释权。

发布方: 南都个人信息保护研究中心

技术支持:中国金融认证中心(CFCA)

2019年,在个人信息保护领域,什么问题最值得关注?欢迎你

与我们分享你的观点。

你可以通过以下方式与我们联系:[email protected]

或者关注我们的微信公众号【隐私护卫队】直接留言。

四、声明与保留

Page 15: 常用第三方SDK 收集使用个人信息测评报告 - CFCA常用第三方SDK 收集使用个人信息测评报告 南都个人信息保护研究中心 中国金融认证中心(CFCA)