首页> 中国专利> 一种基于SEAndroid平台的应用程序动态安全管理方法及系统

一种基于SEAndroid平台的应用程序动态安全管理方法及系统

摘要

本发明涉及对基于SEAndroid平台的系统安全管理,具体涉及一种基于SEAndroid平台的应用程序动态安全管理方法及系统。本发明的方法为:对系统权限库中的各权限进行类别划分,得到系统的模板类型库;在应用程序运行时,捕捉并拦截其进程创建,并判断其是否为安装后首次启动,若否,直接执行进程创建;否则解析其配置文件,匹配查询得到安全标签集;基于获取的安全标签集,向用户呈现安全策略选择界面,并根据用户的选择设置生成安全策略设置文件,最后,基于当前应用程序的安全策略设置文件执行当前应用程序的进程创建。同时,本发明还提出了对应于上述方法的应用程序动态安全管理系统。本发明可用于基于SEAndroid的终端设备,能带来易用性和安全性兼备的有益效果。

著录项

  • 公开/公告号CN103605920A

    专利类型发明专利

  • 公开/公告日2014-02-26

    原文格式PDF

  • 申请/专利权人 电子科技大学;

    申请/专利号CN201310557930.2

  • 申请日2013-11-10

  • 分类号G06F21/50(20130101);

  • 代理机构51203 电子科技大学专利中心;

  • 代理人周刘英

  • 地址 611731 四川省成都市高新区(西区)西源大道2006号

  • 入库时间 2024-02-19 22:23:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-30

    授权

    授权

  • 2014-03-26

    实质审查的生效 IPC(主分类):G06F21/50 申请日:20131110

    实质审查的生效

  • 2014-02-26

    公开

    公开

说明书

技术领域

本发明涉及对基于SEAndroid(安全增强的安卓系统)平台的系统安全管理,具体涉及一种基于SEAndroid平台的应用程序动态安全管理方法及系统。

背景技术

SEAndroid是美国国家安全局(NSA)在SELinux(安全增强的Linux系统)的基础上,根据Android的特性修改移植完成的。在SELinux中,通过事先定义每个进程的允许操作,来禁止其进行越轨的操作。SEAndroid沿袭了这一机制,通过限制各进程的操作权限,可以防止恶意软件篡改系统。一般来说,攻击漏洞的恶意软件为了长久利用篡夺到的root权限(系统超级权限),会在Android的系统区中埋设特点命令(如su切换用户命令),而在SEAndroid中,通过事先设定不允许以root权限执行的各种进程改写系统区和重复挂载,就可以有效回避此类攻击。

SEAndroid继承了SELinux系统优点能有效回避恶意软件篡改系统,但同时也带来相应的问题,SEAndroid的系统架构设计为:SEAndroid=SELinux MAC+MiddleWare MAC,其中MAC指强制访问控制,MiddleWare MAC(中间件强制访问控制)指的就是Android的MAC控制。SEAndroid系统自身存在的最大的问题是源于其沿袭了SELinux固有的管理员操作方式,只有熟悉Linux系统的用户才有能力对系统的安全策略库进行定制,即基于源代码方式修改,从而改变应用的安全上下文,这种操作方式很难移植到面向普通消费者的移动终端操作系统,因为基于源代码方式修改的安全策略的操作复杂性,使一般终端用户很难在终端设备上进行安全策略的定制。随着Android的广泛应用,导致安全问题的越来越突出,加之用户对隐私和安全的关注增加,用户希望能参与到终端设备的系统防护中去,而基于源代码方式修改的安全策略加大了用户的交互成本(用户需要熟知Linux系统的相应操作指令),因此亟需要一种易用性和安全性兼备的制定安全策略的操作方式,来降低用户的交互成本,同时不会降低系统的安全属性。

发明内容

本发明的发明目的在于:针对上述存在的问题,提供一种易用性和安全性兼备的基于SEAndroid平台的应用程序动态安全管理方法。

本发明的一种基于SEAndroid平台的应用程序动态安全管理方法,首先基于任一共有关键字,将系统权限库中的各权限划分为多个模板类型,构成系统的模板类型库;所述模板类型包括至少一个权限,且由对应的安全标签进行系统应用层的识别;

在用户运行应用程序时,执行下列步骤:

步骤a:捕捉并拦截当前应用程序的进程创建,判断是否存在当前应用程序的安全策略设置文件,若是,则执行步骤b;否则直接执行步骤d;

步骤b:解析当前应用程序的配置文件,获取对应的权限描述集,并基于系统的模板类型库,匹配各权限描述所对应的模板类型,得到应用程序对应的安全标签集;

步骤c:基于当前安全标签集向用户呈现安全策略设置界面,用户在所述安全策略设置界面中能选定至少一个安全标签;基于用户的选择设置生成当前应用程序的安全策略设置文件;

步骤d:基于当前应用程序的安全策略设置文件,执行所述应用程序的进程创建。

本发明在现有的SEAndroid常规的安全检查之上做了进一步封装,通过加入判断——应用程序是否为首次启动,从而将对当前应用程序的进程创建的消息处理推后,并在其中增加用户参与制定系统安全管理的交互操作,将现有的SEAndroid预定义应用程序的安全策略的过程变为用户动态可自定义的机制,一方面给予了用户对系统进行操作的权限,另一方面没有牺牲系统的安全性。并且在本发明中,用户可根据其实际需求,基于所呈现的安全标签,选择多个安全标签,为多标签复合机制的安全策略配置,而现有的SEAndroid预定义安全策略方式为预定单一安全标签的方式,与现有技术相比,其进一步加强了系统的灵活性和实用性。

在本发明中,用户对应用程序的安全策略进行设置后,都会生成与该应用程序对应的安全策略设置文件,故可以通过查询系统的存储器的相应存储位置是否存在应用程序的安全策略设置文件,来判断当前应用程序是否为安装后首次启动,从而判断是否开启用户自定义当前应用程序的安全标签的设置。

为了进一步增加本发明的灵活性,本发明在SEAndroid平台的系统中设置能对应用程序的安全策略进行选择重置的操作界面,以便于当用户在不同需求时,可以对已设置的安全策略进行修改,当用户选择希望重置的应用程序后,系统基于用户选择重置的应用程序,执行本发明的应用程序动态安全管理方法中的步骤b,即为用户提供被动和主动设置应用程序的安全策略的两种操作模式。

对应于本发明的应用程序动态安全管理方法,本发明还公开了一种基于SEAndroid平台的应用程序动态安全管理系统,其在现有的SEAndroid系统中增设置应用探测模块、安全策略分析模块、安全策略配置模块;

应用探测模块:在探测到应用程序向系统的进程创建模块发出请求时,拦截当前应用程序的进程创建;并查询系统的存储器中是否存在当前应用程序的安全策略设置文件,若是,则向安全策略分析模块发出启动信号;否则向系统的进程创建模块发送启动信号;

安全策略分析模块:解析当前应用程序的配置文件,获取对应的权限描述集,并基于存储的模板类型库,匹配各权限描述所对应的模板类型,得到应用程序对应的安全标签集,所述模板类型库为:基于任一共有关键字,将系统权限库中的各权限划分为多个模板类型,构成系统的模板类型库;所述模板类型包括至少一个权限,且由对应的安全标签进行系统应用层的识别;

安全策略配置模块:基于当前接收的安全标签集,查询各安全标签所对应的描述信息并以图形方式向用户呈现安全策略设置界面,用户在所述安全策略设置界面中能选定至少一个安全标签;基于用户的选择设置生成当前应用程序的安全策略设置文件并存储,同时向系统的进程创建模块发送启动信号;

系统的进程创建模块收到启动信号后,读取当前应用程序的安全策略设置文件,执行当前应用程序的进程创建。

综上所述,由于采用了上述技术方案,本发明的有益效果是:用户可自定义对SEAndroid平台上的应用程序的安全策略,且易用性和安全性兼备。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1是本发明的应用程序动态安全管理方法的流程图;

图2是本发明的应用程序动态安全管理系统的结构示意图。

具体实施方式

本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

结合图1,本发明的应用程序动态安全管理方法为:

首先基于任一共有关键字,将系统权限库中的各权限划分为多个模板类型,构成系统的模板类型库;模板类型库的每一个模板类型包括至少一个权限,且由对应的安全标签进行系统应用层的识别。基于SEAndroid提供给开发者的系统权限库,即所有用户权限API(应用程序编程接口),可根据系统权限库中各权限的应用场合和/或类型,将系统权限库划分成多个子集,每个子集构成一个本发明的模板类型,比如权限n1,n2和n3是与联系人有关的,即存在共有关键字“联系人”,此时就会为与联系人有关的权限n1,n2和n3创建对应的安全标签X1,该安全标签X1所包含的权限集构成一个模板类型。在用户点击运行应用程序时,执行下列步骤:

步骤101:当应用程序运行时,捕捉创建进程的事件,拦截进程创建,因为当用户执行应用程序时,Linux内核调用fork API创建进程时存在与ActivityManagerService(应用管理服务)服务进行binder通信的过程,因此基于探测该binder通信,即可捕捉并拦截当前应用程序的进程创建;在探测到binder通信后,通过在存储器中查询应用程序的存储空间中是否存在安全策略设置文件,若是,则直接基于其安全策略设置文件,调用现有的进程创建的流程,执行进程创建;若否,则进入步骤102。

步骤102:解析当前应用程序的配置文件,获取对应的权限描述集,并基于系统的模板类型库,基于权限描述的关键字,匹配各权限描述所对应的模板类型(即匹配查找当前应用程序可能属于的模板类型),由匹配得到的各模板类型,得到应用程序对应的安全标签集进入步骤103。

在SEAndroid操作系统中,对应用程序使用操作系统或者其他应用程序提供的权限,都会在其配置文件(AndroidManifest.xml)中声明,因此通过解析应用程序的配置文件,可得到对应的权限集。而在基于权限集进行模板类型匹配处理时,基于使用场合,可以是全部包含某个模板类型的权限时,则认为应用程序属于该模板类型;也可以是只包含某个模板类型所对应的权限集的任一元素(或任意k个元素,k小于该模板类型所对应的权限集的元素总个数),也认为应用程序属于该模板类型,比如模板类型M2所对应的集合为权限n2、n3和n5,当应用程的解析权限中同时存在n2、n3和n5时,才判定应用程序可能属于模板类型M2;也可以是只要存在n2或n3或n5时,判定应用程序可能属于模板类型M2,还可以是存在n2和n3等任意两两元素组合时,判定应用程序可能属于模板类型M2。

步骤103:基于当前安全标签集向用户呈现安全策略设置界面(图形可选择操作的界面),用户在所述安全策略设置界面中能选定至少一个安全标签;基于用户的选择设置生成当前应用程序的安全策略设置文件;

在该步骤中,具体可采用二级菜单的形式向用户清晰展示,其中一级菜单展示应用程序所归属的类别,并可辅以简单的信息描述,当用户点击一级菜单时,向下弹出二级菜单,展示当前应用程序在其配置文件中声明的相关权限信息。此外可在一级菜单中设置开关按钮,选中表示赋予该应用程序对相应权限的使用,也就是提供了安全策略类型的使用。

不同的安全策略集对应不同的复合类型,复合类型是模版类型的组合操作,组合的层次是存在多少模版类型就需要把所有的组合情况考虑进来,在此可以根据自己的需要人为设定将组合的层次设定到一个比较合理的情况,综合考虑模版类型的设计粒度。比如设定一个应用程序最多只能选择6个模板类型,这个可以在用户选择时进行相应的提示,如果用户选择多于6个,那就提示用户,并且限制其无法进行下一步操作。将每个模版类型进行组合后,接着命名,然后在内核层创建对应的type类型,最后将子type的权限进行相应的组合,求出合集。

根据用户向系统提交的选择结果,生成当前应用程序的安全策略设置文件(文件中包含字段信息为:应用程序的签名、应用程序的包名、模板类型、复合类型),进入步骤104;

步骤104:从系统存储器中,读取当前应用程序的安全策略设置文件,调用现有的进程创建的流程,执行进程创建:基于安全策略设置文件获取用户选择的安全标签,查询各安全标签对应的type类型(即进程安全上下文标签),然后将type类型传递到内核层,创建进程。

需要进一步说明的是,进入步骤102的方式不仅仅只有通过步骤101进入,用户可以通过本发明在SEAndroid平台的系统中设置的选择重置操作界面来点击预重置的应用程序,从而触发相应的应用接口进入到步骤102中所涉及的相关操作。

参见图2,本发明的应用程序动态安全管理系统是在现有的系统中增设应用探测模块、安全策略分析模块、安全策略配置模块:

应用探测模块,在探测到应用程序向SEAndroid平台系统请求进程创建时,拦截当前应用程序的进程创建;并在存储器中查询应用程序的存储空间中是否存在安全策略设置文件当前应用程序是否为首次启动,若是,则向安全策略分析模块发出启动信号(含当前应用程序的标识);否则向系统的进程创建模块发送启动信号;该模块作为一个进程创建的系统钩子,每当有binder通信传递到ActivityManagerService模块请求创建一个应用程序的主进程时,该模块就会发挥作用。

安全策略分析模块,基于应用探测模块的启动信号中的应用陈旭标识,读取并解析当前应用程序的配置文件,获取对应的权限描述集,并基于存储的模板类型库,匹配各权限描述所对应的模板类型,得到应用程序对应的安全标签集。

安全策略配置模块,基于当前接收的安全标签集,查询各安全标签所对应的描述信息并以图形方式向用户呈现安全策略设置界面,用户在所述安全策略设置界面中能选定至少一个安全标签;基于用户的选择设置生成当前应用程序的安全策略设置文件并存储到该应用程序的对应存储空间中,同时向系统的进程创建模块发送启动信号。

本模块的设计核心就是调用策略分析模块查询应用程序可能属于的模版类型后,获得该应用程序可能属于的模版类型,进一步查询各模版类型的描述信息然后以友好的图形方式展示给用户来进行选择操作,一个模版类型会对应一个相应的描述信息,以此来给用户相应的操作提示,以免用户在不知情的情况下随机操作,带来权限的粗放管理和恶意权限的扩大。提示信息的设计可以使用xml(description.xml)文件进行存储,也就是一个可解析的文件,这里面包括了所有的模版类型,同时只有两级标签,一级标签为模版类型,二级标签为描述信息。接下来就是接收用户对模版类型的选择,基于用户的选择结果创建安全策略设置文件,填写对应的标签信息。

系统的进程创建模块收到启动信号后,从存储器中读取当前应用程序的安全策略设置文件,执行当前应用程序的进程创建。本模块的与现有进程创建模块的不同体现在:不是读取进程内存空间的当前应用程序的固有安全标签信息,而是从本发明的安全策略设置文件中获取对应的安全标签。

安全策略控制模块,是在系统的应用层次提供的模块,重要的功能就是修改应用程序的安全策略设置文件,基于用户选择重置的应用程序,向用户展示安全策略分标签控制台析模块的分析结果,并基于用户当前的选择操作更新安全策略设置文件。

系统通知模块,考虑到如果单纯的在系统中禁止相应的权限,此时用户在期望使用相关功能时,会不知道系统哪里出错了,导致用户体验的下降。系统通知模块的出现就是为了解决这个问题,给予用户相关的知情权,特别对于那些非专业用户,可以起到提示用户为什么某些功能无法使用的效果,如果用户不满意该功能被禁止,同样可以提醒用户进行安全标签的重新定制。

系统通知模块在设计上采取的是提供功能类或者函数API的方式,同时它会调用系统自身提供的通知栏功能,也就是在通知栏显示相关的信息。当系统禁止了应用的权限申请时,只需要加入调用系统通知模块的API或者创建对应的对象即可。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号