NatiDroid:跨语言 Android 权限规范
密码学与安全
2021-11-17 v1
摘要
Android 系统通过权限强制来管理与敏感 API 的访问。应用程序(app)在调用特定 Android API 之前必须声明适当的权限。然而,迄今为止尚无官方文档提供受权限保护的 API 及其对应权限的完整列表。研究人员已投入大量精力从 Android API 框架中提取此类 API 保护映射,其利用静态代码分析来确定访问 API 前是否需要特定权限。然而,他们均未尝试分析原生库(即用 C 和 C++ 编写的代码)中的保护映射,而原生库是 Android 框架中处理与底层硬件(如摄像头和传感器)通信的重要组成部分。虽然保护映射可用于检测 Android 应用中的各种安全漏洞,例如权限过度授权和组件劫持,但不精确的映射将导致检测此类安全漏洞时的错误结果。为填补这一空白,我们开发了一个名为 NatiDroid 的原型系统,以促进跨语言静态分析,并与两个最先进的工具(称为 Axplorer 和 Arcade)进行基准对比。我们在超过 11,000 个 Android 应用上评估了 NatiDroid,包括来自定制 Android ROM 的系统应用和来自 Google Play 的第三方应用。我们的 NatiDroid 可识别多达 464 个新的 API-权限映射,相比之下,从 Axplorer 和 Arcade 得出的最坏情况结果是约 71% 的应用在权限过度授权中至少有一个误报,多达 3.6% 的应用在组件劫持中至少有一个漏报。此外,我们识别出 24 个具有至少一个原生触发的组件劫持漏洞的组件被两个基准工具错误识别。
引用
@article{arxiv.2111.08217,
title = {NatiDroid: Cross-Language Android Permission Specification},
author = {Chaoran Li and Xiao Chen and Ruoxi Sun and Jason Xue and Sheng Wen and Muhammad Ejaz Ahmed and Seyit Camtepe and Yang Xiang},
journal= {arXiv preprint arXiv:2111.08217},
year = {2021}
}