滥用管理程序及相关安全问题剖析
1. 根用户权限的目的
最小权限原则旨在限制运行程序对系统的访问权限,仅给予其完成任务所需的最少访问量。
单用户系统中,用户通常可访问所有资源。例如,Windows 95 及其默认文件系统 FAT16/32 缺乏细粒度的访问控制,用户或进程只要有权限访问文件系统,就能访问所有文件。这意味着每个程序都需自行全面管理访问权限,在网络环境中,任何程序的错误都可能危及整个系统。
多用户系统中,资源由不同用户拥有,程序以用户身份运行,仅能访问自身资源。通常,内核也需为子系统提供一定访问权限。例如,普通 Linux 用户无法直接控制网卡,但可收发数据。
根用户是一种具有内核权限的抽象用户,可用于加载和卸载内核模块、控制以根用户身份运行的守护进程等。用户本质上是资源所有权的标识,决定了哪些用户可以访问哪些对象。
多级安全系统在此基础上更进一步,除用户外,还引入了角色、类型和级别等上下文信息。例如,Linux 系统中,/etc/shadow 文件可能被标记为 shadow_t 类型,系统会限制哪些程序可以访问此类文件。这样,系统就能区分不同类型的根访问权限。若一个守护进程以根用户身份监听并被利用运行任意代码,由于其不具备相应上下文,仍无法读取 /etc/shadow 文件。
管理程序在权限分离方面与多级安全系统有一定重叠。例如,用户可在一台物理机上运行两个虚拟机,一个运行低安全级别的服务,如 Twitter 客户端、网页浏览器和音乐播放器;另一个运行高安全级别的应用,如翻译绝密文件。
以下是不同系统权限特点的对比表格:
| 系统类型 | 权限特点 | 示例 |
|