首页> 中国专利> 权限管理方法、权限管理装置、存储介质与电子设备

权限管理方法、权限管理装置、存储介质与电子设备

摘要

本公开提供一种权限管理方法、装置、存储介质与电子设备,涉及信息安全技术领域。该权限管理方法包括:利用设置于系统预设位置的探测点探测系统调用事件;若检测到所述系统调用事件的调用者为系统调试服务,则获取所述系统调试服务的权限;若所述系统调试服务的权限为第一预设权限,则对所述系统调试服务的权限进行修改。本公开降低了操作系统内核被攻击的风险,且对于内核代码无侵入。

著录项

  • 公开/公告号CN114969676A

    专利类型发明专利

  • 公开/公告日2022-08-30

    原文格式PDF

  • 申请/专利权人 成都欧珀通信科技有限公司;

    申请/专利号CN202210623071.1

  • 发明设计人 李科;

    申请日2022-06-02

  • 分类号G06F21/12(2013.01);G06F21/14(2013.01);

  • 代理机构深圳市联鼎知识产权代理有限公司 44232;

  • 代理人刘抗美

  • 地址 610094 四川省成都市高新区天府四街158号2栋2单元18-24楼

  • 入库时间 2023-06-19 16:33:23

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-16

    实质审查的生效 IPC(主分类):G06F21/12 专利申请号:2022106230711 申请日:20220602

    实质审查的生效

说明书

技术领域

本公开涉及信息安全技术领域,尤其涉及一种权限管理方法、权限管理装置、计算机可读存储介质与电子设备。

背景技术

目前,电子设备上大多安装有智能操作系统,如Android系统、iOS系统、Windows系统等。操作系统一般都具有内核,其负责系统中核心的操作与功能实现。

随着信息化的安全攻击事件日益增多,针对电子设备上操作系统内核的攻击也越来越多,往往具有极高的威胁性,容易导致严重的用户信息或财产损失。

发明内容

本公开提供了一种权限管理方法、权限管理装置、计算机可读存储介质与电子设备,进而至少在一定程度上降低操作系统内核被攻击的风险。

根据本公开的第一方面,提供一种权限管理方法,包括:利用设置于系统预设位置的探测点探测系统调用事件;确定所述系统调用事件的调用者;若所述调用者为系统调试服务,则获取所述系统调试服务的权限;若所述系统调试服务的权限为第一预设权限,则对所述系统调试服务的权限进行修改。

根据本公开的第二方面,提供一种权限管理装置,包括:系统调用探测模块,被配置为利用设置于系统预设位置的探测点探测系统调用事件;权限获取模块,被配置为若检测到所述系统调用事件的调用者为系统调试服务,则获取所述系统调试服务的权限;权限修改模块,被配置为若所述系统调试服务的权限为第一预设权限,则对所述系统调试服务的权限进行修改。

根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的权限管理方法及其可能的实现方式。

根据本公开的第四方面,提供一种电子设备,包括:处理器;存储器,用于存储所述处理器的可执行指令。其中,所述处理器配置为经由执行所述可执行指令,来执行上述第一方面的权限管理方法及其可能的实现方式。

本公开的技术方案具有以下有益效果:

一方面,本方案在系统调试服务进行系统调用时,检测系统调试服务的权限,在其权限为第一预设权限的情况下进行权限修改,从而能够针对攻击者利用系统调试服务的提权进行攻击的情况进行防御,降低操作系统内核被攻击的风险,提高安全性。另一方面,本方案无需修改内核代码,比如探测系统调用事件、对系统调试服务的权限进行检测与修改等,均对内核代码无侵入,由此保证了内核的完整性,符合相关系统的要求。

附图说明

图1示出本示例性实施方式中一种权限管理方法的流程图;

图2示出本示例性实施方式中tracepoint探测系统调用事件的示意图;

图3示出本示例性实施方式中另一种权限管理方法的流程图;

图4示出本示例性实施方式中权限管理方法的一种应用场景的示意图;

图5示出本示例性实施方式中权限管理方法的一种流程示意图;

图6示出本示例性实施方式中一种权限管理装置的结构示意图;

图7示出本示例性实施方式中一种电子设备的结构示意图。

具体实施方式

下文将结合附图更全面地描述本公开的示例性实施方式。

附图为本公开的示意性图解,并非一定是按比例绘制。附图中所示的一些方框图可能是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在硬件模块或集成电路中实现这些功能实体,或在网络、处理器或微控制器中实现这些功能实体。实施方式能够以多种形式实施,不应被理解为限于在此阐述的范例。本公开所描述的特征、结构或特性可以以任何合适的方式结合在一个或多个实施方式中。在下文的描述中,提供许多具体细节从而给出对本公开实施方式的充分说明。然而,本领域技术人员应意识到,可以在实现本公开的技术方案时省略其中的一个或多个特定细节,或者可以采用其它的方法、组元、装置、步骤等替代一个或多个特定细节。

本发明人发现,在针对操作系统内核的攻击中,利用提权漏洞进行攻击的方式较为常见,攻击者利用系统中的漏洞提升攻击者的内核权限,实现对被攻击设备的控制,从而对用户的信息与财产安全造成巨大的威胁。

以Android系统为例,其包括userdebug和user两种系统版本。Userdebug是用于内部系统开发、调试的版本,其中adbd(Android Debug Bridge Daemon,Android调试桥守护进程,又可称为Android调试服务)具备root权限;user是面向普通用户的版本,其中adbd不具备root权限。业界通常在静态编译时选择user系统版本以提供给普通用户,adbd不具备root权限,以此降低系统风险。然而,若有攻击者利用系统漏洞进行提权,以获取到root权限,系统无法进行甄别。例如,攻击者可能利用Binder(进程间通信工具)的漏洞或GPU(图形处理单元)的漏洞获取设备的root权限。由此,对用户设备造成威胁。

相关技术中,部分设备厂商通过修改内核代码,对root权限进行限制。按照GKI(Generic Kernel Image,通用内核映像,针对内核碎片化问题的一项解决方案)的要求,厂商应当将SoC(System on Chip,系统级芯片)和板级支持等代码从内核移至可加载模块中,使得模块和内核可以独立进行更新,从而解决内核碎片化问题。上述厂商修改内核代码的方式破坏了内核完整性,不符合GKI(特别是GKI 2.0)的要求。

此外,在Windows、iOS等其他系统中,也存在利用提权漏洞进行攻击的情况,并且相关系统的内核代码也不允许被修改或不可修改,相关技术并不能很好地应对。

鉴于上述一个或多个问题,本公开的示例性实施方式提供一种权限管理方法,该权限管理方法可以应用于手机、平板电脑、可穿戴设备、无人机等电子设备。下面对该权限管理方法进行说明。

参考图1所示,为根据本公开实施方式的权限管理方法的示例性流程,可以包括以下步骤S110至S130:

步骤S110,利用设置于系统预设位置的探测点探测系统调用事件。

一般的,操作系统可以被划分为内核态与用户态。其中,涉及系统核心功能或高权限的操作,如磁盘的IO操作、修改基址寄存器内容、访问网络上的数据包等,只能在内核态中执行,而无法在用户态中执行。为了使用户态能够使用内核态中的功能,操作系统一般提供系统调用的机制,用户态可以通过进行系统调用,来调用内核态完成相关操作。例如,系统调用(system call)可以是一组呈现给用户态的接口,通过该接口,可以将用户态的请求传递到内核态,调用相应的内核函数完成所需的操作,并将结果返回给用户态。

本示例性实施方式中,可以在系统预设位置设置探测点,当用户态进行系统调用时,利用探测点可以探测到系统调用事件,并进行后续的处理。

系统预设位置可以是系统调用过程中必经的节点位置。例如,系统预设位置可以包括系统入口位置sys_enter、系统出口位置sys_exit等,或者,可以包括系统调用所使用到的某个函数的位置。

在一种实施方式中,可以将系统调用过程中所有必经的节点位置中,未添加到内核白名单的节点位置作为上述系统预设位置。

在一种实施方式中,也可以将系统调用过程中所有必经的节点位置中,处于最前端的节点位置作为上述系统预设位置,例如处于最前端的节点位置可以是系统入口位置sys_enter。

在一种实施方式中,探测点可以是tracepoint。Tracepoint是Linux内核系统中静态定义的一些调试点,分布于内核的各个子系统中,tracepoint可以声明内核中的hook点,可以在内核运行过程中动态地向tracepoint添加或删除钩子(hook)函数。每个tracepoint的状态可以包括“打开”或“关闭”。当tracepoint处于“打开”状态时,表示有钩子函数注册到该tracepoint,在该tracepoint被执行时,钩子函数被调用,进而可以实现钩子函数的逻辑与功能,如通过钩子函数获取系统调用事件的信息。当tracepoint处于“关闭”状态时,表示没有hook函数注册到该tracepoint,该tracepoint对内核的影响仅仅是增加了很少的时间开销(关于该tracepoint的分支条件判断)与空间开销(该tracepoint的函数调用语句和相关的数据结构),带来的系统开销很小。

在一种实施方式中,上述探测点也可以是Kprobe。基于Kprobe技术,用户可以自定义回调函数,对内核或模块中的函数插入探测点。因此,上述系统预设位置可以是系统调用过程中使用到的函数。对某个函数插入Kprobes探测点后,当系统调用过程执行到该函数时,可以调用回调函数,以上报系统调用事件。

示例性的,以系统入口位置sys_enter作为系统预设位置,采用tracepoint框架设置探测点。可以将sys_enter的地址传入tracepoint的注册函数tracepoint_probe_register(),以注册探测点函数traceponit_sys_enter,并添加hook函数,以获取系统调用事件的信息。

图2示出了tracepoint探测系统调用事件的示意图。如图2所示,在用户态调用内核态的系统调用过程中,可以设置以下任意一个或多个探测点:tracepoint_sys_enter、invoke_syscall、tracepoint_sys_exit。其中,这些探测点均为tracepoint格式的traceevent。举例来说,设置tracepoint_sys_enter探测点,当用户态进行的系统调用过程到达sys_enter节点后,会先执行tracepoint_sys_enter探测点的回调函数,如可以包括syscall0 pre_handler、syscall1 pre_handler、…、syscallx pre_handler等函数逻辑,从而探测到系统调用事件,获取事件的信息。

步骤S120,若检测到系统调用事件的调用者为系统调试服务,则获取系统调试服务的权限。

系统调用事件的调用者可以是实际执行系统调用的进程。系统调用事件通常发生地非常频繁,其中大部分为无风险或低风险的系统调用事件。本示例性实施方式中,可以通过检测系统调用事件的调用者,从调用者的层面对系统调用事件进行过滤,以识别潜在的高风险的系统调用事件,以进行处理。这样无需对每个系统调用事件均进行处理,降低系统开销。

在一种实施方式中,可以通过探测系统调用事件的信息,从中确定进行系统调用的当前进程,当前进程可以是系统调用事件中调用系统调用函数或内核函数的进程,其即为调用者。

在一种实施方式中,也可以确定系统调用事件中的当前进程,将当前进程的父进程确定为系统调用事件的调用者。这是由于,某些进程在进行系统调用时,可能会产生子进程,例如可以通过分叉函数fork()产生子进程,由子进程去执行具体地系统调用操作,这样父进程能够执行其他操作。因此,可以认为父进程是系统调用事件中实际的调用者,通过对父进程进行权限管理,能够从根源上降低系统安全风险。

在一种实施方式中,可以获取当前进程的进程描述符,进程描述符中包含父进程、真实父进程等信息,从而能够确定当前进程的父进程。

示例性的,在Linux内核系统中,进程描述符可以是task_struct结构体,可以通过rcu_dereference()接口读取当前进程的task_struct,并通过current->real-parent->comm命令确定父进程的名称。在调用rcu_dereference()接口读取task_struct时,还可以加锁,以保证读取的task_struct真实、未被篡改。

在确定系统调用事件的调用者的情况下,可以检测该调用者是否为系统调试服务。若调用者为系统调试服务,则进一步获取系统调试服务的权限。系统调式服务是用于实现操作系统调试的工具。例如,在Android系统中,系统调试服务可以是adbd。本示例性实施方式中,主要针对利用系统调试服务提权的情况进行权限管理。系统调式服务如获得非法提权,对系统内核的安全威胁很大。由此,若某个系统调用事件的调用者为系统调试服务,可以认为该系统调用事件存在潜在的安全风险,通过对系统调式服务的权限做进一步的控制,来降低安全风险。

在一种实施方式中,可以获取当前进程的用户标识,该用户标识可以包括以下任意一种或多种:uid(user identifier,用户标识)、suid(set uid,设置用户标识)、euid(effect uid,有效用户标识)、fsuid(file system uid,文件系统用户标识)、gid(groupidentifier,组用户标识)、sgid(设置组用户标识)、egid(有效组用户标识)、fsgid(文件系统组用户标识)。根据用户标识确定当前进程的权限,即为系统调试服务的权限。示例性的,可以通过current_euid().val函数获取当前进程的euid,从而得到系统调式服务的权限。

步骤S130,若系统调试服务的权限为第一预设权限,则对系统调试服务的权限进行修改。

其中,第一预设权限是可能对系统造成安全威胁的权限,通常是较高的权限,如管理员权限。示例性的,在Android系统中,第一预设权限可以是root权限。

在一种实施方式中,若通过用户标识确定系统调试服务的权限,则可以通过判断用户标识是否为第一预设权限对应的第一数值,以此确定系统调试服务的权限是否为第一预设权限。例如,第一预设权限是root权限,其对应的用户标识的第一数值可以是0(uid或euid为0表示root权限),则检测到当前进程的用户标识为第一数值,即表示系统调试服务的权限为第一预设权限。

若系统调式服务的权限为第一预设权限,则系统调式服务可能对系统造成安全威胁,例如可被攻击者使用进行攻击。因此,对系统调式服务的权限进行修改,一般的,可以降低系统调式服务的权限。在一种实施方式中,可以将系统调式服务的权限从第一预设权限修改为第二预设权限,第二预设权限低于第一预设权限,如第二预设权限可以是非root权限。

在一种实施方式中,上述对系统调试服务的权限进行修改,可以包括以下步骤:

对当前进程的预设结构体中的权限信息进行修改,以修改系统调试服务的权限。

其中,预设结构体可用于记录当前进程的权限信息,如权限凭证等。示例性的,在Android系统中,预设结构体可以是cred结构体,其记录有当前进程的用户标识,如上述uid、suid、euid、fsuid、gid、sgid、egid、fsgid等,相当于权限信息。可以通过prepare_kernel_cred函数,获取cred结构体中的权限信息,以进行修改。

在一种实施方式中,权限信息可以包括用户标识。上述对当前进程的预设结构体中的权限信息进行修改,可以包括以下步骤:

将预设结构体中的用户标识从第一预设权限对应的第一数值修改为第二预设权限对应的第二数值。

例如,第一预设权限是root权限,其对应的uid或euid的第一数值可以是0,第二预设权限是shell权限,其对应的uid或euid的第二数值可以是2000,将cred结构体中的uid或euid从0修改为2000,相当于将系统调试服务从第一预设权限修改为第二预设权限。从而实现准确、便捷的权限修改。

在一种实施方式中,上述对当前进程的预设结构体中的权限信息进行修改,以修改系统调试服务的权限,可以包括以下步骤:

对当前进程的预设结构体中的权限信息进行修改,并将修改后的预设结构体保存至当前进程中,以完成对系统调试服务的权限修改。

示例性的,可以通过commit_cred函数,将修改后的cred结构体保存到当前进程中,实现对当前进程及其父进程(即系统调式服务)的权限修改。

综上所述,基于本示例性实施方式中的权限管理方法。一方面,在系统调试服务进行系统调用时,检测系统调试服务的权限,在其权限为第一预设权限的情况下进行权限修改,从而能够针对攻击者利用系统调试服务的提权进行攻击的情况进行防御,降低操作系统内核被攻击的风险,提高安全性。另一方面,无需修改内核代码,比如探测系统调用事件、对系统调试服务的权限进行检测与修改等,均对内核代码无侵入,由此保证了内核的完整性,符合相关系统的要求。

在一种实施方式中,参考图3所示,权限管理方法还可以包括以下步骤S310:

步骤S310,检测系统预设位置是否挂载有钩子函数,以确定系统预设位置是否设置有探测点。

其中,系统预设位置挂载有钩子函数,可以在系统调用过程执行到系统预设位置时,改变其原本的执行流,先执行钩子函数。通过执行钩子函数,可以实现对系统调用事件的探测,获取系统调用事件的信息,本示例性实施方式对于钩子函数的具体内容不做限定。

由上可知,系统预设位置挂载有钩子函数,即表示已在系统预设位置设置了探测点,在此情况下可以继续执行步骤S110,以及后续的步骤S120与S130。

若系统预设位置未设置有探测点,则无法执行步骤S110。在一种实施方式中,权限管理方法还可以包括以下步骤S320:

步骤S320,在系统预设位置注册钩子函数,以完成探测点的设置,并再次执行步骤S310。

通过检测系统预设位置是否挂载有钩子函数,相当于在执行本示例性实施方式中的权限管理方法之前,先检测探测点是否被正常设置,从而保证权限管理的顺利实现。

在一种实施方式中,权限管理方法还可以包括以下步骤:

根据内核配置信息,确定是否开启权限管理功能;其中,在user系统版本的默认配置下,内核配置信息包括开启权限管理功能。

其中,内核配置信息可以包括内核相关功能的配置情况。例如,在Linux内核系统中,内核配置信息可以是Kconfig,通过Kconfig可以控制内核中不同功能的开启或关闭。权限管理功能是指本示例性实施方式的权限管理方法所实现的功能,开启权限管理功能即表示执行本示例性实施方式的权限管理方法。在user系统版本的默认配置下,内核配置信息包括开启权限管理功能,即权限管理功能默认为开启状态。

在一种实施方式中,可以在开机时检测内核配置信息,以确定是否开启权限管理功能。内核配置信息的默认配置可以是开启权限管理功能,因此默认开启时开启权限管理功能。

在开启权限管理功能的情况下,可以继续执行步骤S110,以及后续的步骤S120与S130。

在一种实施方式中,本示例性实施方式的权限管理方法可以实现为.ko文件,开启权限管理功能后,可以将该.ko文件进行挂载,使得权限管理方法的代码生效。

若未开启权限管理功能,则无法执行步骤S110。在一种实施方式中,权限管理方法还可以包括以下步骤:

呈现关于未开启权限管理功能的提示信息。

提示信息可用于提示用户开启权限管理功能,如提示信息可以是“当前未开启权限管理功能,是否开启”,用户选择“是”则触发开启权限管理功能。在开启后可以继续执行步骤S110,以及后续的步骤S120与S130。

根据内核配置信息来控制权限管理功能的开启或关闭,能够提高用户使用权限管理功能的便捷性,并且在一些特殊情况下(如在进行实际的系统调试时,需要系统调试服务具备高权限),可以通过关闭权限管理功能,使得系统调试服务可以在第一预设权限下工作。

在一种实施方式中,权限管理方法还可以包括以下步骤:

在开机过程中,通过验证启动功能检测设备状态是否为锁定。

其中,验证启动功能用于在开机过程中检测设备状态。设备状态可以包括锁定(locked)与未锁定(unlocked)。状态为锁定的设备禁止用户进行软件刷写,状态为未锁定的设备允许用户进行软件刷写。在设备状态为锁定的情况下,说明设备可信,可以继续执行步骤S110,以及后续的步骤S120与S130。在设备状态为未锁定的情况下,说明设备不可信,可以不提供权限管理功能,即不执行步骤S110及后续步骤。

以Android系统为例,验证启动功能可以是Verified Boot功能,用于验证设备上运行的软件完整性。在开机过程中,通过检测内核启动参数cmdline中android.verifiedbootstate的值,来确定设备状态。如设备状态是locked,则可以继续执行步骤S110,如设备状态是unlocked,则可以不开启权限管理功能。

在一种实施方式中,权限管理方法还可以包括以下步骤:

若系统调试服务的权限为第一预设权限,则将系统调用事件的事件信息传输至用户态,并通过用户态将事件信息上报至后台服务器。

其中,后台服务器可以是提供安全服务的服务器,相对应的,权限管理方法的执行主体可以是终端。系统调试服务的权限为第一预设权限,则可以将系统调用事件作为一次安全事件,将事件信息从内核态传输至用户态,并上报至后台服务器。

事件信息用于表征安全事件的事件内容,示例性的,事件信息可以包含进程的相关信息,还可以包括事件发生的时间、当时的软硬件运行数据,以及当时系统或应用的其他运行数据等。

用户态接收到内核态传来的事件信息之后,可以对事件信息进行解析、存储等一系列处理,之后通过终端与后台服务器之间的网络通道,将事件信息上报至后台服务器。后台服务器可基于终端上报的事件信息,对事件进行溯源和分析,进而实现对终端上高风险恶意程序的定位,安全漏洞的查找等,以进一步提高安全性。

在一种实施方式中,可以通过socket接口向Native层传递事件信息,以进行上报。

图4示出了本示例性实施方式中权限管理方法的一种应用场景的示意图。当用户需要在移动终端410与电脑420之间传输文件,或者进行其他需要连接两者的操作时,会将移动终端410连接到电脑420,可以采用USB(Universal Serial Bus,通用串行总线)等有线连接方式,也可以采用无线局域网等无线连接方式。连接电脑420后,触发移动终端410启动系统调试服务,或者连接电脑420并打开电脑420上的调试工具后,触发移动终端410启动系统调试服务。例如,移动终端410为Android系统的设备,连接电脑420,并在电脑420上打开adb(Android Debug Bridge,安卓调试桥),则触发移动终端410上对应启动adbd。在adbd调用系统时,通过执行本示例性实施方式的权限管理方法,保证adbd在非root权限下工作,防止攻击者通过将adbd提权到root权限来进行攻击。

图5示出了本示例性实施方式中权限管理方法的一种流程示意图,该流程包括:

步骤S501,检测sys_enter是否设置有探测点,若否,则流程结束,若是,则继续执行步骤S502;

步骤S502,检测Kconfig是否开启权限管理功能,若否,则流程结束,若是,则继续执行步骤S503;

步骤S503,检测oem_unlocked(刷机解锁)的选项是否打开,以确定设备状态是锁定还是未锁定,若oem_unlocked打开,则设备状态是未锁定,流程结束,若oem_unlocked未打开,则设备状态是锁定,继续执行步骤S504;

步骤S504,利用sys_enter探测点探测系统调用事件;

步骤S505,获取系统调用事件中当前进程的父进程名;

步骤S506,判断父进程名是否为adbd,若否,则流程结束,若是,则继续执行步骤S507;

步骤S507,通过euid获取adbd的权限;

步骤S508,判断adbd的权限是否为root,若否,则流程结束,若是,则继续执行步骤S509;

步骤S509,将cred结构体中的权限值均设为shell;

步骤S510,执行commit_cred()函数,以强行将adbd的权限降为shell,流程结束。

本公开的示例性实施方式还提供一种权限管理装置。参考图6所示,该权限管理装置600可以包括:

系统调用探测模块610,被配置为利用设置于系统预设位置的探测点探测系统调用事件;

权限获取模块620,被配置为若检测到系统调用事件的调用者为系统调试服务,则获取系统调试服务的权限;

权限修改模块630,被配置为若系统调试服务的权限为第一预设权限,则对系统调试服务的权限进行修改。

在一种实施方式中,权限管理装置600还可以包括预检测模块,被配置为:

检测系统预设位置是否挂载有钩子函数,以确定系统预设位置是否设置有探测点;

系统调用探测模块610,被配置为在系统预设位置设置有探测点的情况下,利用设置该探测点探测系统调用事件。

在一种实施方式中,权限管理装置600还可以包括预检测模块,被配置为:

根据内核配置信息,确定是否开启权限管理功能;其中,在user系统版本的默认配置下,内核配置信息包括开启权限管理功能;

系统调用探测模块610,被配置为在开启权限管理功能的情况下,利用设置于系统预设位置的探测点探测系统调用事件。

在一种实施方式中,权限管理装置600还可以包括预检测模块,被配置为:

在开机过程中,通过验证启动功能检测设备状态是否为锁定;

系统调用探测模块610,被配置为在设备状态为锁定的情况下,利用设置于系统预设位置的探测点探测系统调用事件。

在一种实施方式中,系统调用探测模块610,被配置为:

确定系统调用事件中的当前进程,将当前进程的父进程确定为系统调用事件的调用者。

在一种实施方式中,上述对系统调试服务的权限进行修改,包括:

对当前进程的预设结构体中的权限信息进行修改,以修改系统调试服务的权限。

在一种实施方式中,权限信息包括用户标识;上述对当前进程的预设结构体中的权限信息进行修改,包括:

将预设结构体中的用户标识从第一预设权限对应的第一数值修改为第二预设权限对应的第二数值。

在一种实施方式中,上述对当前进程的预设结构体中的权限信息进行修改,以修改系统调试服务的权限,包括:

对当前进程的预设结构体中的权限信息进行修改,并将修改后的预设结构体保存至当前进程中,以完成对系统调试服务的权限修改。

在一种实施方式中,权限管理装置600还可以包括事件上报模块,被配置为:

若系统调试服务的权限为第一预设权限,则将系统调用事件的事件信息传输至用户态,并通过用户态将事件信息上报至后台服务器。

上述装置中各部分的具体细节在方法部分实施方式中已经详细说明,因而不再赘述。

本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。在一种可选的实施方式中,该程序产品可以实现为便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

本公开的示例性实施方式还提供一种电子设备,如可以是上述移动终端410。该电子设备可以包括处理器与存储器。存储器存储有处理器的可执行指令,如可以是程序代码。处理器通过执行该可执行指令来执行本示例性实施方式中的权限管理方法。

下面以图7中的移动终端700为例,对该电子设备的构造进行示例性说明。本领域技术人员应当理解,除了特别用于移动目的的部件之外,图7中的构造也能够应用于固定类型的设备。

如图7所示,移动终端700具体可以包括:处理器701、存储器702、总线703、移动通信模块704、天线1、无线通信模块705、天线2、显示屏706、摄像模块707、音频模块708、电源模块709与传感器模块710。

处理器701可以包括一个或多个处理单元,例如:处理器701可以包括AP(Application Processor,应用处理器)、调制解调处理器、GPU(Graphics ProcessingUnit,图形处理器)、ISP(Image Signal Processor,图像信号处理器)、控制器、编码器、解码器、DSP(Digital Signal Processor,数字信号处理器)、基带处理器和/或NPU(Neural-Network Processing Unit,神经网络处理器)等。本示例性实施方式中的权限管理处理方法可以由AP或DSP来执行。

处理器701可以通过总线703与存储器702或其他部件形成连接。

存储器702可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器701通过运行存储在存储器702的指令,执行移动终端700的各种功能应用以及数据处理。存储器702还可以存储应用数据,例如存储图像,视频等文件。

移动终端700的通信功能可以通过移动通信模块704、天线1、无线通信模块705、天线2、调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。移动通信模块704可以提供应用在移动终端700上3G、4G、5G等移动通信解决方案。无线通信模块705可以提供应用在移动终端700上的无线局域网、蓝牙、近场通信等无线通信解决方案。

显示屏706用于实现显示功能,如显示用户界面、图像、视频等。摄像模块707用于实现拍摄功能,如拍摄图像、视频等。音频模块708用于实现音频功能,如播放音频,采集语音等。电源模块709用于实现电源管理功能,如为电池充电、为设备供电、监测电池状态等。传感器模块710可以包括一种或多种传感器,用于实现相应的感应检测功能。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号