本发明涉及linux操作系统进程通信与网络安全领域,特别是涉及到一种linux操作系统dbus服务安全管控方法、装置及产品。
背景技术:
1、随着信息技术的发展与信创操作系统的推广与普及,linux操作系统的网络安全和主机安全的重要性越来得到大家的重视。linux操作系统的dbus总线技术,由于具备框架简单易用、接口开放、配置灵活、权限隔离方便等诸多优点,成为linux操作系统中最广泛使用的标准进程通信机制,并且孵化了很多dbus监控、调试工具,例如gdbus、dbus-monitor等。正因为这些优点,很多后台服务均采用dbus总线提供服务接口,这些服务通常都是root特权进程运行。但是也正由于dbus总线的开放、简单、工具丰富的特点,产生了很多针对dbus系统服务的安全攻击手段,给操作系统带来较大的安全隐患。根据相关数据统计,信创操作系统暴露的本地提权漏洞,约有50%-60%的是通过root特权的dbus服务接口完成攻击的。
2、在linux操作系统,dbus服务的安全解决方案,主要采用以下几种方案:
3、1、对dbus服务提供的方法做调用者身份验证:最常用的鉴权方案为在服务的方法接口中增加polkit鉴权,要求验证用户的sudo密码后方可调用特权方法接口。
4、2、使用定制化的加密方案保证通信安全:前后台程序约定一个双方互知加密方案,并对通信密钥进行保护,只有获取了密钥和加密方案的调用者才能正常调用dbus服务方法。
5、对于polkit鉴权方案,由于polkit鉴权导致界面弹框,在用户输入sudo密码,完成管理员身份验证之后才能完成方法调用。这种方案会影响应用程序的易用性。并且通常一个dbus服务会提供很多个方法接口,只能在真正使用了特权的方法接口上增加polkit鉴权,对于其他方法接口,并没有真正使用特权,因此增加polkit鉴权是不合适的,会造成应用程序反复弹框鉴权,或者使用非特权功能时弹框鉴权。这种类型的方法接口不能使用polkit鉴权来保证其安全性。
6、对于定制化的加密方案,会牺牲dbus服务的通用性,导致只有知悉密钥和加密方案的前端程序才能使用该dbus服务方法。无法实现一个获得了权限的前端程序能够简便调用该dbus服务方法,前端程序需要一个复杂的加密方案集成调试过程才能实现接口调用。
7、另外,现有技术中还有通过授信程序白名单机制进行dbus服务授权管控的技术方案,但是由于存在很多白名单绕过的攻击方法,可以仿冒授信程序白名单中的程序,从而会使得管控失效。
技术实现思路
1、本发明的目的在于提供一种linux操作系统dbus服务安全管控方法、装置及产品,通过简便配置,有效的减少dbus服务的安全攻击面,实现对root特权dbus服务的安全管控。
2、为了实现上述目的,本发明的技术方案是这样的:
3、一种linux操作系统dbus服务安全管控方法,包括:
4、s1、dbus服务在启动时加载授信程序管控插件、环境变量管控插件;
5、s2、在dbus服务的方法接口处通过授信程序管控插件对调用dbus服务的程序进行鉴权;
6、s3、鉴权通过后,在dbus服务的方法接口处通过环境变量管控插件对程序的环境变量进行检查。
7、进一步的,步骤s1中dbus服务在启动时还加载服务分级管控模块,对dbus服务进行分级,确定所述鉴权和所述检查的管控策略。
8、进一步的,步骤s2的具体鉴权方法包括:
9、s201、对dbus服务配置授信程序管控向量表;
10、s202、dbus服务启动时加载授信程序管控插件初始化函数;
11、s203、所述授信程序管控插件初始化函数找到授信程序管控向量表,完成授信程序管控向量表初始化;
12、s204、dbus服务发生方法调用时,在方法接口处调用授信程序管控插件鉴权接口,根据授信程序管控向量表进行授信程序鉴权,如果调用dbus服务的程序不在授信程序管控向量表的白名单中则禁止方法调用。
13、进一步的,步骤s3中环境变量检查的方法包括:
14、s301、对dbus服务配置环境变量管控向量表;
15、s302、dbus服务启动时加载环境变量管控插件初始化函数;
16、s303、所述环境变量管控插件初始化函数找到环境变量管控向量表,完成环境变量管控向量表初始化;
17、s304、dbus服务发生方法调用时,所述鉴权通过后,在方法接口处调用环境变量管控插件检查接口,根据环境变量管控向量表对调用dbus服务的程序的环境变量进行检查,如果所述环境变量在环境变量管控向量表的黑名单中则检查不通过,禁止方法调用;反之检查通过,允许方法调用。
18、本发明另一方面还提供了一种linux操作系统dbus服务安全管控装置,包括:
19、加载模块:用于dbus服务在启动时加载授信程序管控插件、环境变量管控插件;
20、鉴权模块:用于在dbus服务的方法接口处通过授信程序管控插件对调用dbus服务的程序进行鉴权;
21、环境检测模块:用于鉴权通过后,在dbus服务的方法接口处通过环境变量管控插件对程序的环境变量进行检查。
22、进一步的,所述加载模块中,dbus服务在启动时还加载服务分级管控模块,用于对dbus服务进行分级,确定所述鉴权和所述检查的管控策略。
23、进一步的,所述鉴权模块包括:
24、授信管控向量表单元:对dbus服务配置授信程序管控向量表;
25、授信管控加载单元:用于dbus服务启动时加载授信程序管控插件初始化函数;
26、授信管控初始化单元:所述授信程序管控插件初始化函数找到授信程序管控向量表,完成授信程序管控向量表初始化;
27、鉴权单元:dbus服务发生方法调用时,在方法接口处调用授信程序管控插件鉴权接口,根据授信程序管控向量表进行授信程序鉴权,如果调用dbus服务的程序不在授信程序管控向量表的白名单中则禁止方法调用。
28、进一步的,所述环境检测模块包括:
29、环境变量向量表单元:对dbus服务配置环境变量管控向量表;
30、环境变量管控加载单元:服务启动时加载环境变量管控插件初始化函数;
31、环境变量管控初始化单元:所述环境变量管控插件初始化函数找到环境变量管控向量表,完成环境变量管控向量表初始化;
32、环境检测单元:dbus服务发生方法调用时,所述鉴权通过后,在方法接口处调用环境变量管控插件检查接口,根据环境变量管控向量表对调用dbus服务的程序的环境变量进行检查,如果所述环境变量在环境变量管控向量表的黑名单中则检查不通过,禁止方法调用;反之检查通过,允许方法调用。
33、本发明还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述的linux操作系统dbus服务安全管控方法。
34、本发明还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述的linux操作系统dbus服务安全管控方法。
35、与现有技术相比,本发明具有如下的有益效果:
36、1、增加前端应用程序的易用性:
37、本发明通过授信程序白名单进行安全管控,避免了频繁弹框授权给用户带来的困扰,更好的平衡了安全性和易用性。
38、2、增加dbus服务的通用性:
39、本发明通过添加一个应用程序到白名单列表就能实现应用程序对dbus服务方法的无感调用,有很好的通用性。
40、3、减小dbus服务的安全攻击面:
41、本发明只将dbus服务方法开放给少数授信的应用程序,安全攻击面极大地减小,仅能通过授信应用程序的前端代码漏洞发起间接安全攻击,才能攻击到后台dbus服务。
42、4、抵御程序仿冒攻击:
43、本发明对调用dbus服务方法的前端应用程序设置的环境变量进行了严格的黑名单管控,拒绝设置了危险环境变量的程序调用dbus服务方法,从而杜绝了这种白名单程序仿冒攻击。
1.一种linux操作系统dbus服务安全管控方法,其特征在于,包括:
2.根据权利要求1所述的linux操作系统dbus服务安全管控方法,其特征在于,步骤s1中dbus服务在启动时还加载服务分级管控模块,对dbus服务进行分级,确定所述鉴权和所述检查的管控策略。
3.根据权利要求1所述的linux操作系统dbus服务安全管控方法,其特征在于,步骤s2的具体鉴权方法包括:
4.根据权利要求1所述的linux操作系统dbus服务安全管控方法,其特征在于,步骤s3中环境变量检查的方法包括:
5.一种linux操作系统dbus服务安全管控装置,且特征在于,包括:
6.根据权利要求5所述的linux操作系统dbus服务安全管控装置,且特征在于,所述加载模块中,dbus服务在启动时还加载服务分级管控模块,用于对dbus服务进行分级,确定所述鉴权和所述检查的管控策略。
7.根据权利要求5所述的linux操作系统dbus服务安全管控装置,且特征在于,所述鉴权模块包括:
8.根据权利要求5所述的linux操作系统dbus服务安全管控装置,且特征在于,所述环境检测模块包括:
9.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序用于执行如权利要求1-4任一项所述的linux操作系统dbus服务安全管控方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4任一项所述的linux操作系统dbus服务安全管控方法。
