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


1.1 论文信息

  • 作者:Luca Verderame; Davide Caputo; Andrea Romdhana; Alessio Merlo
  • 年份:2020年
  • 机构:DIBRIS, University of Genoa, Genoa, Italy
  • 会议:International Joint Conference on Neural Networks (IJCNN)
  • 主要内容:提出了一种基于静态分析、动态分析和机器学习技术的 Android 应用程序合规检测工具 3PDroid,用于评估应用程序及其使用的第三方库是否符合 Google Play Store 的隐私政策。
  • 关键词:Android, Privacy Guidelines, Static Analysis, Dynamic Analysis, Machine Learning

1.2 问题分析

  1. 大多数隐私政策合规检测方法依赖于静态分析,容易导致误报和漏报,难以准确识别应用的真实隐私合规性。

  2. 部分研究仅考虑应用商店发布的隐私政策,未关注 App 实际运行时展示给用户的隐私政策页面,因此无法判断应用程序运行时提示给用户的页面是否符合其在应用商店发布的隐私准则。此外,现有研究不能检测用户是否在 App 访问个人和敏感信息(PSI)之前已明确授权。

  3. 应用程序多使用第三方库和框架,增加了评估的复杂性,难以全面评估应用的隐私合规性。


1.3 研究方案

本文提出了一种基于 静态分析、动态分析和机器学习技术 相结合的隐私合规检测方法 —— 3PDroid,以验证 Android 应用程序是否符合 Google Play Store 的隐私政策。

合规标准

文中提出了一系列技术要求(TR)和内容要求(CR),作为是否合规的判定标准,如下图所示。

图1.1 Google Play 隐私准则的技术要求和内容要求

图1.1 Google Play 隐私准则的技术要求(TR)和内容要求(CR)


检测内容

3PDroid 的具体检测内容包括:

  1. 应用程序是否包含隐私政策页面。
  2. 隐私政策页面是否完全符合 Google Play 的隐私准则。
  3. 应用程序是否在用户接受隐私政策后才访问个人敏感信息。
  4. 应用程序及其第三方库对个人敏感信息的访问是否符合隐私政策。

3PDroid 框架

3PDroid 共分为 7 个模块,其框架结构如下图所示。

图1.2 3PDroid检测工作流

图1.2 3PDroid 检测工作流

A. PSI Mapping

建立与隐私相关的 Android 权限(见图1.3)和第三方库及其相应的 PSI 相关 API 方法的映射(见图1.4)。

图1.3 Android权限、PSI 和 API 方法的映射

图1.3 Android 权限、PSI 和 API 方法的映射

图1.4 从 InMobi 库中提取的 API 方法示例及其与 PSI 的映射

图1.4 从 InMobi 库中提取的 API 方法示例及其与 PSI 的映射

B. App Analyzer

  • 从 APK 反编译提取请求的权限列表及包含的第三方库列表;
  • 查询 PSI Mapping 获取相关 PSI 和 API 方法;
  • 将 PSI 列表发送给 CR Checker,API 方法列表发送给 PAPI Monitor;
  • 触发动态分析(DTE)。

C. Dynamic Testing Environment (DTE)

初始化 Android 模拟设备并安装 APK。

D. Privacy Policy Page Detector (3P Detector)

  • 使用 MLP 多层感知机分析应用程序页面的 XML 文本,判断是否为隐私政策页面;
  • 若找到政策页面则返回相关信息,否则标记应用为不合规;
  • 可评估 TR1、TR2 规则。

E. Privacy API Monitor (PAPI Monitor)

判断接受隐私政策页面之前,应用是否调用任何 PSI 相关的 API,用于评估 TR4 规则。

F. Technical Requirement (TR) Tester

通过分析页面的 XML 判断其他 TR 规则。

G. Content Requirement (CR) Checker

  • 验证隐私政策页面是否声明了应用请求的所有 PSI,判断是否符合 CR1 规则;
  • 使用多个基于机器学习的分类器进行判断,如图1.5所示。
图1.5 CR Checker使用的模型参数

图1.5 CR Checker 使用的模型参数


1.4 实验评估

实验环境

  • CPU:Intel Core i7-3770 @ 3.40 GHz
  • RAM:16GB
  • 系统:Ubuntu

数据集

  • 从 Google Play Store 下载了 5,473 个应用程序
  • 其中 4,567 个(约 84.4%)具有有效隐私政策链接

实验结果

  1. 成功率:3PDroid 能够分析 92.4% 的应用程序。失败原因包括:

    • 无法在 root 设备上模拟;
    • 需特定地理位置才能运行。
  2. 性能:总耗时 413 小时,平均每个应用耗时 272 秒

  3. 合规性分析:如图1.6所示,只有 5.5% 的应用程序符合 Google Play 隐私准则(含不访问任何 PSI 的应用)。

图1.6 3PDroid检测结果

图1.6 3PDroid 检测结果

  1. 可靠性分析
    • 手动分析了 1348 个应用(约 26.6%) 以评估 3P Detector 的可靠性;
    • 分析了 94 个满足所有 TR 标准的应用 以评估 CR Checker 的可靠性;
    • 结果如图1.7所示。
图1.7 可靠性分析结果

图1.7 可靠性分析结果


1.5 优缺点

优点

  1. 使用 动态分析方法,从应用行为角度检测是否合规,例如:

    • 应用运行时是否包含隐私政策页面;
    • 用户是否明确点击确认隐私政策。
  2. 考虑了 APP 涉及的第三方库的隐私政策合规分析

缺点

  1. Content Requirement (CR) Checker 仅以隐私政策的完整性作为合规验证指标,相对来说不够全面。