移动应用中的第三方SDK隐私合规检测,早知道
Posted 华为云开发者社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动应用中的第三方SDK隐私合规检测,早知道相关的知识,希望对你有一定的参考价值。
摘要: 在移动应用隐私合规检测中,第三方SDK隐私声明由于其展现位置展现形式的多样性,自动化提取与解析是比较困难的任务。
本文分享自华为云社区《移动应用中的第三方SDK隐私合规检测》,作者: wolfrevo。
概述:
工信部164号文[1]要求对SDK违规处理用户个人信息进行整治,包括违规收集个人信息、超范围收集个人信息、违规使用个人信息、强制用户使用定向推送功能等违规内容。相关整治内容的检测需要结合第三方SDK隐私声明与SDK运行时行为进行判断。本文简要介绍如何提取与解析第三方SDK相关的隐私政策内容以及如何在运行时监控第三方SDK处理个人隐私数据。
工信部164号文中对于SDK违规处理个人信息的检测内容:
(一)APP、SDK违规处理用户个人信息方面。
1.违规收集个人信息。重点整治APP、SDK未告知用户收集个人信息的目的、方式、范围且未经用户同意,私自收集用户个人信息的行为。
2.超范围收集个人信息。重点整治APP、SDK非服务所必需或无合理应用场景,特别是在静默状态下或在后台运行时,超范围收集个人信息的行为。
3.违规使用个人信息。重点整治APP、SDK未向用户告知且未经用户同意,私自使用个人信息,将用户个人信息用于其提供服务之外的目的,特别是私自向其他应用或服务器发送、共享用户个人信息的行为。
4.强制用户使用定向推送功能。重点整治APP、SDK未以显著方式标示且未经用户同意,将收集到的用户搜索、浏览记录、使用习惯等个人信息,用于定向推送或广告精准营销,且未提供关闭该功能选项的行为。
第三方SDK隐私政策提取与解析
针对第三方SDK隐私声明的提取,按照应用隐私政策呈现的方式,可以分为两种主要形式:1、直接在应用隐私声明中陈述(如图1所示)。2、在隐私声明中提供跳转形式单独表述(如图2所示)。针对第2种情况,需要对第三方SDK隐私声明的文本跳转内容进行提取。
调研表明,当第三方SDK的隐私声明以跳转方式另行表述时,目标跳转页面通常通过webview进行呈现,并且当前应用的隐私声明也由webview进行呈现。原因可能在于使用url借助webview进行跳转,不需要另行开发跳转过程,否则需要通过封装intent进行不同应用页面之间的跳转。
对第三方SDK隐私声明内容进行提取,存在两种可行方案。一、获取第三方SDK超链接,进而通过url解析文本。二、获取第三方SDK超链接文字在页面上的位置,通过模拟点击跳转,然后通过uiautomator获取页面文字。第二种方案可由《移动应用隐私合规检测简介及目标检测技术的应用》 中所述的方案进行文本定位。但是考虑到部分应用使用表格形式展示接入的第三方SDK的情形,如果通过uiautomator获取页面文字将丢失表格样式信息,增加解析难度。因此优先采用第一种方案,具体步骤为:
1、利用hook技术添加代码 webView.setWebContentsDebuggingEnabled(true);
2、获取第三方SDK超链接,并跳转;
3、基于Chrome DevTools Protocol [2]获得带样式的文本。
按照第三方SDK内容展示的形式,可以分为三类:1、以表格形式(如图3);2、无样式列表(如图1);3、无固定格式。对于第1种形式,根据前文所述可以使用基于Chrome DevTools Protocol的方案可以解决。对于第2种形式,我们开发了一个启发式重复格式行查找算法,找出相邻SDK隐私陈述的分界。而对于第3中形式,除在单行中陈述单个SDK隐私政策的情况外,其余情况目前难以关联SDK主体与其对应的隐私陈述,这种情形在实际的应用中出现较少。
至此,我们完成了隐私政策中的第三方SDK隐私声明的提取与解析,方案小结如下表:
小结:
在移动应用隐私合规检测中,第三方SDK隐私声明由于其展现位置展现形式的多样性,自动化提取与解析是比较困难的任务。我们通过调研统计,对常见的第三方SDK隐私声明展现方式进行总结,归纳出一套自动化的解析方案,以增强对第三方SDK隐私违规行为的检测能力。
引用:
【1】 工业和信息化部关于开展纵深推进APP侵害用户权益专项整治行动的通知, http://www.gov.cn/zhengce/zhengceku/2020-08/02/content_5531975.htm
【2】 Chrome DevTools Protocol,https://chromedevtools.github.io/devtools-protocol/
以上是关于移动应用中的第三方SDK隐私合规检测,早知道的主要内容,如果未能解决你的问题,请参考以下文章