An Empirical Evaluation of GDPR Compliance Violations in Android mHealth Apps
阅读Paper-An Empirical Evaluation of GDPR Compliance Violations in Android mHealth Apps
这篇论文主要分析的是健康设备,因此其处理的信息也比较集中,是PHI(受保护的健康信息)。
RQ 1: Do the mHealth apps provide complete privacy policies?
文章首先定义了“完整的隐私政策”:
- Indicates the precise categories of personal data that the app will process (Data Collection);
- Describes the purpose of data processing, and how the data will be used and fitted in the products and services (Data Usage);
- Informs the user of their right to access and correct personal data, and to delete it (User Right);
- Informs the user that their use of the app is strictly voluntary, but requires their consent to permit the processing of personal data (User Consent);
- Informs that appropriate technical measures are adopted to protect personal data (Data Security);
- Provides contact information where the user can ask data protection related questions (Contact Information).
然后,本文希望能够寻找一种方法,自动化解析APP提供的隐私政策,然后并观察其是否完全满足了这六项定义,继而其政策是“完整的”。(当然最后肯定还是用AI模型lol)
RQ 2: Do the mHealth apps declare all the collected PHI in their privacy policies?
首先定义PHI。
Here we define the PHI is collected by a mHealth app if it is input by users, and stored with different channels such as sending out through network or writing in local files.
这里直接简单地将PHI定义成了用户主动输入的信息,通过安卓的输入框什么的。(没有什么设备或者传感器能直接获取用户身体数据嘛,比如腕表什么的,搞不懂了)
然后就是要去找,APP隐私政策里面所明确收集的PHI,是否与APP真正收集的不一致。因此这里定义两个新概念,(声明收集的PHI)DCP与(实际收集的PHI)ACP。因此如果ACP不是DCP的子集,那么APP就有问题。
如何生成DCP?通过NLP,也就是AI。
而ACP的获取比较复杂,需要通过对APP的GUI进行解析来实现。
RQ 3: Do the mHealth apps implement reasonable measures to ensure the transmission security of their collected PHI?
这里主要讲的是PHI在传输过程中的安全。
比如传输时基本上会加密,但是加密过程中还是有一些不安全的点,会导致隐私泄露,比如ECB加密或者常量IV。
还有SSL滥用,容易造成中间人攻击。
还有就是去找是否存在没被保护的PHI,或者保护手段用错了。这需要分析加密程序的流程,但是现有的工具都没能把这个方面搞明白。
Methodology
A. Detecting Incomplete Privacy Policy
NLP
反正就是用一些方式把自然语言的隐私政策转化为机器学习用的向量。
Machine Learning Classification
- 手动构建基准数据集:选择一些隐私政策并提取其中的句子,然后由合著者手动标记每个句子的通知标签。
- 构建分类器:针对每个通知预测构建一个分类器,使用带有标签的句子作为正例,从其他带有标签的句子中随机选择相同数量的负例。
- 应用机器学习算法:使用机器学习算法(如随机森林)训练分类器,以预测相应的通知标签。
Incomplete Policy Detection
在生成了六个分类器之后,一个新句子的特征向量将按顺序输入这六个分类器。如果一个通知分类器的预测结果为1,则将其对应的通知标签放入给定句子的Noticest中。最后,通过合并生成的所有Noticest,得到Noticepp,以检测隐私政策是否完整。
B. Analyzing Inconsistent Behavior
首先研究者们仔细阅读了GDPR政策,构建一个PHI的完整集合。然后,
构建DCP:AI玄学什么的
Phrase Similarity Calculation
构建ACP:GUI Analysis
数据流分析:用户输入的PHI不能直接放入ACP,因为APP不一定会存储使用它们。因此,更细节化的数据流分析还是有必要的。⭐
此文章使用FLOWDROID和VULHUNTER等基于Soot的框架来对APP的数据流进行静态分析。还有ICCTA,EDGEMINER。
- 数据源:重点关注输入框API:
findViewById
- 数据传递:污点分析
- Data Sinks(数据使用点):数据接收器是受污染变量的数据使用点。有六种不同的数据存储方法,包括将数据写入日志(例如 Log.d())或文件(例如 FileoutputStream.write()),或通过网络发送数据(例如 HttpClient.execute ()))或短消息(例如,SmsManager.sendTextMessage()),或将数据插入数据库(例如,SQLiteDatabase.update())或内容提供程序(例如,ContentResolver.insert())。
如果一个应用程序收集了一个 PHI 并通过上述六种方法存储数据,那么该 PHI 就会被添加到 ACP 中。
C. Identifying Insecure Data Transmission
Encryption Analysis
说白话还是Hook系统加密API,比如doFinal
方法,或者MessageDigest
对象。将这些作为Data Sinks,就能判断对应PHI是否经过了加密流程。
SSL Analysis
大量应用程序在验证不充分的情况下实现了 SSL,例如包含允许所有主机名或接受所有证书的代码。不安全的 SSL 传输非常危险,因为它们通常会携带关键的敏感数据,例如收集的 PHI。
为了检测 mHealth 应用程序中 SSL 分析的使用情况,我们重点关注通过三个网络相关包中的接收器 API 调用通过网络发送的 PHI。
然后我们通过使用名为 MALLODROID [16] 的静态分析工具来识别 SSL 滥用,该工具可以自动检查应用程序中的 SSL 安全风险。
- 本文作者: Taardis
- 本文链接: https://taardisaa.github.io/2023/09/26/阅读Paper-An-Empirical-Evaluation-of-GDPR-Compliance-Violations-in-Android-mHealth-Apps/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!