基于三权分立的操作系统体系结构及实现方法

文档序号:6338062阅读:1719来源:国知局
专利名称:基于三权分立的操作系统体系结构及实现方法
基于三权分立的操作系统体系结构及实现方法技术领域
本发明基于三权分立的操作系统体系结构及实现方法,涉及将操作系统特权在系 统核心层进行三权分立的实现方法。该方法能实现对操作系统特权的有效分离,依据权限 的映射,将特权划分成既相互制约、又相互支撑的三个部分,避免了管理员误判导致的系统 安全事故,同时也禁止了管理员由于非法目的而进行的非法操作,彻底去除了操作系统中 具备所有特权权限的超级管理员角色,属于信息安全领域。
背景技术
特权是操作系统执行一些安全操作所必须具备的权限,例如维护用户帐户、软件 的安装、系统关闭等。如果这些特权功能一旦被滥用,系统的安全将受到极大威胁。因此, 现有的许多主流操作系统,如Linux和Windows等,都限制这些特权,只允许管理员进行操 作。但是,一旦管理员的权限被窃取,或是由于管理员依据经验做出的判断有误,那么系统 的机密性和完整性就极有可能遭到破坏。
现在对操作系统特权的控制技术,主要有以下几种
最小特权(Least Privilege)原则是系统安全中最基本的原则之一,它限制了使 用者对系统及数据进行存取所需要的最小权限,既保证了用户能够完成所操作的任务,同 时也确保非法用户或异常操作所造成的损失最小;基于角色访问控制(Role-BasedAccess Control)通过分配和取消角色来完成用户权限的授予和取消,并且提供角色分配规则。安 全管理人员根据需要定义各种角色,并设置合适的访问权限,而用户根据其责任和资历再 被指派为不同的角色。这样,整个访问控制过程就分成两个部分,即访问权限与角色相关 联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离;职责隔离(Separation ofDuty)是指没有一个主体可单独获得完成该职责要求的所有权限,在分析角色关系的基 础上,主要通过角色互斥实现职责隔离。
然而,上述的技术都忽略了一个重要事实,即不论是对程序进行权限的控制,还是 对用户进行角色的划分,都不能在操作系统层进行最根本的特权消除。比如一个恶意程序 通过缓冲区溢出的方式获得管理员权限,其仍拥有对系统配置的全部权限。
在现有主流操作系统中,用户为了运行时的方便,往往以管理员身份登录系统。这 种登录的模式,有几大缺陷首先,由于管理员角色拥有最高权限,用户可对系统中的资源 进行任意访问,包括修改审计日志等,极易造成安全事故;其次,恶意的程序启动时会继承 管理员的权限,与普通用户登录相比,其破坏性可能更大;第三,对于某些特殊的过程,比如 系统软件安装,新的程序可能会替换或删除原有的程序。因此,用户必然要以管理员身份登 录系统,否则安装可能不能正常完成。此时,如果某一病毒或木马被激活,就可能会对合法 的程序同样进行恶意篡改。而现有安全机制难以对这两种正常和恶意的操作进行区分,容 易造成安全隐患。发明内容
本发明的目的在于,通过提供基于三权分立的操作系统体系结构及实现方法,以 解决操作系统特权用户由于权限过大引发的各种安全问题。通过对特权操作的权限映射, 将所有特权划分成既相互制约、又相互支撑的三个部分,最终实现对操作系统特权的有效 分离,彻底去除操作系统中具备所有特权权限的管理员角色。禁止了管理员由于非法目的 而进行的非法操作,也彻底去除了操作系统中“超级管理员”角色。
本发明是采用以下技术手段实现的
一种基于三权分立的操作系统体系结构,操作系统的权限被分为系统管 理权、安全管理权、安全审计权;系统管理权对应于操作系统中的系统管理子系统 (SystemManagement Subsystem, SMS),安全管理权对应于操作系统中的安全管理子系统 (Security Management Subsystem, SEMS),安全审计权对应于操作系统中的审计子系统 (Audit Subsystem, AS);删除管理员,将登录操作系统进行实际操作的用户命名为操作 员;
系统管理子系统由可信度量、可信服务、可信基准库和可信判定组成,操作系统系 统管理子系统主要对系统中的硬件配置信息、软件配置信息、用户身份信息等进行管理;其 中,可信基准库负责信息存储,利用可信度量机制等对系统中的主体,包括用户和进程,进 行身份的鉴别,可信服务则为应用提供相应的可信支撑;
安全管理子系统判定系统中的访问请求是否符合安全策略,安全管理子系统由访 问控制、安全隔离、安全策略和安全判定组成;
安全审计子系统负责记录系统中的行为,并对系统管理子系统和安全管理子系统 的工作情况进行审计。
一种基于三权分立的操作系统体系结构的实现方法,在通用的WINDOWS操作系统 中,构建系统管理子系统、安全管理子系统、审计子系统;
利用应用层的策略配置工具(ConfgTool),为三个子系统提供不同的策略配置界 面,ConfgTool完成策略配置后,生成相应的策略文件,并且以DeviceloControl的方式通 知安全内核(PriKernel)加载;
运行在WINDOWS内核层的文件过滤驱动程序I^riKernel,完成本发明的三权分立 的控制体系,在加载安全策略后,通过上层可信代理,截获操作系统应用层与底层文件系统 间的通信信息,然后送至三权分立的三个子系统进行判定;PriKernel作为系统驱动,以服 务的方式加载,截获1/0管理器发出的IRP包,实现前面所述体系;在内核驱动I^riKernel 中,上层代理通过Hook机制挂钩ZwCreat必ection操作,以获得程序的启动请求;通过文件 过滤驱动提供的两个派遣例程IRP_MJ_CREATE和IRP_MJ_SET_INF0RMATI0N获得对文件的 访问请求;
所述的系统管理子系统包括以下步骤
a、系统初始时,为每一个用户配发一个USB-KEY,系统管理子系统通过作为用 户身份唯一标识的USB-KEY实现对用户身份的鉴别;每一项白名单的数据结构是User, Fullpath, Hash,所有的可执行程序文件在系统初始时,都用SHAl算法收集其摘要值,建立 用户与程序的对应关系,每个程序可以赋给所有用户,也可赋给某一用户,在文件过滤驱动 PriKernel中,通过RegmonMapkrviceTable获得对程序往内存中加载处的挂钩;5
b、配置工具ConfgTool与内核PriKernel协商形成加解密的密钥文件,该文件被 隔离保护,禁止任何进程或程序对其进行读取、修改操作;
所述的安全管理子系统包括以下步骤
系统启动时,安全策略加载到I^iKernel开辟的内存LIST_ENTRY链表中;
a、通过派遣函数例程IRP_MJ_CREATE和IRP_MJ_SET_INF0RMATI0N获得系统中的 访问控制请求,解析IRP包,获得访问操作的类型;通过FileObject获得要被访问的客体; 通过I^sGetCurrentProcessId函数获得当前进程的PID信息,并通过向系统管理子系统询 问,得知该主体是否为合法的主体;依据安全策略对操作系统中的访问请求实施判定;
b、通过进程与资源的绑定方式,实现资源的安全隔离;
所述的审计子系统包括以下步骤
系统初始启动时I^riKernel通过I^sCreateSystemThread —个审计线程,并构建 LIST_ENTRY结构的审计队列;
a、在系统中的关键访问控制点挂载审计钩子函数,通过钩子函数记录相应的审计 信息,并将审计记录存放到LIST_ENTRY结构的审计队列中;
b、审计线程通过定时轮询审计队列的方式,将审计队列中的信息,写入审计日志 文件;
C、审计日志的结构包括时间、用户、进程、客体、操作结果、系统管理判定结果、安 全管理判定结果。
本发明与现有技术相比,具有以下明显的优势和有益效果
与传统安全操作系统中在操作系统层面只有一个管理员相比,三权分立的操作系 统体系将权限划分为三部分。这三个部分既相互支撑,又相互制约,将操作系统中管理员的 权限进行了有效地分离。
(1)缓冲区溢出攻击
在传统操作系统中,假设一个黑客制造了一个缓冲区溢出,将代码溢出到预先植 入系统的恶意程序v. exe,那么v. exe 一旦启动,则可以感染其他可执行程序或者窃取系统 中的机密信息。而在三权分立的操作系统体系结构中,v. exe要启动时,系统管理子系统 首先会根据签名或事先收集的摘要值鉴别v. exe的合法性,而同时安全管理子系统会判定 v. exe的访问请求是否违背安全策略。如果作为病毒,v. exe要感染其他的可执行程序,则 必定是违背安全策略的。最后,审计子系统会将该访问请求及结果进行记录。这样,就可以 从某种程度上防止缓冲区溢出攻击。
(2)软件安装
采用沙箱技术等获得软件安装包中的程序信息,包括安装包中所有可执行程序的 程序名和摘要值信息。这些信息更新至系统管理子系统的可信基准库。
软件安装时,系统管理子系统对要启动的进程,或其他要安装的程序依据可信基 准库,进行度量。安全管理子系统则对安装过程中的行为的策略符合性进行判定。审计子 系统将所有的安装操作进行记录。
这样,在安装过程中,如果有病毒或木马要启动,则系统管理子系统和安全管理子 系统都会禁止该操作,并且审计子系统也会有安装操作的记录。最终降低了在传统操作系 统软件安装过程中,由于管理员特权引入病毒或木马的风险。彻底去除了超级管理员角色,在操作系统核心层实现了权限分离。即使一个子系统由于失误做出了误判,则另外两个子 系统仍能保障系统的安全,降低了管理员误判导致的系统安全事故,也禁止了管理员由于 某种目的而进行的非法操作。


图1权限映射示意图2权限示意图3授权管理对比示意图4基于三权分立的操作系统体系结构示意图5系统工作流程示意图
其中
图-中的1表示系统管理子系统,结点11表示用户是否合法的权限判定,12表示 程序的启动权限,13表示能否调用加解密运算接口权限;2表示安全管理子系统,21表示访 问控制权限,22表示安全隔离权限;3表示审计子系统,31表示操作系统审计,32表示三个 子系统操作的管理审计权限。
图2中的结点11表示用户是否合法的权限判定,12表示程序的启动权限,13表示 能否调用加解密运算接口权限;21表示访问控制权限,22表示安全隔离权限;31表示操作 系统审计,32表示三个子系统操作的管理审计权限。
具体实施方式
以下结合说明书附图,对本发明的具体实施例加以说明
一种基于三权分立的操作系统体系结构,操作系统的权限被分为系统管 理权、安全管理权、安全审计权;系统管理权对应于操作系统中的系统管理子系统 (SystemManagement Subsystem, SMS),安全安全管理权对应于操作系统中的安全管理子系 统(Security Management Subsystem, SEMS),安全审计权对应于操作系统中的审计子系 统(Audit Subsystem, AS);删除管理员,将登录操作系统进行实际操作的用户命名为操作 员;
(1)系统管理子系统(System Management Subsystem, SMS)
系统管理子系统由可信度量、可信服务、可信基准库和可信判定组成。系统管理子 系统主要对系统中的硬件配置信息、软件配置信息、用户身份信息等进行管理。可信基准库 负责这些信息的存储。通过这些信息,系统管理子系统利用可信度量机制等对系统中的主 体,包括用户和进程,进行身份的鉴别。可信服务则为应用提供相应的可信支撑。
(2)安全管理子系统 Security Management Subsystem, SEMS)
安全管理子系统主要是判定系统中的访问请求是否符合安全策略。安全管理子系 统由访问控制、安全隔离、安全策略和安全判定组成。
(3)审计子系统(Audit Subsystem, AS)
安全审计子系统负责记录系统中的行为,并对系统管理子系统和安全管理子系统 的工作情况进行审计。
如附图1所示,图1中的1表示系统管理子系统,结点11表示用户是否合法的权7限判定,12表示程序的启动权限,13表示能否调用加解密运算接口权限;2表示安全管理子 系统,21表示访问控制权限,22表示安全隔离权限;3表示审计子系统,31表示操作系统审 计,32表示三个子系统操作的管理审计权限。
如果将三个子系统放到一个平面上,其各自对应的权限也必然映射到另一平面 上,我们把它称为权限平面,用点表示权限平面中的权限。用点表示权限,三个子系统对应 的权限记为SMSn,SEMSn, ASn0当一个访问请求到达时,必然要经过一系列的权限判断,如主 体身份鉴别、进程的完整性校验、访问控制、审计等等。按照权限判定的先后顺序,将平面B 中的点连接起来,便构成了一个有向图,称为权限图(如图2)。图2中的结点11表示用户 是否合法的权限判定,12表示程序的启动权限,13表示能否调用加解密运算接口权限;21 表示访问控制权限,22表示安全隔离权限;31表示操作系统审计,32表示三个子系统操作 的管理审计权限。边(m,n)表示经m的权限判定后,紧接着下一步由η进行判定。
权限图具有以下性质
性质1、任一访问请求经过权限判定图所形成的子图AG1 (V1, E1),必然是权限图的 子图,且满足(V1 η SMSn^ Φ)"(V1 η SEMSn^ Φ)"(V1 η Asn^ Φ),即任一访问请求都必 须受三个权限子系统的制约。
性质2、权限图是有向无环图。
若权限图中出现环,则说明无论环中的权限检查点是否生效,始终都会回到某一 点,其他点的判定可有可无,这证明权限之间不存在相互制约关系,这与三权分立的思想是 不相符合的。
性质3、对权限图中的任意边(m,η),必定存在属于审计子系统的边t,且存在m至 少一条m到t的路径。即每一个操作最后都会被审计监控,而且说明每一个授权都会被审 计,即体现了三权分立中审计子系统对其他两个子系统的制约。
基于三权分立的操作系统体系结构如图4所示。在通用的WINDOWS 2003操作系 统中,在应用程序与系统派遣服务之间加入上层可信代理模块,系统构建上述的系统管理 子系统、安全管理子系统、审计子系统,分别对应图中的1、2、3三个部分。系统管理子系统 主要提供可信度量与可信服务,以可信基准作为依据做出可信判定;安全管理子系统实现 访问控制与安全隔离功能,通过安全策略做出安全判定;审计子系统提供审计功能。实施的 技术手段主要是文件过滤驱动,对应的程序主要有两部分
一是应用层的策略配置工具ConfgTool,为三个子系统提供不同的策略配置界面。 ConfgTool完成策略配置后,生成相应的策略文件,并且以DeviceloControl的方式通知安 全内核I^riKernel加载策略。
二是运行在WINDOWS 2003内核层的文件过滤驱动程序I^riKernel,该驱动主要完 成本发明的三权分立的控制体系。在加载安全策略后,通过如图4中的上层可信代理,截 获操作系统应用层与底层文件系统间的通信信息,然后送至三权分立的三个子系统进行判 定。ft~iKernel作为系统驱动,以服务的方式加载,截获1/0管理器发出的IRP包,实现前面 所述体系。在内核驱动I^riKernel中,上层代理通过Hook机制挂钩ZwCreatekction操作, 以获得程序的启动请求;通过文件过滤驱动提供的两个派遣例程IRP_MJ_CREATE和IRP_ MJ_SET_INF0RMATI0N获得对文件的访问请求。整个系统的工作流程如图5所示。
(1)系统管理子系统
a、系统初始时,为每一个用户配发一个USB-KEY。系统管理子系统通过作为用 户身份唯一标识的USB-KEY实现对用户身份的鉴别。而对系统中的程序及硬件驱动程序 的鉴别则是采用白名单技术,该技术不是本发明要研究的重点,但却是本发明应采用的技 术。每一项白名单的数据结构是(User,Fullpath, Hash),所有的可执行程序文件在系统 初始时,都会用SHAl算法收集其摘要值。这样就建立起了用户与程序的对应关系,每个 程序可以赋给所有用户,如C:\WIND0WS\SYSTEM32\WINL0G0N. EXE ;也可赋给某一用户,如 C:\ProgramFiles\Windows Media Player\wmplayer, exe。在文件过滤驱动 PriKernel 中, 通过RegmonMapkrviceTable获得对程序往内存中加载处的挂钩。那么根据SEC_IMAGE属 性,任何程序在启动时都会被截获,进行完整性的校验。这样,系统管理子系统可以实现对 用户、系统中程序、系统硬件驱动程序的身份鉴别,实现可信度量。
b、本发明所采用的USB-KEY具有加解密运算的功能。这样,系统管理子系统的可 信服务功能——加密存储,便可以实现。配置工具ConfgTool与内核I^riKernel协商形成 加解密的密钥文件,该文件被隔离保护,禁止任何进程或程序对其进行读取、修改操作。
(2)安全管理子系统
系统启动时,安全策略就会加载到I^riKernel开辟的内存LIST_ENTRY链表中。
a、通过两个主要的派遣函数例程:IRP_MJ_CREATE和IRP_MJ_SET_INF0RMATI0N获 得系统中的访问控制请求。解析IRP包,获得访问操作的类型,如读、写、改名、删除等;通过 FileObject获得要被访问的客体;通过I^sGetCurrentProcessId函数获得当前进程的PID 信息,并通过向系统管理子系统询问,得知该主体是否是合法的主体。这样,访问控制中的 主体、客体、操作三个元素就都具备了。此时,便可以依据安全策略对操作系统中的访问请 求实施判定。
b、通过进程与资源的绑定方式,实现资源的安全隔离。比如,某重要Tomcat数据 库应用系统,则只允许Tomcat进程访问,其他进程对该资源的访问一概禁止,这样就实现 了对该资源的安全隔离。
(3)审计子系统
系统初始启动时I^riKernel通过I^sCreateSystemThread —个审计线程,并构建 LIST ENTRY结构的审计队列。
a、在系统中的关键访问控制点挂载审计钩子函数,如对文件的读、写、改名、删除, 程序启动,进程创建等;通过钩子函数记录相应的审计信息,并将审计记录存放到LIST_ ENTRY结构的审计队列中。
b、审计线程通过定时轮询审计队列的方式,将审计队列中的信息,写入审计日志 文件。前面所述的安全隔离机制,可以实现对审计子系统的审计日志的保护,只有专门负责 审计管理的人员才可以通过ConfgTool程序实现对审计日志的查看及维护,任何其他对审 计日志的操作都会被禁止。
C、审计日志的结构包括时间、用户、进程、客体、操作结果、系统管理判定结果,安 全管理判定结果。
权利要求
1.一种基于三权分立的操作系统体系结构,其特征在于所述的操作系统的权限被分 为系统管理权、安全管理权、安全审计权;系统管理权对应于操作系统中的管理子系统,安 全安全管理权对应于操作系统中的安全管理子系统,安全审计权对应于操作系统中的审计 子系统;删除管理员,将登录操作系统进行实际操作的用户命名为操作员;所述的管理子系统由可信度量、可信服务、可信基准库和可信判定组成,操作系统管理 子系统主要对系统中的硬件配置信息、软件配置信息、用户身份信息等进行管理;其中,可 信基准库负责信息存储,利用可信度量机制等对系统中的主体,包括用户和进程,进行身份 的鉴别,可信服务则为应用提供相应的可信支撑;所述的安全管理子系统判定系统中的访问请求是否符合安全策略,安全管理子系统由 访问控制、安全隔离、安全策略和安全判定组成;所述的安全审计子系统负责记录系统中的行为,并对系统管理子系统和安全管理子系 统的工作情况进行审计。
2.一种基于三权分立的操作系统体系结构的实现方法,其特征在于在通用的 WINDOWS操作系统中,构建系统管理子系统、安全管理子系统、审计子系统;利用应用层的策略配置工具,为三个子系统提供不同的策略配置界面,策略配置工具 完成策略配置后,生成相应的策略文件,并且以消息通信的方式通知安全内核加载;运行在WINDOWS内核层的安全内核采用文件过滤驱动程序,完成本发明的三权分立的 控制体系,在加载安全策略后,通过上层可信代理,截获操作系统应用层与底层文件系统间 的通信信息,然后送至三权分立的三个子系统进行判定;安全内核作为系统驱动,以服务的 方式加载,截获系统输入输出管理器发出的输入输出请求包,实现前面所述体系;在安全内 核中,上层代理通过系统钩子机制挂钩ZwCreatekction操作,以获得程序的启动请求;通 过WINDOWS文件过滤驱动提供的两个派遣例程IRP_MJ_CREATE和IRP_MJ_SET_INF0RMATI0N 获得对文件的访问请求;所述的系统管理子系统包括以下步骤a、系统初始时,为每一个用户配发一个USB-KEY,系统管理子系统通过作为用户身份唯 一标识的USB-KEY实现对用户身份的鉴别;每一项白名单的数据结构是(用户名,程序全路 径名,摘要值),所有的可执行程序文件在系统初始时,采用通用的杂凑算法SHAl算法收集 其摘要值,建立用户与程序的对应关系,每个程序可以赋给所有用户,也可赋给某一用户, 在安全内核的文件过滤驱动中,通过WINDOWS提供的RegmonMapkrviceTable获得对程序 往内存中加载处的挂钩;b、配置工具与安全内核协商形成加解密的密钥文件,该文件被隔离保护,禁止任何进 程或程序对其进行读取、修改操作;所述的安全管理子系统包括以下步骤系统启动时,安全策略加载到安全内核开辟的内存链表中;a、通过派遣函数例程IRP_MJ_CREATE和IRP_MJ_SET_INF0RMATI0N获得系统中的访问 控制请求,解析输入输出请求包,获得访问操作的类型;通过解析文件对象获得要被访问的 客体;通过I^sGetCurrentProcessId函数获得当前进程的进程标识信息,并通过向系统管 理子系统询问,得知该主体是否为合法的主体;依据安全策略对操作系统中的访问请求实 施判定;b、通过进程与资源的绑定方式,实现资源的安全隔离; 所述的审计子系统包括以下步骤系统初始启动时安全内核通过I^sCreateSystemThread —个审计线程,并构建链表结 构的审计队列;a、在系统中的关键访问控制点挂载审计钩子函数,通过钩子函数记录相应的审计信 息,并将审计记录存放到审计队列中;b、审计线程通过定时轮询审计队列的方式,将审计队列中的信息,写入审计日志文件;C、审计日志的结构包括时间、用户、进程、客体、操作结果、系统管理判定结果、安全管 理判定结果。
全文摘要
一种基于三权分立的操作系统体系结构及实现方法,其权限被分为系统管理权、安全管理权、安全审计权;系统管理权对应于操作系统中的管理子系统,安全安全管理权对应于操作系统中的安全管理子系统,安全审计权对应于操作系统中的审计子系统;删除管理员,将登录操作系统进行实际操作的用户命名为操作员;运行在WINDOWS内核层的文件过滤驱动程序PriKernel,完成三权分立的控制体系,在加载安全策略后,通过上层可信代理,截获操作系统应用层与底层文件系统间的通信信息,然后送至三权分立的三个子系统进行判定;彻底去除了管理员角色,实现了权限分离。降低了管理员误判导致的系统安全事故,也禁止了管理员由于某种目的而进行的非法操作。
文档编号G06F21/20GK102034052SQ201010579978
公开日2011年4月27日 申请日期2010年12月3日 优先权日2010年12月3日
发明者李瑜, 赵勇, 韩培胜 申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1