一种内核级的桌面访问控制方法

文档序号:6384278阅读:207来源:国知局
专利名称:一种内核级的桌面访问控制方法
技术领域
本发明涉及属于计算机信息管理领域,具体地讲,涉及一种内核级的桌面访问控 制方法,基于桌面交付环境下,对终端用户的桌面和应用程序进行管控的解决方案。
背景技术
信息化飞速发展的今天,企业IT平台基础架构也在不断进行变革,从传统的“分 散的PC系统”逐步升级为“客户机/服务器”体系。瘦客户机和云终端是该体系下的终端 设备,是无强大计算资源、无本地存储、无软驱、光驱等设备的简化计算机,它可以利用强大 的服务器软、硬件资源进行本地计算,多个用户使用终端可以同时远程访问服务器分发的 桌面环境进行办公。终端设备具有易管理、故障率低、绿色环保、安全性高等特点,在企业、 政府机构广泛应用。
终端主要是通过远程桌面客户端,访问Windows服务器来使用服务器上的桌面应 用,用户看到的和使用的都是服务器的资源,终端仅仅将用户的鼠标、键盘等外设的I/o信 号传输到服务端,然后在服务端将屏幕图形变化数据反馈到终端进行显示。
目前,广泛使用的桌面交付协议包括VMWare的PCoIP (PCoverIP)Xitrix的ICA (Independent Computing Architecture)和微软的 RDP (Remote Desktop Protocol),这 些技术都提供了将服务器端的桌面交付给终端,让用户如同使用本地操作系统一样使用远 程的服务端的功能。基于桌面交付协议,再加上模板池、桌面池、动态负载均衡、网络流量优 化、设备重定向、多媒体交付等功能,就形成了桌面虚拟化架构。
基于桌面虚拟化架构,管理员可以根据企业不同部门的需求,定制不同的桌面(工 作环境)。比如,财务部的用户需要使用财务软件,但无需使用市场分析软件,则管理员在后 台可以为财务部设置财务部桌面模板,将财务软件放置在该模板下,将类似市场分析软件 等无关软件从模板出去除,基于该模板将桌面交付到桌面池中。当财务部员工访问桌面时, 得到的就是自己所需要的工作环境。
这种创新的企业IT架构提供了根据企业自身的IT管理制度及标准,从基础层面 上规范了企业内部员工的业务操作,避免了不必要的安全风险,提升了企业业务的运营效 率。但是基于桌面交付的管控还停留在操作系统的应用层上,用户还是可以用各种方式轻 而易举地破解,比如,使用资源管理器或快捷方式直接执行服务器内安装的但没有交付到 桌面的应用软件;比如,企业的业务系统很多都需要管理员权限去运行,而用户获得该权限 即可对系统进行随心所欲的修改,从而导致管控无效。
这种现状就产生了如下需求在桌面交付架构的环境下,开发基于操作系统内核 层的应用管控模块来对用户行为进行管控,防止用户非法运行安装在服务器内但没有交付 到桌面的应用程序。发明内容
本发明要解决的技术问题是提供一种内核级的桌面访问控制方法,能够对企业用户的信息化办公环境进行统一管控,禁止非法程序运行。
(1. 2. 2)创建与应用管控驱动的通信端口 ;
(1.2.3)启动策略应用服务;
(1. 2. 4)发送“启动”消息给应用管控驱动,使其生效。
作为对本技术方案的进一步限定,所述步骤(1. 3)包括如下步骤
(1. 3.1)当用户启动应用程序时,应用管控驱动拦截I/O请求;
(1. 3. 2)应用管控驱动获取用户会话特征和当前拦截的进程特征;
(1.3.3)将获取的特征信息封装成消息发送给策略应用驱动。
作为对本技术方案的进一步限定,所述步骤(1. 4)包括如下步骤
(1. 4.1)策略应用服务对收到的用户会话和进程特征进行识别和匹配;
(1. 4. 2)将匹配结果封装成消息发送回应用管控驱动。
作为对本技术方案的进一步限定,所述步骤(1. 3. 3)包括如下步骤
(1. 3. 3.1)读取该程序文件的部分数据或者全部数据;
(1. 3. 3. 2)计算该部分数据的摘要值;
(1. 3. 3. 3)将该摘要值作为识别进程的主要标志。
与现有技术相比,本发明的优点和积极效果是本发明在通用的桌面交付的环境 下,通过集成进基于内核过滤技术的应用管控驱动程序和对应的策略应用服务,达到对终 端用户在虚拟桌面环境下所使用的应用程序进行管控的目的,防止用户绕过IT管理员定 制的访问策略。本发明在内核层实行强制管控,因此安全性高、性能出众,同时兼容性强。


图1是本发明的软件总体架构图2是策略应用服务的子模块框架图3是进程识别属性图,描述在本发明中如何对一个用户态进程进行准确、安全 地识别;
图4用户会话识别属性图,描述在本发明中如何对一个用户会话进行准确、安全 地识别;
图5是应用管控驱动模型图,描述基于微过滤器模型的应用管控驱动的原理模 型;
图6是分层过滤模型图,描述I/O请求的分层处理模型;
图7是I/O管控模型图,描述应用管控驱动对“创建进程”请求进行管控的过程;
图8是系统运行流程图,描述模块间的交互和运行流程。
具体实施方式
下面结合附图和优选实施例对本发明作更进一步的详细描述。
参见图1-图8,本发明包含应用管控驱动和策略应用服务两部分,其总体结构如 图1所示。应用管控驱动运行在桌面服务器的Windows内核层,当用户打开应用程序时, 其截获操作系统进程的创建I/O请求,并将该进程特征和用户会话特征提供给策略应用服 务,策略应用服务根据管理员配置的桌面应用策略进行判断;若该用户拥有访问权限,则通 知应用管控驱动程序继续执行I/O操作;若该用户没有访问权限,则通知应用管控驱动程 序将该进程创建的I/O请求丢弃,直接返回。
所述的策略应用服务包括驱动通信子模块和访问策略子模块,如图2所示。所述 的驱动通信子模块用于应用态和内核态间的信息传递,将应用管控驱动截获的进程特征和 用户会话特征传输给策略应用服务,并将策略应用服务匹配的结果传输给应用管控驱动, 告诉驱动对当前进程的I/o请求是放行还是丢弃。所述的访问策略子模块用于更新管理员 配置的访问策略,并且为应用管控驱动的控制行为提供策略依据。
所述的进程特征在通常情况下由进程ID和进程名所定义。前者基于ID的定义 方式并不是永久对应,操作系统是每次在进程启动时才为其分配ID,不同时刻的不同进程 有可能分配到同一个ID ;而后者基于名称的定义方式并不可靠,因为进程名可以被用户篡 改,均无法作为全局唯一的进程特征。本发明提供了另一种识别进程的方法,如图3所示 计算进程在内存中映像的部分数据或全部数据的摘要值作为其特征,由于进程在内存中的 映像数据是该进程运行的依据,是其独一无二的特征,通过摘要算法获取的特征值可以用 来识别进程,防止误判。
所述的用户会话特征由用户SID (Security Identifier)和Session ID所构成, 如图4所示。用户SIDjP Windows系统中用户唯一的全局识别号,在用户帐号创建时,由操 作系统分配,用于和系统权限等安全属性进行绑定;用户Session ID,用户每次登录进系统 时,由Windows终端服务(Terminal Server)分配的会话ID,用于标识当前用户所在的桌面 会话环境。
所述的应用管控驱动程序基于Windows新一代的文件系统过滤模型——微过滤器 (Minifilter)实现。该模型如图5所示,其原理为用户对磁盘上文件的创建、打开、读、写等操作由WIN32子系统调用相应的服务来代表该进程发出请求操作。位于内核的I/O管理 器接收到上层传来的应用程序对磁盘发出的I/O请求。在进行读写磁盘数据的时候,缓存 管理器会保存最近的磁盘存取记录,所以在接收到应用程序读写磁盘的操作请求后,I/O管 理器会先检查所访问的数据是否保存在缓存中,若缓存中有要访问的数据,I/O管理器会构 造Fast I/O请求包,从缓存中直接存取数据;如果所需数据不在缓存中,I/O管理器会构造 相应的IRP (I/O Request Package,I/O请求包),然后发往文件系统驱动,同时缓存管理器 会保存相应的记录。因此,过滤管理器有两组接口处理由I/O管理器发送来的用户模式应 用程序操作请求一组是普通的处理IRP的分发函数;另一组是处理Fastl/Ο的分发函数; 通过构造I/O请求包IRP来描述这个请求,然后向下传递给文件系统驱动、存储设备驱动做 后续处理,低层驱动处理完毕后把结果依次向上返回,最后经过I/O管理器,由WIN32子系 统把结果返回给发出请求的应用进程,整个对文件的操作请求执行完毕。Windows的I/O管 理器是可扩展结构,支持分层驱动模型,其结构如图6所示。I/O管理器在发送文件操作请 求到目标设备对象之前,会检查是否有附加的设备对象挂载在目标设备之上,若有,则把该 IRP先发送给附加设备,经附加设备所属驱动程序的处理后,再发送给目标设备完成操作请 求。通过微过滤器构造的附加设备对象挂载在文件系统的存储设备之上,截获所需的IRP 进行处理,然后再继续向下传递或直接向上返回结果。
所述的对进程创建的I/O请求的控制,如图7所示,是对Windows I/O管理器构造 的IRP_MJ_CREATE的控制。所述的对其放行是指在应用管控驱动截获IRP_MJ_CREATE请求 后,将其沿设备实例栈向下传递该请求给其它注册的微过滤器、文件系统过滤驱动或者文 件系统驱动来处理;所述的丢弃是指在应用管控驱动截获IRP_MJ_CREATE请求后,将其丢 弃,不传递该请求到下层设备实例上,同时返回,标志该I/O操作生命周期的完结。
以下实施方案具体实现了在桌面交付环境下对终端用户的桌面应用进行访问控 制的过程,基于内核的分层过滤模型对用户创建进程的I/o请求进行拦截,根据管理员定 义的访问策略,判断当前用户是否有权限创建当前进程,根据匹配结果,对I/o请求进行放 行或者阻断。
具体实施过程如下所示
(I)在提供桌面服务的Windows操作系统下,启动应用管控驱动,设置创建进程I/ O对应的IRP_MJ_CREATE过滤函数,设置微过滤器运行参数,防止用户强制卸载驱动;
(2)注册微过滤器对象并启动微过滤器;
(3)注册微过滤器的消息处理函数,包括连接消息通道、断开消息通道、消息处理 回调函数;
(4)创建微过滤器与应用态的通信端口,同时设置并发连接数;
(5)应用管控驱动等待策略应用服务启动完成;
(6)在提供桌面服务的Windows操作系统下,启动策略应用服务;
(7)根据桌面交付管理服务的API接口,同步用户-应用权限列表,该列表保存了 每个系统用户所允许使用的应用程序的特征库;
(8)创建应用态和微过滤器的通信端口 ;
(9)创建“策略应用服务启动完毕”消息,发送给微过滤器;
( 10)监听通信端口,等待微过滤器的请求消息,该请求消息包含用户会话特征和创建进程特征,微过滤器通过该消息来让策略应用服务判断,是否对当前进程创建I/O请 求进行放行或者阻断;
(11)微过滤器收到“策略应用服务启动完毕”消息,开始过滤IRP_MJ_CREATE,即 进程创建的I/o请求;
(12)用户登录系统,打开某应用程序(比如,notepad, exe);
(13)操作系统I/O管理器,创建对应的IRP_MJ_CREATE,并将该IRP沿I/O设备对 象栈下发;
(14)应用管控驱动拦截该IRP,调用之前注册的过滤函数,对该IRP进行处理;
(15)在该IRP的上下文环境下,获取当前用户会话特征,包含该用户的SID和 Session ID;
(16)获取将要打开的进程的特征,包含进程ID、进程名、进程映像的摘要;
(17)封装当前用户会话特征和进程特征,作为通信消息发送给策略应用服务;
(18)等待策略应用服务的反馈消息;
(19)策略应用服务,读取用户-应用权限列表,逐项匹配,将匹配结果作为反馈发 送回应用管控驱动;
(20)应用管控驱动收到反馈,判断反馈结果;
(21)若对该IRP放行,则沿I/O驱动对象栈下发该IRP,等到IRP完成后,用户将 能够直接打开该应用程序进行操作;若对该IRP阻断,则设置IRP状态属性为“无权访问”, 同时返回I/O请求已完成的状态,将其丢弃,用户将收到“无权访问”的警告窗口,同时无法 打开应用程序。
当然,上述说明并非对本发明的限制,本发明也不仅限于上述举例,本技术领域的 普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也属于本发明的保 护范围。
权利要求
1.一种内核级的桌面访问控制方法,其特征在于,包括如下步骤(1.1)在桌面交付过程中,加载基于内核过滤驱动实现应用管控驱动;(1.2)加载并启动策略应用服务;(1. 3)应用管控驱动对进程创建进行过滤;(1. 4)策略应用服务对用户会话和进程进行识别和匹配;(1. 5)应用管控驱动根据匹配结果确定放行或者阻断;(1. 6)返回步骤(1. 3),继续进行过滤。
2.根据权利要求1所述的内核级的桌面访问控制方法,其特征在于,所述步骤(1.1)包括如下步骤(1.1.1)配置IRP过滤函数,用于对创建进程的I/O请求进行过滤;(1.1. 2)设置驱动的运行参数,让该驱动实例无法强制卸载,保证运行状态;(1.1. 3)启动过滤驱动;(1.1. 4)注册与策略应用服务交互的消息处理函数;(1.1. 5)创建与策略应用服务的通信端口 ;(1.1. 6)等待策略应用服务的启动。
3.根据权利要求1所述的内核级的桌面访问控制方法,其特征在于,所述步骤(1.2)包括如下步骤(1. 2.1)从桌面交付管理端获取用户-应用访问控制列表,该列表保存了每个系统用户所允许使用的应用程序的特征库;(1.2.2)创建与应用管控驱动的通信端口;(1.2. 3)启动策略应用服务;(1. 2. 4)发送“启动”消息给应用管控驱动,使其生效。
4.根据权利要求1所述的内核级的桌面访问控制方法,其特征在于,所述步骤(1.3)包括如下步骤(1.3.1)当用户启动应用程序时,应用管控驱动拦截I/O请求;(1. 3. 2)应用管控驱动获取用户会话特征;(1. 3. 3)应用管控驱动获取当前拦截的进程特征;(1. 3. 4)将获取的特征信息封装成消息发送给策略应用驱动。
5.根据权利要求1所述的内核级的桌面访问控制方法,其特征在于,所述步骤(1.4)包括如下步骤(1. 4.1)策略应用服务对收到的用户会话和进程特征进行识别和匹配;(1. 4. 2)将匹配结果封装成消息发送回应用管控驱动。
6.根据权利要求5所述的内核级的桌面访问控制方法,其特征在于,所述步骤(1.3. 3)包括如下步骤(1.3. 3.1)读取该程序文件的部分数据或者全部数据;(1. 3. 3. 2)计算该部分数据的摘要值;(1. 3. 3. 3)将该摘要值作为识别进程的主要标志。
全文摘要
本发明公开了一种内核级的桌面访问控制方法,属于信息管理领域,包括如下模块(1)位于内核层的应用管控驱动,该驱动基于Windows过滤管理器实现,负责对桌面应用的访问实施强制访问控制;(2)位于应用层由驱动通信子模块和访问策略子模块所构成的策略应用服务,该服务通过与桌面虚拟化服务端通信,获取用户对应的桌面配置策略,根据策略定义,对应用管控驱动进行控制,使其生效。本发明在桌面交付架构的环境下,提供了基于操作系统内核层的应用管控模块来对用户行为进行管控的方法,防止用户非法运行安装在服务器内但没有交付到桌面的应用程序。本发明基于操作系统内核层的过滤管理器实现,在系统底层保证了访问控制的强制性,其实现安全高效、应用性广。
文档编号G06F21/50GK103034799SQ201210543979
公开日2013年4月10日 申请日期2012年12月14日 优先权日2012年12月14日
发明者马力, 任勋益, 孔强, 陈丹伟, 万海山 申请人:南京中孚信息技术有限公司, 山东中孚信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1