On the (Un)Reliability of Privacy Policies in Android Apps

admin 2021年10月29日00:07:52评论110 views字数 3331阅读11分6秒阅读模式

On the (Un)Reliability of Privacy Policies in Android Apps

原文作者:Luca V erderame, Davide Caputo, Andrea Romdhana, Alessio Merlo 

原文标题:On the (Un)Reliability of Privacy Policies in Android Apps 

原文链接:https://arxiv.org/pdf/2004.08559.pdf.

原文来源:Proc.of the IEEE International Joint Conference on Neural Networks (IJCNN 2020) 

笔记作者:CJRTnT@SecQuan

摘要

该论文将静态分析、动态分析和机器学习三者相结合,以验证安卓apps是否:

(1)包含符合Google Play隐私指南的隐私政策

(2)仅在用户接受该政策时才访问隐私敏感信息

介绍

应用程序为了增加用户黏性,需要持续“监控”用户的偏好和需求,但是这样的“监控”往往涉及到隐私和敏感信息,Google Play Store也在2020年发布了有关安卓应用隐私指南的详细文件——强制要求安卓应用提供隐私政策来通知用户该app如何收集、使用、共享和处理这些信息。

目前已有的(检测安卓apps隐私政策合规性与应用行为一致性的)方法的缺陷:

(1)仅使用静态分析,很难识别到真正侵犯隐私的样本

(2)仅对应用程序上传在Google Play Store上的隐私政策页面进行分析,这样的隐私政策页面可能与apps运行时实际提示给用户的隐私政策不同

(3)不能判断apps是否在用户接收隐私政策后才对个人敏感信息进行访问

背景

安卓apps取得隐私信息的方法

当前安卓apps取得用户个人隐私信息的方法主要有:

(1)安卓平台的API。这些API是与应用权限相关联的,API的调用被限制在具有所需权限集的应用程序中,且安卓应用程序必须通过在它们的AndroidManifest.xml文件中一个名为uses-permission的特定标签中声明权限以请求权限

 举例:如果一个应用程序希望从联系人列表中读取数据,它必须在AndroidManifest.xml文件中声明“android.permission.READ _ CONTACTS”权限,以便被允许调用相应的API(例如getPhoneNumbers)。然后,应用程序第一次尝试访问应用程序接口时,会提示用户权限授予请求。如果用户接受,此后应用程序可以调用该应用程序接口。

应用权限—PSI(personal and sensitive information)—API的对应关系如图1所示:

On the (Un)Reliability of Privacy Policies in Android Apps

图1

(2)嵌入apps的第三方库。如:analytics libraries、Ad Network libraries,图2展现了InMobi库的API-PSI对应关系:

On the (Un)Reliability of Privacy Policies in Android Apps

图2

谷歌隐私指南

Google Play隐私指南中的技术要求(TR1~6)和内容要求(CR1~2)如图3所示:

On the (Un)Reliability of Privacy Policies in Android Apps

图3

评估app隐私政策的合规性的方法

该论文提出了一种基于静态分析、动态分析和机器学习技术相结合的新方法,总体框架如图4所示:

On the (Un)Reliability of Privacy Policies in Android Apps

图4

A. PSI Mapping——实现方法:使用MongoDB数据库存储PSI、API、Android权限和第三方库之间的映射

该数据库包含收集、使用或处理PSI的各种API(如图1、图2)。

B. App Analyzer——实现方法:基于Androguard的方法

反编译一个APK,并提取

(1)应用程序请求的权限列表

(2)应用程序中包含的第三方库列表

然后,该模块查询PSI Mapping以确定权限或库是否是隐私敏感的,如果是,它会请求PSI相关的API的列表。之后,将PSI列表发送给CR Checker、将API列表发送给PAPI Monitor。最后,触发动态测试环境并进行动态分析。

C. DTE(Dynamic Testing Environment)——实现方法:在基于Android 6.0并具有root权限的仿真设备上执行,并使用了Frida动态代码检测工具

该模块负责在设备模拟器中安装和执行应用程序,执行应用程序后,通知PAPI Monitor和Privacy Policy Page Detector (3P Detector)开始分析。

D. Privacy Policy Page Detector(3P Detector)——实现方法:使用UI Automator工具提取app界面的XML;使用NLTK库预处理文本;使用TensorFlow库的基于多层感知器(MLP)的文本分类器来识别政策页面

该模块负责搜索、识别安卓应用程序内部的隐私政策页面,其总体算法如图5所示:

On the (Un)Reliability of Privacy Policies in Android Apps

图5

row5:取得app当前界面的XML内容

row6-8:确定提取的页面的文本内容是否包括隐私政策-使用了基于机器学习的文本分类算法(多层感知器分类器),包含了预处理和分类两个步骤。

row9-11:如果检测到隐私政策,则退出循环

row12-13:如果检测出不是隐私政策,便向app发送指令(例如滑动或点击命令)以到达下一个页面

row14:将所有进行过的指令进行记录并形成到达该页面所需的指令列表,该列表会被发送到TR Tester,以评估是否符合图3的要求

row16-18:如果成功检测到隐私政策页面,便会将隐私政策文本XML文件指令列表返回

由于app需要满足图3中的TR2,因此期望在一个阈值的指令数量内到达隐私政策页面;如果该模块在输入指令的最大限制内找不到隐私政策页面,则此应用被标记为不合规。

E. Privacy API Monitor (PAPI Monitor)

在用户明确接受隐私政策页面之前,该模块验证应用程序是否调用了任何与PSI相关的 API。

F. Technical Requirement (TR) Tester——实现方法:DTE模块和UI Automator

该模块负责检测app是否满足图3中的所有TR,使用的算法如图6所示:

On the (Un)Reliability of Privacy Policies in Android Apps
TR Tester.png

图6

row1-3:检测是否有明确的用户接受隐私政策的元素(如复选框等)

row4:检测上一步获得的页面(政策页面)是否在阈值内过期或自动关闭,以验证图3中的TR6

row8-10:为了验证图3中的TR5,在上一步的基础上首先按下home键,再重新打开app,如果不再显示政策页面,则该app认为离开政策页面是一种接受该政策的行为,便是不符合规范的

row11-13:退回并重复实验

G. Content Requirement (CR) Checker——实现方法:NTLK库将隐私政策拆分为句子;使用多个模型识别句子中的PSI

由于在App Analyzer中已经获得了app的PSI列表,该模块则负责验证隐私政策页面是否按照CR1成功声明了app请求的所有PSI。

(1)识别其中的PSI集合

(2)检查句子是否为肯定的(如“我们访问您的联系人”或“我们不访问您的联系人”)

(3)验证PSI是否被第三方库访问

该模块使用机器学习的方法,为每个PSI识别最有意义的关键字,并创建两个不同的集合——第一组用于预处理政策文本,并提取包含至少一个关键词的所有句子,这些关键词与正在验证的PSI的数据类型相关联(如对于位置PSI,我们使用“位置”或“GPS”等术语)。之后,CR Checker使用第二组关键词来构建unigram和bigram features,这些关键词指的是给定PSI可用的行为(如对于位置PSI,我们使用“共享”等术语)。之后,提取出的特征用于对政策进行分类,最后确定PSI的所有部分是否都包含在政策中,结果如图7所示:

On the (Un)Reliability of Privacy Policies in Android Apps
CR Checker任务.png

图7

实验结果

实验结果如图8所示:

On the (Un)Reliability of Privacy Policies in Android Apps
实验结果.png

图8

图8显示只有5.5%的apps符合Google Play隐私准则。其中,4.6%是不访问任何PSI的apps,因此不需要隐私政策。

模型性能如图9所示:

On the (Un)Reliability of Privacy Policies in Android Apps
准确率.jpg

图9

其他

此论文的相应代码(3PDroid)已开源,见https://csec.it/3pdroid/

安全学术圈招募队友-ing, 有兴趣加入学术圈的请联系secdr#qq.com

On the (Un)Reliability of Privacy Policies in Android Apps

本文始发于微信公众号(安全学术圈):On the (Un)Reliability of Privacy Policies in Android Apps

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年10月29日00:07:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   On the (Un)Reliability of Privacy Policies in Android Appshttps://cn-sec.com/archives/423682.html

发表评论

匿名网友 填写信息