简介
过去,由单一用户(root 用户)控制系统的安全机制。root 用户决定谁可以登录、谁可以访问数据 、哪些进程有权进入内核模式等。但是,单一 root 用户的缺点是,如果未经授权的人控制了根用户,系 统就非常容易受到攻击。
为了避免这个问题,AIX 的最新版本(5.3TL07 和 6.1)引入了 RBAC 和多级安全性 (MLS) 等新的安 全特性,还在传统的基于 root 用户的身份验证中增加了其他特性,比如 Trusted Execution (TE)、 Encrypted File System (EFS) 等。
本文通过示例解释如何理解和应用 RBAC 和 MLS 等新特性。
安全管理概述
传统机制
RBAC
传统机制
可以使用 DAC(Discretionary Access Control,自主访问控制)控制对数据的访问(按进程/文件关 系)。但是,具有所有特权的 root 用户是单一用户。 root 用户可以进行任何访问控制和执行任何操作 。这可能造成严重的安全威胁。
另外, root 用户常常担任系统管理员、安全官(维护安全策略)和系统操作员(执行日常活动)等 许多职位。由单一用户控制系统,其他用户完全无法控制系统中的活动。
RBAC 可以把 root 用户的角色和授权分配给多个用户。本文解释 RBAC 如何改进系统的安全性。
RBAC
传统的 AIX 系统具有有限的授权集,可以使用它们决定对某些管理命令的访问。下面的示例显示 passwd 命令就是一个 setuid 程序,setuid 程序有权作为非 root 用户执行。它还能够作为非 root 用 户修改 /etc/security/passwd 文件。DAC 不允许这么做。
passwd 命令等 setuid 程序
$ ls -l 'which passwd'
-r-sr-xr-x 1 root security 40014 May 07 2008 /usr/bin/passwd
# ls -l /etc/security/passwd
-rw------- 1 root security 467 Mar 10 23:48 /etc/security/passwd
这会导致严重的风险,任何人只要通过恶意的 setuid 程序控制了 root shell,就能够做任何事。
在 AIX 第 6 版之前, root 用户的部分权力可以分配给非 root 用户。不同的 root 用户任务(命 令)具有不同的授权。这些授权分组为角色并分配给不同的用户:
任务 -> 授权
授权 -> 角色
角色 -> 用户
但是,root 用户仍然是惟一的最高权威。能够访问 root 用户的人可以做任何事。