在 Oracle® Solaris 11.2 中确保用户和进程的安全

退出打印视图

更新时间: 2014 年 7 月
 
 

特权升级和内核特权

在内核防止 privilege escalation(特权升级)。为防止进程获取超出其应有特权的特权,内核检查会易受攻击的系统修改是否具有完全特权集合。例如,只有具有完全特权集合的进程才能更改 root (UID=0) 拥有的文件或进程。root 帐户不需要具有特权就能更改 root 拥有的文件。但是,非 root 用户必须具有全部特权才能更改 root 用户拥有的文件。

类似地,提供设备访问的操作需要具有有效特权集合中的所有特权。

    具体来说,file_chown_self 和 proc_owner 特权可能发生特权升级。

  • file_chown_self 特权允许进程放弃其文件。proc_owner 特权允许进程检查不归其拥有的进程。

    可通过 rstchown 系统变量限制 file_chown_self 特权。如果将 rstchown 变量设置为 0,则将从系统映像的所有用户的初始可继承特权集合中删除 file_chown_self 特权。有关 rstchown 系统变量的更多信息,请参见 chown(1) 手册页。

    将 file_chown_self 特权非常安全地指定给特定命令,将该命令放置在权限配置文件中,而将配置文件指定给角色或可信用户。

  • proc_owner 特权不足以将进程 UID 切换为 0。要将进程从任何 UID 切换为 UID=0 需要具有全部特权。由于 proc_owner 特权授予对系统上所有文件的无限制读取权限,因此可以非常安全地将该特权指定给特定命令,将该命令放置在配置文件中,而将配置文件指定给角色。


Caution

注意  -  可以配置用户帐户,将 file_chown_self 特权或 proc_owner 特权包括在该用户的初始可继承特权集合中。但是,要将这些强大的特权放置在任何用户或角色的可继承特权集合中,您应有充分的安全理由。


有关如何防止设备特权升级的信息,请参见特权和设备。有关一般讨论,请参见 privileges(5) 手册页。