CN105468941A - 一种权限控制方法和装置 - Google Patents
一种权限控制方法和装置 Download PDFInfo
- Publication number
- CN105468941A CN105468941A CN201511025098.7A CN201511025098A CN105468941A CN 105468941 A CN105468941 A CN 105468941A CN 201511025098 A CN201511025098 A CN 201511025098A CN 105468941 A CN105468941 A CN 105468941A
- Authority
- CN
- China
- Prior art keywords
- node
- ipc
- section point
- call request
- call
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000004891 communication Methods 0.000 abstract description 4
- 238000013461 design Methods 0.000 description 14
- 239000003999 initiator Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 239000011230 binding agent Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/106—Enforcing content protection by specific content processing
- G06F21/1064—Restricting content processing at operating system level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种权限控制方法,包括:接收进程间通信IPC调用请求;其中,IPC调用请求的调用方为第一节点,被调方为第二节点;查询预设的调用链缓存中是否存以第一节点为终止节点的关联调用链;若为是,将第二节点添加到关联调用链中生成新的调用链;判断新的调用链中除第二节点的每个节点是否均具有对第二节点执行IPC调用请求的权限;若为是,将IPC调用请求转发给第二节点,以及将第二节点根据IPC调用请求返回的IPC调用结果转发给第一节点。本发明实施例还公开了一种权限控制装置。采用本发明,能避免代理人攻击,提供操作系统安全性。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种权限控制方法和装置。
背景技术
在目前的操作系统中,恶意软件可能通过代理人攻击间接获得非法访问权限,例如:应用程序A无权访问应用程序C的资源,但是应用程序B有权限访问应用程序C的资源,并且应用程序B对外提供了接口,允许其他应用程序通过该接口访问应用程序C的资源,则应用程序A可能通过应用程序B间接访问应用程序C的资源,以达到未授权访问的目的,导致操作系统的安全性不高。
发明内容
本发明实施例所要解决的技术问题在于,提供一种权限控制方法和装置。可有效避免代理人攻击,提高操作系统的安全性。
为了解决上述技术问题,本发明第一方面提供了一种权限控制方法。
在一种可能的设计中,参考监控器接收第一节点向第二节点发起的IPC调用请求,第一节点为发起方,第二节点为被调方,第一节点和第二节点属于不同的进程,参考监控器查询预设的调用链缓存中是否存在以第一节点为终止节点的关联调用链,调用链缓存用于存储调用链,调用链表示不同节点间的调用关系的有向图,如果调用链缓存中存在以第一节点为终止节点的关联调用链,将第二节点添加到关联调用链的后面生成新的调用链,参考监控器判断新的调用链中除第二节点的节点是否均具有对第二节点执行IPC调用请求的权限,例如,IPC调用请求用于读取第二节点的联系人信息,则参考监控器判断新的调用链中除第二节点以外的其他节点是否均具有读取第二节点的联系人信息的权限,如果判断结果为是,参考监控器将第一节点发起的IPC调用请求转发给第二节点,第二节点根据该IPC调用请求直接向第一节点返回IPC调用结果;或者,第二节点根据IPC调用请求得到的IPC调用结果返回给参考监控器,参考监控器再将该IPC调用结果转发给第一节点,这样在发起方发起IPC调用请求时,不仅对发起方进行鉴权,同时对发起方关联的调用链中所有的节点进行鉴权,在同时满足具有对被调方有访问权限的情况下,发起方才能得到调用结果,能有效避免代理人攻击,提高操作系统的安全性。
在另一种可能的设计中,参考监控器接收第一节点向第二节点发起的IPC请求,参考监控器查询预设的调用链缓存中是否存在以第一节点为终止节点的关联调用链,在查询结果为是的情况下,参考监控器判断关联调用链中所有的节点是否均具有对第二节点执行该IPC调用请求的权限,在判断结果为是的情况下,参考监控器将该IPC调用请求转发给第二节点,第二节点根据该IPC调用请求直接向第一节点返回IPC调用结果;或者,第二节点根据IPC调用请求得到的IPC调用结果返回给参考监控器,参考监控器再将该IPC调用结果转发给第一节点,这样能有效避免代理人攻击,提高操作系统的安全性。
在另一种设计中,参考监控器接收第一节点向第二节点发起的IPC调用请求,第一节点为调用方,第二节点为被调方,参考监控器查询预设的调用链缓存中是否存在以第一节点为终止节点的关联调用链,在查询结果为否的情况下,参考监控器继续判断第一节点是否具有对第二节点执行该IPC调用请求的权限,在判断结果为是的情况下,根据第一节点和第二节点创建初始调用链,初始调用链包含第一节点和第二节点,第一节点为起始节点,第二节点为终止节点,将创建的初始调用链存储至调用链缓存中;在判断结果为否的情况下,参考监控器向第一节点返回不具备对第二节点执行该IPC调用请求的权限的通知消息。
在另一种可能的设计中,参考监控器判断生成的新的调用链中至少有一个节点不具备对第二节点执行IPC调用请求的权限的情况下,从新的调用链中删除第二节点,表明此时的IPC调用请求可能发生代理人攻击的风险,参考监控器向第一节点返回表示鉴权失败的通知消息,阻止IPC调用请求发送给第二节点,避免代理人攻击。
在另一种可能的设计中,第一节点和第二节点的节点类型为进程或线程,如果第一节点和第二节点为进程时,属于不同的进程;第一节点和第二节点的节点类型为线程时,各自的线程属于不同的进程。
在另一种可能的设计中,参考监控器接收第一节点向第二节点发起的IPC调用请求,参考监控器判断第一节点是否为非系统服务进程或线程,在判断结果为是的情况下,参考监控器查询预设的调用链缓存中是否存在以第一节点为终止节点的关联调用链,在查询结果为是的情况下,将第二节点添加到关联调用链中生成新的调用链,参考监控器判断新的调用链中除第二节点之外的节点是否均具有对第二节点执行该IPC调用请求的权限,在判断结果为是的情况下,参考监控器将该IPC调用请求转发给第二节点。
如果参考监控器识别出第一节点为系统服务进程或线程,由于系统服务进程或线程发起的调用是可信的,不需要对系统服务进程或线程的调用关系进行跟踪和鉴权,参考监控器直接将该IPC调用请求转发给第二节点,这样能减少参考控制器的处理开销,优化处理流程。
在另一种可能的设计中,参考监控器接收第一节点向第二节点发起的IPC调用请求,参考监控器判断第一节点是否具有对第二节点执行该IPC调用请求的权限,在判断结果为是的情况下,继续查询预设的调用链缓存中是否存在以第一节点为终止节点的关联调用链,在查询结果为是的情况下,判断关联调用链中除第一节点的其他节点是否均具有对第二节点的执行该IPC调用请求的权限,在判断结果为是的情况下,参考监控器将该IPC调用请求转发给第二节点。
本发明第二方面还提供了一种权限控制装置。
在一种可能的设计中,接收模块接收第一节点向第二节点发起的IPC调用请求,查询模块查询预设的调用链缓存中是否存在以第一节点为终止节点的关联调用链,生成模块在查询模块的查询结果为是的情况下,将第二节点添加到关联调用链中生成新的调用链,权限控制模块判断新的调用链中除第二节点的每个节点是否均具有对第二节点执行该IPC调用请求的权限,第一转发模块在权限控制模块的判断结果为是的情况下,将IPC调用请求转发给第二节点,第二节点可根据接收到的IPC调用请求直接向第一节点返回IPC调用结果;或者经过第一转发模块将IPC调用结果转发给第一节点。
在另一种可能的设计中,判断模块在查询模块的查询结果为否的情况下,继续判断第一节点是否具有对第二节点执行IPC调用请求的权限,存储模块在判断模块的判断结果为是的情况下,根据第一节点和第二节点创建初始调用链,初始调用链包含第一节点和第二节点,第一节点为起始节点,第二节点为终止节点,将初始调用链存储至调用链缓存中,第二转发模块将IPC调用请求转发给第二节点,由第二节点直接将根据IPC调用请求对应的IPC调用结果返回给第一节点,或者,第二节点将根据IPC调用请求对应的IPC调用结果返回给参考监控器,由参考监控器将IPC调用结果转发给第一节点。
在另一种可能的设计中,删除模块在权限控制模块的判断结果为否的情况下,从新的调用链中删除第二节点,阻止IPC调用请求发送给第二节点,返回模块向第一节点返回表示鉴权失败的通知消息。
在另一种可能的设计中,第一节点和第二节点的节点类型为进程或线程,如果第一节点和第二节点为进程时,属于不同的进程;第一节点和第二节点的节点类型为线程时,各自的线程属于不同的进程。
在另一种可能的设计中,接收模块接收第一节点向第二节点发起的IPC调用请求,识别模块识别第一节点是否为非系统进程或线程,指示模块在识别模块的识别结果为是的情况下,指示查询模块开始工作,查询模块查询预设的调用链缓存中是否存在以第一节点为终止节点的关联调用链,生成模块在查询模块的查询结果为是的情况下,将第二节点添加到关联调用链中生成新的调用链,权限控制模块判断新的调用链中除第二节点的每个节点是否均具有对第二节点执行该IPC调用请求的权限,第一转发模块在权限控制模块的判断结果为是的情况下,将IPC调用请求转发给第二节点,第二节点可根据接收到的IPC调用请求直接向第一节点返回IPC调用结果;或者经过第一转发模块将IPC调用结果转发给第一节点。
第三转发模块在识别模块的识别结果为否的情况下,将IPC调用请求转发给第二节点,第二节点可根据接收到的IPC调用请求直接向第一节点返回IPC调用结果;或者经过第一转发模块将IPC调用结果转发给第一节点。
第三方面,本申请实施例提供了一种终端设备,包括上述权限控制装置中的任意一种。终端设备包括智能手机、平板电脑、笔记本电脑、智能电视等。
第四方面,本申请实施例提供了一种权限控制装置,包括:
一个或多个处理器、存储器、总线系统、收发器以及一个或多个程序,处理器、存储器和收发器通过总线系统相连;
其中一个或多个程序被存储在存储器中,一个或多个程序包括指令,指令当被该装置执行时使该装置执行如第一方面和第一方面的第六种可能的实现方式中任一项的方法。
第五方面,本申请实施例提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,指令当被该装置执行时使该装置执行第一方面至第一方面的第六种可能的实现方式中的任意一种的方法。
实施本发明实施例,具有如下有益效果:
根据调用关系构造出调用链,在调用者向被调用者发出IPC调用请求时,不仅判断调用者是否具有对被调用者执行该IPC调用请求的权限,同时判断调用者所在的调用链中的其他节点是否具有对被调用者执行该IPC调用请求的权限,在调用链中除被调用者以外的节点均具有对被调用者执行该IPC调用请求的权限的情况下,被调用者才会执行该IPC调用请求,向调用者返回IPC调用结果,这样能有效的避免代理人攻击。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种权限控制方法的流程示意图;
图2是本发明实施例提供的一种权限控制方法的另一流程示意图;
图3是本发明实施例提供的基于进程的调用链跟踪原理示意图;
图4是本发明实施例提供的基于线程的调用链跟踪原理示意图;
图5是本发明实施例提供的一种权限控制装置的结构示意图;
图6是本发明实施例提供的一种权限控制装置的另一结构示意图;
图7是本发明实施例提供的一种权限控制装置的又一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,为本发明实施例提供的一种权限控制方法的流程示意图,在本发明实施例中,所述方法包括:
S101、接收IPC调用请求;IPC调用请求的调用方为第一节点,被调方为第二节点。
具体的,IPC(InterprocessCommunication,进程间通信,简称IPC)调用请求用于一个节点指示另一个节点执行相应的操作,第一节点和第二节点的节点类型可以为应用程序的进程或线程。为了跟踪节点间的调用关系,调用方生成的IPC调用请求都需要经过参考监控器进行中转后再发送给被调方,而不是由调用方直接将生成的IPC调用请求发送给被调方。需要说明的是,在调用方和被调方为线程的情况下,需要确定两个线程是否属于不同的进程,如果为是,则调用方生成的IPC调用请求需要经过参考监控器进行中转;如果两个线程属于同一进程,调用方生成的IPC调用请求不需要经过参考监控器进行中转。
参考监控器接收IPC调用请求,IPC调用请求携带调用方的身份标识、被调方的身份标识和操作类型,参考监控器解析接收到的IPC调用请求后获知调用方为第一节点,被调方为第二节点。
S102、查询预设的调用链缓存中是否存以第一节点为终止节点的关联调用链。
具体的,调用链缓存用于存储调用链,调用链表示节点间的调用关系的有向图,一个调用链至少包括起始节点和终止节点,起始节点表示调用链的首个节点,终止节点表示调用链的末个节点。例如:调用链的形式为:P1→P2→P3,表示的含义为:节点P1首先调用节点P2,然后节点P2调用节点P3。
根据S101的解析结果获知IPC调用请求的调用方为第一节点,被调方为第二节点,参考监控器查询调用链缓存中是否存在以第一节点为终止节点的调用链,若存在,表示调用链缓存中存在与该IPC调用请求关联的调用链。例如:调用链缓存中存储的调用链为:P1→P3→P4、P1→P2,假设IPC调用请求对应的调用方为节点P4,被调方为节点P6,参考监控器查询调用链缓存中存在以节点P4为终止节点为的调用链,则调用链缓存中存在与该IPC调用请求关联的调用链;假设IPC调用请求对应的调用方为节点P3,被调方为节点P5,查询调用链缓存中不存在以节点P3为终止节点的调用链,则调用链缓存中不存在与该IPC调用请求关联的调用链。
S103、若为是,将第二节点添加到所述关联的调用链中生成新的调用链。
具体的,在调用链缓存中存在以第一节点为终止节点的调用链,将第二节点添加到该调用链的后面生成新的调用链。
续上例,第一节点为P4,第二节点为P5,关联调用链为P1→P3→P4,将第二节点添加到关联调用链的后面生成的新的调用链为:P1→P3→P4→P5。
S104、判断所述新的调用链中除所述第二节点的每个节点是否均具有对所述第二节点执行所述IPC调用请求的权限。
具体的,参考监控器判断S103生成的新的调用链中除第二节点的每个节点是否均具有对第二节点执行IPC调用请求的权限,如果判断结果为是,执行S105。
续上例,生成的新的调用链为P1→P3→P4→P5,IPC调用请求为读取联系人信息,参考监控器判断节点P1、节点P3和节点P4是否均具有读取P5的联系人信息的权限,如果判断结果为是,执行S105。判断的方式可以是:根据预先保存的权限数据库查询各个节点具备的访问权限来进行判断。
S105、若为是,将所述IPC调用请求转发给所述第二节点,以及将所述第二节点根据所述IPC调用请求返回的IPC调用结果转发给所述第一节点
具体的,在S104的判断结果为是的情况下,参考监控器将IPC调用请求转发给第二节点,第二节点接收该IPC调用请求,根据该IPC调用请求的指示返回相应的IPC调用结果给第一节点。其中,IPC调用结果也可以经过参考监控器转发给第一节点。
从上述实施例可以看出,根据调用关系构造出调用链,在调用者向被调用者发出IPC调用请求时,不仅判断调用者是否具有对被调用者执行该IPC调用请求的权限,同时判断调用者所在的调用链中的其他节点是否具有对被调用者执行该IPC调用请求的权限,在调用链中除被调用者以外的节点均具有对被调用者执行该IPC调用请求的权限的情况下,被调用者才会执行该IPC调用请求,向调用者返回IPC调用结果,这样能有效的避免代理人攻击。
参加图2,为本发明实施例提供的一种权限控制方法的另一流程示意图,在本发明实施例中,所述方法包括:
S201、配置节点的权限。
具体的,节点表示操作系统中调用系统资源执行相应的操作的实体,节点可以是应用程序、进程或线程,权限表示节点允许或不允许调用其他节点执行相应操作的能力。例如,在安卓操作系统中,应用程序在安装时,会申请对其他应用的权限,授予该应用程序申请的权限后,将该应用程序的权限加入Capability库中,以Permission数据的形式表示权限。其中,一个进程通常包括至少一个线程,每个线程的权限和该线程所在的进程相同。
S202、接收IPC调用请求,IPC调用请求的调用方为第一节点,被调方为第二节点。
具体的,第一节点需要向第二节点发起IPC调用请求,以对第二节点执行IPC调用请求所指示的操作时,IPC调用请求需要通过参考监控器进行鉴权后再发送给第二节点,并非直接向IPC调用请求发送给第二节点。第一节点为调用方,第二节点为被调方,第一节点和第二节点属于不同的进程。
在一种可能的实现方式中,节点为进程,图3表示进程间的调用关系,节点P1发起的IPC调用请求经过参考监控器发送给节点P2,节点P2发起的调用请求经过参考监控器发送给节点P3,参考控制器可以利用操作系统中内核的功能限制进程间调用必须经过参考控制器,为了防止进程间通信通过Socket等其他对参考监控器不透明方式进行,在操作系统内核中通过系统调用过滤机制来限制所有的进程间通信必须通过参考监控器。图3中根据进程间的调用关系可构建调用链P1→P2→P3。
在另一种可能的实现方式中,节点为线程,属于同一进程的线程之间的调用不需要经过参考监控器,属于不同进程的线程之间的调用需要经过参考监控器,参考监控器以线程为粒度进程跟踪,能避免出现调用环。
在某些情况下,以线程为粒度的跟踪无法有效避免调用环的产生,本发明的解决方案是:进一步分解系统服务,例如在安卓操作系统中,系统服务的内部结构是明确的,某一个系统服务接口及时跨越多个线程,该系统服务器的调用和返回关系也是明确的,因此可以将该系统服务中每个IPC接口之间的关联关系预先定义成系统调用链,例如,如果系统服务的A接口需要调用系统服务的B接口才能完成功能,则将A和B组合成一个IPC调用单元,在调用链的有向图中作为一个节点来处理,从而减少调用环的产生。此处需要对安卓操作系统的Binder调用做改进,为Binder消息结构增加一个系统调用链Handle,每一次触发一个系统调用链,则分配一个新的Handle,根据该Handle跟踪该调用关系。因为系统服务是可信的,可以认为该Handle不会被恶意篡改。用该方式可以尽量避免系统服务内部出现调用环导致无法区分调用链。
S203、识别第一节点是否为非系统服务进程或线程。
具体的,非系统服务进程或线程表示除操作系统以外的第三方应用程序的进程或线程,对于系统服务进程或线程的调用者而言,其主动发起的IPC调用请求是可信的,参考监控器不需要对系统服务进程或线程的调用链进行跟踪和鉴权;对于非系统服务进程或线程的调用者而言,才需要对调用链进行跟踪和鉴权。在S203的识别结果为是的情况下,执行S204,否则,参考监控器将系统服务进程或线程的调用者发起的IPC调用请求转发给被调方。
需要说明的是,当第一节点和第二节点为属于同一进程的线程时,参考监控器也不需要进行调用链的跟踪和鉴权,将第一节点发起的IPC调用请求转发给第二节点。
S204、查询预设的调用链缓存中是否存在以第一节点为终止节点的关联调用链。
具体的,调用链缓存用于存储调用链,调用链表示节点间的调用关系的有向图,一个调用链至少包括起始节点和终止节点,起始节点表示调用链的首个节点,终止节点表示调用链的末个节点。参考监控器查询调用链缓存中是否存在以第一节点为终止节点的关联调用链,若查询结果为是,执行S205,若查询结果为否,执行S210。
S205、将第二节点添加到关联调用链中生成新的调用链。
具体的,将第二节点添加到关联调用链中终止节点(即第一节点)的后面生成新的调用链。
S206、判断新的调用链中除第二节点的每个节点是否均具有对第二节点执行IPC调用请求的权限。
具体的,参考控制器判断生成的新的调用链中除第二节点外的每个节点是否均具有执行IPC调用请求的权限,如果判断结果为是,执行S207,如果判断结果为否,执行S208。
可选的,在查询到预设的调用链缓存中存在以第一节点为终止节点的关联调用链的情况下,判断关联调用链中每个节点是否均具有对第二节点执行IPC调用请求的权限,如果判断结果为是,将第二节点加入到关联调用链中生成新的调用链,然后将IPC调用请求转发给第二节点,将第二节点根据IPC调用请求返回的IPC调用结果转发给第一节点,以减少操作的步骤,优化处理流程。
S207、将IPC调用请求转发给第二节点,以及将第二节点根据IPC调用请求返回的IPC调用结果转发给第一节点。
S208、从新的调用链中删除第二节点。
其中,在S206的判断结果为否的情况下,表明新的调用链中存在至少一个不具备对第二节点执行IPC调用请求的权限的节点,此时从新的调用链中删除第二节点。
S209、向第一节点返回表示鉴权失败的通知消息。
其中,第一节点发起的IPC调用请求被拦截,不会发送给第二节点,防止新的调用链中不具备访问权限的节点对第二节点实施代理人攻击,提高操作系统的安全性。
S210、判断第一节点是否具有对第二节点执行IPC调用请求的权限。
具体的,在S204的查询结果为否的情况下,根据预设的权限数据库继续判断第一节点是否具有对第二节点执行IPC调用请求的权限,如果判断结果为是,执行S211,如果判断结果为否,向第一节点返回表示不具备对第二节点执行该IPC调用请求的权限的通知消息。
S211、根据第一节点和第二节点创建初始调用链,并将初始调用链存储至调用链缓存中。
具体的,根据第一节点和第二节点创建初始调用链,初始调用链中第一节点为起始节点、第二节点为终止节点,将创建的初始调用链存储至调用链缓存中,以便参考控制器对各节点间的调用关系进行跟踪。
需要说明的是,S210可以位于S204的前面执行,即在第一节点具有对第二节点执行IPC调用请求的权限的情况下,查询预设的调用链缓存中是否存在以第一节点为终止节点的关联调用链。
从上述实施例可以看出,根据调用关系构造出调用链,在调用者向被调用者发出IPC调用请求时,不仅判断调用者是否具有对被调用者执行该IPC调用请求的权限,同时判断调用者所在的调用链中的其他节点是否具有对被调用者执行该IPC调用请求的权限,在调用链中除被调用者以外的节点均具有对被调用者执行该IPC调用请求的权限的情况下,被调用者才会执行该IPC调用请求,向调用者返回IPC调用结果,这样能有效的避免代理人攻击。
参见图5,为本发明实施例提供的一种权限控制装置的结构示意图,以下简称装置,本发明实施例的装置用于执行图1所示的一种权限控制方法,其中所涉及的示例和术语可参照图1的描述。装置5包括:接收模块501、查询模块502、生成模块503、权限控制模块504和第一转发模块505。
接收模块501,用于接收IPC调用请求;其中,所述IPC调用请求的调用方为第一节点,被调方为第二节点。
查询模块502,用于查询预设的调用链缓存中是否存以所述第一节点为终止节点的关联调用链。
生成模块503,用于若所述查询模块的查询结果为是,将所述第二节点添加到所述关联调用链中生成新的调用链。
权限控制模块504,用于判断所述新的调用链中除所述第二节点的每个节点是否均具有对所述第二节点执行所述IPC调用请求的权限。
第一转发模块505,用于若所述权限控制模块的判断结果为是,将所述IPC调用请求转发给所述第二节点,以及将所述第二节点根据所述IPC调用请求返回的IPC调用结果转发给所述第一节点。
本发明实施例和方法实施例一基于同一构思,其带来的技术效果也相同,具体原理可参照图1方法实施例一的描述,此处不再赘述。
参见图6,为本发明实施例提供的一种权限控制装置的另一结果示意图,以下简称装置,本发明实施例的装置用于执行图2所示的一种权限控制方法,其中所涉及的示例和术语可参照图2的描述。装置5除包括接收模块501、查询模块502、生成模块503、权限控制模块504和第一转发模块505之外,
可选的,装置还包括:判断模块506、存储模块507和第二转发模块508。
判断模块506,用于若所述查询模块的查询结果为否,继续判断所述第一节点是否具有对所述第二节点执行所述IPC调用请求的权限。
存储模块507,用于若所述判断模块的判断结果为是,根据所述第一节点和所述第二节点创建初始调用链,并将所述初始调用链存储至所述调用链缓存中。
第二转发模块508,用于将所述IPC调用请求转发给所述第二节点,以及将所述第二节点根据所述IPC调用请求返回的IPC调用结果转发给所述第一节点。
可选的,装置还包括:删除模块509和返回模块510。
删除模块509,用于若所述权限控制模块的判断结果为否,从所述新的调用链中删除所述第二节点。
返回模块510,用于向所述第一节点返回表示鉴权失败的通知消息。
可选的,所述第一节点和所述第二节点的节点类型包括进程或线程。
可选的,装置还包括:识别模块511、指示模块512和第三转发模块513。
识别模块511,用于识别所述第一节点是否为非系统系统服务进程或线程。
指示模块512,用于若所述识别模块的识别结果为是,指示所述查询模块开始工作。
第三转发模块513,用于若所述识别模块的识别结果为否,将所述IPC调用请求转发给所述第二节点,以及将所述第二节点根据所述IPC调用请求返回的IPC调用结果转发给所述第一节点。
本发明实施例和方法实施例二基于同一构思,其带来的技术效果也相同,具体原理可参照方法图2实施例的描述,此处不再赘述。
参见图7,为本发明实施例提供的一种权限控制装置的另一结构示意图,以下简称装置,装置7包括处理器701、存储器702和收发器703。收发器703用于与外部设备之间收发数据。装置7中的处理器701的数量可以是一个或多个。本发明的一些实施例中,处理器701、存储器702和收发器703可通过总线系统或其他方式连接。装置7可以用于执行图1所示的方法。关于本实施例涉及的术语的含义以及举例,可以参考图1对应的实施例。此处不再赘述。
其中,存储器702中存储程序代码。处理器701用于调用存储器702中存储的程序代码,用于执行以下操作:
接收进程间通信IPC调用请求;其中,所述IPC调用请求的调用方为第一节点,被调方为第二节点;
查询预设的调用链缓存中是否存以所述第一节点为终止节点的关联调用链;
若为是,将所述第二节点添加到所述关联调用链中生成新的调用链;
判断所述新的调用链中除所述第二节点的每个节点是否均具有对所述第二节点执行所述IPC调用请求的权限;
若为是,将所述IPC调用请求转发给所述第二节点,以及将所述第二节点根据所述IPC调用请求返回的IPC调用结果转发给所述第一节点。
在本发明的一些实施例中,处理器701还用于执行:
若所述调用链缓存中不存在以所述第一节点为终止节点的关联调用链,继续判断所述第一节点是否具有对所述第二节点执行所述IPC调用请求的权限;
若为是,根据所述第一节点和所述第二节点创建初始调用链,并将所述初始调用链存储至所述调用链缓存中;
将所述IPC调用请求转发给所述第二节点,以及将所述第二节点根据所述IPC调用请求返回的IPC调用结果转发给所述第一节点。
在本发明的一些实施例中,处理器701还用于执行:
若所述新的调用链中除所述第二节点的节点中至少有一个节点不具备对所述第二节点执行所述IPC调用请求的权限,从所述新的调用链中删除所述第二节点;
向所述第一节点返回表示鉴权失败的通知消息。
在本发明的一些实施例中,所述第一节点和所述第二节点的节点类型包括进程或线程。
在本发明的一些实施例中,处理器701执行所述查询预设的调用链缓存中是否存在与所述IPC调用请求关联的调用链之前,还用于执行:
识别所述第一节点是否为非系统系统服务进程或线程;
若为是,执行所述查询预设的调用链缓存中是否存在与所述IPC调用请求关联的调用链;
若为否,将所述IPC调用请求转发给所述第二节点,以及将所述第二节点根据所述IPC调用请求返回的IPC调用结果转发给所述第一节点。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种权限控制方法,其特征在于,包括:
接收进程间通信IPC调用请求;其中,所述IPC调用请求的调用方为第一节点,被调方为第二节点;
查询预设的调用链缓存中是否存以所述第一节点为终止节点的关联调用链;
若为是,将所述第二节点添加到所述关联调用链中生成新的调用链;
判断所述新的调用链中除所述第二节点的每个节点是否均具有对所述第二节点执行所述IPC调用请求的权限;
若为是,将所述IPC调用请求转发给所述第二节点,以及将所述第二节点根据所述IPC调用请求返回的IPC调用结果转发给所述第一节点。
2.如权利要求1所述的方法,其特征在于,还包括:
若所述调用链缓存中不存在以所述第一节点为终止节点的关联调用链,继续判断所述第一节点是否具有对所述第二节点执行所述IPC调用请求的权限;
若为是,根据所述第一节点和所述第二节点创建初始调用链,并将所述初始调用链存储至所述调用链缓存中;
将所述IPC调用请求转发给所述第二节点,以及将所述第二节点根据所述IPC调用请求返回的IPC调用结果转发给所述第一节点。
3.如权利要求1所述的方法,其特征在于,还包括:
若所述新的调用链中除所述第二节点的节点中至少有一个节点不具备对所述第二节点执行所述IPC调用请求的权限,从所述新的调用链中删除所述第二节点;
向所述第一节点返回表示鉴权失败的通知消息。
4.如权利要求1-3任意一项所述的方法,其特征在于,所述第一节点和所述第二节点的节点类型包括进程或线程。
5.如权利要求4所述的方法,其特征在于,所述查询预设的调用链缓存中是否存在与所述IPC调用请求关联的调用链之前,还包括:
识别所述第一节点是否为非系统系统服务进程或线程;
若为是,执行所述查询预设的调用链缓存中是否存在与所述IPC调用请求关联的调用链;
若为否,将所述IPC调用请求转发给所述第二节点,以及将所述第二节点根据所述IPC调用请求返回的IPC调用结果转发给所述第一节点。
6.一种权限控制装置,其特征在于,包括:
接收模块,用于接收IPC调用请求;其中,所述IPC调用请求的调用方为第一节点,被调方为第二节点;
查询模块,用于查询预设的调用链缓存中是否存以所述第一节点为终止节点的关联调用链;
生成模块,用于若所述查询模块的查询结果为是,将所述第二节点添加到所述关联调用链中生成新的调用链;
权限控制模块,用于判断所述新的调用链中除所述第二节点的每个节点是否均具有对所述第二节点执行所述IPC调用请求的权限;
第一转发模块,用于若所述权限控制模块的判断结果为是,将所述IPC调用请求转发给所述第二节点,以及将所述第二节点根据所述IPC调用请求返回的IPC调用结果转发给所述第一节点。
7.如权利要求6所述的装置,其特征在于,还包括:
判断模块,用于若所述查询模块的查询结果为否,继续判断所述第一节点是否具有对所述第二节点执行所述IPC调用请求的权限;
存储模块,用于若所述判断模块的判断结果为是,根据所述第一节点和所述第二节点创建初始调用链,并将所述初始调用链存储至所述调用链缓存中;
第二转发模块,用于将所述IPC调用请求转发给所述第二节点,以及将所述第二节点根据所述IPC调用请求返回的IPC调用结果转发给所述第一节点。
8.如权利要求6所述的装置,其特征在于,还包括:
删除模块,用于若所述权限控制模块的判断结果为否,从所述新的调用链中删除所述第二节点;
返回模块,用于向所述第一节点返回表示鉴权失败的通知消息。
9.如权利要求6-8任意一项所述的装置,其特征在于,所述第一节点和所述第二节点的节点类型包括进程或线程。
10.如权利要求9所述的装置,其特征在于,还包括:
识别模块,用于识别所述第一节点是否为非系统系统服务进程或线程;
指示模块,用于若所述识别模块的识别结果为是,指示所述查询模块开始工作;
第三转发模块,用于若所述识别模块的识别结果为否,将所述IPC调用请求转发给所述第二节点,以及将所述第二节点根据所述IPC调用请求返回的IPC调用结果转发给所述第一节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511025098.7A CN105468941B (zh) | 2015-12-30 | 2015-12-30 | 一种权限控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511025098.7A CN105468941B (zh) | 2015-12-30 | 2015-12-30 | 一种权限控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105468941A true CN105468941A (zh) | 2016-04-06 |
CN105468941B CN105468941B (zh) | 2021-04-09 |
Family
ID=55606631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511025098.7A Active CN105468941B (zh) | 2015-12-30 | 2015-12-30 | 一种权限控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468941B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912930A (zh) * | 2016-04-11 | 2016-08-31 | 北京奇虎科技有限公司 | 移动终端及其系统资源安全控制方法 |
CN108153883A (zh) * | 2017-12-26 | 2018-06-12 | 北京百度网讯科技有限公司 | 搜索方法和装置、计算机设备、程序产品以及存储介质 |
WO2020103032A1 (zh) * | 2018-11-21 | 2020-05-28 | 深圳市欢太科技有限公司 | 进程运行控制方法、装置、存储介质及电子设备 |
CN112328932A (zh) * | 2020-07-30 | 2021-02-05 | 神州融安科技(北京)有限公司 | 操作执行方法、电子设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116716A (zh) * | 2013-01-25 | 2013-05-22 | 复旦大学 | 一种针对移动平台的低干扰的即时权限授予方法 |
KR20130085453A (ko) * | 2011-11-30 | 2013-07-30 | 포항공과대학교 산학협력단 | 모바일 플랫폼에서의 정보 보호 시스템 및 방법 |
CN103268438A (zh) * | 2013-02-04 | 2013-08-28 | 中国科学院信息工程研究所 | 基于调用链的Android权限管理方法及系统 |
CN103268451A (zh) * | 2013-06-08 | 2013-08-28 | 上海斐讯数据通信技术有限公司 | 一种基于移动终端的动态权限管理系统 |
-
2015
- 2015-12-30 CN CN201511025098.7A patent/CN105468941B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130085453A (ko) * | 2011-11-30 | 2013-07-30 | 포항공과대학교 산학협력단 | 모바일 플랫폼에서의 정보 보호 시스템 및 방법 |
CN103116716A (zh) * | 2013-01-25 | 2013-05-22 | 复旦大学 | 一种针对移动平台的低干扰的即时权限授予方法 |
CN103268438A (zh) * | 2013-02-04 | 2013-08-28 | 中国科学院信息工程研究所 | 基于调用链的Android权限管理方法及系统 |
CN103268451A (zh) * | 2013-06-08 | 2013-08-28 | 上海斐讯数据通信技术有限公司 | 一种基于移动终端的动态权限管理系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912930A (zh) * | 2016-04-11 | 2016-08-31 | 北京奇虎科技有限公司 | 移动终端及其系统资源安全控制方法 |
CN108153883A (zh) * | 2017-12-26 | 2018-06-12 | 北京百度网讯科技有限公司 | 搜索方法和装置、计算机设备、程序产品以及存储介质 |
CN108153883B (zh) * | 2017-12-26 | 2022-02-18 | 北京百度网讯科技有限公司 | 搜索方法和装置、计算机设备、程序产品以及存储介质 |
WO2020103032A1 (zh) * | 2018-11-21 | 2020-05-28 | 深圳市欢太科技有限公司 | 进程运行控制方法、装置、存储介质及电子设备 |
CN112328932A (zh) * | 2020-07-30 | 2021-02-05 | 神州融安科技(北京)有限公司 | 操作执行方法、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105468941B (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10893068B1 (en) | Ransomware file modification prevention technique | |
CN104219316A (zh) | 一种分布式系统中的调用请求处理方法及装置 | |
CN107784221B (zh) | 权限控制方法、服务提供方法、装置、系统及电子设备 | |
CN105468941A (zh) | 一种权限控制方法和装置 | |
CN104376263A (zh) | 应用程序行为拦截的方法和装置 | |
CN105450583A (zh) | 一种信息认证的方法及装置 | |
CN108200053B (zh) | 记录apt攻击操作的方法及装置 | |
CN105159771A (zh) | 处理应用间链式启动的方法及装置 | |
CN105550584A (zh) | 一种Android平台下基于RBAC的恶意程序拦截及处置方法 | |
CN104021141A (zh) | 数据处理和云服务的方法、装置及系统 | |
CN114466053B (zh) | 远程过程调用的调用管控方法、装置、设备及存储介质 | |
CN102004882A (zh) | 远程线程注入型木马的检测和处理的方法和装置 | |
CN105260660A (zh) | 智能终端支付环境的监控方法、装置及系统 | |
CN106682493B (zh) | 一种防止进程被恶意结束的方法、装置及电子设备 | |
WO2016192161A1 (zh) | 一种数据处理方法和装置 | |
CN111901352A (zh) | 消息分发处理的方法、装置、服务器及存储介质 | |
CN112286911B (zh) | 数据库管理方法及装置、设备、存储介质 | |
WO2024125108A1 (zh) | 移动端安全切面的按需开启方法及装置 | |
CN113472789A (zh) | 一种攻击检测方法、攻击检测系统、存储介质和电子设备 | |
CN106919812B (zh) | 一种应用进程权限管理方法和装置 | |
CN110928630A (zh) | 应用程序窗口的激活控制方法、装置、设备及存储介质 | |
CN109740328B (zh) | 一种权限鉴定方法、装置、计算机设备和存储介质 | |
CN105204903A (zh) | 一种进程模块加载拦截方法及装置 | |
CN103366115B (zh) | 安全性检测方法和装置 | |
CN105893845B (zh) | 一种数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200420 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310053, Binjiang District, Zhejiang, Hangzhou Applicant before: Huawei Technologies Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |