论文部分内容阅读
摘 要:Android是基于Linux内核的移动智能终端操作系统,由于其开源的特性,使Android 相对更容易感染病毒,受到恶意程序的威胁以及隐私信息的泄露。因此Android的安全性得到极大的重视。本文首先介绍了Android 系统和其安全机制以及安全风险,然后对比了现有相关工作的优缺点,最后从现有工作中存在的不足提出了一些未来的研究方向和重点。
关键词:Android操作系统;Android安全;安全机制;权限机制
引言
2007年11月,Google发布了基于Linux内核的开源智能移动操作系统Android。在众多的智能手机操作系统中,Android是首个为移动终端打造的真正开放和完整的移动软件。该系统一经发布便受到了广大用户的喜爱。目前Android在在全球智能手机操作系统市场占有率为76%,在中国市场占有率为90%[1]。由于Android系统的开源性以及巨大的用户量,Android在快速发展的同时,已经成为许多恶意软件的攻击目标。如何加强Android系统的安全性已引起学术界的重视。
1 Android系统及其安全机制介绍
1.1 Android系统简介
Android是基于Linux 的开源的软件堆栈移动系统,从低层到高层分别是Linux内核层、系统运行库层、应用程序框架层和应用程序层[1]。图1所示为Android系统框架。
图1 Android系统框架
Linux 内核层提供了设备驱动和核心系统服务。系统运行库层包含一些C/C + + 本地库和安卓运行时环境,本地库提供的一些核心功能,这些库能被安卓系统中不同的组件使用,它们通过安卓应用程序框架为开发者提供服务; 安卓运行时环境包括核心Java 库和Dalvik 虚拟机。应用程序框架层通过向开发者提供核心应用程序所使用的框架APIs,使开发者能够编制极其丰富和新颖的应用程序。安卓应用程序层包括了核心应用程序;应用程序包含分离的组件,如活动、服务和广播接收器等,组件遵循一定安全限制还可以重用。
1.2 Android系统安全机制
由于Android 操作系统是基于Linux 内核开发的[2],所以在Android 安全机制中, 既继承了Linux 的安全机制又有自己特有的安全机制。下面主要介绍Android特有的安全机制。
1.2.1 Linux内核安全机制
(1)访问控制
Android 文件访问控制机制继承了Linux 文件访问机制,Linux 为不同的文件设置了读/写权限, 即Permission对应的由10个字符组成的值。
(2)UID(用户标识)
Android系统为每一个应用程序分配唯一的一个Linux 用户ID,并为该应用程序创建一个沙箱(Sandbox)[3]。UID在应用程序安装时被分配,并且在该移动智能终端上永久有效。在移动智能终端上每个应用程序所创建的文件都与该应用程序拥有相同的UID,在其他应用程序没有系统授权的情况下不能对这个文件进行访问,从而实现了Android 系统中的数据的机密性。
1.2.2 Android系统特有的安全机制
Google 为Android 引进了以下特有的安全机制:应用程序权限机制,组件包装,和数字签名。
(1)权限机制
Android 應用框架层提供了限制组件间访问的强制访问控制机制,系统中定义了一系列安全操作相关的权限标签,应用需要在配置文件( Manifest.xml) 中利用这些标签声明自己所需的权限,当用户同意授权后,该应用下属的所有组件将会继承应用声明的所有权限。同时,组件也可以利用权限标签限制能够与其交互的组件范围。
Android 支持普通( normal) 、危险( dangerous) 、签名( signature)以及签名或系统(signatureOrSystem) 四种权限保护级别[4]。危险级别的权限在应用程序安装时会在屏幕上列出,而普通级别的权限是隐藏在折叠目录或屏幕上的。签名级别的权限只有在请求权限的应用程序与声明权限的程序是用相同的证书签名时才被授权。
(2)组件包装
Android 系统中拥有不同的用户ID 的应用程序为了防止其他应用程序访问自己的组件,将组件包装在程序内容内。这主要通过定义组件的“exported”属性来实现,开发者必须手动设置“exported”属性值。
(3)数字签名
所有的应用程序都必须有数字证书[5],Android 系统不会安装一个没有数字证书的应用程序。应用程序的数字证书不需要相关权威机构的签名认证,即可以自签名。
1.2.3 其他保护机制
周围的技术环境(如硬件设备、编程语言、手机载体的基础设施) 也提供了一些加强Android 设备安全性的机制。
2 Android系统的安全风险
Android通过继承Linux内核的安全机制实现系统安全,又通过自身的permission 机制实现数据安全。因此Android在诞生之初就拥有良好的安全性。但面对复杂的安全环境,Android 原生安全机制是远远不够的。目前对Android系统安全的研究已取得许多理论、实践成果,但还是存在诸多不足之处,主要体现在以下几个方面:
(1)以用户为中心,依托没有专业知识的广大用户完成授权工作,极大地降低了系统的安全性。
(2)所有权限都是在安装时进行检查并授予的,因此资源的访问不能根据用户使用情况的不同而进行动态的限制[6]。
(3)Android 没有对已授予应用的权限的使用范围进行限制。 (4)用户撤销已授予某个应用权限的唯一方法就是卸载该应用。
3 Android 系统安全加固策略
目前对Android系统的安全性研究已有不少成果,下面对当前研究现状中各主流加固策略的优缺点进行了对比:
综上可知,在权限机制上的加固策略具有较好的综合效果;所以推荐对Android系统权限机制进行合理的加固策略。
4 未来工作展望
综合考虑已有工作存在的缺陷以及智能平台未来的发展,针对Android 的安全研究工作将来可能围绕以下几个方面展开:
(1)构建一种统一的通用的安全增强框架[7]。
(2)进一步细化策略控制粒度,提高系统可用性。
(3)构建一种智能的策略决策引擎,将决策权交由系统完成。
5 总结
Android 开源平台的流行吸引了众多攻击者和安全研究人员的广泛关注,本文对比了现有相关工作的优缺点,最后从现有工作中存在的不足提出了一些未来的研究方向和重点,对之后Android 系统的安全研究具有一定的参考意义。
参考文献
[1]张玉清,王凯,杨欢,方喆君,王志强,曹琛. Android安全综述[J]. 计算机研究与发展,2014,07:1385-1396.
[2]Shuen-Wen Hsiao; Shih-Hao Hung; Chien, R.; Chih-Wei Yeh, "PasDroid: Real-Time Security Enhancement for Android," in Innovative Mobile and Internet Services in Ubiquitous Computing (IMIS), 2014 Eighth International Conference on , vol., no., pp.229-235, 2-4 July 2014
[3]Enck, W.; Ongtang, M.; McDaniel, P., "Understanding Android Security," in Security & Privacy, IEEE , vol.7, no.1, pp.50-57, Jan.-Feb. 2009
[4]Han Bing, "Analysis and Research of System Security Based on Android," in Intelligent Computation Technology and Automation (ICICTA), 2012 Fifth International Conference on , vol., no., pp.581-584, 12-14 Jan. 2012
[5]逯全芳,唐杰,文紅. Android移动智能终端操作系统安全机制的安全性评估[J]. 信息安全与技术,2013,08:54-58.
[6]蒋绍林,王金双,张涛,陈融. Android安全研究综述[J]. 计算机应用与软件,2012,10:205-210+0.
[7]吴泽智,陈性元,杨智,杜学绘. 安卓隐私安全研究进展[J]. 计算机应用研究,2014,08:2241-2247.
关键词:Android操作系统;Android安全;安全机制;权限机制
引言
2007年11月,Google发布了基于Linux内核的开源智能移动操作系统Android。在众多的智能手机操作系统中,Android是首个为移动终端打造的真正开放和完整的移动软件。该系统一经发布便受到了广大用户的喜爱。目前Android在在全球智能手机操作系统市场占有率为76%,在中国市场占有率为90%[1]。由于Android系统的开源性以及巨大的用户量,Android在快速发展的同时,已经成为许多恶意软件的攻击目标。如何加强Android系统的安全性已引起学术界的重视。
1 Android系统及其安全机制介绍
1.1 Android系统简介
Android是基于Linux 的开源的软件堆栈移动系统,从低层到高层分别是Linux内核层、系统运行库层、应用程序框架层和应用程序层[1]。图1所示为Android系统框架。
图1 Android系统框架
Linux 内核层提供了设备驱动和核心系统服务。系统运行库层包含一些C/C + + 本地库和安卓运行时环境,本地库提供的一些核心功能,这些库能被安卓系统中不同的组件使用,它们通过安卓应用程序框架为开发者提供服务; 安卓运行时环境包括核心Java 库和Dalvik 虚拟机。应用程序框架层通过向开发者提供核心应用程序所使用的框架APIs,使开发者能够编制极其丰富和新颖的应用程序。安卓应用程序层包括了核心应用程序;应用程序包含分离的组件,如活动、服务和广播接收器等,组件遵循一定安全限制还可以重用。
1.2 Android系统安全机制
由于Android 操作系统是基于Linux 内核开发的[2],所以在Android 安全机制中, 既继承了Linux 的安全机制又有自己特有的安全机制。下面主要介绍Android特有的安全机制。
1.2.1 Linux内核安全机制
(1)访问控制
Android 文件访问控制机制继承了Linux 文件访问机制,Linux 为不同的文件设置了读/写权限, 即Permission对应的由10个字符组成的值。
(2)UID(用户标识)
Android系统为每一个应用程序分配唯一的一个Linux 用户ID,并为该应用程序创建一个沙箱(Sandbox)[3]。UID在应用程序安装时被分配,并且在该移动智能终端上永久有效。在移动智能终端上每个应用程序所创建的文件都与该应用程序拥有相同的UID,在其他应用程序没有系统授权的情况下不能对这个文件进行访问,从而实现了Android 系统中的数据的机密性。
1.2.2 Android系统特有的安全机制
Google 为Android 引进了以下特有的安全机制:应用程序权限机制,组件包装,和数字签名。
(1)权限机制
Android 應用框架层提供了限制组件间访问的强制访问控制机制,系统中定义了一系列安全操作相关的权限标签,应用需要在配置文件( Manifest.xml) 中利用这些标签声明自己所需的权限,当用户同意授权后,该应用下属的所有组件将会继承应用声明的所有权限。同时,组件也可以利用权限标签限制能够与其交互的组件范围。
Android 支持普通( normal) 、危险( dangerous) 、签名( signature)以及签名或系统(signatureOrSystem) 四种权限保护级别[4]。危险级别的权限在应用程序安装时会在屏幕上列出,而普通级别的权限是隐藏在折叠目录或屏幕上的。签名级别的权限只有在请求权限的应用程序与声明权限的程序是用相同的证书签名时才被授权。
(2)组件包装
Android 系统中拥有不同的用户ID 的应用程序为了防止其他应用程序访问自己的组件,将组件包装在程序内容内。这主要通过定义组件的“exported”属性来实现,开发者必须手动设置“exported”属性值。
(3)数字签名
所有的应用程序都必须有数字证书[5],Android 系统不会安装一个没有数字证书的应用程序。应用程序的数字证书不需要相关权威机构的签名认证,即可以自签名。
1.2.3 其他保护机制
周围的技术环境(如硬件设备、编程语言、手机载体的基础设施) 也提供了一些加强Android 设备安全性的机制。
2 Android系统的安全风险
Android通过继承Linux内核的安全机制实现系统安全,又通过自身的permission 机制实现数据安全。因此Android在诞生之初就拥有良好的安全性。但面对复杂的安全环境,Android 原生安全机制是远远不够的。目前对Android系统安全的研究已取得许多理论、实践成果,但还是存在诸多不足之处,主要体现在以下几个方面:
(1)以用户为中心,依托没有专业知识的广大用户完成授权工作,极大地降低了系统的安全性。
(2)所有权限都是在安装时进行检查并授予的,因此资源的访问不能根据用户使用情况的不同而进行动态的限制[6]。
(3)Android 没有对已授予应用的权限的使用范围进行限制。 (4)用户撤销已授予某个应用权限的唯一方法就是卸载该应用。
3 Android 系统安全加固策略
目前对Android系统的安全性研究已有不少成果,下面对当前研究现状中各主流加固策略的优缺点进行了对比:
综上可知,在权限机制上的加固策略具有较好的综合效果;所以推荐对Android系统权限机制进行合理的加固策略。
4 未来工作展望
综合考虑已有工作存在的缺陷以及智能平台未来的发展,针对Android 的安全研究工作将来可能围绕以下几个方面展开:
(1)构建一种统一的通用的安全增强框架[7]。
(2)进一步细化策略控制粒度,提高系统可用性。
(3)构建一种智能的策略决策引擎,将决策权交由系统完成。
5 总结
Android 开源平台的流行吸引了众多攻击者和安全研究人员的广泛关注,本文对比了现有相关工作的优缺点,最后从现有工作中存在的不足提出了一些未来的研究方向和重点,对之后Android 系统的安全研究具有一定的参考意义。
参考文献
[1]张玉清,王凯,杨欢,方喆君,王志强,曹琛. Android安全综述[J]. 计算机研究与发展,2014,07:1385-1396.
[2]Shuen-Wen Hsiao; Shih-Hao Hung; Chien, R.; Chih-Wei Yeh, "PasDroid: Real-Time Security Enhancement for Android," in Innovative Mobile and Internet Services in Ubiquitous Computing (IMIS), 2014 Eighth International Conference on , vol., no., pp.229-235, 2-4 July 2014
[3]Enck, W.; Ongtang, M.; McDaniel, P., "Understanding Android Security," in Security & Privacy, IEEE , vol.7, no.1, pp.50-57, Jan.-Feb. 2009
[4]Han Bing, "Analysis and Research of System Security Based on Android," in Intelligent Computation Technology and Automation (ICICTA), 2012 Fifth International Conference on , vol., no., pp.581-584, 12-14 Jan. 2012
[5]逯全芳,唐杰,文紅. Android移动智能终端操作系统安全机制的安全性评估[J]. 信息安全与技术,2013,08:54-58.
[6]蒋绍林,王金双,张涛,陈融. Android安全研究综述[J]. 计算机应用与软件,2012,10:205-210+0.
[7]吴泽智,陈性元,杨智,杜学绘. 安卓隐私安全研究进展[J]. 计算机应用研究,2014,08:2241-2247.