本发明专利技术公开了一种基于Windows平台的强制访问控制装置及控制方法,所述系统包括监控模块,其特征在于在Windows平台上能够实现对进程,文件,注册表的访问控制,通过拦截访问控制的主体对客体的访问请求,并提供给核心安全服务器用于安全判断;所述核心安全服务器根据强制访问控制的安全规则进行权限的判断,并返回结果给监控模块来实现。本发明专利技术使windows系统访问控制的决策不依赖于主体,而是通过安全策略比较主体和客体的安全标识符来确定是否允许访问。兼容了Windows自带的自主访问控制机制,同时比原有的这种机制具有更高的安全等级。
【技术实现步骤摘要】
本专利技术属于安全操作系统领域,涉及一种Windows系统的安全加固方法,具体涉及一种基于Windows平台的强制访问控制系统及控制方法,可以实现对Windows系统的强制访问控制。
技术介绍
是现今广泛使用的操作系统之一,它的安全性也成为广大用户所关心和担忧的问题。Windows操作系统自带的自主访问控制功能是Windows系统安全保障机制的核心内容, 它通过安全子系统关键组件来对系统敏感资源进行访问控制。自主访问控制机制的基本思想是拥有客体的主体能够随意为其他主体分配对该客体的访问控制权限。这种机制对于主体用户而言有极大的自主性和灵活性,但是提供的安全防护相对比较低,因此无法抵御特洛伊木马之类的攻击。通过对目前市场上流行的安全产品进行统计和分析发现,目前专门针对Windows系统的安全产品如防火墙和杀毒软件,大都是以用户层的应用程序来运行, 可以对系统外围的环境起到防御的作用,但是对提高系统自身的安全性作用非常有限。所以从内核态对Windows系统进行监控有着非常重要的意义。
技术实现思路
本专利技术目的在于提供一种基于Windows平台的强制访问控制系统,解决了 Windows操作系统自主访问控制机制监控力度不足所导致的安全问题。为了解决现有技术中的这些问题,本专利技术提供的技术方案是一种基于Windows平台的强制访问控制装置,包括用于截获Windows应用程序通过系统调用访问Windows系统内核对象的请求的监控模块和用于判断请求合法性与否的核心安全服务器,其特征在于所述监控模块和核心安全服务器均设置在Windows系统内核层,监控模块截获操作系统进程对内核对象的访问请求,并提供给核心安全服务器进行策略判断;核心安全服务器进行权限判定后,监控模块根据安全服务器的判断结果许可访问 Windows系统内核对象请求与否,若允许,则执行原来的系统调用;若拒绝,则直接返回。优选的,监控模块截获的请求对象选自Windows应用程序通过系统调用访问的文件对象、进程对象、线程对象或注册表对象的任何一种或两种以上的任意组合。优选的,所述监控模块包括进程监控子模块,文件监控子模块和注册表监控子模块;所述进程监控子模块用于独立地处理对进程对象或线程对象访问的控制,所述文件监控子模块和注册表监控子模块均需要调用进程监控子模块来完成对文件对象和注册表对象访问的控制。优选的,所述监控模块为采用内核级Hook技术的内核SSDT-H00K模块,所述进程监控子模块的Hook集用于监控创建进程、打开进程、终止进程、创建线程、打开线程、终止线程;所述文件监控子模块的Hook集用于监控创建或打开文件、打开文件、删除或重命名文件、设置文件的扩展属性;所述注册表监控子模块的Hook集用于监控创建或打开注册表项、打开注册表项、删除注册表项、添加或设置注册表键、删除注册表键。优选的,所述核心安全服务器用于管理内核对象的安全上下文,处理进程强制访问控制系统的判定请求并返回决策的结果。优选的,所述核心安全服务器根据访问对象的不同按照DTE安全模型形成用于不同对象的策略判断的二进制文件。本专利技术还提供了一种基于Windows平台的强制访问控制方法,其特征在于所述方法由在Windows系统内核层设置的监控模块和核心安全服务器控制,所述方法包括以下步骤(1)Windows应用程序通过系统调用向Windows系统内核对象发送访问请求;(2)监控模块截获Windows操作系统进程对内核对象的访问请求,并提供给核心安全服务器进行策略判断;(3)核心安全服务器进行权限判定后,监控模块根据安全服务器的判断结果许可访问对象请求与否,若允许,则执行原来的系统调用,若拒绝,则直接返回。 优选的,当访问的内核对象为进程对象或线程对象时,监控模块对进程对象或线程对象添加安全标识符,并通过读取核心安全服务器根据进程对象或线程对象的规则创建的二进制文件对安全标识符进行设置。优选的,所述监控模块为采用内核级Hook技术的内核SSDT-H00K模块,用于监控生命周期内的访问对象。本专利技术强制访问控制装置的总体框架如图1所示,包含核心安全服务器和监控模块。总体的执行流程如图2,分为三个步骤(1)用户级进程通过系统调用向Windows内核模块发送访问请求;(2)监控模块截获操作系统进程对内核对象的访问请求,并提供给核心安全服务器进行策略判断;(3)核心安全服务器进行权限判定后,监控模块根据安全服务器的判断结果许可访问对象请求与否,若允许,则执行原来的系统调用,若拒绝,则直接返回。核心安全服务器的主要任务是管理内核对象的安全上下文,处理进程强制访问控制系统的判定请求并返回决策的结果。监控模块包括三个子模块进程监控子模块,文件监控子模块和注册表监控子模块,分别完成对进程,文件,注册表访问的强制访问控制功能。进程监控子模块可以独立地处理对进程访问的控制,文件监控子模块和注册表监控子模块则需要调用进程监控子模块来完成对文件和注册表访问的控制。这三个子模块的实现都可以分为管理内核对象的安全标识符与设置Η00Κ函数监控内核操作函数两个部分来完成。核心安全服务器可以根据进程对象或线程对象的安全标识符以及安全标识符的赋予规则、域转移规则以及其他规则形成策略判断的二进制文件;核心安全服务器根据DTE安全模型确定注册表对象的安全标识符的内容。一管理内核对象的安全标识符 a. 进程对象(1)安全标识符内容的确定安全标识符是访问控制机制中的主要安全特性之一。安全标识符,也称作安全属性,是对系统对象的安全性的描述。安全标识符的内容是由DTE (Domain and Type Enforcement)模型的策略来决定的。DTE模型赋予了主体不同的域(Domain),客体不同的型(Type)来进行访问控制,从一个域访问另一个域或是从一个域访问不同的型都需要DTE 策略的判断。对于进程对象来说,安全标识符的内容即是域的内容,是由一个整型的非负数来代表的。存放安全标识符的策略或文件的获取安全标识符的内容是有核心安全服务器CSS的策略来决定的,所有主客体对象的安全标识符也都是由CSS提供一个文件来获取的。CSS将进程的安全标识符以及安全标识符的赋予规则,域转移规则以及其他的规则写进一个二进制的策略文件policy, db,然后提供给进程强制访问控制系统。当需要获取这个文件时,进程强制访问控制系统会加载这个二进制的策略文件policy, db来得到0号进程的安全标识符,之后每次新创建的进程的安全标识符都是根据这个策略文件的策略规则来自动生成的。安全标识符存储方案的描述与确定在进程监控子模块里需要对进程对象和线程对象添加安全标识符。在Windows系统中,线程不仅是系统实际的调度单位,而且是轻量级的操作,又因为属于同一进程的所有线程都拥有同样的进程环境块,所以线程对象完全可以继承所属的进程的安全标识符。对进程的安全标识符的存储是通过维护一个双向链表来实现的。这个双向链表的结点是一个自定义的数据结构,里面存储了安全标识符与对应的进程的名字,这个数据结构被作为安全标识符与进程的对应关系挂接到链表中。对于线程对象的安全标识符而言,线程的安全标识符是继承了所属进程的安全标识符。安全标识符设置对于进程对象来说,在每个进程(系统进程或本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:杨峰,陶园,李桄宇,
申请(专利权)人:苏州凌霄科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。