![](https://csdnimg.cn/release/download_crawler_static/86322497/bg9.jpg)
北京邮电大学本科毕业设计(论文)
8
STORAGE READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE
1.2 Android 权限模型存在的风险
1.2.1 应用开发中第三方库的使用
在 Android 应用开发中,第三方库是一种可复用的软件资源
[2]
,在当今的应用开发中
使用越来越广泛。
常见的第三方库类型有:
[2]
1)广告库,例如 MoPub, AdMob。
2)社交平台库,例如 Facebook。
3)实用工具库(包括定位库,分析库),例如 Google GMS
在 Android 应用开发中,第三方库多以 jar/class 文件的形式提供给开发者
[2]
,开发者
除编写应用核心代码外,还可通过导入的方式在应用中引入第三方库。在应用编译时,
核心代码与导入的第三方库都会被转换成 JVM 字节码,存储到应用的 APK 包中。
1.2.2 基于应用的权限模型的风险
在当今 Android 应用开发中,第三方库的使用越来越普遍,用途主要有定位,消息
推送,广告服务等。然而当今 Android 权限机制,均是以应用为基准的,用户允许应用
使用某种权限,即允许该应用的所有代码(包括核心代码和第三方库)使用相应权限,
基于以上第三方库的使用现状,现有权限机制存在越权风险,第三方库可以利用宿主应
用被允许的所有权限,进行敏感操作。
上文已经提到,应用所用的第三方库代码和应用本身的核心代码均在同一个应用的
字节码中。在权限模型中,一个应用实际执行时,其权限声明及设置的作用范围是整个
应用,包括核心代码及第三方库,因此第三方库具有和宿主应用核心代码相同权限。如
果一个应用被用户授予某种隐私相关权限,则第三方库也能访问相关隐私信息。
在实际的应用中,这种授权方式存在越权访问风险
[3]
,例如,导航应用的开发者为了
实现功能,声明了位置相关危险权限;用户为了确定自己所在位置,用于地图导航,授
予该应用获取位置的相关权限。现有权限机制下,同一个应用中的广告库、分析库等也
可以访问用户的位置。隐私信息可以通过上述越权访问方式,在用户及开发者对第三方
库均缺乏了解的情况下泄露到非预期的域。
此外,在网页浏览器中,为了防止跨域隐私信息泄露,采用的是同源策略,而 Android
应用的访问控制是基于整个应用的,包括核心代码和第三方库。由于移动应用的网络交
互日渐丰富,网页和移动应用的安全策略在这一方面并不匹配,产生安全风险。
1.3 Android 应用权限风险及访问控制的相关研究
关于第三方库的越权访问风险,Ryan Stevens 等
[3]
曾进行相关研究,进行了广告库所
用到的权限与文档说明的权限的对比,发现很多广告库会使用一些在其使用文档中没有