1、前言
系统安全的根本目标是数据资料的安全,而数据资料是由它的使用者进行存取和维护的。传统的数据存取和维护,都是以新的数据覆盖旧的数据,对于数据的无心错误,或有心的更改数据,一个管理者并无法有效地查出蛛丝马迹。因此,对数据的存取控制是系统安全的一个重要方面。为此,Sandhu等学者提出了一套以角色为基础的存取控制(Role-based Access Control,RBAC)理论,其基本组件包括使用者(User)、角色(Role)、授权(Authorization)及会话(Session)。如何为每个使用者分配相应的权力(即授权)将是本文将要分析的一个重要原则--最小特权原则(Least Privilege Theorem)。
2、最小特权原则简介
最小特权原则是系统安全中最基本的原则之一。所谓最小特权(Least Privilege),指的是"在完成某种操作时所赋予网络中每个主体(用户或进程)必不可少的特权"。最小特权原则,则是指"应限定网络中每个主体所必须的最小特权,确保可能的事故、错误、网络部件的篡改等原因造成的损失最小"。
最小特权原则一方面给予主体"必不可少"的特权,这就保证了所有的主体都能在所赋予的特权之下完成所需要完成的任务或操作;另一方面,它只给予主体"必不可少"的特权,这就限制了每个主体所能进行的操作。
最小特权原则要求每个用户和程序在操作时应当使用尽可能少的特权,而角色允许主体以参与某特定工作所需要的最小特权去签入(Sign)系统。被授权拥有强力角色(Powerful Roles)的主体,不需要动辄运用到其所有的特权,只有在那些特权有实际需求时,主体才去运用它们。如此一来,将可减少由于不注意的错误或是侵入者假装合法主体所造成的损坏发生,限制了事故、错误或攻击带来的危害。它还减少了特权程序之间潜在的相互作用,从而使对特权无意的、没必要的或不适当的使用不太可能发生。这种想法还可以引申到程序内部:只有程序中需要那些特权的最小部分才拥有特权。
3、最小特权原则的应用
3.1 安全操作系统
操作系统对于系统安全来说好比是大楼的地基,如果没有了它,大楼就无从谈起。在计算机系统的各个层次上,硬件、操作系统、网络软件、数据库管理系统软件以及应用软件,各自在计算机安全中都肩负着重要的职责。在软件的范畴中,操作系统处在最底层,是所有其他软件的基础,它在解决安全上也起着基础性、关键性的作用,没有操作系统的安全支持,计算机软件系统的安全就缺乏了根基。对安全操作系统的研究首先从1967年的Adept-50项目开始,随后安全操作系统的发展经历了奠基时期、食谱时期、多政策时期以及动态政策时期。国内对安全操作系统的开发大多处于食谱时期,即以美国国防部的TCSEC(又称橙皮书)或我国的计算机信息系统安全保护等级划分准则为标准进行的开发。
最小特权在安全操作系统中占据了非常重要的地位,它适应UNIX操作系统、超级用户/根目录体系结构的固有特征,以便了解如何到达根目录的的任何用户提供总体系统控制棗而且几乎在UNIX环境工作的所有程序员都了解这一点。
角色管理机制依据"最小特权"原则对系统管理员的特权进行了分化,每个用户只能拥有刚够完成工作的最小权限。然后根据系统管理任务设立角色,依据角色划分权限,每个角色各负其责,权限各自分立,一个管理角色不拥有另一个管理角色的特权。例如当入侵者取得系统管理员权限后欲访问一个高安全级别的文件,则很有可能被拒绝。因为用户(包括系统管理员)在登录后默认的安全级别是最低的,他无法访问高级别的文件,而安全级别的调整只有通过安全管理员才能完成。因此,安全管理员只要对敏感文件配置了合理的安全标记,系统管理员就无法访问这些文件。由此可知,安全管理员对系统管理员的权限进行了有力的限制。
Windows NT操作系统的某些漏洞也与最小特权的应用有关,例如:缺省组的权利和能力总是不能被删除,它们包括:Administrator组,服务器操作员组,打印操作员组,帐户操作员组。这是因为当删除一个缺省组时,表面上,系统已经接受了删除。然而,当再检查时,这些组并没有被真正删除。有时,当服务器重新启动时,这些缺省组被赋予回缺省的权利和能力。为了减小因此而带来的风险,系统管理员可以创建自己定制的组,根据最小特权的原则,定制这些组的权利和能力,以迎合业务的需要。可能的话,创建一个新的Administrator组,使其具有特别的指定的权利和能力。