AIX_RBAC_基于角的访问控制
基于角的访问控制,第 1 部分
Brad Gough
, AIX
技术工程师, IBM
2008 年 1 月 21 日
在本系列文章中,我们将向您陆续介绍并和您一起讨论基于角的访问控制(Role Based Access Control )的相关内容。作为 AIX 6 的安全新特性,RBAC 为用户提供了细颗粒度的,更加灵活的安全管理方法。本文是摘自 IBM 红皮书《AIX V6 Advanced Security Features Introduction and Configuration 》。
AIX V6 和基于角的访问控制 (RBAC)
AIX V6 引入了增强 RBAC ,即向一个或者多个普通用户帐户委派角和授权的方法。 RBAC 允许系统管理员将某些任务委派给普通用户,而传统的做法是,这些任务由 root 用户,或者通过 setuid/setgid 执行。
RBAC 的优点之一是,通过限制分配给某个命令的权限(仅为命令分配执行其任务所必需的权限),可以尽可能地减少 setuid/setgid 程序的使用。
房地产开发公司简介
AIX V6 中没有提供遗留或者增强模式 RBAC 的特定安装包。大多数增强 RBAC 命令都包含在 security 文件集中。
下面的部分将对增强 RBAC 中所包括的组件进行介绍和深入地讨论。
传统的 AIX 管理方法
空间背景音乐怎么弄这里,我们将介绍传统的 AIX 管理方法,以及用于该目的的一些工具。
超级用户管理帐户
在 AIX 操作系统中,传统的特权管理方法依赖于名为 root 的单个系统管理员帐户。我们将 root 帐户作为超级用户,这是因为 root 用户帐户有权执行 AIX 系统中所有特权的系统管理任务。通常将 root 用户的用户标识/uid 指定为 0。
仅依赖单个超级用户来完成系统管理中各方面的操作,将在管理职责分离方面产生一些问题。尽管在某些业务环境中,可以仅使用一个管理帐户,但很多环境都需要多个管理员,其中各个管理员负责执行不同的任务。
如果仅使用一个管理帐户,那么就可能需要在两个或者更多系统管理员之间共享使用超级用户的角。在某些环境中,需要将所有特权的系统管理任务集中于一个单独的个体,那么这种共享的管理方法可能会破坏其中的业务审核指导原则。
共享超级用户角的一种替代方法是,创建与 root 用户具有相同 UID 的另一个用户。
从安全的角度来说,无论采用这两种方式中的任何一种,都可能产生各种各样的问题,因为向每个管理员授予了系统的全部控制权限。没有办法限制任何给定的管理员所能够
姓张的男孩名字
执行的操作。因为root 用户是权限最高的用户,所以该用户可能执行未经授权的操作,还可以删除对这些活动的任何审核信息,因此要对其管理操作进行跟踪,几乎是不可能的。
自主访问控制(DAC)
自主访问控制(DAC) 是一些安全方面的特性,它们受到某个文件或者目录的所有者的控制。
在AIX 中,可以使用所有者/组/其他用户和读/写/执行的传统文件对象权限位的方法来实现DAC。
通过使用文件对象权限位,每个用户可以确定另一个用户或者组是否需要访问某个特定文件对象中的数据。DAC 通常需要了解相关的标准,并相应地授予权限或者拒绝访问。这种类型的访问建立在用户所属的UID 和GID 的基础之上。所有的文件系统对象都具有相关的权限,以描述所有者、组和其他用户的访问权限。
注意事项:使用DAC,可以将某个用户ID 指定为一个可执行文件的所有者,以便只有该用户可以运行这个文件。如果这个用户离开了公司,那么系统管理员就必须修改该文件的DAC,否则任何其他用户都无法运行该文件。在通过组ID 使用DAC 时,同样也会出现这种情况。
在示例1 中,我们可以看到oper1 用户的home 目录中所包含的文件对象。文件 是关于如何使用DAC 来限制某些用户或者组对文件进行访问的示例。
示例1 用户“oper1”的文件对象权限位DAC
使用用户ID (UID) 和组ID (GID) 进行授权
如前所述,DAC 能够基于读、写或者执行权限,限制对文件对象的访问。尽管通过使用AIX 文件权限和所有权,DAC 提供了某些控制粒度,但是DAC 无法保护对文件对象的权限或所有权的恶意或者意外修改。如果某个文件对象是一个可执行程序,要进一步进行限制的方法之一是使用UID/GID 访问控制,仅允许具有合适的UID/GID 的用户对其进行访问。
如果一个可执行程序中包含UID/GID 检查,那么只有在进程UID/GID 与该可执行程序中所包括的嵌入UID/GID 相匹配的时候,该程序才能够成功地执行。
在下面的示例中,我们说明了以下内容:
1. 修改一个特权文件对象的DAC 设置,以允许所有的用户对其进行操作
2. 尝试使用非root 用户、或者shutdown 组之外的用户执行shutdown 命令。
shutdown 命令是root 用户所拥有的Shell 脚本,并且shutdown 组拥有读和执行权限。shutdown Shell 脚本包括用以检查UID/GID 是否为root:shutdown 的UID/GID 检查机制。如果UID/GID 不符合,那么shutdown Shell 脚本将调用exec_shutdown 可执行程序。
为了使系统中的所有用户都能够执行shutdown 命令,我们必须修改其权限,以允许shutdown 组之外的用户进行读和执行操作。
在示例2 中,我们修改了shutdown 和exec_shutdown 命令,以允许系统中的所有用户都能够执行这两个命令。
示例2 修改DAC 权限以允许执行
现在,我们已经修改了shutdown 和exec_shutdown 命令的DAC 权限,以允许系统中的任何用户都能
够执行这两个命令,我们将使用用户oper1 进行登录,并执行shutdown 命令。用户oper1 具有UID 208,并且属于staff 组。
祝老板事业越做越大
在示例3 中,我们将使用用户oper1 执行shutdown 命令。
示例3 使用用户oper1 执行shutdown 命令
虽然执行了shutdown 命令,但是并没有执行系统关闭的任务,该命令在没有执行预期的系统关闭操作的情况下就退出了。这是因为exec_shutdown 可执行程序还将检查UID/GID 是否为root:shutdown。如果UID/GID 不能匹配exec_shutdown 可执行程序中所编码的值,那么该程序将会退出。
在AIX 5L 中,UID/GID 访问检查的这个示例并没有得到广泛使用。并非所有关键的命令都已经按照这
种方式进行了编码,以确保不管DAC 的设置如何,这些命令只有在使用特权UID/GID 的时候才能够执行相应的操作。
在图1 中,我们概括了shutdown 命令所使用的UID/GID 流程,以确定oper1 用户是否具有执行该命令和shutdown 程序的适当授权。
图  1 UID/GID 授权控制的说明
通过设置用户标识(setuid) 提升权限
在AIX 中,传统的访问控制方法是通过使用与进程相关联的用户标识来实现的,以便根据可执行程序的DAC 权限来确定访问控制。然而,通常允许ID 为0 的root 用户绕过权限检查,因此对于以root 用户的身份所执行的进程,可以顺利地通过系统中的任何访问检查,并执行任何所需的操作。在使用setuid 应用程序的时候,这一点就成为了一个安全问题。
setuid 的概念允许命令以调用该命令的用户以外的另一个用户标识来执行。当普通用户需要完成特权任务的时候,setuid 可能是非常有必要的。passwd 命令就是这种情况的一个示例。/etc/passwd 文件使用了DAC 权限,限制为只有root 用户具有对该文件的读/写访问权限。因为除了root 用户之外的任何用户都不能对存储用户密码的文件进行访问,所以普通用户需要具有附加的权限才能更改他们的密码。
出于这个原因,可以将passwd 命令的用户标识设置为root 用户。当以root 用户之外的其他用户调用passwd 命令的时候,对于操作系统来说,就好像root 用户正在访问该文件,并且该访问是允许的。
尽管setuid 概念允许实现一些所需的访问控制功能,但它具有某种固有的安全风险。因为setuid 程序可以在root 用户的上下文中有效地执行,如果在某个程序(正使用相应的setuid 位执行的程序)退出之前,攻击者成功地接管了该程序,那么该攻击者将拥有root 用户的所有权限。然后,该攻击者就能够绕过所有的访问检查,因为该攻击者可以保持有效的root 用户权限,并且能够执行root 用户可以执行的所有操作。
对于特权命令的执行,一种更安全的解决方案是,只为程序分配root 用户权限的一个子集,即遵循最少权限原则,从而减少相应的威胁。
最少权限原则是一种保障安全的方法,它仅为一个进程或者个人授予执行某项特定任务所需的职权或者权限。
该用户对其他文件或者命令的访问权限,将根据需要进行限制。
RBAC 的介绍
在这个部分中,我们将对RBAC 中所包括的组件进行介绍。
遗留模式与增强模式RBAC 的对比
经典美剧推荐
在AIX V4.2 中就引入了RBAC 的实现,但具有一定的局限性。从AIX Version 6.1 开始,所包含的RBAC 的新实现提供了很好的细粒度机制,通过这种机制可以更好地控制各种管理任务,与特权命令执行控制相比,为管理员提供了一种更加精确、并且可以自定义的方法。
因为RBAC 的这两种实现在其操作范围和功能方面具有显著的区别,所以这两种RBAC 实现将使用下面的术语来描述它们的相关实现:
遗留RBAC 模式——AIX V 4.2.1 中引入的AIX 角的历史行为
增强RBAC 模式
——AIX Version 6.1 中所引入的新实现
在AIX V6 中,同时支持这两种操作模式,然而,增强模式RBAC 在最近安装的系统中是缺省启用的。
遗留模式RBAC
在AIX V4.2.1 发行的时候,AIX 安全基础设施就开始提供有限的RBAC 功能。现在将这种功能称为遗留模式RBAC,它允许root 用户之外的其他用户执行某些特权的系统管理任务。在遗留RBAC 实现中,当root 用户之外的其他某个用户调用一个给定的管理命令时,所执行的命令中的代码将确定是否已经向该用户分配了具有所需授权的角。如果该用户是经过授权的,那么将继续执行;如果该用户没有经过授权,那么该命令的执行将会失败,并显示一个错误。为了使经过授权的调用者具有适当的权限以完成
>非流主

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。