一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

进程非法提权的识别方法、装置、设备及存储介质与流程

2023-02-01 21:28:41 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种进程非法提权的识别方法、装置、设备及存储介质。


背景技术:

2.漏洞修复与防御是贯穿整个系统(例如,android系统)架构层面与业务功能的方方面面,而提权特别是根级别(root)漏洞提权是漏洞攻击过程中最关键的一步,从系统角度来,如何识别漏洞提权行为而阻断,如何监控漏洞提权行为而感知入侵溯源追踪是防御方最关注的事情之一。
3.现有技术中,通常是基于系统中的安全模块(lsm)对进程的提权行为进行限制,例如,基于linux 5.1内核新增的safesetid安全特性对setid系列的系统调用进行限制。但是通过上述方案的非法提权的识别方式较为单一,无法结合android系统和主机系统(服务器)的设计制定不同的安全策略(例如黑名单)进行针对性的非法提权行为的识别,即无法基于黑名单对进程的非法提权进行针对性识别。
4.综上,现有技术中存在无法基于黑名单对进程的非法提权进行针对性识别的问题。


技术实现要素:

5.本技术的主要目的是提供一种进程非法提权的识别方法、装置、设备及存储介质,以解决现有技术中存在的无法基于黑名单对进程的非法提权进行针对性识别的问题。
6.本发明第一方面提供了一种进程非法提权的识别方法,所述进程非法提权的识别方法包括:获取当前执行的进程,并提取所述进程对应的用户标识;基于所述用户标识对所述进程进行权限检查,得到检查结果;若所述检查结果为提高权限,则将所述用户标识与预设的白名单和黑名单进行比对,得到比对结果;在所述比对结果满足预设的限制策略时,根据所述比对结果对所述进程对应的用户标识进行转换;在所述比对结果不满足预设的限制策略时,确定所述进程为非法提权的进程,并关闭所述进程。
7.可选地,在本发明第一方面的第一种实现方式中,所述基于所述用户标识对所述进程进行权限检查,得到检查结果,包括:获取所述进程所属的容器空间对应的容器空间标识,并根据所述容器空间标识获取对应的容器空间中的权限策略;根据所述权限策略,基于所述用户标识确定所述进程对应的权限信息,并基于所述权限信息计算出所述进程拥有的权限和所述进程需要的权限;当所述进程拥有的权限小于所述进程需要的权限时,所述检查结果为提高权限。
8.可选地,在本发明第一方面的第二种实现方式中,在所述将所述用户标识与预设的白名单和黑名单进行比对之前,还包括:控制系统中的组件管理服务模块扫描系统的原生系统应用,并获取原生系统应用对应的签名信息和用户标识;根据所述签名信息,在预设的权限信息表中查询出不需要高级权限的原生系统应用,并确定对应的普通权限用户标
识,其中,所述高级权限至少包括进行setuid操作对应的权限和进行setgid操作对应的权限,所述普通权限用户标识为不需要高级权限的原生系统应用对应的用户标识;当所述组件管理服务模块继续扫描到第三方系统应用处于安装时,则获取对应的第三方用户标识,其中,所述第三方用户标识为正在进行安装的第三方系统应用对应的用户标识;基于所述普通权限用户标识和所述第三方用户标识生成所述黑名单。
9.可选地,在本发明第一方面的第三种实现方式中,在所述将所述用户标识与预设的白名单和黑名单进行比对之前,还包括:获取所述进程所属的容器空间对应的容器空间标识,并根据所述容器空间标识确定目标容器空间的空间类型,其中,所述目标容器空间为所述进程所属的容器空间;基于所述空间类型确定所述目标容器空间相对于宿主空间的安全性要求;基于所述安全性要求对所述白名单中的用户标识和所述黑名单中的用户标识进行筛选和调整。
10.可选地,在本发明第一方面的第四种实现方式中,在所述将所述用户标识与预设的白名单和黑名单进行比对之前,还包括:在检测到后台运行的进程时,获取检测到的后台进程对应的进程名称;基于所述进程名称获取对应的后台用户标识,其中,所述后台用户标识为检测到的后台进程对应的用户标识;将所述后台用户标识添加至预设的黑名单中。
11.可选地,在本发明第一方面的第五种实现方式中,所述将所述用户标识与预设的白名单和黑名单进行比对,得到比对结果,包括:将所述用户标识与所述白名单进行比对,得到第一比对结果;基于所述第一比对结果判断所述用户标识是否落入所述白名单所包括的范围;若是,则将所述用户标识与所述黑名单进行比对,得到比对结果;若否,则所述比对结果为第一比对结果。
12.可选地,在本发明第一方面的第六种实现方式中,所述在所述比对结果满足预设的限制策略时,根据所述比对结果对所述进程对应的用户标识进行转换,包括:根据所述比对结果在所述黑名单对应的策略文件中确定对应的禁止切换标识;获取针对于所述进程的审计信息,并根据所述审计信息确定所述进程所缺少的权限以及对应的目标标识,其中,所述审计信息由操作系统对所述进程进行权限检查后得到,所述目标标识为所述进程所缺少的权限对应的用户标识;当所述目标标识与所述禁止切换标识不一致时,确定所述比对结果满足预设的限制策略,并将所述用户标识转换成对应的所述目标标识。
13.本发明第二方面提供了一种进程非法提权的识别装置,所述进程非法提权的识别装置包括:提取模块,用于获取当前执行的进程,并提取所述进程对应的用户标识;检查模块,用于基于所述用户标识对所述进程进行权限检查,得到检查结果;比对模块,用于若所述检查结果为提高权限,则将所述用户标识与预设的白名单和黑名单进行比对,得到比对结果;转换模块,用于在所述比对结果满足预设的限制策略时,根据所述比对结果对所述进程对应的用户标识进行转换;拦截模块,用于在所述比对结果不满足预设的限制策略时,确定所述进程为非法提权的进程,并关闭所述进程。
14.可选地,在本发明第二方面的第一种实现方式中,所述检查模块包括:获取单元,用于获取所述进程所属的容器空间对应的容器空间标识,并根据所述容器空间标识获取对应的容器空间中的权限策略;计算单元,用于根据所述权限策略,基于所述用户标识确定所述进程对应的权限信息,并基于所述权限信息计算出所述进程拥有的权限和所述进程需要的权限;第一确定单元,用于当所述进程拥有的权限小于所述进程需要的权限时,确定所述
检查结果为提高权限。
15.可选地,在本发明第二方面的第二种实现方式中,所述进程非法提权的识别装置还包括生成模块,用于控制系统中的组件管理服务模块扫描系统的原生系统应用,并获取原生系统应用对应的签名信息和用户标识;根据所述签名信息,在预设的权限信息表中查询出不需要高级权限的原生系统应用,并确定对应的普通权限用户标识,其中,所述高级权限至少包括进行setuid操作对应的权限和进行setgid操作对应的权限,所述普通权限用户标识为不需要高级权限的原生系统应用对应的用户标识;当所述组件管理服务模块继续扫描到第三方系统应用处于安装时,则获取对应的第三方用户标识,其中,所述第三方用户标识为正在进行安装的第三方系统应用对应的用户标识;基于所述普通权限用户标识和所述第三方用户标识生成所述黑名单。
16.可选地,在本发明第二方面的第三种实现方式中,所述进程非法提权的识别装置还包括调整模块,用于获取所述进程所属的容器空间对应的容器空间标识,并根据所述容器空间标识确定目标容器空间的空间类型,其中,所述目标容器空间为所述进程所属的容器空间;基于所述空间类型确定所述目标容器空间相对于宿主空间的安全性要求;基于所述安全性要求对所述白名单中的用户标识和所述黑名单中的用户标识进行筛选和调整。
17.可选地,在本发明第二方面的第四种实现方式中,所述进程非法提权的识别装置还包括添加模块,用于在检测到后台运行的进程时,获取检测到的后台进程对应的进程名称;基于所述进程名称获取对应的后台用户标识,其中,所述后台用户标识为检测到的后台进程对应的用户标识;将所述后台用户标识添加至预设的黑名单中。
18.可选地,在本发明第二方面的第五种实现方式中,所述比对模块包括:比对单元,用于将所述用户标识与所述白名单进行比对,得到第一比对结果;判断单元,用于基于所述第一比对结果判断所述用户标识是否落入所述白名单所包括的范围;若是,则将所述用户标识与所述黑名单进行比对,得到比对结果;若否,则所述比对结果为第一比对结果。
19.可选地,在本发明第二方面的第六种实现方式中,所述转换模块包括:第二确定单元,用于根据所述比对结果在所述黑名单对应的策略文件中确定对应的禁止切换标识;第三确定单元,用于获取针对于所述进程的审计信息,并根据所述审计信息确定所述进程所缺少的权限以及对应的目标标识,其中,所述审计信息由操作系统对所述进程进行权限检查后得到,所述目标标识为所述进程所缺少的权限对应的用户标识;转换单元,用于当所述目标标识与所述禁止切换标识不一致时,确定所述比对结果满足预设的限制策略,并将所述用户标识转换成对应的所述目标标识。
20.本发明第三方面提供了一种计算机设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述计算机设备执行上述的进程非法提权的识别方法的各个步骤。
21.本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的进程非法提权的识别方法的各个步骤。
22.本发明的技术方案中,该方法具体是通过获取当前执行的进程,并提取进程对应的用户标识;基于用户标识对进程进行权限检查,得到检查结果;若检查结果为提高权限,则将用户标识与预设的白名单和黑名单进行比对,得到比对结果;在比对结果满足预设的
限制策略时,根据比对结果对进程对应的用户标识进行转换;在比对结果不满足预设的限制策略时,确定进程为非法提权的进程,并关闭进程;以上,在系统的安全模块中配置基于白名单和黑名单的比对模块,通过获取针对于所述进程的审计信息,并基于所述根据黑名单确定对应的禁止切换标识,基于所述审计信息确定所述进程所缺少的权限以及对应的目标标识,基于将所述目标标识与所述禁止切换标识进行比较的限制策略,对所述进程对应的用户标识进行转换,以规避进程通过用户标识的非法转换进行非法提权的操作,从而解决了现有技术中存在的无法基于黑名单对进程的非法提权进行针对性识别的问题。
附图说明
23.图1为本发明实施例中进程非法提权的识别方法的第一个实施例示意图;
24.图2为本发明实施例中进程非法提权的识别方法的第二个实施例示意图;
25.图3为本发明实施例中进程非法提权的识别方法的第三个实施例示意图;
26.图4为本发明实施例中进程非法提权的识别装置的一个实施例示意图;
27.图5为本发明实施例中进程非法提权的识别装置的另一个实施例示意图;
28.图6为本发明实施例中计算机设备的一个实施例示意图。
具体实施方式
29.为了解决现有技术中存在的无法基于黑名单对进程的非法提权进行针对性识别的问题,本技术提供了一种进程非法提权的识别方法、装置、设备及存储介质。该方法通过获取当前执行的进程,并提取进程对应的用户标识;基于用户标识对进程进行权限检查,得到检查结果;若检查结果为提高权限,则将用户标识与预设的白名单和黑名单进行比对,得到比对结果;在比对结果满足预设的限制策略时,根据比对结果对进程对应的用户标识进行转换;在比对结果不满足预设的限制策略时,确定进程为非法提权的进程,并关闭进程;以上,在系统的安全模块中配置基于白名单和黑名单的比对模块,通过获取针对于所述进程的审计信息,并基于所述根据黑名单确定对应的禁止切换标识,基于所述审计信息确定所述进程所缺少的权限以及对应的目标标识,基于将所述目标标识与所述禁止切换标识进行比较的限制策略,对所述进程对应的用户标识进行转换,以规避进程通过用户标识的非法转换进行非法提权的操作,从而解决了现有技术中存在的无法基于黑名单对进程的非法提权进行针对性识别的问题。
30.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
31.为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中进程非法提权的识别方法的第一个实施例,该方法的实现步骤如下:
32.101、获取当前执行的进程,并提取所述进程对应的用户标识;
33.该步骤中,所述进程包括运行在linux系统中的进程、运行在android系统中的进程、运行在基于android系统的多容器系统中的进程、运行在基于linux系统的主机系统(服务器)中的进程、运行在基于android系统的主机系统(服务器)中的进程中的至少一种。
34.该步骤中,所述用户标识包括uid(user identity,用户标识号)和gid(group identify,组标识号)。
35.在实际应用中,root用户的uid的固定值为0、root组帐号的gid号为固定值0;1~499的uid、gid默认保留给程序用户使用,普通用户/组使用的uid、gid号在500~60000之间。
36.在实际应用中,所述用户标识包括内核为每个进程维护的三个uid值,这三个uid分别是ruid(real uid,实际用户id)、euid(effective uid,有效用户id)、suid(saved set-user-id,保存的设置用户id);
37.ruid:当前以哪个用户登录,运行程序产生进程的ruid就是这个用户的uid;
38.euid:指当前进程实际以哪个uid来运行。一般情况下euid等于ruid;但如果进程对应的可执行文件具有suid权限(也就是rws的s),那么进程的euid是可执行文件的所有者的uid;
39.suid:euid的一个副本,与suid权限有关。
40.102、基于所述用户标识对所述进程进行权限检查,得到检查结果;
41.对于该步骤,具体可以通过以下方式实现:
42.根据所述用户标识获取所述进程的权限信息,例如,从avc cache中获取av_decision信息,或者从policydb中计算得出:rc=avc_has_perm_noaudit(sid,isec-》sid,isec-》sclass,perms,0,&avd);
43.根据权限信息计算进程拥有的权限和进程需要的权限,得到缺失的权限,例如,通过对进程的权限进行审计,得到缺失的权限:若将所述进程拥有的权限记为“avd”,将所述进程需要的权限记为“perms”,则缺失的权限为audited=avc_audit_required(perms,&avd,from_access?file__audit_access:0,&denied);
44.当所述进程拥有的权限小于所述进程需要的权限时,确定所述检查结果为提高权限。
45.进一步地,所述当所述进程拥有的权限小于所述进程需要的权限时,确定所述检查结果为提高权限的过程,还包括:
46.根据所述进程拥有的权限和进程需要的权限从预设的权限值参考文件中(比如classmap.h)提取对应的权限值;
47.根据所述权限值确定进程拥有的权限是否小于所述进程需要的权限。
48.在实际应用中,所述av_decision结构用于表示访问向量决策,该结构定义了相应主体对指定客体的的访问权限,如允许的权限、允许但需要审计的权限、拒绝但须审计的权限等等,其定义在security/selinux/ss/security.h中,具体定义如下:
49.struct av_decision{
50.u32 allowed;
51.u32 auditallow;
52.u32 auditdeny;
53.u32 seqno;
54.u32 flags;}。
55.103、若所述检查结果为提高权限,则将所述用户标识与预设的白名单和黑名单进行比对,得到比对结果;
56.该步骤中,所述白名单具有对应的策略文件;
57.所述白名单具有对应的策略文件对应的内容格式可以设为:
[0058]“《uid》:《uid》”或者“《gid》:《gid》”;
[0059]
其中,对于《uid》:《uid》,冒号前面的uid代表是原程序进程的uid,冒号后面的uid代表该程序进程将要切换为新的uid。
[0060]
该步骤中,在所述进程运行在android系统中时,所述黑名单可以通过以下方式得到:
[0061]
控制系统中的组件管理服务模块扫描系统的原生系统应用,并获取原生系统应用对应的签名信息和用户标识,其中,所述组件管理服务模块包括pms(package manager service)服务;
[0062]
根据所述签名信息,在预设的权限信息表中查询出不需要高级权限的原生系统应用,并确定对应的普通权限用户标识,其中,所述高级权限至少包括进行setuid操作对应的权限和进行setgid操作对应的权限,所述普通权限用户标识为不需要高级权限的原生系统应用对应的用户标识;
[0063]
当所述组件管理服务模块继续扫描到第三方系统应用处于安装时,则获取对应的第三方用户标识,其中,所述第三方用户标识为正在进行安装的第三方系统应用对应的用户标识;
[0064]
基于所述普通权限用户标识和所述第三方用户标识生成所述黑名单。
[0065]
对于该步骤,具体可以通过以下方式实现:
[0066]
若所述检查结果为提高权限,则触发预设的钩子函数(hook函数);
[0067]
通过所述钩子函数调用检测函数,并通过检测函数将所述用户标识与预设的白名单和黑名单进行比对,得到比对结果。
[0068]
在实际应用中,所述钩子函数包括置于linux系统或者android系统的安全模块中的钩子函数,例如,lsm hook,其中,所述lsm具有safesetid安全特性。
[0069]
在实际应用中,所述白名单可以基于android系统中常用的,正常的应用操作生成,例如,init,qcom(高通)的daemon后台组件进程;
[0070]
在实际应用中,所述白名单的格式可以按照/sys/kernel/security/safesetid/uid_allowlist_policy中的要求(可根据safesetid策略文件进行调整);
[0071]
在实际应用中,白名单保存于云端,可动态更新,并最终写入到原生的/sys/kernel/security/safesetid/uid_allowlist_policy文件中。
[0072]
在实际应用中,所述白名单和所述黑名单可以参考以下用户标识范围生成:
[0073]
常见的daemon后台进程uid范围:1000-10000(如系统服务为system_uid=1000,wifi的native进程为wifi_uid=1010,多媒体服务的进程为cameraserver_uid=1047);
[0074]
普通的app uid范围:int first_application_uid=1000-int last_application_uid=19999;
[0075]
sdk隔离进程:first_sdk_sandbox_uid=20000-last_sdk_sandbox_uid=29999。
[0076]
在实际应用中,所述黑名单还可以参考以下策略得到:
[0077]
对于sdk隔离进程,这些进程都是为了安全起见,将app中执行的sdk单独运行在一个独立的进程中(也有单独的uid隔离沙箱),所以对于这些第三方sdk,逻辑相对来说也是比较稳定的,如确定没有setuid和setgid操作,则可以将此类uid范围(注意,黑名单中可以设置一个具体范围或单个值的)写入到黑名单中。
[0078]
对于普通app来说,同样,一般来说,并不需要setuid/setgid这样高权限的操作,也并没有此类权限,除非被漏洞利用了,所以可以将普通应用的uid单个或范围加入黑名单。
[0079]
对于第三方应用,当收到第三方应用安装后,获取第三方应用的uid值,并通过系统接口写入到黑名单中,以大范围地避免第三方恶意应用主动的漏洞利用或第三方正常应用的被动漏洞利用。
[0080]
104、在所述比对结果满足预设的限制策略时,根据所述比对结果对所述进程对应的用户标识进行转换;
[0081]
对于该步骤,具体可以通过以下方式实现:
[0082]
根据所述比对结果在所述黑名单对应的策略文件中确定对应的禁止切换标识;
[0083]
获取针对于所述进程的审计信息,并根据所述审计信息确定所述进程所缺少的权限以及对应的目标标识,其中,所述审计信息由操作系统对所述进程进行权限检查后得到,所述目标标识为所述进程所缺少的权限对应的用户标识;
[0084]
当所述目标标识与所述禁止切换标识不一致时,确定所述比对结果满足预设的限制策略,并将所述用户标识转换成对应的所述目标标识。
[0085]
该步骤中,所述黑名单具有对应的策略文件;
[0086]
所述黑名单具有对应的策略文件对应的内容格式可以设为:
[0087]“《uid》:《uid》”或者“《gid》:《gid》”;
[0088]
其中,对于《uid》:《uid》,冒号前面的uid代表是原程序进程的uid,冒号后面的uid代表该程序进程禁止切换为新的uid。
[0089]
所述黑名单具有对应的策略文件对应的内容格式还可以设为:
[0090]“《uid_first》:《uid_last》:《uid_new》”;
[0091]
其中,uid_first代表是起始的uid,uid_last代表结束的uid,uid_new代表为从uid_first到uid_last这些uid的范围都禁止切换为new_uid;
[0092]
在实际应用中,new_uid会设置为0(root用户)或1000(system_uid)这些比较高权限的uid,以防止利用漏洞的提权操作。
[0093]
在实际应用中,所述黑名单对应的路径和名称可以设为:
[0094]
sys/kernel/security/safesetid/uid_neverallowlist_policy;
[0095]
sys/kernel/security/safesetid/gid_neverallowlist_policy。
[0096]
105、在所述比对结果不满足预设的限制策略时,确定所述进程为非法提权的进程,并关闭所述进程。
[0097]
对于该步骤,具体可以通过以下方式实现:
[0098]
判断所述目标标识与所述禁止切换标识是否一致;
[0099]
若所述目标标识与所述禁止切换标识一致,则确定所述比对结果不满足预设的限制策略,并关闭所述进程。
[0100]
在实际应用中,所述关闭所述进程的过程可以通过lsm模块实现,例如,通过safesetid实现,其中,所述safesetid可以对系统调用的setid家族进行限制,以限制从给定uid/gid的uid/gid转换为仅由系统范围的允许列表批准的转换。这些限制还禁止给定的uid/gid获得与cap_set{u/g}id相关的辅助特权,例如允许用户设置用户名称空间uid/gid映射。
[0101]
通过对上述方法的实施,通过获取当前执行的进程,并提取进程对应的用户标识;基于用户标识对进程进行权限检查,得到检查结果;若检查结果为提高权限,则将用户标识与预设的白名单和黑名单进行比对,得到比对结果;在比对结果满足预设的限制策略时,根据比对结果对进程对应的用户标识进行转换;在比对结果不满足预设的限制策略时,确定进程为非法提权的进程,并关闭进程;以上,在系统的安全模块中配置基于白名单和黑名单的比对模块,通过获取针对于所述进程的审计信息,并基于所述根据黑名单确定对应的禁止切换标识,基于所述审计信息确定所述进程所缺少的权限以及对应的目标标识,基于将所述目标标识与所述禁止切换标识进行比较的限制策略,对所述进程对应的用户标识进行转换,以规避进程通过用户标识的非法转换进行非法提权的操作,从而解决了现有技术中存在的无法基于黑名单对进程的非法提权进行针对性识别的问题。
[0102]
请参阅图2,本发明实施例中进程非法提权的识别方法的第二个实施例,该方法的实现步骤如下:
[0103]
201、获取当前执行的进程,并提取所述进程对应的用户标识;
[0104]
对于该步骤,具体可以通过以下方式实现:
[0105]
基于根用户(root用户)权限调用setuid函数;
[0106]
通过执行setuid函数来设置执行当前进程的用户标识,得到所述进程对应的用户标识。
[0107]
进一步地,所述setuid函数对应的函数原型为int setuid(uid_t uid);
[0108]
以在linux中的运行为例,所述setuid()函数的执行步骤包括:
[0109]
(1)如果由root权限进程(euid为0的进程)调用,则将进程的ruid,euid和suid都设置为uid,返回0;
[0110]
(2)如果由普通权限进程调用,且uid等于ruid或uid等于suid,则将进程的euid设置为uid,返回0;
[0111]
(3)如果由普通权限进程调用,且uid不等于ruid或suid,则设置errno为eperm,并返回-1(表示执行失败)。
[0112]
202、基于所述用户标识对所述进程进行权限检查,得到检查结果;
[0113]
对于该步骤,具体可以通过以下方式实现:
[0114]
当所述进程运行在多容器系统中时,获取所述进程所属的容器空间对应的容器空间标识,其中,所述多容器系统包含基于linux namesapce/cgroup技术的虚拟化系统(如lxc即linux container)和基于android原生的多用户系统等(访客模式,手机分身等);
[0115]
根据所述容器空间标识获取对应的容器空间中的权限策略;
[0116]
根据所述权限策略,基于所述用户标识确定所述进程对应的权限信息;
[0117]
基于所述权限信息计算出所述进程拥有的权限和所述进程需要的权限,并基于所述进程拥有的权限和所述进程需要的权限计算出进程所缺少的权限;
[0118]
基于所述进程所缺少的权限确定所述检查结果,例如,若所述进程所缺少的权限存在,则所述检查结果为提高权限,若所述进程所缺少的权限不存在,则所述检查结果为无需提高权限。
[0119]
进一步地,所述基于所述权限信息计算出所述进程拥有的权限和所述进程需要的权限,并基于所述进程拥有的权限和所述进程需要的权限计算出进程所缺少的权限的过程,包括:
[0120]
通过context_struct_compute_av从policydb读取权限值,例如0x00120010;
[0121]
通过权限策略对应的计算方式计算缺少的权限值,例如,缺少的权限值可以通过以下计算方式计算得到:denied=requested&~avd-》allowed,如0x00400004&~0x00480010=0x00000004;
[0122]
根据所述权限策略,基于所述缺少的权限值确定进程所缺少的权限,例如,在预设的权限对应表中确定缺少的权限值“0x00000004”对应于缺少的权限“write”。
[0123]
203、若所述检查结果为提高权限,则将所述用户标识与预设的白名单和黑名单进行比对,得到比对结果;
[0124]
该步骤中,当所述进程运行在多容器系统中时,所述黑名单可以通过以下方式得到:
[0125]
获取所述进程所属的容器空间对应的容器空间标识,例如,对于虚拟化的容器系统来说,容器空间标识可以是int值,如0代表是宿主空间,1代表是容器1;对于多用户的容器系统来说,如0代表是宿主空间,10代表是访客模式;
[0126]
根据所述容器空间标识确定目标容器空间的空间类型,其中,所述目标容器空间为所述进程所属的容器空间;
[0127]
基于所述空间类型确定所述目标容器空间相对于宿主空间的安全性要求,例如,根据所述空间类型在预设的安全性要求表中确定对应的安全性要求;
[0128]
基于所述安全性要求对所述白名单中的用户标识和所述黑名单中的用户标识进行筛选和调整。
[0129]
进一步地,所述基于所述安全性要求对所述白名单中的用户标识和所述黑名单中的用户标识进行筛选和调整的过程,包括:
[0130]
根据所述安全性要求在预设的安全策略表中确定白名单调整标识范围和黑名单调整标识范围;
[0131]
基于所述白名单调整标识范围对所述白名单中的用户标识进行筛选和调整,例如,从所述白名单中的用户标识筛选出满足所述白名单调整标识范围的用户标识,并从所述白名单中剔除;
[0132]
基于所述黑名单调整标识范围对所述黑名单中的用户标识进行筛选和调整,例如,从所述黑名单中的用户标识筛选出满足所述黑名单调整标识范围的用户标识,并添加至所述黑名单中。
[0133]
204、在所述比对结果满足预设的限制策略时,根据所述比对结果对所述进程对应的用户标识进行转换;
[0134]
对于该步骤,具体可以通过以下方式实现:
[0135]
根据所述比对结果在所述黑名单对应的策略文件中确定对应的禁止切换标识;获取针对于所述进程的审计信息,并根据所述审计信息确定所述进程所缺少的权限以及对应的目标标识,其中,所述审计信息由操作系统对所述进程进行权限检查后得到,所述目标标识为所述进程所缺少的权限对应的用户标识;当所述目标标识与所述禁止切换标识不一致时,确定所述比对结果满足预设的限制策略,并将所述用户标识转换成对应的所述目标标识。
[0136]
在实际应用中,该步骤可以通过在safesetid中增加白名单比对模块和黑名单比对模块实现,例如,通过在safesetid中添加uid_allowlist_policy(白名单比对模块)和uid_neverallowlist_policy(黑名单比对模块),得到safesetid lsm;
[0137]
通过safesetid lsm限制用户通过setuid()切换到潜在uid;其中,safesetid lsm的主要用例是允许非根程序过渡到其他不受信任的uid,而不需要完全的cap_setuid功能;非根程序仍然需要cap_setuid来执行任何类型的转换,但是lsm施加的附加限制意味着它是cap_setuid的“更安全”版本,因为非根程序不能利用cap_setuid执行任何未经批准的操作(例如,setuid到uid 0或创建/输入新的用户名称空间);更高层次的目标是允许基于uid的系统服务沙箱,而不必到处给出cap_setuid,以便非根程序可以删除到特权更小的uid。当系统上的一个非根守护进程被允许生成其他进程作为不同的uid时,这一点尤其重要,但是不希望给这个守护进程一个基本等同于根的cap_setuid。
[0138]
205、在所述比对结果不满足预设的限制策略时,确定所述进程为非法提权的进程,并关闭所述进程。
[0139]
对于该步骤,具体可以通过以下方式实现:
[0140]
判断所述目标标识与所述禁止切换标识是否一致;
[0141]
若所述目标标识与所述禁止切换标识一致,则确定所述比对结果不满足预设的限制策略,并关闭所述进程。
[0142]
在实际应用中,在关闭所述进程之后,该步骤还包括:
[0143]
获取所述进程对应的非法进程信息,并从所述非法进程信息中提取异常行为参数,例如,所述异常行为参数包括所述进程所述的程序名称、所述进程对应的非法提权记录;
[0144]
基于所述异常行为参数对预设的异常行为参数列表进行更新,并按照预设的输出方式输出所述异常行为参数列表,例如,将所述异常行为参数列表输出至终端,以提醒用户对所述进程及其所述的程序进行黑名单设置。
[0145]
通过对上述方法的实施,通过获取当前执行的进程,并提取进程对应的用户标识;基于用户标识对进程进行权限检查,得到检查结果;若检查结果为提高权限,则将用户标识与预设的白名单和黑名单进行比对,得到比对结果;在比对结果满足预设的限制策略时,根据比对结果对进程对应的用户标识进行转换;在比对结果不满足预设的限制策略时,确定进程为非法提权的进程,并关闭进程;以上,在系统的安全模块中配置基于白名单和黑名单的比对模块,具体地,针对多容器系统的安全模块进行针对性的黑名单配置;通过获取针对于所述进程的审计信息,并基于所述根据黑名单确定对应的禁止切换标识,基于所述审计信息确定所述进程所缺少的权限以及对应的目标标识,基于将所述目标标识与所述禁止切
换标识进行比较的限制策略,对所述进程对应的用户标识进行转换,以规避进程通过用户标识的非法转换进行非法提权的操作,从而解决了现有技术中存在的无法基于黑名单对进程的非法提权进行针对性识别的问题。
[0146]
请参阅图3,本发明实施例中进程非法提权的识别方法的第三个实施例,该方法的实现步骤如下:
[0147]
301、获取当前执行的进程,并提取所述进程对应的用户标识;
[0148]
该步骤中,所述进程包括运行在基于linux系统的主机系统(服务器)中的进程、运行在基于android系统的主机系统(服务器)中的进程中的至少一种。
[0149]
在实际应用中,主机系统对应的主机环境一般是一个物理机多个虚拟化容器系统,或一个物理机多个kvm虚拟机,这两种都是共享kernel内核空间的,所以不区分多个运行环境。
[0150]
302、基于所述用户标识对所述进程进行权限检查,得到检查结果;
[0151]
对于该步骤,具体可以通过以下方式实现:
[0152]
获取所述进程所属的容器空间对应的容器空间标识,并根据所述容器空间标识获取对应的容器空间中的权限策略;根据所述权限策略,基于所述用户标识确定所述进程对应的权限信息,并基于所述权限信息计算出所述进程拥有的权限和所述进程需要的权限;当所述进程拥有的权限小于所述进程需要的权限时,所述检查结果为提高权限。
[0153]
在实际应用中,该步骤还可以通过以下方式实现:
[0154]
根据所述用户标识,检查所述进程确认资源的所有权和组所有权,其中,所述资源包括进程需要访问的文件;
[0155]
检查进程目前具有哪个访问类别,例如,所述访问类别包括读文件和写文件;
[0156]
针对相应的访问类别,相应的权限位是否设置,例如,若权限位w设置为1,则允许写文件;
[0157]
若是,则所述检查结果为无需提高权限;
[0158]
若否,则所述检查结果为提高权限。
[0159]
303、若所述检查结果为提高权限,则将所述用户标识与预设的白名单和黑名单进行比对,得到比对结果;
[0160]
该步骤中,在所述进程运行在基于linux系统的主机系统(服务器)中或者运行在基于android系统的主机系统(服务器)中时,所述白名单可以通过以下方式得到:
[0161]
获取业务组件后台进程、服务组件后台进程和监控软件的后台进程对应的用户标识,例如,通过业务组件后台进程、服务组件后台进程和监控软件的后台进程对应的进程名称获取所属的uid;
[0162]
基于所述业务组件后台进程、所述服务组件后台进程和所述监控软件的后台进程对应的用户标识生成所述白名单。
[0163]
该步骤中,在所述进程运行在基于linux系统的主机系统(服务器)中或者运行在基于android系统的主机系统(服务器)中时,所述黑名单可以通过以下方式得到:
[0164]
获取后台服务进程对应的用户标识,并基于后台服务进程对应的用户标识生成黑名单。
[0165]
进一步地,通过以下方式对所述黑名单进行调整:
[0166]
在检测到后台运行的进程时,获取检测到的后台进程对应的进程名称;
[0167]
基于所述进程名称获取对应的后台用户标识,其中,所述后台用户标识为检测到的后台进程对应的用户标识;
[0168]
将所述后台用户标识添加至所述黑名单中。
[0169]
304、在所述比对结果满足预设的限制策略时,根据所述比对结果对所述进程对应的用户标识进行转换;
[0170]
对于该步骤,具体可以通过以下方式实现:
[0171]
根据所述比对结果在所述黑名单对应的策略文件中确定对应的禁止切换标识;获取针对于所述进程的审计信息,并根据所述审计信息确定所述进程所缺少的权限以及对应的目标标识,其中,所述审计信息由操作系统对所述进程进行权限检查后得到,所述目标标识为所述进程所缺少的权限对应的用户标识;当所述目标标识与所述禁止切换标识不一致时,确定所述比对结果满足预设的限制策略,并将所述用户标识转换成对应的所述目标标识。
[0172]
在实际应用中,该步骤可以通过在safesetid中增加白名单比对模块和黑名单比对模块实现;其中,在主机系统中存在共享kernel内核空间的情况,所以不区分多个运行环境,对所述safesetid进行多个运行环境的适配性调整。
[0173]
305、在所述比对结果不满足预设的限制策略时,确定所述进程为非法提权的进程,并关闭所述进程。
[0174]
对于该步骤,具体可以通过以下方式实现:
[0175]
判断所述目标标识与所述禁止切换标识是否一致;
[0176]
若所述目标标识与所述禁止切换标识一致,则确定所述比对结果不满足预设的限制策略,并关闭所述进程。
[0177]
在实际应用中,可以通过security_task_fix_setuid钩子关闭setid转换,并关闭调用setid转换的进程。
[0178]
通过对上述方法的实施,通过获取当前执行的进程,并提取进程对应的用户标识;基于用户标识对进程进行权限检查,得到检查结果;若检查结果为提高权限,则将用户标识与预设的白名单和黑名单进行比对,得到比对结果;在比对结果满足预设的限制策略时,根据比对结果对进程对应的用户标识进行转换;在比对结果不满足预设的限制策略时,确定进程为非法提权的进程,并关闭进程;以上,在系统的安全模块中配置基于白名单和黑名单的比对模块,具体地,针对主机系统的安全模块进行针对性的黑名单配置;通过获取针对于所述进程的审计信息,并基于所述根据黑名单确定对应的禁止切换标识,基于所述审计信息确定所述进程所缺少的权限以及对应的目标标识,基于将所述目标标识与所述禁止切换标识进行比较的限制策略,对所述进程对应的用户标识进行转换,以规避进程通过用户标识的非法转换进行非法提权的操作,从而解决了现有技术中存在的无法基于黑名单对进程的非法提权进行针对性识别的问题。
[0179]
上面对本发明实施例中的进程非法提权的识别方法进行了描述,下面对本发明实施例中的进程非法提权的识别装置进行描述,请参照图4,本发明实施例中的进程非法提权的识别装置的一个实施例,该装置包括:
[0180]
提取模块401,用于获取当前执行的进程,并提取所述进程对应的用户标识;
[0181]
检查模块402,用于基于所述用户标识对所述进程进行权限检查,得到检查结果;
[0182]
比对模块403,用于若所述检查结果为提高权限,则将所述用户标识与预设的白名单和黑名单进行比对,得到比对结果;
[0183]
转换模块404,用于在所述比对结果满足预设的限制策略时,根据所述比对结果对所述进程对应的用户标识进行转换;
[0184]
拦截模块405,用于在所述比对结果不满足预设的限制策略时,确定所述进程为非法提权的进程,并关闭所述进程。
[0185]
通过对上述装置的实施,通过获取当前执行的进程,并提取进程对应的用户标识;基于用户标识对进程进行权限检查,得到检查结果;若检查结果为提高权限,则将用户标识与预设的白名单和黑名单进行比对,得到比对结果;在比对结果满足预设的限制策略时,根据比对结果对进程对应的用户标识进行转换;在比对结果不满足预设的限制策略时,确定进程为非法提权的进程,并关闭进程;以上,在系统的安全模块中配置基于白名单和黑名单的比对模块,通过获取针对于所述进程的审计信息,并基于所述根据黑名单确定对应的禁止切换标识,基于所述审计信息确定所述进程所缺少的权限以及对应的目标标识,基于将所述目标标识与所述禁止切换标识进行比较的限制策略,对所述进程对应的用户标识进行转换,以规避进程通过用户标识的非法转换进行非法提权的操作,从而解决了现有技术中存在的无法基于黑名单对进程的非法提权进行针对性识别的问题。
[0186]
请参阅图5,本发明实施例中的进程非法提权的识别装置的另一个实施例包括:
[0187]
提取模块401,用于获取当前执行的进程,并提取所述进程对应的用户标识;
[0188]
检查模块402,用于基于所述用户标识对所述进程进行权限检查,得到检查结果;
[0189]
生成模块406,用于控制系统中的组件管理服务模块扫描系统的原生系统应用,并获取原生系统应用对应的签名信息和用户标识;根据所述签名信息,在预设的权限信息表中查询出不需要高级权限的原生系统应用,并确定对应的普通权限用户标识,其中,所述高级权限至少包括进行setuid操作对应的权限和进行setgid操作对应的权限,所述普通权限用户标识为不需要高级权限的原生系统应用对应的用户标识;当所述组件管理服务模块继续扫描到第三方系统应用处于安装时,则获取对应的第三方用户标识,其中,所述第三方用户标识为正在进行安装的第三方系统应用对应的用户标识;基于所述普通权限用户标识和所述第三方用户标识生成所述黑名单;
[0190]
调整模块407,用于获取所述进程所属的容器空间对应的容器空间标识,并根据所述容器空间标识确定目标容器空间的空间类型,其中,所述目标容器空间为所述进程所属的容器空间;基于所述空间类型确定所述目标容器空间相对于宿主空间的安全性要求;基于所述安全性要求对所述白名单中的用户标识和所述黑名单中的用户标识进行筛选和调整;
[0191]
添加模块408,用于在检测到后台运行的进程时,获取检测到的后台进程对应的进程名称;基于所述进程名称获取对应的后台用户标识,其中,所述后台用户标识为检测到的后台进程对应的用户标识;将所述后台用户标识添加至预设的黑名单中;
[0192]
比对模块403,用于若所述检查结果为提高权限,则将所述用户标识与预设的白名单和黑名单进行比对,得到比对结果;
[0193]
转换模块404,用于在所述比对结果满足预设的限制策略时,根据所述比对结果对
所述进程对应的用户标识进行转换;
[0194]
拦截模块405,用于在所述比对结果不满足预设的限制策略时,确定所述进程为非法提权的进程,并关闭所述进程。
[0195]
在本实施例中,所述检查模块402包括:
[0196]
获取单元4021,用于获取所述进程所属的容器空间对应的容器空间标识,并根据所述容器空间标识获取对应的容器空间中的权限策略;
[0197]
计算单元4022,用于根据所述权限策略,基于所述用户标识确定所述进程对应的权限信息,并基于所述权限信息计算出所述进程拥有的权限和所述进程需要的权限;
[0198]
第一确定单元4023,用于当所述进程拥有的权限小于所述进程需要的权限时,确定所述检查结果为提高权限。
[0199]
在本实施例中,所述比对模块403包括:
[0200]
比对单元4031,用于将所述用户标识与所述白名单进行比对,得到第一比对结果;
[0201]
判断单元4032,用于基于所述第一比对结果判断所述用户标识是否落入所述白名单所包括的范围;若是,则将所述用户标识与所述黑名单进行比对,得到比对结果;若否,则所述比对结果为第一比对结果。
[0202]
在本实施例中,所述转换模块404包括:
[0203]
第二确定单元4041,用于根据所述比对结果在所述黑名单对应的策略文件中确定对应的禁止切换标识;
[0204]
第三确定单元4042,用于获取针对于所述进程的审计信息,并根据所述审计信息确定所述进程所缺少的权限以及对应的目标标识,其中,所述审计信息由操作系统对所述进程进行权限检查后得到,所述目标标识为所述进程所缺少的权限对应的用户标识;
[0205]
转换单元4043,用于当所述目标标识与所述禁止切换标识不一致时,确定所述比对结果满足预设的限制策略,并将所述用户标识转换成对应的所述目标标识。
[0206]
通过对上述装置的实施,通过获取当前执行的进程,并提取进程对应的用户标识;基于用户标识对进程进行权限检查,得到检查结果;若检查结果为提高权限,则将用户标识与预设的白名单和黑名单进行比对,得到比对结果;在比对结果满足预设的限制策略时,根据比对结果对进程对应的用户标识进行转换;在比对结果不满足预设的限制策略时,确定进程为非法提权的进程,并关闭进程;以上,在系统的安全模块中配置基于白名单和黑名单的比对模块,通过获取针对于所述进程的审计信息,并基于所述根据黑名单确定对应的禁止切换标识,基于所述审计信息确定所述进程所缺少的权限以及对应的目标标识,基于将所述目标标识与所述禁止切换标识进行比较的限制策略,对所述进程对应的用户标识进行转换,以规避进程通过用户标识的非法转换进行非法提权的操作,从而解决了现有技术中存在的无法基于黑名单对进程的非法提权进行针对性识别的问题。
[0207]
请参阅图6,下面从硬件处理的角度对本发明实施例中的计算机设备的一个实施例进行详细描述。
[0208]
图6是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存
储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在计算机设备600上执行存储介质630中的一系列指令操作。
[0209]
计算机设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如windows serve,mac os x,unix,linux,freebsd等等。本领域技术人员可以理解,图6示出的计算机设备结构并不构成对本技术提供的计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0210]
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行上述进程非法提权的识别方法的步骤。
[0211]
在实际应用中,上述提供的方法可以基于人工智能技术来实现,其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。其具体可以是基于服务器来执行,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
[0212]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0213]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0214]
以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献