您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 工作范文 > 基于容器的Android加固方案
ComputerScienceandApplication计算机科学与应用,2016,6(2),65-71PublishedOnlineFebruary2016inHans.://dx.doi.org/10.12677/csa.2016.62008文章引用:崔浩亮,杨天长,牛少彰.基于容器的Android加固方案[J].计算机科学与应用,2016,6(2):65-71.:Feb.4th,2016;accepted:Feb.22nd,2016;published:Feb.25th,2016Copyright©2016byauthorsandHansPublishersInc.ThisworkislicensedundertheCreativeCommonsAttributionInternationalLicense(CCBY).’personaldata.KeywordsContainer,SecurityContext,Feature基于容器的Android加固方案崔浩亮,杨天长,牛少彰北京邮电大学智能通信软件与多媒体北京市重点实验室,北京收稿日期:2016年2月4日;录用日期:2016年2月22日;发布日期:2016年2月25日崔浩亮等66摘要Android作为占用大部分市场份额的智能移动开源平台,正面临着日益严重的安全威胁。虽然Android系统本身提供了一套安全保护机制来保护系统和应用的安全,但是依然存在着安全风险。为了保护Android智能手机安全,在深入分析Android系统安全机制的基础上,利用安全检测模型对应用进行分类汇总隔离形成安全容器的机制,可以有效的对Android系统及应用进行保护,同时有效地保护用户的个人数据。关键词容器,安全上下文,特征1.引言近年来,在移动设备在全球范围内得到了飞速的发展。智能手机作为移动设备的代表得到了前所未有的普及和发展。市场研究公司Gartner发布的数据显示,2015年第一季度智能手机销量增长了19%,智能手机的市场份额在不断的增大,同时智能手机的更新速度也在不断的增加。智能手机做了其手机的通讯功能越来越得到弱化,但计算功能和互联功能在人们的生活中起到了不可或缺的地位,人们开始使用智能手机来处理日常事务。由于智能手机存储着用户的账号、密码等敏感数据和用户的个人照片和私密文件等隐私数据,因此极易受恶意软件的攻击。腾讯移动安全实验室2015年上半年手机安全报告中指出上半年新增Android病毒包数达到596.7万,同比增长1741%。Android由于它的开放性导致恶意应用的开发成本和难度大大降低了[1]。虽然Android系统提供了沙盒、权限和签名等安全机制,但是Android平台还存在一些问题和漏洞,降低了平台的安全性。由于Android在智能手机的份额在不断的增加,而且它还有很大的发展潜力,学者们也对它的安全机制进行了诸多研究,如何完善访问控制、防止应用的权限滥用、防止用户隐私数据泄露等问题进行研究。本文将对分析Android自身的安全机制以及面临的安全威胁,再综合分析现有对Android系统和应用的检测技术,提出一种基于安全容器的系统加固方案。安全容器的加固方案利用了Android的权限检测技术,将应用本身真是需要的权限进行分类汇总,根据不同的权限的组合可以将应用放置到特定的安全容器下,再利用认证机制来认证不同容器之间的进程通信,保证不同类型容器之间的通信是安全的并且内容是授权的,同时本方案还会在系统启动的过程中利用信任链机制,上下层级之间相互认证,保证启动的环境不被恶意篡改或删除。2.Android体系的安全分析Android系统采用分层的体系结构,分别为:应用层、应用程序框架层、系统运行时库和linux内核层(见图1)。2.1.Android安全机制Android系统采用分层的系统架构进行设计,每层都有其严格的安全规范和强健的安全架构。Android的主要安全机制在内核层和系统框架层。在内核层中,Android是基于Linux内核的安全特性,为上层提供了灵活的自主访问控制,但是由于过于灵活,Android4.4后又引入了强制访问控制进行限制,通过安全策略来弥补自主访问控制中过于灵崔浩亮等67Figure1.Androidarchitecture图1.Android体系结构活所产生的不足。在系统框架层,Android则采用了权限机制、签名机制和沙箱机制,来保护系统的安全,隔离不同进程之间的资源访问,授权访问系统资源和服务,禁止非授权访问的发生。权限机制是Android系统框架层提供的,是对应用访问公共资源和服务进行强制访问的安全策略。应用如果要使用公共资源和服务,必须要在配置文件中声明需要使用对应资源的权限,否则将无法得到授权,致使不能使用其资源。但是权限机制采用的全部肯定和全部否定的方式,把最终的确定权交给了用户,用户在不具备相关的安全知识的情况下是很难做出合适的判断的。签名机制是应用中包含一个采用非对称加密方式存储的数字证书,由于私钥在开发人员手中,所以数字证书能够保证开发人员对其应用的合法拥有权。虽然Android系统提供了签名机制来保护开发人员的合法拥有权,但是并没有提供验证应用是否被恶意的二次重打包,这使得应用被注入一些恶意的代码,来获取非法的收益或达成恶意的目的。沙箱虽然提供了进程隔离的机制,保证运行时应用的进程空间不会被恶意的修改,但是沙箱并没有在运行时验证是否运行环境是否安全,是否系统的关键函数的地址发生了改变,一旦系统的在进入沙箱前就已经被恶意修改,沙箱中的应用也将受到恶意的威胁。2.2.Android系统中存在的安全风险Android系统采用分层的体系结构,层与层之间都使用了解耦合的方式,这样不但增加了模块自身的通用性还增加了模块之间移植的灵活性。但是Android系统并没有对各模块之间的通信进行有效的验证。Android系统在启动的过程中也没有加入完整的认证链,来认证每个环节的完整性,例如Xposed的Hook崔浩亮等68框架就是通过替换系统app_process文件来实现在沙箱启动之前对系统进行修改,完成对自身程序的加载。Android应用主要是面临的威胁是通过静态分析、动态分析和动静结合的方式,来获取应用中潜在的漏洞信息或应用本身的流程图。根据这些信息黑客可以针对应用存在的漏洞进行特定的攻击,从而获取非授权的服务或者获取用户的隐私数据,进而导致用户的名誉或财产的损失。所以为应用提供一个安全的运行环境是至关重要的,将用户的数据隔离在指定的区域内,禁止外传或将其加密进行外传,来保证用户的隐私数据不会被恶意利用。Android系统采用沙箱机制实现进程之间的隔离,使得进程之间不能互相访问,进而保护了进程本身的安全,防止被动态篡改的发生。但是Android并没有对应用间的通信进行有效的验证,也没有对通信内容进行适当的过滤。因此Android的恶意应用将其功能分散到多个应用中,利用这多个应用所获取的权限来实现共谋攻击,获取用户的隐私数据。3.现有安全技术存在的问题Android安全技术主要从安全检测、系统增强等方面进行深入研究。安全检测是通过对系统和应用进行安全扫描,检测系统中是否隐含接口和多余的无用接口和应用中声明的权限是否符合最小权限集合。加固增强则是对Android系统中出现的不足进行加强和对权限的细粒度化,动态化和对访问控制的加强。对应用的权限检测主要是检测应用是否违背了最小权限的原则,过度申请了权限。Felt等人检测出权限过度申请的应用中有56%的应用存在一个没有使用到的权限,94%的应用存在小于4个无用的权限[2]。这说明过度申请权限的现象很普遍的,所以对应用的权限检测,对android平台的安全是至关重要的。由于传统的基于系统调用的分析方式是无法获取组件间的通信情况的,所以YuanZhang提出了针对Android平台的系统权限分析技术,记录应用在运行时产生的行为,分析应用的这些操作行为是否存在敏感行为,并可以重现敏感操作行为[3]。这样可以全面了解应用访问了哪些系统资源,是否存在敏感数据的泄露的发生。虽然YuanZhang对权限检测模型进行了改进,但是并没有提供可视化的呈现方法给用户。ChristopherS.Gates等人提出了一种如何最好的向用户传达风险信息的呈现方式来告诉用户可能存在的安全风险,使得用户能够直观的感受存在的风险[4]。同时ChristopherS.Gates等人也提出来一种基于机器学习技术为基础的应用检测技术,能够对应用进行恰当的风险评估分数[5]。由于移动设备的计算能力不足,SamanZonouz等人提出了利用云平台来实时和移动端进行数据交互,同步移动端的输入和输出,从而将移动应用的检测放于云端上,解决了移动端计算能力的限制[6]。虽然现在对权限检测的正确率和准确度在不断提升,但是这些检测的结果并没有直接反馈给系统本身,还是需要用户来确定是否安装应用。所以我们提出了利用权限的检测模型的结果来确定应用本身的环境空间,这样使得系统和应用更佳安全。在权限的访问控制方面,MauroConti等人提出一个针对Android的细粒度的上下文相关的策略执行系统CRêPE系统[7],但是还是需要用户来配置安全策略来确保应用本身的安全。根据存在的这个问题,我们提出利用应用的检测模型的结果来确定应用本身的安全配置策略的方案,使得用户不必要熟悉具体的安全策略,系统会默认给出安全策略和初始化对应安全策略所需的环境,从而保护应用的安全和应用数据的安全。4.基于容器的安全加固方案容器的概念最早是由G.Banga等人提出的,其主要是为了应对如何提高应用程序对于系统的各类资崔浩亮等69源的控制和管理[8]。容器的目的是为了加强应用程序对系统的程序对资源文件的访问控制,构建一个隔离的、独立的执行环境来保护应用自身的安全和产生数据的安全,防止程序被恶意破坏和防止应用产生的隐私数据被窃取。容器的作用是容器可以管理加载的应用程序,自动配
本文标题:基于容器的Android加固方案
链接地址:https://www.777doc.com/doc-3466586 .html