跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris 11.1 管理:安全服务 Oracle Solaris 11.1 Information Library (简体中文) |
特权限制进程是在内核中实现的,可以在命令、用户、角色和系统级别对进程加以限制。
表 10-3 用于处理特权的命令
|
表 10-4 包含特权信息的文件
|
可以对特权的使用进行审计。只要进程使用特权,就会在 upriv 审计标记的审计迹中记录该特权的使用。如果记录中包含特权名称,则将使用特权名称的文本表示形式。以下审计事件记录特权的使用:
AUE_SETPPRIV 审计事件-更改了特权集时,该事件将生成一条审计记录。AUE_SETPPRIV 审计事件在 pm 类中。
AUE_MODALLOCPRIV 审计事件-从内核外部添加特权时,该审计事件将生成一条审计记录。AUE_MODALLOCPRIV 审计事件在 ad 类中。
AUE_MODDEVPLCY 审计事件-更改了设备策略时,该审计事件将生成一条审计记录。AUE_MODDEVPLCY 审计事件在 ad 类中。
AUE_PFEXEC 审计事件-如果在启用 pfexec() 时调用 execve(),审计事件将生成一条审计记录。AUE_PFEXEC 审计事件在 as、ex、ps 和 ua 审计类中。特权的名称包含在审计记录中。
不会审计基本特权集中特权的成功使用。但是,将会审计对已从用户基本特权集中删除的基本特权的使用。
内核可防止特权升级。特权升级是指某特权允许进程执行超出其应有功能的功能。为防止进程获取超出其应有特权的特权,对易受攻击的系统进行修改需要具有完全特权集。例如,只有具有完全特权集的进程才能更改 root (UID=0) 拥有的文件或进程。root 帐户不需要具有特权就能更改 root 拥有的文件。但是,非 root 用户必须具有全部特权才能更改 root 用户拥有的文件。
类似地,提供设备访问的操作需要具有有效特权集中的所有特权。
file_chown_self 和 proc_owner 特权可进行特权升级。file_chown_self 特权允许进程放弃其文件。proc_owner 特权允许进程检查不归其拥有的进程。
可通过 rstchown 系统变量限制 file_chown_self 特权。如果将 rstchown 变量设置为零,则将从系统和所有用户的初始可继承特权集中删除 file_chown_self 特权。有关 rstchown 系统变量的更多信息,请参见 chown(1) 手册页。
file_chown_self 特权非常安全地指定给特定命令,放置在配置文件中,并指定给角色供配置文件 shell 使用。
proc_owner 特权不足以将进程 UID 切换为 0。要将进程从任何 UID 切换为 UID=0 需要具有全部特权。由于 proc_owner 特权授予对系统上所有文件的无限制读取权限,因此可以非常安全地将该特权指定给特定命令,放置在配置文件中,并指定给角色供配置文件 shell 使用。
![]() | 注意 - 可以修改用户帐户,将 file_chown_self 特权或 proc_owner 特权包括在该用户的初始可继承特权集中。要将这些强大的特权放置在任何用户、角色或系统的可继承特权集中,您应有充分的安全理由。 |
有关如何防止设备特权升级的详细信息,请参见特权和设备。
为了适应传统应用程序,特权的实现使用超级用户模型和特权模型。内核会自动跟踪 PRIV_AWARE 标志,此标志指示某个程序设计为可使用特权。请考虑不能识别特权的子进程。从父进程继承的所有特权均可在子进程的允许特权集和有效特权集中找到。如果子进程将 UID 设置为 0,则其可能不具有完全超级用户功能。进程的有效特权集和允许特权集会被限制为子进程限制特权集中包含的特权。这样,可识别特权的进程的限制特权集会限制不能识别特权的子进程的超级用户特权。