一种面向实时数据库的独立透明型安全审计保护的方法

文档序号:6355277阅读:570来源:国知局
专利名称:一种面向实时数据库的独立透明型安全审计保护的方法
技术领域
本发明涉及安全审计技术,特别是指一种适用并且独立于实时数据库的安全审计技术。
背景技术
实时数据库作为工业企业信息化过程的基础,其广泛应用在电力、石化、控制系统中,这些系统所保存的大量信息需要被不同安全权限的多个用户共享。在这些应用中,事务和数据有不同的安全级别,直接/间接的非法信息访问都有可能泄露国家机密、造成重大事故和经济损失。置身于当今世界这个竞争异常激烈的舞台,很多企业尤其是掌握领先技术的企业,作为其技术实际体现的生产工艺往往是企业的根本利益,一些关键生产过程的流程工艺乃至运行参数都有可能成为对手窃取的目标,如何保证这些数据的安全成为企业生存发展的前提。但是,实时数据库的实时处理过程非常复杂,除了要满足传统数据库的一致性需求外,它的时间限制是正确性标准的不可或缺的一个完整部分。它的性能目标就是使错过截止时间的事务数据减到最小,这造成了在实时数据库中实时性和安全性是相互冲突的。也正是因为这个原因,传统的实时数据库很少或者根本没有安全性限制保护和审计系统。这种薄弱的安全保护机制,存在很多漏洞,并不能阻挡所有的攻击或者非法入侵,非法用户可以通过系统的漏洞访问到受保护的数据。另外,系统自身的完整性约束对于那些已经通过授权认证的误操作控制能力很弱,这需要审计系统的帮助。

发明内容
有鉴于此,本发明的主要目的在于为实时数据库增加一种独立自主的安全审计的方法,目标是把安全审计与实时数据库系统结合起来,进一步加强实时数据库的安全保护。为了达到上述目的,本发明提供一种增加安全审计的方法,该方法包括独立透明型安全审计的加载和卸载方法;将安全审计中核心的、和实时数据库服务性能关系密切的功能独立出来,采用分离式部署提高安全审计整体性能,实现统一管理;通过划分安全区实现基于角色的权限管理,结合特殊的二维权限表实现高效的访问控制;粗细粒度结合的策略,基于接口导出序号的规则配置方式,根据配置信息,对访问控制和审计进行配置或修改配置,对于没有新配置的默认采用上一次的配置;按照不同阶段设计不同的日志格式,特别的,通过位操作快速生成由两个32位整数组成的原始日志信息;利用线程间消息传递方法将原始的日志信息发送给预处理线程,线程接收到原始日志信息后,进行初步封装形成预处理的日志记录;管理控制中心得到预处理的日志记录后,一方面进行报警判断,另一方面将其继续解析生成人员可识别的日志记录,并使用归并排序将所有日志记录按时间进行排序;引入缓冲池并对其进行有效管理,将排好序的日志记录存入缓冲池中,通过快操作提高写日志文件的速度。为日志记录创建B-树索引,提高日志的查询效率。较佳地,所述透明型安全审计的加载和卸载的方法包括需要加载时,启动管理控制中心,使能侦听器;需要卸载时,只需关闭管理控制中心即可;以实时数据库导出给应用系统的接口为切入点使得安全审计不依赖于具体的实时数据库,通过为需要控制的接口提供对应的安全保护函数,安全审计加载后,使用HOOK IAT技术将接口地址替换为安全保护函数,为实时数据库增加安全审计功能。较佳地,所述的HOOK IAT技术实际属于HOOK API技术中的一种,另外还有一种是直接将接口函数首地址的头五个字节内容改为机器码形式的跳转指令,跳转地址即为安全保护函数的地址。这两种技术相比,HOOK IAT效率最高,所以采用它。具体改写修改接口地址的步骤包括使用远程线程注射技术将侦听器注射到应用系统进程中,分析应用系统程序的的进程映像,从中找出加载的接口模块并进一步找出模块接口在应用系统程序,根据接口的导出序号直接确定接口在应用系统导入地址表中的位置;用接口对应的安全保护函数的地址替换接口地址;将接口地址保存起来,以便安检通过后调用。较佳地,查找接口在应用系统进程中导入地址表的位置还有另一种方法根据接口的名字,使用Kernel32提供的GetProcAddress获得接口的导入地址,然后在导入地址表中一一比较,直到在表中找到为止。很显然,这种方法效率极其低下,故弃用之。较佳地,所述安全保护函数的构造过程包括根据对应的接口,可以在安全保护函数中直接确定用户要做的操作;分析系统调用栈结构,使用汇编指令mov eax, dword
ptr [ebp+n]和mov dwordptr [pParam], eax从系统调用栈中--获取接口的参数信息;根
据参数信息判断是否开启访问控制开关,如果开启根据已获得的参数信息查询用户的二维权限表,进行快速权限校验,校验通过调用原接口,提供实时数据库服务,否则拒绝调用,如果没有开启直接调用原接口 ;判断是否开启审计开关,如果开启,将参数中的对象信息、操作信息以及接口执行结果等通过与、或位运算形成两个32位的整数类型的原始日志记录数据,并作为消息发送给日志预处理线程。较佳地,所述二维权限表的构造方法包括确定系统的动作集,作为权限表的列;获取用户拥有的角色,从角色中得到用户涉及的安全区,合并所有安全区中的点作为用户相关对象,作为权限表的行;从角色中获取用户对安全区中点的可执行的操作,并置表中对应位置置1,不可执行的操作在对应位置置O ;表建立后再以点ID和动作位置作为键值为二维权限表建立Hash索引,使权限表具备随机访问的特性。较佳地,所述利用二维权限表进行权限判断的步骤包括根据点ID和操作位置直接从二维表中取出权限数据,如果为I则安检通过,否则安检失败。较佳地,所述生成的原始日志记录格式为低32位记录日志的主要信息,从高到低依次为对象标识、动作标识、操作结果、事件类型、对象类型及告警级别;高32位记录操作错误码,通过该错误码可以获取错误信息;较佳地,所述使用线程消息传递方法采集原始日志数据包括将原始日志信 息的低32位作为消息的wParam参数,将高32位数据作为消息的IParam参数,使用PostThreadMessage消息传递函数发送给日志信息预处理线程;
较佳地,所述初步封装的步骤包括根据消息发送时间设置日志记录的时间戳,并将其存入通信缓冲区中。当缓冲区中的日志数据满后,连同应用系统ip地址、程序名、计算机名、用户id等信息通过管道、共享内存、socket等通讯方式发送给管理控制中心;较佳地,所述采用分离式部署提高安全审计整体性能包括把安全审计功能分为两部分,将其中最直接影响实时数据库服务性能也是比较核心的访问控制和日志信息采集独立出来作为侦听器,将剩余比较耗时的功能如配置管理、日志文件读写、日志分析、界面支持等作为管理控制中心。这样部署通过操作分离既提高了安全审计的可扩展性,又能最大程度的满足实时数据库对时间的要求。较佳地,所述划分安全区实现基于角色的权限管理包括角色是建立在系统中划分的安全区之上,角色和某个或某些安全区对应,它描述了拥有该角色的用户可以对安全区内点所做的操作;安全区是认为划分的若干区域,具体可以根据对象逻辑功能进行划分 也可以根据对象所在物理区域如对象所属工段、车间进行划分等;采用基于角色的权限管理方式,系统安全员可以给用户赋予相应的角色使用户具有特定的访问权限,当有对象需要保护时,根据保护要求建立一个安全区,将他们安全区中。用户访问这些受保护对象时,会进行安全区校验并以此来限制用户对这些对象的操作。较佳地,所述粗细粒度结合的策略及安全灵活的规则配置方式包括安全员根据系统对操作的限定,制定访问控制规则,决定对哪些操作进行访问控制。审计从主体、客体、事件和特定程序三个角度分别定义了基于主体、基于客体、基于事件以及基于特定程序的审计条件,再加上用户和执行结果,这五种条件组成一条审计规则,凡是与过滤规则相匹配的事件才可以被审计。策略规则制定好后,以接口的导出序号为依据,侦听器对接口进行HOOK配置,考虑到接口个数一般不多,足以用一个30位的二进制数来表示,所以使用序号的高2位来表示审计和访问控制开关的打开情况,配置完接口后,开启或关闭相应接口的审计、访问控制开关;较佳地,所述进行归并排序主要由于从侦听器发送过来的日志数据的时间并不一定和到达先后一致,但每个侦听器发送过来的数据肯定是按时间有序的,所以要使整体数据有序,找们只需要进行归并排序就可以;较佳地,所述引入缓冲池并有效管理包括管理控制中心初始化时建立一个拥有一个内存块的内存池,内存块包含一些大小相等的内存页面,内存页面作为内存分配的最小单元;通过使用位图来管理所有未分配的内存页面,当出现申请页面时时,根据位图查找到第一个空闲的内存页面并分配出去,如果没有空闲页面时,利用链式LRU置换算法,回收一个内存页并分配,当发生页面置换的频率达到设定的阈值时,重新分配一个内存块。为了提高内存页面数据的命中率以及写日志文件的速度,将日志文件也划分为一页一页的,通过页表项建立文件页和内存页之间的关系,实现快速I/O; —个内存页面可能出现同时被读和写,为了保证数据的一致性这就需要进行同步保护,不同粒度的同步对性能的影响是不同的,根据日志数据具有只读的特性,尽量将对内存页的读写操作分开,故把内存页面划分为可用内存页面集、回写内存页面集、可置换内存页面集三个集合,这三个集合各自由一个静态的链表来管理。卸载安防审计保护后,系统现将需要回写到日志文件的内存页写入日志文件中,然后回收所有内存,并销毁缓冲池;较佳地,所属页面集的描述为可用内存页面集包含的页面是可以被申请使用的,也就是空闲页面集,页面被申请后,根据用途会被转移到不同的集合中;回写内存页面集包含的那些追加数据或有数据修改的页面,这些页面会有归档线程定期写回到文件中,当页面写满且归档后,会转移到可置换内存页面集中;可置换内存页面集中的页面主要用于提高日志信息查询。在内存页面用完后,通过LRU置换策略将最近未使用的页面转换出去。


图I所示为本发明提供的为实时数据库增加透明型安全审计保护的示意图;图2所示为本发明实施例一中安全保护函数的构造流程图;图3所示为本发明实施例二中二维权限表的构造过程图;图4所示为本发明实施例二中使用二维权限表进行访问控制的流程图;
图5所示为本发明实施例三中日志数据生成、处理、存储的过程图。图I所示为本发明的整体框架具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下面举具体实施例,对本发明作进一步详细的说明。本发明为实时数据库增加独立透明型安全审计保护的方法中,当启动安全审计功能之后,通过远程线程注射在应用系统中加入侦听器。根据安全员与审计员对访问控制和审计配置的策略规则,将应用系统进程映像中相关接口的地址替换为安全保护函数的地址,对用户的操作进行限制,并生成相应的日志记录信息。在本发明中为实时数据库增加安全审计时,主要考虑三个因素,一是对实时数据库服务性能的影响,二是功能自身的独立透明,三是功能自身的安全性及高效性。对服务性能影响的考虑是最重要的,对于实时数据库而言,减少错过截止期的事务数量是基本要求,如果在增加安全审计后,使其性能有明显的降低,对安全保护再好也是不可取的。在影响较小的前提下,需要考虑增加功能对用户带来的影响,采用独立透明型安全审计,可以在用户基本不受影响的情况下完成功能的增加。另外,在设计时,考虑方法本身的高效性和安全性也可以间接地增加实时数据库的安全减少对服务性能的影响。实施例一图I给出了为实时数据库增加透明型安全审计保护的示意图。增加安全审计之前,应用系统可以通过接口直接访问实时数据库,其操作不受任何限制,这对于数据保密性高的应用中是非常危险,如图I中黑字所示的数据流。增加安全审计之后,其功能分为两部分管理控制中心和侦听器,如图I颜色加重部分所示。管理控制中心一般随实时数据库一起启动,主要负责管理配置、日志读写与处理、界面支持等。默认状况下,访问控制和审计的开关是关闭的,需要有安全管理员和审计管理员开启。另外系统管理员可以设定安防服务器的默认配置。未开启安检和审计开关时,应用程序可以通过实时数据库的接口没有任何限制的访问实时数据库。开关开启后,会执行相应的权限校验和审计记录。在安检开关开启的状态下,管理控制中心会检查应用系统是否为受信任的程序。如果是受信任的程序则不对其进行访问控制,只是根据审计规则记录日志,及时发现其对实时数据库产生误操作。如果是非受信任的程序,则等待sensor发来的登录成功消息。在没收到消息之前,安防服务器会侦听实时数据库数据传输的端口,并且屏蔽掉未登录用户(通过IP判断,登录用户的IP会被管理控制中心保存在活跃用户信息链表中)发送来的请求操作信息,并提示用户运行sensor登录。成功登陆后,管理控制中心会将用户权限表及配置信息发送给sensor, sensor据此进 行接口配置和访问控制。此时,应用程序对实时数据库的访问流程发生了变化,它的操作请求首先会经访问控制进行权限校验,如果校验成功则调用实时数据库的服务,并根据审计策略决定是否采集审计信息。如果权限校验未通过,则拒绝应用程序的访问请求,并生成日志记录交由预处理线程对其预处理并存放在通信缓冲区中,最后将预处理日志信息交给管理控制中心进行处理。如图I中,红字所示的数据流。图2为实施例一中安全保护函数的构造示意图。如图2所示,构造安全保护函数的构造过程包括步骤201,根据对应的接口,可以在安全保护函数中直接确定一些已知信息,如用户要做的操作、事件类型、对象类型等;步骤202,分析系统调用栈的结构,使用汇编指令mov eax, dword ptr [ebp+n]和mov dword ptr [pParam], eax从系统调用栈中--获取接口的参数信息;步骤203,判断访问控制开关是否开启,如果开启进入步骤204,否则进入步骤208 ;步骤204,根据隐含的安全信息以及从参数中获取的对象信息,利用二维权限表进行访问控制判断;步骤205,根据访问控制判断的结果,如果允许进入206,否则进入步骤209 ;步骤206,以安检函数地址为键值,通过hash函数找到原接口的地址,调用原接口为应用系统提供服务;步骤207,判断审计开关是否开启,如果开启进入步骤209,否则安全保护函数结束;步骤208,直接调用原接口,为应用系统服务。因为只要对接口进行hook操作,也就意味着,针对接口要么开启了访问控制开关,要么开启了审计开关,要么两个开关都打开;步骤209,根据制定的审计规则决定是否生成原始日志记录;如果需要进入210,否则安全保护函数结束;步骤210,通过与、或位运算将日志记录映射到64位的整数上,并用两个32位整数存储,作为线程消息的数据寄送给日志预处理线程。实施例二 实施例二主要描述适用于实时数据库的访问控制方法图3为实例二中二维权限表构造流程图步骤301,确定系统的动作集,作为权限表的列。步骤302,获取用户拥有的角色。步骤303,从角色中得到用户涉及的安全区,合并所有安全区中的点作为用户相关对象,作为权限表的行;
步骤304,从角色中获取用户对安全区中点的可执行的操作,并置表中对应位置置1,不可执行的操作在对应位置置O ;步骤305,表建立后再以点ID作为键值为二维权限表建立行级Hash索引,散列函数采用除留取余法,通过对操作进行编号对列建立索引,使权限表具备随机访问的特性;图4为实例二中使用二维权限表进行访问控制的示意图。步骤401,从安全保护函数中获取参数、操作等信息,作为访问控制中的对象和动作;步骤402,根据对象ID,动作编号直接查询二维权限表,如果找到对应项,进入步骤403,否则拒绝用户的操作请求;
步骤403,判断对应的表项值是否为1,为I访问控制通过,否则拒绝用户的操作;实施例三图5为日志记录产生、处理、存储的过程示意图。步骤501,将安全保护函数中获取的参数信息、操作执行结果、已知信息,转化为整数形式,其中对象使用id表示,动作通过位置表示,类型数据编号存储;步骤502,通过位运算将日志记录映射到一个64位的整数上,使用两个无符号整形存储,具体格式为低32位记录日志的主要信息,从高到低依次为对象标识、动作标识、操作结果、事件类型、对象类型及告警级别;高32位记录操作错误码,通过该错误码可以获取错误信息。步骤503,原始记录生成后,将日志数据以线程消息数据参数的形式通过线程消息传递方法将数据寄送到日志预处理线程;步骤504,预处理线程接收到原始日志记录后,根据消息发送时间设置日志记录的时间戳,并将其存入通信缓冲区中;步骤505,当缓冲区中的日志数据满后,连同应用系统ip地址、程序名、计算机名、用户id等信息,形成预处理的日志记录;步骤506,通过管道、共享内存、socket等方式发送给管理控制中心;步骤507,管理控制中心得到预处理的日志记录后,一方面进行报警判断,另一方面将其继续解析生成人员可识别的日志记录,并使用归并排序将所有日志记录按时间进行排序;步骤508,通过引入缓冲池并使用分页机制实现文件快操作;以上所述的增加透明型安全审计的方法可以应用于不同的实时数据库系统中,另外经过稍加改动,如在安全保护函数中增加对sql语句的解析等,同样可以通过该方法为传统的关系型数据增加透明型的安全审计保护。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种面向实时数据库的独立透明型安全审计保护的方法,其特征在于,该方法包括 独立透明型安全审计保护的加载和卸载方法; 把安全审计功能分为两部分,将其中最直接影响实时数据库服务性能也是比较核心的访问控制和日志信息采集独立出来作为侦听器,将剩余比较耗时的功能如配置管理、日志文件读写、日志分析、界面支持等作为管理控制中心,采用分离式部署提高安全审计整体性能并实现配置管理的统一; 通过划分安全区实现基于角色的权限管理,在此基础上结合特殊的二维权限表实现高效的访问控制; 粗细粒度结合的策略,基于接口导出序号的规则配置方式,根据配置信息,对访问控制和审计进行配置或修改配置,对于没有新配置的默认采用上一次的配置; 分阶段设计不同的日志格式,通过位操作快速生成由两个32位整数组成的原始日志信息;利用线程间消息传递方法将原始的日志信息发送给预处理线程,线程接收到原始日志信息后,进行初步封装形成预处理的日志记录;得到预处理的日志记录后,一方面进行报警判断,另一方面将其继续解析生成人员可识别的日志记录,并使用归并排序将所有日志记录按时间进行排序; 引入缓冲池并对其进行有效管理,将排好序的日志记录存入缓冲池中,通过快操作提高写日志文件的速度。为日志记录创建B-树索引,提高日志的查询效率。
2.根据权利要求I所述的方法,其特征在于,以实时数据库导出给应用系统的接口为切入点使得安全审计不依赖于具体的实时数据库。需要加载时,启动管理控制中心,使能侦听器;需要卸载时,只需关闭管理控制中心即可;通过为需要控制的接口提供对应的安全保护函数,在安全审计加载后,使用HOOK技术安全保护函数地址替换应用系统进程中对应接口的地址,为实时数据库增加安全审计功能。
具体根据接口的导出序号查找接口在映像导入地址表中的位置,使用HOOK IAT技术完成地址替换工作。查找接口在导入地址表中的位置还有另一种方法首先根据接口的名字,使用Kernel32提供的GetProcAddress获得接口的导入地址,然后在导入地址表中--比较,直到在表中找到为止。很显然,这种方法效率极其低下,故弃用。使用的HOOK IAT实际属于HOOK API技术中的一种,另一种是直接将接口函数首地址的头五个字节内容改为机器码形式的跳转指令,跳转地址即为安全保护函数的地址。这两种技术相比,HOOK IAT效率最闻,所以米用它。
3.根据权利要求2所述的方法,其特征在于,所述接口对应的安全保护函数的构造过程为根据对应的接口,可以在安全保护函数中直接确定一些已知信息,如用户要做的操作、事件类型、对象类型等;分析系统调用栈的结构,使用汇编指令mov eax, dwordptr [ebp+n]和mov dword ptr [pParam], eax从系统调用栈中--获取接口的参数信息;判断是否开启访问控制开关,如果开启根据已获得的参数信息查询用户的二维权限表,进行快速权限校验,校验通过调用原接口,提供实时数据库服务,否则拒绝调用,如果没有开启直接调用原接口 ;判断是否开启审计开关,如果开启,将参数中的对象信息、操作信息以及接口执行结果等通过与、或位运算形成两个32位的整数类型的原始日志记录数据,并作为消息发送给日志预处理线程。
4.根据权利要求I所述的方法,其特征在于,所述借助划分安全区实现基于角色的权限管理进一步包括 角色是建立在系统中划分的安全区之上,角色和某个或某些安全区对应,它描述了拥有该角色的用户可以对安全区内点所做的操作;安全区是认为划分的若干区域,具体可以根据对象逻辑功能进行划分也可以根据对象所在物理区域如对象所属工段、车间进行划分等;采用基于角色的权限管理方式,系统安全员可以给用户赋予相应的角色使用户具有特定的访问权限,当有对象需要保护时,根据保护要求建立一个安全区,将他们安全区中。用户访问这些受保护对象时,会进行安全区校验并以此来限制用户对这些对象的操作。
5.根据权利要求I所述的方法,其特征在于,所述二维权限表的生成步骤包括 确定系统的动作集,作为权限表的列; 获取用户拥有的角色,从角色中得到用户涉及的安全区,合并所有安全区中的点作为用户相关对象,作为权限表的行; 从角色中获取用户对安全区中点的可执行的操作,并置表中对应位置置1,不可执行的操作在对应位置置O ; 表建立后再以点ID作为键值为二维权限表建立行级Hash索引,散列函数采用除留取余法,通过对操作进行编号对列建立索引,使权限表具备随机访问的特性; 在安全检查函数中进行权限判断时,直接根据点ID和操作位置从二维表中取出权限数据,如果为I则安检通过,否则安检失败。
6.根据权利要求I所述的方法,其特征在于,所述策略和规则配置包括安全员根据系统对操作的限定,制定访问控制规则,决定对哪些操作进行访问控制。审计从主体、客体、事件和特定程序三个角度分别定义了基于主体、基于客体、基于事件以及基于特定程序的审计条件,再加上用户和执行结果,这五种条件组成一条审计规则,凡是与过滤规则相匹配的事件才可以被审计。策略规则制定好后,以接口的导出序号为依据,侦听器对接口进行HOOK配置,考虑到接口个数一般不多,足以用一个30位的二进制数来表示,所以使用序号的高2位来表示审计和访问控制开关的打开情况,配置完接口后,开启或关闭相应接口的审计、访问控制开关;
7.根据权利要求I所述的方法,其特征在于,所述关于日志数据的处理共分为三个阶段,每个阶段中日志数据均有自己的格式、存储方法、传递方式,具体包括 日志信息生成阶段。将安全保护函数中获取的参数信息、操作执行结果、已知信息,转化为整数形式,其中对象使用id表示,动作通过位置表示,类型数据编号存储,通过位运算将日志记录映射到一个64位的整数上,使用两个无符号整形存储,具体格式为低32位记录日志的主要信息,从高到低依次为对象标识、动作标识、操作结果、事件类型、对象类型及告警级别;高32位记录操作错误码,通过该错误码可以获取错误信息。原始记录生成后,将日志数据以消息数据参数的形式通过线程消息传递方法将数据传送到日志预处理线程,进入下一阶段。
日志预处理阶段。预处理线程接收到原始日志记录后,根据消息发送时间设置日志记录的时间戳,并将其存入通信缓冲区中。当缓冲区中的日志数据满后,连同应用系统ip地址、程序名、计算机名、用户id等信息通过管道、共享内存、socket等通讯方式发送给管理控制中心。日志解析阶段。管理控制中心得到预处理的日志记录后,一方面进行报警判断,另一方面将其继续解析生成人员可识别的日志记录,并使用归并排序将所有日志记录按时间进行排序;
8.根据权利要求I所述的方法,其特征在于,所述使用缓冲池提高写日志文件速度地方法具体包括管理控制中心初始化时建立一个拥有一个内存块的内存池,内存块包含一些大小相等的内存页面,内存页面作为内存分配的最小单元;通过使用位图来管理所有未分配的内存页面,当出现申请页面时时,根据位图查找到第一个空闲的内存页面并分配出去,如果没有空闲页面时,利用链式LRU置换算法,回收一个内存页并分配,当发生页面置换的频率达到设定的阈值时,重新分配一个内存块。为了提高内存页面数据的命中率以及写日志文件的速度,将日志文件也划分为一页一页的,通过页表项建立文件页和内存页之间的关系,实现快速1/0,并采用定时回写策略,将缓冲区中的日志高速地写入日志文件中;一个内存页面可能出现同时被读和写,为了保证数据的一致性这就需要进行同步保护,不同粒度的同步对性能的影响是不同的,根据日志数据具有只读的特性,尽量将对内存页的读写操作分开,故把内存页面划分为可用内存页面集、回写内存页面集、可置换内存页面集 三个集合,这三个集合各自由一个静态的链表来管理。卸载安防审计保护后,系统现将需要 回写到日志文件的内存页写入日志文件中,然后回收所有内存,并销毁缓冲池。
9.根据权利要求7所述的方法,其特征在于,所述划分的内存页面集进一步描述 可用内存页面集。该集合包含的页面是可以被申请使用的,也就是空闲页面集,页面被申请后,根据用途会被转移到不同的集合中,该页面集由位图管理。
回写内存页面集。包含的那些追加数据或有数据修改的页面,这些页面会有归档线程定期写回到文件中,当页面写满且归档后,会转移到可置换内存页面集中。由于页面集中页面的迁移比较频繁,故采用双向的静态链表结构管理,以减少因分配结点带来的时间耗费。
可置换内存页面集,引入该集合主要用于提高日志信息查询。该集合中的页面包括近期已回写磁盘的日志页面和近期被访问过的日志页。在内存页面用完后,通过静态链式LRU将最近未使用的页面转换出去。
全文摘要
本发明公开一种面向实时数据库的独立透明型安全审计的方法。其中,以实时数据库提供给应用系统的接口作为接入点,将对保护需求和操作限制转化为安全保护函数,使用HOOK和远程线程注射技术完成安全保护函数对相应接口的替换,实现透明增加安全审计。本发明进一步根据基于安全区的角色机制管理用户的权限,借助对象动作二维权限表进行快速的权限校验,找到了一种适合于实时数据库的访问控制方法。根据融合配置信息的接口导出序号,安全方便实现配置。通过不同的日志格式,使用位运算快速生成原始日志,结合线程间消息传递提高日志生成采集速度。引入缓冲池,利用划分页面集的管理策略提高日志文件的读写速度。使用分离部署,提整体性能。
文档编号G06F17/30GK102654864SQ20111004976
公开日2012年9月5日 申请日期2011年3月2日 优先权日2011年3月2日
发明者乔建峰, 徐新国, 朱廷劭 申请人:华北计算机系统工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1