CN104735091B - 一种基于Linux系统的用户访问控制方法和装置 - Google Patents
一种基于Linux系统的用户访问控制方法和装置 Download PDFInfo
- Publication number
- CN104735091B CN104735091B CN201510186300.8A CN201510186300A CN104735091B CN 104735091 B CN104735091 B CN 104735091B CN 201510186300 A CN201510186300 A CN 201510186300A CN 104735091 B CN104735091 B CN 104735091B
- Authority
- CN
- China
- Prior art keywords
- resource access
- user
- rule
- label
- access request
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种基于Linux系统的用户访问控制方法和装置,其中方法包括:预先分别为特权用户和普通用户建立系统资源访问规则;当系统监听到用户的资源访问请求时,根据所述系统文件访问规则和所述用户的类型,确定是否允许执行所述资源访问请求,如果允许,则触发所述执行,否则,拒绝所述执行。采用本发明可以有效确保系统安全。
Description
技术领域
本发明涉及操作系统安全技术,特别是涉及一种基于Linux系统的用户访问控制方法和装置。
背景技术
随着Linux在企业中应用的扩展,有大量的嵌入式设备使用Linux操作系统,比如手机,数字电视,平板电脑等。同时,Linux系统的安全性能受到越来越多的关注。Linux系统中普遍存在特权账户(root),该特权帐户拥有整个系统至高无上的权力。在root特权用户下存在很多守护进程(service daemon),每个进程能访问系统的所有资源,包括设备、文件等,一旦有某个service daemon存在恶意行为,比如非法使用设备,改写或删除文件,这都会影响系统的稳定运行甚至导致系统崩溃。例如root账户下的程序可以删除/etc下面的所有文件,一旦删除,系统将无法启动;又如内存溢出导致普通用户获取root权限。因此,如果不对root账户进行有效地安全控制,一旦用户滥用或者非法用户得到root账户权限后,将极大地威胁系统安全。
目前,常用的一种访问控制方法是利用smack技术实现的访问控制方法。该方法通过检查预设的规则来判断当前访问是否可以接受,如果规则数据库中存在所需的规则,则接受当前的访问,否则,拒绝。但是上述方法无法对特权用户的访问进行安全控制,从而无法避免特权用户滥用特权或者非法用户得到特权账户权限后对系统安全的威胁。
由此可见,现有Linux系统的用户访问控制方案,存在无法有效确保系统安全的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于Linux系统的用户访问控制方法和装置,可以有效确保系统安全。
为了达到上述目的,本发明提出的技术方案为:
一种基于Linux系统的用户访问控制方法,包括:
预先分别为特权用户和普通用户建立系统资源访问规则;
当系统监听到用户的资源访问请求时,根据所述系统文件访问规则和所述用户的类型,确定是否允许执行所述资源访问请求,如果允许,则触发所述执行,否则,拒绝所述执行。
一种基于Linux系统的用户访问控制装置,包括:
规则设置模块,用于保存预先分别为特权用户和普通用户建立的系统资源访问规则;
访问控制模块,用于当系统监听到用户的资源访问请求时,根据所述系统文件访问规则和所述用户的类型,确定是否允许执行所述资源访问请求,如果允许,则触发所述执行,否则,拒绝所述执行。
综上所述,本发明提出的基于Linux系统的用户访问控制方法和装置,通过区别用户类型设置主体(用户的进程)是否有访问客体的权限的规则,可以实现对用户访问的有效控制。尤其是,为特权用户建立专门的系统资源访问规则,可以抑制特权用户下程序对资源的非法访问,因此,可以提高系统安全性,同时易于应用。
附图说明
图1为本发明实施例一的方法流程示意图;
图2为本发明实施例一的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的核心思想是:预先分别针对特权用户和普通用户建立相应的系统文件访问规则,当用户触发操作系统对内核对象的访问时,系统在执行该访问之前,先根据当前的访问规则,进行访问权限的识别,在确认可以允许该访问时,再执行,否则,拒绝访问的执行。
图1为本发明实施例一的方法流程示意图,如图1所示,该实施例主要包括:
步骤101、预先分别为特权用户和普通用户建立系统资源访问规则。
本步骤,需要根据用户类型建立各自的系统资源访问规则,即,设置各类账户下的进程对客体(系统资源)所拥有的访问权限,尤其是,对于特权用户,也需要为其建立相应的访问规则,从而可以在后续的资源访问过程中对该类似特权用户的访问行为进行控制,从而可以避免特权用户滥用或者非法用户得到特权用户账户权限后对系统安全产生的威胁,进而可以确保系统的安全性。
较佳地,所述建立系统资源访问规则包括:
步骤1011、为系统中的所有文件设置标签,其中,可执行文件的所述标签包括主体标签和客体标签,非可执行文件的所述标签为客体标签。
本步骤,用于为系统中的资源设置标签,以便在规则中用标签标识资源。这里,为可执行文件设置了两种标签,一种是主体标签,一种是客体标签,主体标签为进程运行时携带的标签,以标识进行访问的资源。而,非可执行文件则只需要设置一种标签,即客体标签,以标识被访问的资源。在实际应用中,也可只为可执行文件设置一种标签。
步骤1012、分别根据特权用户和普通用户的访问权限,设置相应的系统资源访问规则。其中,每一条所述访问规则包括:主体标签、该主体标签对应的可访问资源的客体标签、访问用户的类型以及访问权限。
具体地,所述访问权限可以包括:读、写、删除、执行、追加和/或加锁等操作。
这里,由于访问规则中是利用文件的标签来标识进行访问的主体资源和被访问的客体资源,以及访问用户类型和相应访问权限,而不是利用复杂的策略模型来生成访问规则,因此,可以确保访问规则易于设置和使用,有利于系统维护人员的掌握应用。
在实际应用中,上述文件标签以及访问规则,可由系统维护人员通过专门的账号进行设置、维护。
步骤102、当系统监听到用户的资源访问请求时,根据所述系统文件访问规则和所述用户的类型,确定是否允许执行所述资源访问请求,如果允许,则触发所述执行,否则,拒绝所述执行。
本步骤,用于根据资源访问请求所属用户的类型,查找相应的访问规则,从行而可以确保该访问的合法性,进而可以实现对用户访问的全面控制,尤其是可以有效避免特权用户滥用或者非法用户得到特权用户账户权限后对系统的破坏。
较佳地,系统可以利用钩子HOOK函数进行所述监听。
较佳地,本步骤可以采用下述方法来确定是否允许执行所述资源访问请求:
根据发起所述资源访问请求的进程携带的用户标识EUID,确定所述用户的类型;
当所述用户为特权用户时,根据所述资源访问请求携带的主体标签和客体标签,确定特权用户的所述系统资源访问规则中是否存在允许所述资源访问请求的规则,如果有,则判定允许执行所述资源访问请求,否则,拒绝所述执行;
当所述用户为普通用户时,根据所述资源访问请求携带的主体标签和客体标签,确定普通用户的所述系统资源访问规则中是否存在允许所述资源访问请求的规则,如果有,则判定允许执行所述资源访问请求,否则,拒绝所述执行。
图2为与上述方法相对应的用户访问控制装置结构示意图,如图2所示,该装置主要包括下述模块:
规则设置模块,用于保存预先分别为特权用户和普通用户建立的系统资源访问规则。
访问控制模块,用于当系统监听到用户的资源访问请求时,根据所述系统文件访问规则和所述用户的类型,确定是否允许执行所述资源访问请求,如果允许,则触发所述执行,否则,拒绝所述执行。
较佳地,所述规则设置模块包括:
标签生成单元,用于为系统中的所有文件设置标签,其中,可执行文件的所述标签包括主体标签和客体标签,所述主体标签为进程运行时携带的标签,非可执行文件的所述标签为客体标签;
规则存储单元,用于存储根据特权用户和普通用户的访问权限所分别设置的的系统资源访问规则。
其中,每一条所述访问规则包括:主体标签、该主体标签对应的可访问资源的客体标签、访问用户的类型以及访问权限。
所述访问权限包括:读、写、删除、执行、追加和/或加锁操作。
较佳地,所述访问控制模块包括:
监听单元,用于监听用户的资源访问请求,将监听到的资源访问请求和对应进程携带的用户标识EUID发送给控制单元;
控制单元,用于根据所述用户标识EUID,确定发起所述资源访问请求的用户的类型;当所述用户为特权用户时,根据所述资源访问请求携带的主体标签和客体标签,确定特权用户的所述系统资源访问规则中是否存在允许所述资源访问请求的规则,如果有,则判定允许执行所述资源访问请求,否则,拒绝所述执行;当所述用户为普通用户时,根据所述资源访问请求携带的主体标签和客体标签,确定普通用户的所述系统资源访问规则中是否存在允许所述资源访问请求的规则,如果有,则判定允许执行所述资源访问请求,否则,拒绝所述执行。
具体地,所述访问控制模块可以利用钩子HOOK函数来进行所述监听。
下面结合具体的系统函数,对本发明的具体实现进行详细说明:
本发明为Linux的安全模块(LSM)提供API,在内核引导时,它将被初始化成一些虚函数,这些虚函数接着由Hook函数模块实现,用一个全局表存储这些虚函数的指针,内核引导的过程中,系统使用特殊的空函数来初始化全局表(即Linux中原始定义的全局表),此时全局表保存的是空函数。随后系统根据配置来选择使用哪个强制访问控制MAC模块来初始化全局表,当安全模块被加载后,该MAC就成为系统安全策略的决策中心,Hook函数模块中,系统为各个内核对象均添加了安全域(security field),安全域在内核对象被创建时同时初始化。在security域中,保存了内核对象的安全标示符,Hook函数模块维护了内核对象到安全标示符的映射。Hook函数模块在内核中安插了各类监控点,以open()函数打开一个文件inode为例来介绍这些监控点。
系统调用(open)的功能:检查当前的进程是否有访问该inode的权限,该函数先获取当前进程所在的有效账户EUID,然后连同访问请求发给访问控制模块,访问控制模块查询相应的访问规则数据库,如能查询到相应的规则,表示有权限,则访问相应的inode,打开相应的文件;否则,无法访问相应的inode,打开文件失败。
本安全模块基于smack内核代码,其注册的所有API都需在smack的内核代码基础之上加入获取当前进程的有效用户ID(euid),并判断是否是特权账户,并将账户类型传入访问规则查询函数;考虑到代码的复用性,将特权账户的访问系统资源访问规则数据库和普通用户的系统资源访问规则数据库合并,每条规则中加入一个字段,这样既减轻了开发工作量,又节约了数据库存储空间,访问规则格式可以如下:
subject_label object_label root_access normal_access
subject_label:主体标签,主要指进程运行时的标签;
object_label:客体标签;
root_access:特权账户下的进程对客体所拥有的访问权限;
normal_access:普通账户下的进程对客体所拥有的访问权限。
以下以一个具体的实例说明本发明的执行过程。当特权账户下一个主体标签(subject_label)为dtv-process的守护进程想写一个客体标签(object_label)为dtv-file的文件时,守护进程对文件的访问流程如下:
(1)进程执行访问文件的系统调用;定位要访问的文件,即查找到该文件对应的inode;
(2)在对该访问进行常规检查(功能性错误检查、自主式存取控制DAC检查)后,调用LSM相应的钩子函数来判断是否有权限来访问文件;
(3)钩子函数返回判断结果,如有权限,则进程访问目标文件;如无权限,则进程访问文件失败。
在第(2)步中,监控点根据euid、subject_label(dtv-process)、object_label(dtv-file)查找到对应的访问规则,如果euid为0,说明进行访问的进程所在用户为特权用户,则检查root_access是否有相应的访问权限;如果euid不为0,则检查normal_access是否有相应的访问权限;访问控制模块将判断结果返回给LSM。
如果系统中有一条如下所示的系统资源访问规则:
subject_label object_label root_access normal_access
dtv-process dtv-file r-x---------
此时subject_label为dtv-process的守护进程对object_label为dtv-file的文件的写操作将会被拒绝,因为root_access中没有写权限(w)。同样,在普通用户下,subject_label为dtv-process的守护进程对object_label为dtv-file的文件的写操作也会被拒绝,因为normal_access中也没有写权限(w)。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于Linux系统的用户访问控制方法,其特征在于,包括:
预先分别为特权用户和普通用户建立系统资源访问规则;
当系统监听到用户的资源访问请求时,根据所述系统资源访问规则和所述用户的类型,确定是否允许执行所述资源访问请求,如果允许,则触发所述执行,否则,拒绝所述执行;
其中,所述建立系统资源访问规则包括:
为系统中的所有文件设置标签,其中,可执行文件的所述标签包括主体标签和客体标签,所述主体标签为进程运行时携带的标签,非可执行文件的所述标签为客体标签;
分别根据特权用户和普通用户的访问权限,设置相应的系统资源访问规则,其中,每一条所述访问规则包括:主体标签、该主体标签对应的可访问资源的客体标签、访问用户的类型以及访问权限。
2.根据权利要求1所述的方法,其特征在于,所述确定是否允许执行所述资源访问请求包括:
根据发起所述资源访问请求的进程携带的用户标识EUID,确定所述用户的类型;
当所述用户为特权用户时,根据所述资源访问请求携带的主体标签和客体标签,确定特权用户的所述系统资源访问规则中是否存在允许所述资源访问请求的规则,如果有,则判定允许执行所述资源访问请求,否则,拒绝所述执行;
当所述用户为普通用户时,根据所述资源访问请求携带的主体标签和客体标签,确定普通用户的所述系统资源访问规则中是否存在允许所述资源访问请求的规则,如果有,则判定允许执行所述资源访问请求,否则,拒绝所述执行。
3.根据权利要求1所述的方法,其特征在于,系统利用钩子HOOK函数进行所述监听。
4.一种基于Linux系统的用户访问控制装置,其特征在于,包括:
规则设置模块,用于保存预先分别为特权用户和普通用户建立的系统资源访问规则;
访问控制模块,用于当系统监听到用户的资源访问请求时,根据所述系统资源访问规则和所述用户的类型,确定是否允许执行所述资源访问请求,如果允许,则触发所述执行,否则,拒绝所述执行;
其中,所述规则设置模块包括:
标签生成单元,用于为系统中的所有文件设置标签,其中,可执行文件的所述标签包括主体标签和客体标签,所述主体标签为进程运行时携带的标签,非可执行文件的所述标签为客体标签;
规则存储单元,用于存储根据特权用户和普通用户的访问权限所分别设置的的系统资源访问规则,其中,每一条所述访问规则包括:主体标签、该主体标签对应的可访问资源的客体标签、访问用户的类型以及访问权限,所述访问权限包括:读、写、删除、执行、追加和/或加锁操作。
5.根据权利要求4所述的装置,其特征在于,所述访问控制模块包括:
监听单元,用于监听用户的资源访问请求,将监听到的资源访问请求和对应进程携带的用户标识EUID发送给控制单元;
控制单元,用于根据所述用户标识EUID,确定发起所述资源访问请求的用户的类型;当所述用户为特权用户时,根据所述资源访问请求携带的主体标签和客体标签,确定特权用户的所述系统资源访问规则中是否存在允许所述资源访问请求的规则,如果有,则判定允许执行所述资源访问请求,否则,拒绝所述执行;当所述用户为普通用户时,根据所述资源访问请求携带的主体标签和客体标签,确定普通用户的所述系统资源访问规则中是否存在允许所述资源访问请求的规则,如果有,则判定允许执行所述资源访问请求,否则,拒绝所述执行。
6.根据权利要求4所述的装置,其特征在于,所述访问控制模块利用钩子HOOK函数进行所述监听。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510186300.8A CN104735091B (zh) | 2015-04-17 | 2015-04-17 | 一种基于Linux系统的用户访问控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510186300.8A CN104735091B (zh) | 2015-04-17 | 2015-04-17 | 一种基于Linux系统的用户访问控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104735091A CN104735091A (zh) | 2015-06-24 |
CN104735091B true CN104735091B (zh) | 2018-03-30 |
Family
ID=53458525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510186300.8A Active CN104735091B (zh) | 2015-04-17 | 2015-04-17 | 一种基于Linux系统的用户访问控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104735091B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183799B (zh) * | 2015-08-25 | 2019-12-24 | 苏州浪潮智能科技有限公司 | 一种权限管理的方法及客户端 |
CN105429972B (zh) * | 2015-11-10 | 2019-05-24 | 华为技术有限公司 | 资源访问控制方法及设备 |
CN106548048A (zh) * | 2016-10-28 | 2017-03-29 | 北京优炫软件股份有限公司 | 一种用于进程控制的方法、装置与系统 |
CN106534101A (zh) * | 2016-11-01 | 2017-03-22 | 广东浪潮大数据研究有限公司 | 一种文件防护方法、安全系统客户端及文件防护系统 |
CN106599690A (zh) * | 2016-12-21 | 2017-04-26 | 哈尔滨安天科技股份有限公司 | 国产操作系统下的可移动介质访问权限的管控方法及系统 |
CN108415920A (zh) * | 2017-06-25 | 2018-08-17 | 平安科技(深圳)有限公司 | 资料派发方法、装置及计算机可读存储介质 |
CN107944296A (zh) * | 2017-11-30 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种云存储系统及其用户权限控制方法、设备、存储介质 |
CN108171052A (zh) * | 2017-12-28 | 2018-06-15 | 北京亿赛通科技发展有限责任公司 | 一种Linux服务器安全的保护方法及系统 |
CN109005197A (zh) * | 2018-09-11 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种安全规则的配置方法、装置和计算机可读存储介质 |
CN110381068A (zh) * | 2019-07-23 | 2019-10-25 | 迈普通信技术股份有限公司 | 强制访问控制方法、装置、网络设备及存储介质 |
CN111259348B (zh) * | 2020-02-20 | 2023-03-07 | 国网信息通信产业集团有限公司 | 一种安全运行可执行文件的方法及系统 |
CN112672387B (zh) * | 2020-12-21 | 2021-08-31 | 广西东信易联科技有限公司 | 一种根据用户数据自动切换网络模式的方法及系统 |
CN114003941B (zh) * | 2021-12-28 | 2022-04-05 | 麒麟软件有限公司 | 基于Linux操作系统的软件权限控制系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129539A (zh) * | 2011-03-11 | 2011-07-20 | 清华大学 | 基于访问控制列表的数据资源权限管理方法 |
CN102156839A (zh) * | 2011-04-12 | 2011-08-17 | 浪潮电子信息产业股份有限公司 | 一种利用强制访问控制限制云计算特权用户权限的方法 |
CN102195956A (zh) * | 2010-03-19 | 2011-09-21 | 富士通株式会社 | 云服务系统及其中管理用户权限的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613930B2 (en) * | 2001-01-19 | 2009-11-03 | Trustware International Limited | Method for protecting computer programs and data from hostile code |
US8397290B2 (en) * | 2008-06-27 | 2013-03-12 | Microsoft Corporation | Granting least privilege access for computing processes |
-
2015
- 2015-04-17 CN CN201510186300.8A patent/CN104735091B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102195956A (zh) * | 2010-03-19 | 2011-09-21 | 富士通株式会社 | 云服务系统及其中管理用户权限的方法 |
CN102129539A (zh) * | 2011-03-11 | 2011-07-20 | 清华大学 | 基于访问控制列表的数据资源权限管理方法 |
CN102156839A (zh) * | 2011-04-12 | 2011-08-17 | 浪潮电子信息产业股份有限公司 | 一种利用强制访问控制限制云计算特权用户权限的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104735091A (zh) | 2015-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104735091B (zh) | 一种基于Linux系统的用户访问控制方法和装置 | |
CN107403106B (zh) | 基于终端用户的数据库细粒度访问控制方法 | |
CN101631116B (zh) | 一种分布式双重授权及访问控制方法和系统 | |
EP2077499B1 (en) | Method, article of manufacture and system for assigning security ratings and enforcing minimum security requirements during virtual machine failover. | |
CN104751050A (zh) | 一种客户端应用程序管理方法 | |
CN111079091A (zh) | 一种软件的安全管理方法、装置、终端及服务器 | |
CN107026825A (zh) | 一种访问大数据系统的方法及系统 | |
CN104732147A (zh) | 一种应用程序处理方法 | |
CN112231726B (zh) | 基于可信验证的访问控制方法、装置和计算机设备 | |
US20150341362A1 (en) | Method and system for selectively permitting non-secure application to communicate with secure application | |
CN108334404B (zh) | 应用程序的运行方法和装置 | |
CN105049445B (zh) | 一种访问控制方法及独立式访问控制器 | |
US9767273B2 (en) | Reliably terminating processes in a system with confined execution environments | |
EP1393178B1 (en) | Wireless device mobile application security system | |
CN108763951A (zh) | 一种数据的保护方法及装置 | |
CN104732140A (zh) | 一种程序数据处理方法 | |
CN106411814B (zh) | 一种策略管理方法及系统 | |
CN106682504B (zh) | 一种防止文件被恶意编辑的方法、装置及电子设备 | |
CN105760164B (zh) | 一种用户空间文件系统中acl权限的实现方法 | |
CN112464176A (zh) | 一种权限管理方法、装置、电子设备及存储介质 | |
JP2002149494A (ja) | アクセス制御方法およびアクセス制御装置および記録媒体 | |
KR102430882B1 (ko) | 클라우드 환경 내 이벤트 스트림 방식의 컨테이너 워크로드 실행 제어 방법, 장치 및 컴퓨터-판독 가능 기록 매체 | |
Umar et al. | A Comparative Study of Modern Operating Systems in terms of Memory and Security: A Case Study of Windows, iOS, and Android | |
CN115576626A (zh) | 一种usb设备安全挂载和卸载的方法、设备和存储介质 | |
GB2555569B (en) | Enhanced computer objects security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |