移动应用中的第三方 SDK 隐私合规检测,早知道
本文分享自华为云社区《移动应用中的第三方SDK隐私合规检测》,作者: wolfrevo。
概述:
工信部 164 号文[1]要求对 SDK 违规处理用户个人信息进行整治,包括违规收集个人信息、超范围收集个人信息、违规使用个人信息、强制用户使用定向推送功能等违规内容。相关整治内容的检测需要结合第三方 SDK 隐私声明与 SDK 运行时行为进行判断。本文简要介绍如何提取与解析第三方 SDK 相关的隐私政策内容以及如何在运行时监控第三方 SDK 处理个人隐私数据。
工信部 164 号文中对于 SDK 违规处理个人信息的检测内容:
第三方 SDK 隐私政策提取与解析
针对第三方 SDK 隐私声明的提取,按照应用隐私政策呈现的方式,可以分为两种主要形式:1、直接在应用隐私声明中陈述(如图 1 所示)。2、在隐私声明中提供跳转形式单独表述(如图 2 所示)。针对第 2 种情况,需要对第三方 SDK 隐私声明的文本跳转内容进行提取。
调研表明,当第三方 SDK 的隐私声明以跳转方式另行表述时,目标跳转页面通常通过 webview 进行呈现,并且当前应用的隐私声明也由 webview 进行呈现。原因可能在于使用 url 借助 webview 进行跳转,不需要另行开发跳转过程,否则需要通过封装 intent 进行不同应用页面之间的跳转。
对第三方 SDK 隐私声明内容进行提取,存在两种可行方案。一、获取第三方 SDK 超链接,进而通过 url 解析文本。二、获取第三方 SDK 超链接文字在页面上的位置,通过模拟点击跳转,然后通过 uiautomator 获取页面文字。第二种方案可由《移动应用隐私合规检测简介及目标检测技术的应用》 中所述的方案进行文本定位。但是考虑到部分应用使用表格形式展示接入的第三方 SDK 的情形,如果通过 uiautomator 获取页面文字将丢失表格样式信息,增加解析难度。因此优先采用第一种方案,具体步骤为:
利用 hook 技术添加代码 webView.setWebContentsDebuggingEnabled(true);
获取第三方 SDK 超链接,并跳转;
基于 Chrome DevTools Protocol [2]获得带样式的文本。
按照第三方 SDK 内容展示的形式,可以分为三类:
以表格形式(如图 3);
无样式列表(如图 1);
无固定格式。
对于第 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/
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/cc5fe1624ad98cf80e986657b】。文章转载请联系作者。
评论