CN105138374A - 一种程序root权限管控方法和系统 - Google Patents
一种程序root权限管控方法和系统 Download PDFInfo
- Publication number
- CN105138374A CN105138374A CN201510537680.5A CN201510537680A CN105138374A CN 105138374 A CN105138374 A CN 105138374A CN 201510537680 A CN201510537680 A CN 201510537680A CN 105138374 A CN105138374 A CN 105138374A
- Authority
- CN
- China
- Prior art keywords
- program
- module
- digest value
- authority
- inner core
- 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.)
- Pending
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了一种程序root权限管控方法和系统。内核管理模块创建监控程序;用户态应用模块根据需要管控的程序名单计算程序的MD5摘要值,并将程序名及其对应的MD5摘要值,下发给内核管理模块保存;当内核管理模块监测到有程序启动时,获取该程序的程序名并计算该程序的MD5摘要值,将计算出的该程序名的MD5摘要值与内核管理模块中保存的程序名一致的MD5摘要值进行比较,判断是否相等,是则进行权限控制,否则不做处理,按该程序的原创建过程继续执行。采用内核模块的方式,既能满足用户需求,又能提高安全性,且兼容性好。
Description
技术领域
本发明涉及一种程序root权限管控方法和系统,特别是涉及一种适用于信息安全的主机安全技术的程序root权限管控方法和系统。
背景技术
Linux系统root权限管理,每个进程都具有实际用户ID(realuserid,RUID)、有效用户ID(effectiveuserid,EUID)、保存设置用户ID(savedset-user-id,SUID)。RUID为该进程的创建者的用户ID,也可以说是进程的执行者,EUID标识用户进程执行操作的权限。对于没有设置SUID程序而言,其对应的SUID为其RUID;而对于设置了SUID的程序而言,其对应的SUID为该程序拥有者用户ID。
在Linux系统创建进程,都是由调用fork()函数开始,fork()用来创建新的进程,而函数族exec()用来启动另外的进程以取代当前运行的进程。最终由内核来创建出一个完整的进程。
发明内容
本发明要解决的技术问题是提供一种既能满足用户需求,又能提高安全性,且兼容性好的程序root权限管控方法和系统。
本发明采用的技术方案如下:一种程序root权限管控方法,其特征在于,具体方法为:内核管理模块创建监控程序;用户态应用模块根据需要管控的程序名单计算程序的MD5摘要值,并将程序名及其对应的MD5摘要值,下发给内核管理模块保存;当内核管理模块监测到有程序启动时,获取该程序的程序名并计算该程序的MD5摘要值,将计算出的该程序名的MD5摘要值与内核管理模块中保存的程序名一致的MD5摘要值进行比较,判断是否相等,是则进行权限控制,否则不做处理,按该程序的原创建过程继续执行。
为了唯一识别一个程序,要计算可执行程序文件的MD5摘要值。因此,用户态应用模块首先根据需要管控的程序名单计算程序的MD5摘要值,然后把程序名和MD5值对应,下发给内核管理模块。当用户启动一个程序时,能够被内核管理模块监测到。然后内核管理模块获取到程序名并计算其MD5值,和内核模块中保存的程序名-MD5值列表进行比较。若相等,则此程序是监控对象,进行提升或其他权限控制;若不相等,则不作处理,按原创建过程继续执行。
用户态应用模块通过proc文件与内核管理模块进行交互。用户态应用模块通过proc文件将程序名和MD5值对应,下发给内核管理模块。
进行权限控制的方法步骤为:
步骤一、在内核管理模块中,修改指令,使程序执行到compat_do_execve()函数时,跳转到权限管理前处理模块,保存compat_do_execve()函数的返回地址;同时,指令修改compat_do_execve()函数的返回地址,使之执行完成后,跳转回权限管理后处理模块;
步骤二、权限管理前处理模块决定是否在权限管理后处理模块中提升或禁止进程root权限,并将决定值发送给权限管理后处理模块;
步骤三、权限管理后处理模块根据收到的权限管理前处理模块发送的决定值,提升或禁止进程root权限;
步骤四、利用步骤一中保存的compat_do_execve()函数的返回地址返回到程序正常流程。
在步骤一中,在执行compat_do_execve()函数前,完成步骤一的所有设置,跳转到权限管理前处理模块,决定是否进行权限控制,当compat_do_execve()函数执行完后,根据步骤一的设置会自动跳转到权限管理后处理模块,对程序root权限进行设置,设置完后,根据步骤一中保存的compat_do_execve()函数的返回地址,返回到程序正常流程。
一种程序root权限管控系统,其特征在于,包括内核管理模块和用户态应用模块;
所述用户态应用模块包括,
MD5摘要值计算模块,计算需要进行管控的应用程序的MD5摘要值;
程序名-MD5摘要值发送模块,将应用程序名及其对应的MD5摘要值进行下发;
所述内核管理模块包括,
程序名-MD5摘要值接收模块,接收用户态应用模块下发的应用程序名及其对应的MD5摘要值;
存储模块,存储接收的用户态应用模块下发的应用程序名及其对应的MD5摘要值;
监测模块,监测是否有新的程序启动;
MD5摘要值计算模块,计算新启动的程序的MD5摘要值;
判断模块,将计算出的程序的MD5摘要值与内核管理模块中保存的该程序程序名的MD5摘要值进行比较,判断是否相等;
权限管理模块,对需要进行权限控制的程序进行权限控制。
所述用户态应用模块通过proc文件与内核管理模块进行交互。
所述权限控制模块包括,
返回地址保存模块,用于保存compat_do_execve()函数的初始返回地址;
返回地址修改模块,用于修改compat_do_execve()函数的初始返回地址;
root权限设置模块,用于对当前程序的root权限进行设置。
与现有技术相比,本发明的有益效果是:在进程创建过程中,能够在内核态提升或禁止正在创建的进程具有的root权限。在内核态通过修改函数指令,控制函数跳转,使得此内核模块具有监控进程创建功能;管理员不用赋予用户root权限的情况下,某些程序可以以root权限执行,既满足了用户需求又提高了安全性;能够适应兼容任何Linux的操作系统,且适应X86或MIPS等多种平台。
附图说明
图1为本发明其中一实施例的原理示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
如图1所示,包括用户态和核心态,用户态指用户态应用模块或用户态应用模块,核心态指内核管理模块。
root权限管控系统,包括内核管理模块和用户态应用模块;所述用户态应用模块包括,MD5摘要值计算模块,计算需要进行管控的应用程序的MD5摘要值;程序名-MD5摘要值发送模块,将应用程序名及其对应的MD5摘要值进行下发;所述内核管理模块包括,程序名-MD5摘要值接收模块,接收用户态应用模块下发的应用程序名及其对应的MD5摘要值;存储模块,存储接收的用户态应用模块下发的应用程序名及其对应的MD5摘要值;监测模块,监测是否有新的程序启动;MD5摘要值计算模块,计算新启动的程序的MD5摘要值;判断模块,将计算出的程序的MD5摘要值与内核管理模块中保存的该程序程序名的MD5摘要值进行比较,判断是否相等;权限控制模块,对需要进行权限控制的程序进行权限控制。
root权限具体管控方法为:内核管理模块创建监控程序;用户态应用模块根据需要管控的程序名单计算程序的MD5摘要值,并将程序名及其对应的MD5摘要值,下发给内核管理模块保存;当内核管理模块监测到有程序启动时,获取该程序的程序名并计算该程序的MD5摘要值,将计算出的该程序名的MD5摘要值与内核管理模块中保存的该程序名的MD5摘要值进行比较,判断是否相等,是则进行权限控制,否则不做处理,按该程序的原创建过程继续执行。
为了唯一识别一个程序,要计算可执行程序文件的MD5摘要值。因此,用户态应用模块首先根据需要管控的程序名单计算程序的MD5摘要值,然后把程序名和MD5值对应,下发给内核管理模块。当用户启动一个程序时,能够被内核管理模块监测到。然后内核管理模块获取到程序名并计算其MD5值,和内核模块中保存的程序名-MD5值列表进行比较。若相等,则此程序是监控对象,进行提升或其他权限控制;若不相等,则不作处理,按原创建过程继续执行。
用户态应用模块通过proc文件与内核管理模块进行交互。用户态应用模块通过proc文件将程序名和MD5值对应,下发给内核管理模块。
所述权限控制模块包括,返回地址保存模块,用于保存compat_do_execve()函数的初始返回地址;返回地址修改模块,用于修改compat_do_execve()函数的初始返回地址;root权限设置模块,用于对当前程序的root权限进行设置。进行权限控制的方法步骤为:
具体权限控制方法步骤为:
步骤一、在内核管理模块中,修改指令,使程序执行到compat_do_execve()函数时,跳转到权限管理前处理模块,保存compat_do_execve()函数的返回地址;同时,指令修改compat_do_execve()函数的返回地址,使之执行完成后,跳转回权限管理后处理模块;
步骤二、权限管理前处理模块决定是否在权限管理后处理模块中提升或禁止进程root权限,并将决定值发送给权限管理后处理模块;
步骤三、权限管理后处理模块根据收到的权限管理前处理模块发送的决定值,提升或禁止进程root权限;
步骤四、利用步骤一中保存的compat_do_execve()函数的返回地址返回到程序正常流程。
在步骤一中,在执行compat_do_execve()函数前,完成步骤一的所有设置,跳转到权限管理前处理模块,决定是否进行权限控制,当compat_do_execve()函数执行完后,根据步骤一的设置会自动跳转到权限管理后处理模块,对程序root权限进行设置,设置完后,根据步骤一中保存的compat_do_execve()函数的返回地址,返回到程序正常流程。
root权限管理模块支持添加、删除、查询等功能,系统管理员可以方便的进行管理。
Claims (6)
1.一种程序root权限管控方法,其特征在于,具体方法为:内核管理模块创建监控程序;用户态应用模块根据需要管控的程序名单计算程序的MD5摘要值,并将程序名及其对应的MD5摘要值,下发给内核管理模块保存;当内核管理模块监测到有程序启动时,获取该程序的程序名并计算该程序的MD5摘要值,将计算出的该程序名的MD5摘要值与内核管理模块中保存的程序名一致的MD5摘要值进行比较,判断是否相等,是则进行权限控制,否则不做处理,按该程序的原创建过程继续执行。
2.根据权利要求1所述的程序root权限管控方法,其特征在于,用户态应用模块通过proc文件与内核管理模块进行交互。
3.根据权利要求1或2所述的程序root权限管控方法,其特征在于,进行权限控制的方法步骤为:
步骤一、在内核管理模块中,修改指令,使程序执行到compat_do_execve()函数时,跳转到权限管理前处理模块,保存compat_do_execve()函数的返回地址;同时,指令修改compat_do_execve()函数的返回地址,使之执行完成后,跳转回权限管理后处理模块;
步骤二、权限管理前处理模块决定是否在权限管理后处理模块中提升或禁止进程root权限,并将决定值发送给权限管理后处理模块;
步骤三、权限管理后处理模块根据收到的权限管理前处理模块发送的决定值,提升或禁止进程root权限;
步骤四、利用步骤一中保存的compat_do_execve()函数的返回地址返回到程序正常流程。
4.一种程序root权限管控系统,其特征在于,包括内核管理模块和用户态应用模块;
所述用户态应用模块包括,
MD5摘要值计算模块,计算需要进行管控的应用程序的MD5摘要值;
程序名-MD5摘要值发送模块,将应用程序名及其对应的MD5摘要值进行下发;
所述内核管理模块包括,
程序名-MD5摘要值接收模块,接收用户态应用模块下发的应用程序名及其对应的MD5摘要值;
存储模块,存储接收的用户态应用模块下发的应用程序名及其对应的MD5摘要值;
监测模块,监测是否有新的程序启动;
MD5摘要值计算模块,计算新启动的程序的MD5摘要值;
判断模块,将计算出的程序的MD5摘要值与内核管理模块中保存的该程序程序名的MD5摘要值进行比较,判断是否相等;
权限管理模块,对需要进行权限控制的程序进行权限控制。
5.根据权利要求4所述的程序root权限管控系统,其特征在于,所述用户态应用模块通过proc文件与内核管理模块进行交互。
6.根据权利要求4或5所述的程序root权限管控系统,其特征在于,所述权限控制模块包括,
返回地址保存模块,用于保存compat_do_execve()函数的初始返回地址;
返回地址修改模块,用于修改compat_do_execve()函数的初始返回地址;
root权限设置模块,用于对当前程序的root权限进行设置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510537680.5A CN105138374A (zh) | 2015-08-28 | 2015-08-28 | 一种程序root权限管控方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510537680.5A CN105138374A (zh) | 2015-08-28 | 2015-08-28 | 一种程序root权限管控方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105138374A true CN105138374A (zh) | 2015-12-09 |
Family
ID=54723731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510537680.5A Pending CN105138374A (zh) | 2015-08-28 | 2015-08-28 | 一种程序root权限管控方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138374A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226477A (zh) * | 2007-01-16 | 2008-07-23 | 北京共创开源软件有限公司 | 一种适合移动应用的Linux操作系统的实现方法 |
CN101344904A (zh) * | 2008-09-02 | 2009-01-14 | 中国科学院软件研究所 | 一种动态度量方法 |
US20090106480A1 (en) * | 2007-10-23 | 2009-04-23 | Keicy Chung | Computer storage device having separate read-only space and read-write space, removable media component, system management interface, and network interface |
US20110289137A1 (en) * | 2010-05-20 | 2011-11-24 | Eyal Ittah | Host Device and Method for Accessing a Virtual File in a Storage Device by Bypassing a Cache in the Host Device |
CN104660606A (zh) * | 2015-03-05 | 2015-05-27 | 中南大学 | 一种应用程序安全的远程监控方法 |
-
2015
- 2015-08-28 CN CN201510537680.5A patent/CN105138374A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226477A (zh) * | 2007-01-16 | 2008-07-23 | 北京共创开源软件有限公司 | 一种适合移动应用的Linux操作系统的实现方法 |
US20090106480A1 (en) * | 2007-10-23 | 2009-04-23 | Keicy Chung | Computer storage device having separate read-only space and read-write space, removable media component, system management interface, and network interface |
CN101344904A (zh) * | 2008-09-02 | 2009-01-14 | 中国科学院软件研究所 | 一种动态度量方法 |
US20110289137A1 (en) * | 2010-05-20 | 2011-11-24 | Eyal Ittah | Host Device and Method for Accessing a Virtual File in a Storage Device by Bypassing a Cache in the Host Device |
CN104660606A (zh) * | 2015-03-05 | 2015-05-27 | 中南大学 | 一种应用程序安全的远程监控方法 |
Non-Patent Citations (1)
Title |
---|
汪立东,方滨兴: "Linux Shell 安全审计机制的扩展", 《软件学报》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101802920B1 (ko) | 가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치 | |
CN107809324B (zh) | 一种车载自动诊断系统设备及其升级方法 | |
CN101425018B (zh) | 基于分段式的嵌入式固件升级方法及装置 | |
CN107451040B (zh) | 故障原因的定位方法、装置及计算机可读存储介质 | |
EP3040854B1 (en) | Method, apparatus and storage medium for dynamically patching function | |
CN104754043B (zh) | 一种终端升级方法及装置 | |
US20170322826A1 (en) | Setting support program, setting support method, and setting support device | |
CN103826215A (zh) | 一种在终端设备上进行Root权限管理的方法和装置 | |
EP3153968B1 (en) | Multi-system terminal system updating method, updating device and terminal | |
US8813229B2 (en) | Apparatus, system, and method for preventing infection by malicious code | |
CN103778006A (zh) | 一种操作系统进程控制方法 | |
US9541980B2 (en) | Operation management device, operation management method, and recording medium | |
US20170230713A1 (en) | Set Top Box Upgrade Method and Apparatus | |
CN113010217A (zh) | 一种bios参数设置方法、装置、电子设备及存储介质 | |
CN111090442B (zh) | 一种应用更新方法、装置和存储介质 | |
US20110320595A1 (en) | Medical information processing device and software distributing system | |
CN109086077A (zh) | 一种应用程序的运行方法和装置 | |
JPWO2019026248A1 (ja) | プログラム開発支援装置、プログラム開発支援方法、及びプログラム開発支援プログラム | |
CN114035831A (zh) | 一种cpld升级方法、系统及计算机可读存储介质 | |
CN110442493B (zh) | 一种自动化服务管理系统及方法 | |
CN110784353B (zh) | 网元设备配置数据迁移方法及装置 | |
CN105138374A (zh) | 一种程序root权限管控方法和系统 | |
US20110270802A1 (en) | Method for controlling changes of replication directions in a multi-site disaster recovery environment for high available application | |
CN107301072B (zh) | 一种升级文件的自动加载方法及装置 | |
CN112685063B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151209 |
|
RJ01 | Rejection of invention patent application after publication |