wordpress上传主题413,东莞seo公司,国内WordPress相册插件,ai制作网页目前#xff0c;Linux操作系统已广泛应用于各种设备和产品中#xff0c;如服务器、PC机、机顶盒及路由器等。随着Linux系统的不断发展和广泛应用#xff0c;Linux系统的安全问题也引起越来越多的关注。在Linux操作系统中#xff0c;存在一个超级用户即root用户。root也称为…目前Linux操作系统已广泛应用于各种设备和产品中如服务器、PC机、机顶盒及路由器等。随着Linux系统的不断发展和广泛应用Linux系统的安全问题也引起越来越多的关注。在Linux操作系统中存在一个超级用户即root用户。root也称为系统管理员它拥有管理系统的一切权限。当一个非法用户获得root用户口令后他就可以以超级用户的身份登录系统然后做任何他想做的事情如任意添加、删除用户终止进程删除重要文件甚至更改root用户的口令。因此一旦root权限被恶意用户利用就可能导致系统数据的泄密和破坏。该问题已经引起了国家的重点关注如国家保密标准BMB20-2007《涉及国家秘密的信息系统分级保护管理规范》中明确提出涉密信息系统应配备系统管理员、安全保密管理员和安全审计员这三类安全保密管理人员三员应该相互独立、相互制约、不得兼任。三个管理员之间的工作机制分为协作和制约两种机制行使的是原超级用户的权力即系统管理员、安全管理员和审计管理员间相互协作共同维护系统的正常运行。制约机制指只有在当前管理员操作不影响其他管理员正在进行的操作时才被允许从而保证了管理员行为的可预期性避免超级用户的误操作或其身份被假冒而带来的安全隐患增强了系统的安全性。该规范可以有效防止由系统管理员权力过大所带来的系统安全威胁和隐患[。SELinux (security-enhanced Linux)[是安全增强的Linux以强制访问控制(mandatory access control, MAC)[技术为基础应用类型增强(type enforcement, TE)和基于角色访问控制(role-base access control, RBAC)两种安全策略模型。通过MAC技术可以实现对用户和进程权限的最小化即使在系统受到攻击或者进程和用户的权限被剥夺的情况下也不会对整个系统的安全造成重大影响。SELinux对访问的控制更彻底它对系统中的所有文件、目录、端口资源的访问控制都基于一定的安全策略而设定。只有管理员才能定制安全策略一般用户没有权限更改。因此SELinux为三权分离思想的实现奠定了基础。目前SELinux的相关研究工作主要集中在安全策略分析和配置及SELinux安全模型研究[方面。文献[本文基于SELinux建立了三权分离安全模型设计了三权分离安全策略并实现了三权分离机制最后通过实验验证了可行性和正确性。1 SELinux的安全技术1.1 MAC和DAC技术分析SELinux除了采用自主访问控制(discretionary access control, DAC)外还在Linux内核中使用强制访问控制机制严格控制所有对系统资源的访问请求并根据安全策略确定是否授予该请求相应的权限。MAC机制将能够发出访问请求的对象称为主体(如进程)将系统的被访问对象(如文件、设备、socket、端口和其他进程)称为客体所有主体对客体的访问都必须由MAC机制通过安全策略授权。MAC机制给进程仅授予操作所需要的权限这遵循了最小权限原则。因此在MAC机制的保护下即使获取root用户的权限也无法访问未授权的客体[。在SELinux中MAC与DAC机制联合以提高系统的安全性。如图1图1SELinux的DAC与MAC1.2 SELinux的安全策略模型[安全策略作为访问控制机制权限仲裁的依据是SELinux中非常重要的内容之一。SELinux采用TE (type enforcement)和RBAC (role-based access control)相结合的安全策略。1.2.1 TE[模型SELinux中所有的安全策略都必须用TE规则明确地定义没有被明确许可的其他访问方式都被禁止(最小权限原则)。TE访问向量规则定义了主体可以访问什么类型的客体TE转移规则定义了域类型的相互转移[。本文只讨论前者。定义1 TE模型的关键要素源类型(source type, ST)主体(subject)或者域的类型。目标类型(target type, TT)客体(object)的类型。对象类别(class)访问申请的某一类别资源如file、socket等。操作类型(opration, OPT)如read、write等。许可权限(permission, P)表示主体对客体访问时允许的操作。定义2 TE策略模型TE策略模型可定义为PST×OPT×TT许可权限(P)源类型(ST)对目标类型(TT)的资源类(class)的操作(OPT)。定义3 根据上述TE策略模型采用allow语法制定策略规则如下allow ST TT : class {opt1, opt2, …}根据此策略规则定义出如下安全策略allow user_t bin_t : file {read execute getattr}在allow基本语法规则中包含了两个类型标识符源类型(ST) user_t目标类型(TT) bin_t。标识符file是定义在策略中的对象类别名称(在这里表示一个普通的文件)大括号中包括的操作是文件操作类型的一个子集此安全策略示例的含义是拥有域类型user_t的进程可以读/执行或获取具有bin_t类型的文件客体的属性。1.2.2 SELinux的RBAC模型传统的基于角色的访问控制RBAC模型[为角色授权然后将一个或多个角色分配给一个授权用户。SELinux对RBAC模型进行了改进提出了一种TE-RBAC联合模型改进后的模型如[。图2图2SELinux的RBAC策略模型定义4 TE与RBAC联合模型声明用户及其关联的角色user joe roles {user_r}这个语句声明了一个用户joe以及与之关联的角色user_r。声明角色与其源类型关联role user_r types user_t这个语句将源类型user_t与角色user_r关联起来。2 三权分离模型2.1 权能集定义依据最小特权和权值分离的管理思想本文将原超级用户的特权进行细粒度划分分别授予不同的管理员角色使各种管理员只具有完成其任务所需的最小特权不同管理员间相互协作共同管理系统。从逻辑上将承担这3类职责的特权用户命名为系统管理、安全员管理员和审计员管理员[。根据上述非形式化描述为了实现三权分离机制本文首先将系统的root权能集进行划分并给出如下定义。定义5 系统root权能集CC{ Csy, Cse, Cau}其中Csy表示系统管理员权能集Cse表示安全管理员权能集Cau表示审计管理员权能集。定义6 三权分离权能集。根据三权分离思想将root权限拆分成下述3个权能集1)系统管理员权能集CsyCsy管理与系统相关的资源包括用户身份管理、系统资源配置、系统加载和启动、系统运行的异常处理[。2)安全管理员权能集CseCse制定系统安全策略负责对系统中的主体、客体进行统一标记对主体进行授权配置一致的安全策略并确保标记、授权和安全策略的数据完整性[。3)审计管理员权能集CauCau设置审计选项对与安全有关的事件进行审计处理包括监视系统的活动以及日志的处理提供审计和监控功能创建和维护受保护客体的访问审计跟踪记录[。4)各权能集之间相互隔离当且仅当对任意ab∈T(T{sy, se, au})a≠b有Ca⊆CCb⊆CCa∩Cb∅其中CCse∪Csy∪Cau。即每个管理员所能访问的权能集是绝对隔离的。2.2 基于SELinux的三权分离策略模型根据上述权能集的描述下面基于SELinux建立一种三权分离策略模型主要包括特权用户、特权角色和源类型集定义以及各特权用户与对应的特权角色关联和特权角色与对应的源类型集关联。如图3图3三权分离策略模型定义7 定义3组源类型集STsySTseSTau满足下列条件STsy{ STasy, STbsy, …}STse{ STase, STbse, …}STau{ STaau, STbau, …}并且根据SELinux的TE模型和上述全能集的定义可得到如下3组TE策略模型1) PsySTsy×OPT×TT且Psy⊆Csy (即系统管理员各源类型的许可权限是系统管理员权能集Csy的子集)2) PseSTse×OPT×TT且Pse⊆Cse (即安全管理员各源类型的许可权限是安全管理员权能集Cse的子集)3) PauSTau×OPT×TT且Pau⊆Cau (即审计管理员各源类型的许可权限是审计管理员权能集Cau的子集)4) STsy集∩STse集∅STse集∩STau集∅STsy集∩STau集∅每组源类型集合之间都不能相交。定义8定义三权分离的用户与角色关联user root role sysadm_r, 将root系统管理员用户与sysadm_r角色关联user secadm role secadm_r将secadm安全管理员用户与secadm_r角色关联user auditadm role auditadm_r将auditadm审计管理员用户与auditadm_r角色关联。定义9 三权分离的角色与源类型集关联role sysadm_r types STsy{STasy, STbsy, … }role secadm_r types STse{STase, STbse, … }role auditadm_r types STau{ STaau, STbau, … }本定义基于SELinux的RBAC安全模型为每个角色关联一组源类型集合即sysadm_r关联STsy集secadm_r关联STse集auditadm_r关联STau集。3 三权分离的安全策略设计与实现在定义了三权分离模型后为了在SELinux中实现该模型必须修改SELinux已有的安全策略库添加三权分离的安全策略。下文详细阐述基于SELinux的三权分离安全策略的设计与实现。3.1 三权分离的安全策略设计图4图4三权分离的安全策略设计3.1.1 系统管理员策略设计根据定义6~定义9的统管理员相关描述系统管理员root关联了角色sysadm_r角色sysadm_r默认的源类型为sysadm_t这个源类型允许转换到与角色sysadm_r关联的其他源类型如3.1.2 安全管理员策略设计根据定义6~定义9中安全管理员相关描述安全管理员secadm关联了角色secadm_r角色secadm_r默认的源类型为secadm_t这个源类型允许转换到与角色secadm_r关联的其他源类型如3.1.3 审计管理员策略设计根据定义6~定义9中审计管理员相关描述审计管理员auditadm关联了角色auditadm_r角色auditadm_r默认的源类型为auditadm_t这个源类型允许转换到与角色auditadm_r关联的其他源类型如3.2 三权分离的TE策略实现上一节中已经描述了每个用户角色所关联的源类型下面针对每个源类型按照前面所阐述的TE模型指定具体的安全许可规则。3.2.1 系统管理员安全策略的实现系统管理员拥有原root用户的大部分权限用来完成系统中日常的操作和维护包括系统用户账户的管理、网络相关管理与操作、内核模块加载、开启和关闭系统、对文件的档案备份和恢复、安装或卸载文件系统等。以管理系统用户账户为例其源类型为useradd_t系统管理员拥有添加用户账号的权限即只有系统管理员可以执行useradd命令因此需要在策略中按TE模型的描述给useradd_t源类型定义相应的许可权限。allow useradd_t useradd_exec_t: file {open read execute }该allow规则定义了源类型useraddr_t对目标类型useradd_exec_t (表示useradd命令)的文件资源授予打开(open)、读(read)和执行(execute)的权限。3.2.2 安全管理员安全策略的实现安全管理员是整个系统安全策略的制定者负责制定生成安全策略修改SELinux运行模式装载二进制安全策略设置文件安全上下文等。以生成安全策略为例其源类型为checkpolicy_t安全管理员拥有将策略规则源码编译成二进制策略文件的权限即只有安全管理员可以执行checkpolicy命令因此需要在策略中按TE模型的描述给checkpolicy_t源类型定义相应的许可权限。allow checkpolicy_t checkpolicy_exec_t: file {open read execute }该allow规则定义了源类型checkpolicy_t对目标类型checkpolicy_exec_t (表示checkpolicy命令)授予打开(open)、读(read)和执行(execute)的权限。3.2.3 审计管理员安全策略的实现审计管理员是系统的监督者负责设置审计开关和审计阈值启动和关闭审计机制以及管理审计日志等。以auditadm_t源类型为例只有审计管理员才能拥有查看审计日志的权限在策略中按TE模型的描述给auditadm_t源类型定义相应的许可权限。allow auditadm_t var_log_t: file {open read getattr }该allow规则定义了源类型auditadm_t对目标类型var_log_t (表示审计日志文件)授予打开(open)、读(read)和获取属性(getattr)的权限。4 三权分离实验4.1 实验平台介绍实验的硬件平台为TQ2440(基于S3C2440A CPU)嵌入式开发板软件平台为嵌入式Linux。Linux内核为Linux 2.6.30Linux命令工具集为Busybox-1.22.0安全策略由策略库refpolicy-2.20090730[修改生成。4.2 实验原型的实现根据上文描述的三权分离安全策略模型基于refpolicy策略库在嵌入式Linux平台上借助于SELinux模块实现了一个三权分离的实验原型系统。该系统重点实现了三权分离的安全策略定义3个特权角色及对应的3个SELinux特权用户并为每个用户制定详细的最小执行或访问权限。禁止各用户对其他用户私有资源的访问最大化的限制用户的权限以提高系统的安全性。4.3 三权分离功能测试4.3.1 用户角色关联测试系统管理员(root)关联角色sysadm_r且角色关联sysadm_t源类型如图5图5用户角色关联标识测试4.3.2 审计管理员功能测试根据三权分离的设计模型审计日志只能由审计管理员进行访问而其他用户无权进行读操作。图6图6三权分离功能测试值得注意的是如果当前以root权限登录去执行审计操作由于root用户不具备对审计日志的访问权限因此该请求被拒绝如4.3.3 安全管理员功能测试根据三权分离的设计模型只有安全管理员有权修改SELinux安全模式测试结果如5 结束语为了解决root权限过大给linux操作系统所带来的安全隐患问题本文基于SELinux的强制访问控制技术采用三权分离思想建立了三权分离策略模型实现了一个安全增强的Linux操作系统。即使特权用户的密码被恶意用户获取也不会对系统造成很大的损害从而将恶意攻击对系统的危害降到最低。本文的三权分离思想将Linux系统的root用户权限拆分为安全管理、系统管理、审计管理三种权限。然后定义了三权分离策略模型并基于SELinux的安全策略库设计并实现了一套三权分离的安全策略库。最后在嵌入式Linux平台上借助于SELinux的强制访问控制技术实现了一个实验原型系统并对系统各项功能进行了多次测试。实验结果表示本文的研究工作能够严格的限制每个用户的权限如只有审计管理员可以查看系统的审计日志只有安全管理员可以对系统的安全策略进行管理等从而有效解决了Linux系统由于root权限过大所带来的系统危害和被攻击的问题。本文的研究工作适合于任何Linux平台包括嵌入式设备和服务器通过这种三权分离机制可以克服权力过于集中给系统带来的危害以提高Linux系统的安全性。