一种安卓系统的资源访问方法

文档序号:9327229阅读:353来源:国知局
一种安卓系统的资源访问方法
【技术领域】
[0001]本发明涉及移动系统技术领域,具体地说,涉及一种安卓系统的资源访问方法。
【背景技术】
[0002]近几年来,基于安卓(Android)系统的移动设备,如智能手机、平板电脑等,十分流行。安卓市场上的各种应用软件,使得这些移动设备可以为人们提供近似于个人电脑(Personal Computer,简称PC)的服务,人们也越来越多的利用这些设备处理日常生活和工作方面的事务。几乎是不可避免的,人们在这些设备上也面临着类似PC上的安全性问题。
[0003]因此,安卓系统引入了一套基于SELinux的安全机制,称为SEAndroid,来加强安卓系统的安全性。基于角色的访问控制(Role-based Access Control,简称RBAC)是一种通用的安全模型,也即SEAndroid的核心理念。在加入了 SELinux的Android系统中,用户被关联了角色,角色又与类型相关联,同时类型被赋予了相应的权限存储在策略库中,而用户产生的进程与用户具有相同的类型。因此,当进程访问文件等资源时,就具有了与用户相应的权限。所以当一个进程访问资源时,会首先进行自主访问控制(Discret1nary AccessControl,简称DAC)的权限检查,如果DAC权限检查没有通过,则直接拒绝该进程访问资源的请求,不会进行进一步的强制访问控制(Mandatory Access Control,简称MAC)的权限检查。如果DAC权限检查通过后,进行MAC的权限检查,此时检查策略数据库中是否存在相应的策略规则,如果存在,则允许进程访问资源,否则拒绝。
[0004]发明人发现,在具有SELinux的Android系统中,资源的访问流程为先检查标准的DAC权限,再进行MAC权限检查,只有同时满足了 DAC权限检查和MAC权限检查时,进程才能访问资源。但是如果开启了多用户,理论上各用户是不允许调用进程访问其他用户的资源的。但是在Android系统中,所有的用户都拥有同样的角色和类型,因此对于具有多用户的Android系统来说,都共用一套策略,因此在策略数据库中存在相应策略规则的前提下,如果用户之间互相访问资源,只需检查DAC的权限。在此前提下,若仅有DAC的权限检查不符合,那么恶意进程就有可能通过修改DAC的权限,使得各用户可以进行其他用户的资源的访问甚至是修改,用户的资源的安全性和完整性将受到威胁。

【发明内容】

[0005]本发明的目的在于提供一种安卓系统的资源访问方法,以解决现有的安卓系统中,用户的资源的安全性和完整性有可能受到威胁的技术问题。
[0006]本发明实施例提供了一种安卓系统的资源访问方法,该方法包括:
[0007]对访问资源的进程依次进行自主访问控制权限检查和强制访问控制权限检查;
[0008]若所述进程通过了自主访问控制权限检查和强制访问控制权限检查,获取所述进程的安全标签以及所述资源的安全标签;
[0009]匹配所述进程和所述资源的安全标签,若所述进程和所述资源的安全标签相匹配,则允许所述进程访问所述资源。
[0010]其中,该方法还包括:
[0011]为用户分配安全标签,并进行存储。
[0012]其中,为用户分配安全标签,并进行存储包括:
[0013]判断用户是否为系统管理员、安全管理员和审计管理员三者之一,其中,所述系统管理员负责系统设置部分,所述安全管理员负责管理安全标签,所述审计管理员负责系统审计部分;
[0014]若是,为用户分配固化的、不可修改的安全标签,并进行存储;
[0015]若不是,为用户分配可进行编辑的安全标签,并进行存储。
[0016]其中,为用户分配可进行编辑的安全标签,并进行存储包括:
[0017]安全管理员预先指定多个安全标签,为用户分配指定的多个安全标签之一,并进行存储。
[0018]其中,该方法还包括:
[0019]用户调用进程时,根据预存储的、使用进程的用户的安全标签,为进程赋予相同的安全标签,直至进程结束生命期。
[0020]其中,该方法还包括:
[0021]根据创建资源的进程的安全标签,为资源赋予相同的安全标签。
[0022]其中,该方法还包括:
[0023]根据访问子进程的父进程的安全标签,为子进程赋予相同的安全标签。
[0024]其中,所述安全标签包括安全字段和完整字段,其中,安全字段对所述安卓系统的用户和资源进行等级划分,完整字段防护资源被任意篡改。
[0025]其中,所述安全标签设置于进程或资源的扩展属性中。
[0026]其中,安全字段包括安全类型、安全级别以及安全范畴。
[0027]本发明带来了以下有益效果:在本发明实施例中,进程和资源设置有安全标签,可在对进程进行DAC、MAC权限检查后,进一步确认进程和资源的安全标签是否匹配。若进程和资源的安全标签匹配,进程才可访问资源,以提高用户的资源的安全性和完整性,防止恶意进程对用户的资源进行访问甚至修改。
[0028]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0029]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要的附图做简单的介绍:
[0030]图1是本发明实施例提供的安卓系统的管理员职权示意图;
[0031]图2是本发明实施例提供的安卓系统的结构示意图;
[0032]图3是本发明实施例提供的安卓系统的启动过程示意图;
[0033]图4是本发明实施例提供的安卓系统的资源访问方法的流程示意图。
【具体实施方式】
[0034]以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
[0035]在现有技术的安卓系统中,系统文件是由“system”或者“root”用户所拥有,其中root用户是安卓系统管理员。该root用户拥有整个系统中至高无上的权利,它可以访问和修改移动终端中几乎所有的文件,而在默认情况下其他普通用户不具有root权限。在支持多用户的安卓系统中,假设有一个恶意进程,试图访问其他用户的文件资源,只要该恶意进程可获取到移动设备的最高使用权限,即root权限,便可获得随意修改系统中的资源的自主访问控制(DAC)权限,因此它可以访问任何一个其他用户的资源,为设置了安卓系统的终端中资源的安全带来了很大的风险。
[0036]本发明实施例提供的一种安卓系统中,如图1所示,该安卓系统中包括三个特权用户的权限,即系统管理员、安全管理员和审计管理员。在三权分立的系统中,系统管理员主要负责与系统设置相关的功能,如设置系统的日期和时间、系统设备管理、系统安全管理等;安全管理员主要负责与系统安全有关的事务,如执行为普通用户设置安全标签、导入导出安全标签、编辑和删除普通用户的安全标签等安全标签管理的事项,安全管理员还可对系统进行强制访问管理、用户策略管理(即系统中原有的SELinux策略以及本发明实施例新增的安全标签策略的管理)等事项;审计管理员主要负责与系统审计相关的事务,如审计服务控制(开启和关闭审计服务)、审计日志管理(内核审计日志)、审计工具管理等。
[0037]显然,除了 DAC权限和MAC权限之外,本发明实施例中,用户或进程还配置有安全标签。该安全标签包括安全字段和完整字段。其中,安全字段的个数不唯一,包括安全类型、安全级别以及安全范畴,可对安卓系统的用户和资源进行等级划分,禁止“上读下写”,即上级用户可以读取下级用户的机密数据与信息,而下级用户则无权读取上级的机密数据与信息;完整字段包括17种,即为i0?il6,可防护资源被任意篡改,禁止“下读上写”,即完整级别低的进程不能修改完整级别高的资源的内容。
[0038]为了添加安全标签,如图2所示,需要对安卓应用层、框架层等系统结构进行部分修改。
[0039]在安卓内核层,主要将资源的结构进行扩展,将安全标签添加入资源的扩展属性中;同时扩展了 Linux安全模块(Linux Security Module,简称LSM),增加了对应安全标签的二级钩子,可用该二级钩子来对进程或资源的安全标签进行检查。另外,由于进程的安全标签设置于进程或资源的扩展属性中,因此,还需要扩展任务、节点、文件的结构。
[0040]另外,安卓本地库中增加了安全标签管理库(libisic.so),该库中提供了应用程序编程接口(Applicat1n Programming Interface,简称API),可利用API进行设置安全标签、获取安全标签等操作,供上层调用。
[0041]对于用于安卓系统的Java虚拟机(Dalvik)而言,主要是对Dalvik虚拟机进行修改使
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1