本发明专利技术提供了一种程序root权限管控方法和系统。内核管理模块创建监控程序;用户态应用模块根据需要管控的程序名单计算程序的MD5摘要值,并将程序名及其对应的MD5摘要值,下发给内核管理模块保存;当内核管理模块监测到有程序启动时,获取该程序的程序名并计算该程序的MD5摘要值,将计算出的该程序名的MD5摘要值与内核管理模块中保存的程序名一致的MD5摘要值进行比较,判断是否相等,是则进行权限控制,否则不做处理,按该程序的原创建过程继续执行。采用内核模块的方式,既能满足用户需求,又能提高安全性,且兼容性好。
【技术实现步骤摘要】
本专利技术涉及一种程序root权限管控方法和系统,特别是涉及一种适用于信息安全的主机安全技术的程序root权限管控方法和系统。
技术介绍
Linux系统root权限管理,每个进程都具有实际用户ID (real user id,RUID),有效用户 ID (effective user id,EUID)、保存设置用户 ID (saved set-user-1d,SUID)。RUID为该进程的创建者的用户ID,也可以说是进程的执行者,EUID标识用户进程执行操作的权限。对于没有设置SUID程序而言,其对应的SUID为其RUID ;而对于设置了 SUID的程序而言,其对应的SUID为该程序拥有者用户ID。在Linux系统创建进程,都是由调用fork()函数开始,fork()用来创建新的进程,而函数族exec O用来启动另外的进程以取代当前运行的进程。最终由内核来创建出一个完整的进程。
技术实现思路
本专利技术要解决的技术问题是提供一种既能满足用户需求,又能提高安全性,且兼容性好的程序root权限管控方法和系统。本专利技术采用的技术方案如下:一种程序root权限管控方法,其特征在于,具体方法为:内核管理模块创建监控程序;用户态应用模块根据需要管控的程序名单计算程序的MD5摘要值,并将程序名及其对应的MD5摘要值,下发给内核管理模块保存;当内核管理模块监测到有程序启动时,获取该程序的程序名并计算该程序的MD5摘要值,将计算出的该程序名的MD5摘要值与内核管理模块中保存的程序名一致的MD5摘要值进行比较,判断是否相等,是则进行权限控制,否则不做处理,按该程序的原创建过程继续执行。为了唯一识别一个程序,要计算可执行程序文件的MD5摘要值。因此,用户态应用模块首先根据需要管控的程序名单计算程序的MD5摘要值,然后把程序名和MD5值对应,下发给内核管理模块。当用户启动一个程序时,能够被内核管理模块监测到。然后内核管理模块获取到程序名并计算其MD5值,和内核模块中保存的程序名-MD5值列表进行比较。若相等,则此程序是监控对象,进行提升或其他权限控制;若不相等,则不作处理,按原创建过程继续执行。用户态应用模块通过proc文件与内核管理模块进行交互。用户态应用模块通过proc文件将程序名和MD5值对应,下发给内核管理模块。进行权限控制的方法步骤为:步骤一、在内核管理模块中,修改指令,使程序执行到compat_do_execve O函数时,跳转到权限管理前处理模块,保存c0mpat_d0_exeCVe O函数的返回地址;同时,指令修改compat_do_execve O函数的返回地址,使之执行完成后,跳转回权限管理后处理模块;步骤二、权限管理前处理模块决定是否在权限管理后处理模块中提升或禁止进程root权限,并将决定值发送给权限管理后处理模块; 步骤三、权限管理后处理模块根据收到的权限管理前处理模块发送的决定值,提升或禁止进程root权限; 步骤四、利用步骤一中保存的c0mpat_d0_execve O函数的返回地址返回到程序正常流程。在步骤一中,在执行compat_do_execve O函数前,完成步骤一的所有设置,跳转到权限管理前处理模块,决定是否进行权限控制,当compat_do_execve O函数执行完后,根据步骤一的设置会自动跳转到权限管理后处理模块,对程序root权限进行设置,设置完后,根据步骤一中保存的c0mpat_d0_exeCVe O函数的返回地址,返回到程序正常流程。一种程序root权限管控系统,其特征在于,包括内核管理模块和用户态应用模块; 所述用户态应用模块包括, MD5摘要值计算模块,计算需要进行管控的应用程序的MD5摘要值; 程序名-MD5摘要值发送模块,将应用程序名及其对应的MD5摘要值进行下发; 所述内核管理模块包括, 程序名-MD5摘要值接收模块,接收用户态应用模块下发的应用程序名及其对应的MD5摘要值; 存储模块,存储接收的用户态应用模块下发的应用程序名及其对应的MD5摘要值; 监测模块,监测是否有新的程序启动; MD5摘要值计算模块,计算新启动的程序的MD5摘要值; 判断模块,将计算出的程序的MD5摘要值与内核管理模块中保存的该程序程序名的MD5摘要值进行比较,判断是否相等; 权限管理模块,对需要进行权限控制的程序进行权限控制。所述用户态应用模块通过proc文件与内核管理模块进行交互。所述权限控制模块包括, 返回地址保存模块,用于保存compat_do_execve O函数的初始返回地址; 返回地址修改模块,用于修改compat_do_execve O函数的初始返回地址; root权限设置模块,用于对当前程序的root权限进行设置。与现有技术相比,本专利技术的有益效果是:在进程创建过程中,能够在内核态提升或禁止正在创建的进程具有的root权限。在内核态通过修改函数指令,控制函数跳转,使得此内核模块具有监控进程创建功能;管理员不用赋予用户root权限的情况下,某些程序可以以root权限执行,既满足了用户需求又提高了安全性;能够适应兼容任何Linux的操作系统,且适应X86或MIPS等多种平台。【附图说明】图1为本专利技术其中一实施例的原理示意图。【具体实施方式】为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。S卩,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。如图1所示,包括用户态和核心态,用户态指用户态应用模块或用户态应用模块,核心态指内核管理模块。root权限管控系统,包括内核管理模块和用户态应用模块;所述用户态应用模块包括,MD5摘要值计算模块,计算需要进行管控的应用程序的MD5摘要值;程序名-MD5摘要值发送模块,将应用程序名及其对应的MD5摘要值进行下发;所述内核管理模块包括,程序名-MD5摘要值接收模块,接收用户态应用模块下发的应用程序名及其对应的MD5摘要值;存储模块,存储接收的用户态应用模块下发的应用程序名及其对应的MD5摘要值;监测模块,监测是否有新的程序启动;MD5摘要值计算模块,计算当前第1页1 2 本文档来自技高网...
【技术保护点】
一种程序root权限管控方法,其特征在于,具体方法为:内核管理模块创建监控程序;用户态应用模块根据需要管控的程序名单计算程序的MD5摘要值,并将程序名及其对应的MD5摘要值,下发给内核管理模块保存;当内核管理模块监测到有程序启动时,获取该程序的程序名并计算该程序的MD5摘要值,将计算出的该程序名的MD5摘要值与内核管理模块中保存的程序名一致的MD5摘要值进行比较,判断是否相等,是则进行权限控制,否则不做处理,按该程序的原创建过程继续执行。
【技术特征摘要】
【专利技术属性】
技术研发人员:张晓磊,
申请(专利权)人:成都卫士通信息产业股份有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。