三权分立安全管理软件的设计
三权分立安全管理软件的设计
作者:马钊 胡俊
来源:《信息安全与技术》2012年第05
        三权分立的管理机制,以最小特权和权值分离为原则,将超级用户特权集进行划分,分别授予系统管理员、安全管理员和审计管理员。在此机制下安全管理软件在实现系统管理、安全管理和审计管理功能的同时,也要保证管理员权限的隔离。使用Qt作为开发工具,通过在图形用户界面设计中融入访问控制机制,实现对超级用户权限的划分。这种在图形界面中实现访问控制的方法,可以推广到类似的多用户权限应用程序的设计中。
        关键词 三权分立;图形用户界面;访问控制;Qt
        Design and Implementation of Security Management Software Based on Power Separation Mechanism
        Ma Zhao Hu Jun
        Beijing University of Technology Beijing 100124
        Abstract The power separation mechanism is based on the least privileges and separation of duty. According to the mechanism, Super-user privileges are divided into collections that are respectively granted to the system administrator, he security administrator, and the auditor. In that case, the security management software should not only accomplish the function of system management, security management and audit, but also the insulation of the power of the administrators. We use Qt as the development tool. By adding access control mechanism into graphic user interface, we separate the privileges of Super-user. The way we used here can be used in any similar multi-user applications.
        Keywords power separation, graphic user interface, access control, Qt
        0 引言
        目前的信息系统大多只为整个系统设置超级用户进行管理,这种管理方式虽然便于系统配置和维护,但也存在许多安全性方面的隐患。超级用户的行为在系统中不受任何制约,权限在系统中没有任何限制,可以对系统中的任何数据进行任意操作。当出现超级用户操作失
误、口令丢失或黑客获得超级用户权限的情况时,系统将完全暴露在攻击者面前。
        由于最小特权和权值分离的安全原则,能有效地改善上述问题,段丽娟和刘燕提出了三权分立的管理机制。该机制要求由系统管理员、安全管理员和审计管理员取代系统中超级用户共同管理系统。其中,系统管理员主要负责用户管理和系统日常运作相关的维护工作;安全管理员负责安全策略的配置和系统资源安全属性的设定;审计管理员则对系统审计信息进行管理。三权分立的管理机实现了超级用户对系统正常运行的维护,防止了某一身份的管理员权限过大,引起的安全威胁。
        本文的研究在三权分立的管理机制基础上,结合项目组对高安全级别操作系统的研究,着重讨论在此机制下的安全管理软件的设计和实现。研究环境为fedora14Linux内核版本2.6.35.6,开发工具为Qt Creator4.7
        1 软件功能概述
        1.1 基础功能
        无论是超级用户的管理模式,还是三权分立的管理机制,安全管理软件首先都要能够实
现安全管理所必须的各项功能,包括安全策略部分和审计信息部分。前者的配置部分主要功能有策略的查询、修改、增加和删除;后者主要包括审计信息的查询和导出两大功能。
        1.2 访问控制功能
        安全管理软件的使用必须要有管理员权限,如果任意的普通用户都能使用安全管理软件的话,普通用户也就成为了超级用户,安全管理就没有任何意义了。因此安全管理软件的使用只能授权给管理员。同时,基于三权分立的思想,原有的超级用户根据最小特权和权值分离的安全原则被划分为系统管理员、安全管理员、审计管理员三个身份。因此安全管理软件要能够区分正在使用的主体身份。另外,三种管理员的职责不同,每个人的权限都不是无限的,他们只有权限完成他们职责内的任务,因此安全管理软件还要通过访问控制功能来限制不同身份的管理员的操作权限,避免出现越权操作。
        2 基础功能的设计
        基础功能的设计部分并没有什么创新,只是通过调用安全策略库提供的接口函数,设计相应的图形化用户界面实现最基本的功能,在此只做简单介绍。
        2.1 安全策略部分设计
        基于策略的管理是信息系统管理领域发展的里程碑,其重要特征是:策略管理机制与策略执行机制相互独立,以策略支撑整个管理过程。通过安全策略的制定和执行,实现管理员对系统的管理操作。同时,随着安全机制的改变和安全需求的变化,只需修改相应的策略,就能达到在不修改相关操作的前提下,灵活改变安全管理方案的目的。
        本文并不需要考虑如何构建基于策略的管理机制,只需要在这一管理机制的基础上,通过接口函数实现对安全策略的操作。安全策略包括了主体策略、客体策略、自主访控策略、用户列表策略和审计策略等。在次以主体策略为例介绍安全策略部分的设计。
        主体策略用来描述主体的安全属性,主要包括以下内容。SUBNAME:为系统中主体的名称,可以是用户名或执行程序名。LABEL:用来表示主体的强制访问控制标记,包括保密级别、完整级别和类别。SubType:主体类型字节,描述主体的属性,表示主体的执行特性和身份类型。
        通过接口函数如查询、增加、删除、修改等,可以完成对安全策略的基本操作。在图形
化界面方面,主要使用了表格视图来显示查询结果,删除和修改功能建立在查询功能之上。添加新的策略条目时,由于涉及到添加的策略内容格式问题,使用了下拉列表的方式取代文本输入框,保证策略内容的合法性。
        2.2 审计信息部分设计
        审计信息是三权分立的管理机制中非常重要的一部分。例如当安全管理员的权限被非法用户获得时,由于不能行使系统管理员的特权,只能在一定范围内破坏系统中的安全策略,由于管理员的行为都会被审计记录,一旦发现安全策略异常可以很容易根据审计信息发现哪些安全策略遭到破坏,方便安全策略恢复。
        审计信息主要包括审计策略对应的系统访问控制点、审计类型、审计时间、主体名称、主体安全标记、客体名称、客体安全标记、操作返回值等信息。
        通过接口函数如查询、导出文本等,可以完成对审计信息的基本操作。在图形化界面方面,同安全策略部分类似,主要使用表格视图来显示查询结果。相对于安全策略部分,审计信息部分相对简单。
        3 访问控制部分设计
        访问控制部分的设计是本文的重点。如何在实现全部的安全管理功能的同时,把管理的权限分开,这是最关键的问题。把应用于操作系统内核层中的访问控制机制移植到图形化用户界面中,通过对管理员权限的设置,巧妙地解决了这一问题。
获得管理员权限        3.1 开发工具简介
        Qt作为一款跨平台的图形界面开发工具,正在受到越来越多的开发者的喜爱。Qt独有的Signal-Slot机制是Qt受到追捧的原因之一。在MS-Windows中,程序通过消息机制和事件循环来实现图形对象行为的触发和处理;在Qt中,是在一个类中定义多个SignalSlot Signal就相当于是事件,而Slot就相当于是响应事件的方法。为了实现事件驱动,需要将一个类的Signal和另一个类的Slot通过connect函数连接起来。采用这种机制是一种安全可靠的方法,它允许回调。并支持对象之间在彼此不知道对方信息的情况下进行合作,这使Qt非常适合于真正的构件编程。
        3.2 设计思想
        图形化用户界面的应用是为了方便用户使用系统资源,因此图形化用户界面实际上是在用户操作和系统资源之间建立一种映射关系。在这种映射关系中,图形化用户界面通过控件来获得用户的操作信息,然后通过控件之间的相互调用来处理用户的操作信息,并最终根据用户的操作信息来控制使用系统资源。在这一过程中引入监视器模型,如图1所示,可以实现对信息流的有效控制,达到在图形化界面中完成访问控制机制的目的。
        另一方面,从安全管理软件的访问控制需求来看,强制访问控制策略无法满足,因为安全管理员,审计管理员和系统管理员之间并不存在级别高低之分,也就无法通过标记级别的高低来区分它们的操作权限。实际上这里只需要考虑进行操作的主体是什么身份,以及他是否有权限对所要操作的客体进行操作。
        从自主访问控制的角度来看,需要的只是在开发过程中把每一个可操作控件的操作权限按需要发放给不同的管理员用户,由于管理员权限固定,因此确定之后也不需要对访问授权进行任何改动。
        从基于角的访问控制(Role-based Access ControlRBAC)角度来看,用户通过扮演不同的角从而获得不同的权限,在角的权限范围内进行操作,避免越权操作,从这一
角度上看也可以把这种访问控制归作RBAC,只不过由于各管理员权限固定,没有变化,不太能够体现出RBAC在灵活的性方面的优势。
        3.3 详细设计
        首先根据需求设计控件标记结构如下:
        int sys//系统管理员是否具有访问权限,是为1,否为0int sec//安全管理员是否具有访问权限,是为1,否为0int aud//审计管理员是否具有访问权限,是为1,否为0int def//未登录的身份是否具有访问权限,是为1,否为0
        通过封装方式,为所有用户可操作控件添加安全标记,并根据实际的需求为控件的安全标记赋值。例如查询审计信息的查询按钮,其安全标记中的值分别为0,0,1,0;又如系统管理员和安全管理员都可以进行操作的文件系统树结构视图,其安全标记中的值分别为1,1,0,0
        同时主界面的控件标记被用作用户的主体标识。根据登录的用户不同获得不同的权限,并将相应的标识置1,未登录时默认def1,其他标识为0
        判别函数设计如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。