Android安全研究进展_卿斯汉.docx

上传人:88****9 文档编号:15810 上传时间:2018-03-18 格式:DOCX 页数:27 大小:789.01KB
返回 下载 相关 举报
Android安全研究进展_卿斯汉.docx_第1页
第1页 / 共27页
Android安全研究进展_卿斯汉.docx_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《Android安全研究进展_卿斯汉.docx》由会员分享,可在线阅读,更多相关《Android安全研究进展_卿斯汉.docx(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: Journal of Software,2016,27(1):4571 doi: 10.13328/ki.jos.004914 http:/ 中 国科学院软件研究所版权所有 . Tel: +86-10-62562563 Android 安全研究进展 卿斯汉 1,2,3 1 2 3 (中国科学院 软件研究所 ,北京 100190) (信息安全国家重点实验室 (中国科学院 信息工程研究所 ),北京 100093) (北京大学 软件与微电子学院 ,北京 102600) 通讯作者 : 卿斯汉 , E-mail:

2、摘 要 : Android 是目前最流行的智能手机软件平台 ,报告称 ,2014 年 ,Android 的销售量占到全球份额 81%的绝对 优势 ,首次达到 10 亿部 .其余如苹果、微软、黑莓与火狐等则远远落在后面 .与此同时 ,Android 智能手机的日益流行 也吸引了黑客 ,导致 Android 恶意软件应用的大量增加 .从 Android 体系结构、设计原则、安全机制、主要威胁、恶 意软件分类与检测、静态分析与动态分析、机器学习方法、安全扩展方案等多维角度 ,对 Android 安全的最新研究 进展进行了总结与分析 . 关键词 : Android;安全机制 ;恶意软件 ;静态分析与动

3、态分析 ;安全扩展方案 中图法分类号 : TP309 中 文 引 用 格 式 : 卿 斯 汉 . Android 安 全 研 究 进 展 .软 件 学 报 ,2016,27(1):4571. http:/ 英 文 引 用 格 式 : Qing SH. Research progress on Android security. Ruan Jian Xue Bao/Journal of Software, 2016,27(1):4571 (in Chinese). http:/ Research Progress on Android Security QING Si-Han1,2,3 1 (I

4、nstitute of Software, The Chinese Academy of Sciences, Beijing 100190, China) 2 (State Key Laboratory of Information Security (Institute of Information Engineering, The Chinese Academy of Sciences), Beijing 100093, China) 3 (School of Software and Microelectronics, Peking University, Beijing 102600,

5、 China) Abstract: Android is a modern and most popular software platform for smartphones. According to report, Android accounted for a huge 81% of all smartphones in 2014 and shipped over 1 billion units worldwide for the first time ever. Apple, Microsoft, Blackberry and Firefox trailed a long way b

6、ehind. At the same time, increased popularity of the Android smartphones has attracted hackers, leading to massive increase of Android malware applications. This paper summarizes and analyzes the latest advances in Android security from multidimensional perspectives, covering Android architecture, d

7、esign principles, security mechanisms, major security threats, classification and detection of malware, static and dynamic analyses, machine learning approaches, and security extension proposals. Key words: Android; security mechanism; malware; static and dynamic analyses; security extension proposa

8、l 在智能移动终端如火如荼发展的同 时 ,其安全态势也日益严峻 .Alcatel Lucent 旗下的 Motive Security Labs 发布的恶意软件分析报告 1指出 ,2014 年 ,全球受恶意软件感染的移动设备为 1 600 万台 ,占全部移动设备的 0.68%,同比增长了 25%,高于 2013 年的 20%.图 1 说明 ,自 2012 年 12 月 2014 年 12 月之间移动设备感染率增 基金项目 : 国家自然科学基金 (61170282) Foundation item: National Natural Science Foundation of China (61

9、170282) 收稿时间 : 2015-06-20; 修改时间 : 2015-08-31; 采用时间 : 2015-09-11; jos 在线出版时间 : 2015-10-16 CNKI 网络优先出版 : 2015-10-16 11:53:29,ttp:/ Mobileinfectionrate(%) 46 Journal of Software 软件学报 Vol.27, No.1, January 2016 长的情况 . 0.7 0.6 0.5 0.4 Oct. Jan. May Aug. Nov. Mar. Jun. Sep. Dec. Apr. 2012 2013 2014 2015 F

10、ig.1 Mobile infection rate since December 2012 图 1 2012 年 12 月以来移动设备感染率 Android 是目前应用最广的智能手机操作系统 ,它的设计兼顾系统的性能 、可 用性 、安 全性与开发方便性 , 受到广大用户的欢迎 .据权威分析机构 Strategy Analytics 的统计 2,2014 年 ,全球智能手机的年销售增长率大于 30%,达到超记录的 13 亿部 ,其中 ,Android 的销售量占到全球份额 81%的绝对优势 ,首次达到 10 亿部 .其余如苹 果 、微 软 、黑 莓与火狐等则远远落在后面 .另一方面 ,Andr

11、oid 系统的开放性也受到应用开发者的青睐 ,但同 时也 带来更多的安全问题 .Android 设备和 Windows PC 已经成为恶意攻击的主要对象 ,遭恶意软件攻击的次数已经 趋同 .2014 年 ,Android 恶意软件样本的增长率为 161%.图 2 是自 2012 年 6 月以来的统计 1. Mobile malware samples 1400000 1200000 1000000 800000 600000 400000 200000 Jul-12 Oct-12 Jan-13 Apr-13 Jul-13 Oct-13 Jan-14 Apr-14 Jul-14 Oct-14 F

12、ig.2 Android malware samples continue growth 图 2 Android 恶意软件样本量持续增加 然而 ,Android 应用的迅猛发展和安全问题的日益突出与反制措施极不协调 .Zhou 等人 3的研究表明 ,4 个有 代表性的移动反病毒软件 :AVG(AVG antivirus free v2.9),Lookout(lookout security & antivirus v6.9),Norton (norton mobile security lite v2.5.0.379)和 TrendMicro(TrendMicro mobile securit

13、y personal edition v2.0.0.1294)在 最佳和最坏情形下只能分别检测出 79.6%和 20.2%的恶意软件 . 在这种形势下 ,近年来 ,关于 Android 安全的研究大幅度增加 .来自会议 、 期刊和网络的论文覆盖面很广 :智 能手机 (Android,iOS,Windows Phone 等 )安全综述如文献 46、 Android 安全综述如文献 713、某 类问题 的综 述 如针对 Android 恶意软件 1431;Android 的权限机制 3250;机器学习在 Android 中的应用 5161等 .更多的 研究是关于某个具体方向的分析和讨论以及对某个具

14、体问题的深入分析 .例如 :Felt 等人 33对 Google 官方文件 没有仔细阐述的 Android 权限实现机制进行了剖析 ,给出了权限与 API 之间的映射关系 .此外 ,还有厂商提供的 应用工具与安全工具等 ,如 Google 提供的反编译工具 Apktool62和 FireEye 公司 提供的基 于 “多向量虚拟执行 (multi-vector virtual execution,简称 MVX)”引擎的移动威胁保护工具 (FireEye mobile threat prevention,简称 MTP)63. Android 的安全问题并非都是其独有的 ,Android 继承了许多

15、发生过的类似安全问题 ,自然地也继承了其底Home Dialer SMS/ Package manager Telephony USB driver Keypad driver WiFi driver Audio drivers Power 卿斯汉 :Android 安全研究进展 47 层 Linux 中的安全问题 .例如 ,“Setuid()-RLIMIT_NPROC 交互 ”型漏洞经常发生在 Linux(以及 Unix)中各种 root 守护进程与 setuid-root 程序之中 ,该漏洞源于没有正确检查 setuid()函数的返回值 .setuid()执行成功或失败时 ,分 别返回 0

16、 和 1.当程序以 root 身份运行并正常执行 setuid(UID)后 ,将降低权限为普通用户 .但因未检查 setuid() 的返回值 ,当 setuid 失败时 ,程序仍将继续以 root 身份运行 ,就会产生许多安全问题 .Zimperlich64恶意软件 (参看 第 3.1.2 节 )正是利用了上述漏洞 ,成功地攻击了 Android 系统 . 下面 ,本文将从 Android 体系结构 、设 计原则 、安 全机制 、主 要威胁 、恶 意软件分类与检测 、静 态分析与 动态分析 、机 器学习方法 、安 全扩展方案等多维角度 ,对 Android 安全的研究现状与进展进行全面的总结与

17、分 析 .最后 ,对全文进行总结 . 1 Android 体 系结构 1.1 Android软件栈 Android 的软件栈具有清晰的 3 层结构 65,由底向上是 Linux 内核 、 Android 中间 件和应用层 ,如图 3 所示 . Applications MMS IM Browser Contacts Voice Dial Email Calendar Media Player Application framework Camera Alarm Albums Clock Calculator . Activity manager Window manager Content p

18、roviders View system Notification manager manager Resource manager Location manager XMPP service Surface manager Libraries Media framework SQLite Android runtime Core libraries OpenGL|ES FreeType LibWebCore Dalvik virtual machine SGL SSL Libc Linux kernel Display driver Camera driver Bluetooth drive

19、r Flash memory driver Binder (IPC) driver management Fig.3 Android software stack 图 3 Android 软件栈 Linux 内核提供最基本的功能 ,包括内存管理 、进 程调度 、设 备驱动器和文件系统 .所有的设备资源 ,例如照 相与摄像功能 、 GPS 数据 、 蓝牙功能 、 通话功能 、 网络连接等 ,都通过操作系统进行访问 . Android 在 内 核 层 实 现 了 基 于 Binder(OpenBinder66 的 精 简 版 本 ) 的 轻 量 级 进 程 间 通 信 (inter-process

20、 communication,简称 IPC),这是应用组件之间进行通信的主要 IPC 机制 ,在 Android 的术语中称为组件间通信 (inter-component communication,简称 ICC).Android 为 ICC 设计了一种特定的接口定义语言 (Android interface definition language,简称 AIDL),定义用于 远程调用的 method 和 field.例如 ,可以通过 ICC 调用绑定远程服务 . Linux 之上的中间件层由本地类库 、 Android 运行环境和 Android 应用架构组成 .本地类库提供诸如图形处 48

21、 Journal of Software 软件学报 Vol.27, No.1, January 2016 理等基本功能 .Android 运行环境由核心 Java 类库与 Dalvik 虚拟机组成 .Android 应用架构是用 C/C+或 Java 编写的系统应用 ,由 System Content Provider 和 System Service 构成 .其中 ,System Content Provider 是基本数据 库 ;System Service 包括联系人 app、 前贴板 、 系统设置 、 Notification Manager、 Resource Manager、 Lo

22、cation Manager 等 ,System Service 提供控制设备硬件和获取平台状态信息 (如位置 、 网络状态 )等功能 . 最上面的应用层由两部分组成 :一是内置的基本应用 ,包括桌面 (home)、 拨打电话 (phone)、 E-mail、 日历 (calendar)、 Web 浏览器 (browser)和联系人 (contacts)等 ;二是用户安装的用 Java 编写的第三方应用 ,但由于性能 的原因 ,许多应用也包括本地代码 (C/C+),可以通过 Java 本地接口 (Java native interface,简称 JNI)调用 . 1.2 Android的组件

23、Android 有 4 种类型的组件 (component). (1) Activity(用户界面 )是应用程序与用户进行人机交互的可视化用户界面 ,包含很多与用户交互的构件 , 如按钮 、 文本输入框等 .一个 Android 应用程序可以有多个 Activity; (2) Service(后台进程 )是 Android 系统运行在后台的服务 ,不提供用户界面 ; (3) Content Provider(内容提供器 )是一种 SQL-数据库 ,用于为应用程序提供数据 ,同时为应用程序中的数 据共享提供支持 ; (4) Broadcast Receivers(广播接收器 )是接收广播消 息的

24、邮箱 . 1.3 Intent与组件通信 Android 系统中不同组件之间的通信主要是通过 Intent 实现的 ,Intent 是一个包含目标组件地址和数据的消 息对象 .Android API 定义了接收 Intent 和通过其中的信息启动 Activity(startActivity(Intent)、 启动 Service (startService(Intent)和广播消息 (sendBroadcast(Intent)的方法 (method).调用这些方法相当于通知 Android 系统 开始调用目 标应用中的执行代码 ,在 Android 术语中 ,这种组件间通信的过程称为 “动作

25、 (action)”.亦即 ,一个 Intent 对象定义执行一个 “动作 ”的意图 (intent),这就是 “Intent”名称的缘由 . Android 系统发送 Intent 对象的方式有两种类型 :(1) 显式类型 ,发送时在 Intent 对象的字段中标注目标组 件名称 ,即 ,该 Intent 对象会到达该指定组件 ;(2) 隐式类型 ,发送时只设置 Intent 对象中的 “动作 (action)”字段 ,发 出后可能有多个程序通过 intent-filter 机制能够处理该动作 .应用程序在组件中可以声明 intent-filter,定义该组 件可以接收的动作和处理的数据类型

26、 .这种使用 “隐式类型 ”的 Intent 寻址机制的灵活性是 Android 系统最为强 大的功能之一 ,但同时也会带来安全隐患 . Android 组件的通信如图 4 所示 . System 开始 Activity Activity Activity 开始 /停止 绑定 Service Activity 查询 Content provider Activity 发送 Intent Broadcast receiver Service 返回结果 (a) Activity 组件间通信 (b) Service 组件间通信 结果 (c) Content Provider 组件间通信 (d) Br

27、oadcast Receiver 组件间通信 Fig.4 Android inter-component communication 图 4 Android 组件间通信示意图 1.4 Android系统架构 Android 的系统架构 67如图 5 所示 ,除前面阐述的软件栈之外 ,还有硬件的支持 .Android 支持两种指令集架 构 :ARM 和 x86. 硬件抽象层 (hardware abstraction layer,简称 HAL)是 Android 系统调用设备驱动层的标准接口 ,避免涉及驱 Audio HAL Graphics 卿斯汉 :Android 安全研究进展 49 动器和

28、硬件的底层实现 .HAL 通常以 .so 文件形式实现 ,.so 文件 是 Linux 操作系统的动态链接库文件格式 ,相当 于 Windows 操作系统的 .dll 动态链接库文件格式 . APPLICATION FRAMEWORK BINDER IPC PROXIES ANDROID SYSTEM SERVICES MEDIA SERVER AudioFlinger Camera service MediaPlayer service Other media services SYSTEM SERVER Search service Activity manager Window mana

29、ger Other system services & managers Camera HAL HAL HAL LINUX KERNEL Other HALs Camera driver Audio driver (ALSA,OSS, etc.) Display drivers Other drivers Fig.5 Android system architecture 图 5 Android 系统架构 1.5 Android的设计原则 笔者认为 ,Android 的设计遵循了下面 3 个原则 . (1) 开放性 :在与苹果手机等的激烈竞争中 ,为吸引用户 、第 三方开发商与应用程序开发者所

30、做出的选择 , 从目前的市场销售量与发展趋势看 ,无疑取得了很好的效果 ; (2) 资源有限性 :由于手机应用的资源 (内存 、电 池等 )有限 ,必须进行相应的重新设计 .此外 ,由于某些系统 受到版权保护 ,也需要进行重新设计 ,例如 Bionic(非 POSIX libc); (3) 简 单性 :为了方便用户 ,Android 系统设计采取了 “简单 、快 速与易用 ”的原则 ,在安全性方面作了折中 . 值得注意的是 :尽管 Android 的基础是 Linux,但对 Linux 作了大幅度修改 ,因此 ,Android 不是 Linux.概括地 说 ,Android 对 Linux 的

31、内核级增强包括 alarm 驱动器 、 ashmem(Android 共享内存驱动器 )、 binder 驱动器 (Android 特有的轻量级进程间通信机制 )、电 源管理 、低 内存管理器 (low memory killer,简称 LMK)和内核 调试器 (kernel debugger)等 .其中 ,alarm 驱动器通过定时器唤醒休眠设备 ;ashmem 使 Android 应用可以高效地在内核级共享有 限的内存 ;电源管理构建在标准 Linux 电源管理 (PM)之上 ,采用更加有效的省电策略 .Android 对 Linux 的用户级 增强包括 Bionic(非 POSIX C

32、程序库 )、 预链接的系统库 、 Dalvik 虚拟机和本地类库等 .此外 ,Android 使用在有 限资源条件下优化的 YAFFS(yet another flash file system) flash 文件系统 . 1.6 Dalvik虚拟机 Dalvik 虚 拟机 是 Android 系统的核心组成部分之一 ,它与 Java 虚拟机 (JVM)不同 ,是专门为资源有限的移动 50 Journal of Software 软件学报 Vol.27, No.1, January 2016 终端 设计的 ,可使智能手机同时有效地运行多个虚拟机 .每个应用程序都作为一个 Dalvik 虚拟机实

33、例 ,在自己的 进程中运行 .Dalvik 虚拟机的可执行文件格式是 .dex(Dalvik executable),是专门为 Dalvik 设计的一种压缩格式 . 与基于栈的 JVM 不同 ,具有更高效率的 Dalvik 虚拟机是基于寄存器的 .Java 源代码编译成 .class 文件后 ,通过 Android SDK 中的 “dx”工具转换为 Dalvik 虚拟机可执行的 .dex 文件 .每个 .class 文件中只包含一个 class,但一个 dex 文件可以包含多个 class. Dalvik 虚拟机中有一个重要的虚拟机进程 Zygote,称为虚拟机实例的孵化器 .每当系统要求执行

34、一个 Android 应用程序时 ,Zygote 就会 fork 出一个子进程来执行该应用程序 .Zygote 是系统启动时产生的 ,它会完成 虚拟机的初始化 、库 的加载等操作 .如果系统需要创建一个新的虚拟机实例 ,Zygote 就通过 fork 自身 ,以最快的 速度提供给系统 .对于一些只读的系统库 ,所有虚拟机实例都和 Zygote 共享一块内存区域 ,极大地节 省了内存开 销 .Dalvik 虚拟机有一套自身专用的指令集 ,并规定了这套指令集的指令格式与调用规范 ,称为 smali 语言 . 2 Android 的 安全机制 2.1 Android安全模型 Android 的安全模

35、型由 3 个部分组成 :Linux 安全机制 、 Android 本地库及运行环境安全与 Android 特有的 安全机制 ,见表 1. Table 1 Android security model 表 1 Android 安全模型 安全模型的组成部分 安全机制 Linux 内核 POSIX 用户 文件访问控制 内存管理单元 Android 本地库及运行环境 Android 特定安全机制 强类型安全语言 移动设备安全 权限机制 签名机制 组件封装 Dalvik 虚拟机 2.1.1 Linux 安全机制 Android 继承了 Linux 的安全机制 ,主要有 : (1) POSIX(porta

36、ble operating system interface of unix)用户 . 每个包 (.apk)文件安装时 ,Android 会赋予该文件唯一的 Linux(POSIX)用户 ID.因此 ,不同的包代码不可能运 行于同一进程 ,相当于系统为每个应用建立了一个沙盒 ,不论调用应用程序的方式如何 ,一个应用程序始终运行 在属于自己的进程中 ,拥有固定的权限 . 为使两个应用程序共享权限 ,它们必须共享相同的 ID,并通过 sharedUserID 功能实现 . (2) 文件访问控制 . Android 系统文件与应用文件的访问控 制继承了 Linux 的权限机制 .每个文件都绑定 UI

37、D(用户 ID)、 GID (用户组 ID)和 rwx 权限 ,用于进行自主访问控制 (discretionary access control,简称 DAC).一般地 ,Android 系统文 件的拥有者是 “系统 ”用户或 “根 ”用户 .为了增强安全性 ,所有的用户和程序数据都存储在数据分区 ,与系统分区 隔离 .当 Android 系统处于 “安全模式 ”时 ,数据分区的数据不会加载 ,便于系统进行有效的恢复管理 .此外 ,系统镜 像设置为只读 . 2.1.2 Android 本地 库及运行环境安全 Android 本地库及运行环境也提供了安全保障 ,主要有 : (1) 内存管理单元

38、(memory management unit,简称 MMU). 卿斯汉 :Android 安全研究进展 51 该硬件设备为进程分配不同的地址空间 (虚拟内存 ),是一种隔离进程的有效方法 .进程只能访问自己的内 存页 ,而不能访问其他进程的内存空间 . (2) 强制类型安全 . 类型安全 (type safety)是编程语言的一种特性 ,它强制变量在赋 值时必须符合其声明的类型 ,防止变量被错 误或不恰当地使用 .类型转化错误或缺少类型安全边界检查 ,是产生缓冲区溢出攻击的主要原因 .Android 使用 强类型 Java 语言 ,通过编译时的类型检查 、自 动的存储管理和数组边界检查保证类

39、型安全 .此外 ,Binder 也是类 型安全的 ,经 Binder 传送的数据元类型由 AIDL 定义 ,保证类型在跨越进程边界时保持不变 . (3) 移动设备安全 . 电话系统的基本属性集来自识别用户 、 监督使用和收费的需求 .一个更为通用的术语是所谓的 “AAA”,即 , 认证 (authentication)、 授权 (authorization)和记账 (accounting).Android 借鉴智能手机设计的这些典型安全特征 , 认证和授权通过 SIM 卡及其协议完成 ,SIM 卡中保存使用者的密钥 . 2.1.3 Android 特定安全机制 Android 独有的安全机制包

40、括 : (1) 权限机制 . 这是 Android 中最重要的安全措施之一 ,将在第 2.2 节中详细阐述 . (2) 组件封装 . 通过组件 (activity,service,content provider 和 broadcast receiver)封装 ,可以保证应用程序的安全运行 .若组件 中的功能 exported 设置为 false,则组件只能被应用程序本身或拥有同一 UID 的应用程序访问 ,此时 ,该组件称为 私有组件 ;若 exported 设置为 true,则组件可被其他应用程序调用或访问 ,此时 ,该组件称为公开组件 . (3) 签名机制 . 为便于安装 ,Androi

41、d 将应用程序打包成 .apk 文件 .一个 .apk 文件不仅包含应用的所有代码 (.dex 文件 ),也包 含应用所有的非代码资源 ,如图片 、声 音等 .Android 要求所有的应用程序 (代码和非代码资源 )都进行数字签名 , 从而使应用程序的作者对该应用负责 .只要证书有效 ,且公钥可以正确地验证签名 ,则签名后的 .apk 文件就 是有 效的 . (4) Dalvik 虚拟机 . 如第 1.6 节所述 ,每个应用程序都作为一个 Dalvik 虚拟机实例在自己的进程中运行 .因此 ,Dalvik 虚拟机与 POSIX 用户安全机制一起构成了 Android 沙盒机制 . 2.2 A

42、ndroid权限机制 权限管理是 Android 系统中最重要的安全措施之一 ,经过了精心设计与考量 .为达到方便 、易 用和简单 、快 速的目标 ,Android 在安全性方面做出了一定程度的牺牲 ,即 ,决定采取粗粒度的权限管理机制 68. Android 的权限管理遵循 “最小特权原则 69,即 ,所有的 Android 应用程序都被赋予了最小权限 .一个 Android 应用 程序 如果没有 声明 任何权限 ,就 没有 任 何特 权 .因此 ,应 用程 序如 果想访问 其他 文件 、数 据和 资源就必 须在 AndroidManifest.xml 文件中进行声明 ,以所声明的权限去访问

43、这些资源 .否则 ,如果缺少必要的权限 ,由于沙箱的 保护 ,这些应用程序将不 能够正常提供所期望的功能与服务 . 所有应用程序对权限的申请和声明都被强制标识于 AndroidManifest.xml 文件之中 ,通过 permission, permission-group,permission-tree等标签指定 .需要申请某个权限 ,可以通过 uses-permission指定 .应用程序申 请的权限在安装时提示给用户 ,用户可以根据自身需求和隐私保护的考量决定是否允许对该应用程序授权 . 由于基于 Linux 内核 ,Android 系统中的权限分为以下 3 类 . (1) Andro

44、id 手机所有者权限 ; (2) Android ROOT 权限 .类似于 Linux,这是 Android 系统中的最高权限 .如果拥有该权限 ,就可以对 Android 系统中的任何文件 、 数据 、 资源进行任意操作 .所谓 “越狱 (JailBreak)”,就是令用户获得最高 的 ROOT 权限 ; 52 Journal of Software 软件学报 Vol.27, No.1, January 2016 (3) Android 应用程序权限 .该权限在 AndroidManifest 文件中由程序开发者声明 ,在程序安装时由用户授 权 .共有下述 4 类不同的权限保护级别 (pro

45、tection level). (i) normal.风险较低的权限 ,只要申请即可使用 ,无需用户授权 ,例如 “VIBRATE”权限 (使设备 震动 ); (ii) dangerous.风险较高的权限 ,安装时需要用户确认才能使用 ,例如 “PHONE CALLS”(打电话 ), “INTERNET”(访问 Intent)和 “SEND SMS”(发短信 )权限 ; (iii) signature.仅当申请该权限的应用程序与声明该权限的程序使用相同的签名时 ,才赋予该权限 ; (iv) signatureOrSystem.仅当申请该权限的应用程序位于相同的 Android 系统镜像中 ,或

46、申请该权限 的应用程序与声明该权限的程序使用相同的签名时 ,才赋予该权限 . Android 权限机制是通过其中间件层实现的 ,由其访问监控器 (reference monitor)对 ICC 调用实施强制访问 控制 (mandatory access control,简称 MAC).运行时 ,当组件请求 ICC 调用时 ,访问监控器核查该组件是否具有相 应的权限 .在图 611所示的例子中 ,应用 1 中的组件 A 试图访问应用 2 中的组件 B 和 C,但比较 B 和 C 的访问权 限标签和赋予应用 1 的访问权限标签集后 ,访问监控器允许 A 访问 B,但拒绝 A 访问 C. Appli

47、cation 1 Permission labels A: . B: l1 Application 2 Permission labels l1,. Inherit permissions X C: l2 . Fig.6 An example of Android permission mechanism enforcement 图 6 Android 权限机制实现举例 图 770描述了 Android 的通信信道与相应的访问控制机制 :在中间件层 ,Android 通过访问监控器对 ICC 调 用进行强制访问控制 ;在内核层 ,Android 继承了 Linux 的安全机制 ,对文件系统和 默认 Linux 进程间通信实施自 主访问控制 .同时 ,对网络套接字 (socket)实施强制访问控制 . Ap

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 期刊短文 > 短文

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com