不可信dbms恶意入侵检测系统及方法

文档序号:7700009阅读:185来源:国知局
专利名称:不可信dbms恶意入侵检测系统及方法
技术领域
本发明涉及不可信DBMS恶意入侵检测系统及方法,属于数据库安全入侵检测技术领域。
背景技术
在现代计算系统中,数据库保存着系统的核心信息资源。因此,数据库往往是黑客、商 业间谍的重点攻击目标。由于我国数据库技术起步较晚,目前数据库产品DBMS (数据库管 理系统)基本被国外厂商所垄断,造成"核心技术空心化"和"关键技术和产品受制于人" 的严重局面。国外产品中完全可能存在"后门"甚至被注入"恶意代码",用于窃取或破坏 珍贵的数据资源。解决这一问题的最理想方式当然是在关键的应用系统中全部采用国产的数 据库产品,这也确实是我国正在努力的方向,但目前国产数据库在稳定性、功能、性能和可 扩展性等各项指标上与国外产品相比还存在着差距,而且由于现有系统已经大量使用了国外 的数据库产品,沉淀成本很高,因此不可能在短期内将其全部替换为国产产品。大量使用国 外数据库软件带来了以下许多安全问题
1. 出售给我国的Oracle等DBMS通常只符合C类安全标准,大致相当于GB17859 —1999 的3级以下的水平,身份认证、访问控制、安全审计等功能都较为薄弱;
2. 由于我们不掌握源代码,Oracle等国外DBMS完全可能存在后门,即可能绕过正常的 身份认证、访问控制等功能,自动将一些关键表中存放的数据向外传输。
3. 更危险的是,在某些特殊情况下,敌方甚至可能根据购买用途而故意在原有的标准 DBMS上进行修改,注入各种不同的恶意代码,如恶意增、删、改,恶意多删除等等。这对 于我国的国防工业部门的威胁尤大。
为了保护关系到商业机密、国家安全的核心信息资源,必须对不可信DBMS产品可能造 成的安全威胁进行分析,并对恶意DBMS入侵检测技术深入的研究,自动发现数据管理系统 中恶意代码发起的数据插入、修改和删除操作。
经过多年的发展,传统数据库安全领域的身份认证技术、访问控制技术、信息流控制技 术、加密控制技术、推理控制技术、审计技术等方面均有了很多成果,但是己有的技术着重 于提高DBMS对抗外部攻击的能力,尚未对如何提高应用系统对抗恶意的DBMS的能力进行深 入研究。显然,恶意DBMS的对抗技术会更加复杂,因为DBMS负责管理目标数据资源,它了 解目标数据资源的结构和语义,可以对目标数据进行任何操作,也可以对用户的请求返回任 意的结果。

发明内容
基于上述,本发明将提供一种不可信DBMS恶意入侵检测系统及方法,它可以做到自 动发现数据管理系统中恶意代码发起的数据插入、修改和删除操作;恢复受恶意代码破坏的 数据库;对关键数据加密,防止被恶意代码窃取。本发明采用以下技术方案
一种不可信DBMS恶意入侵检测系统,包括DBMS和数据库应用系统,其特征在于 在DBMS和数据库应用之间引入一个数据库入侵检测系统,数据库入侵检测系统分为客 户端和服务器端两个部分,其中客户端负责数据库消息截获和转发,以检测恶意行为,保 护关键数据;服务器端同时管理一个不可信DBMS和一个可信DBMS,可信DBMS保存系统的 重要元数据信息,并作为不可信DBMS的镜像数据库;服务器端负责客户端身份认证、分析 通讯协议、加解密数据和检测恶意数据库入侵。
所述重要元数据信息包括加密密钥、数据库对象映射关系、数据库表模式。 一种在上述的系统中采用的不可信DBMS恶意入侵检测方法,其包括以下步骤
1) 在数据库客户端设置服务器地址时,使用数据库入侵检测系统的客户端的地址和端
2) 将应用程序发送给不可信数据库服务器的操作请求全部转发给数据库入侵检测系统 的客户端;
3) 数据库入侵检测系统的客户端将这些操作请求转发给数据库入侵检测系统的服务器
端;
4) 数据库入侵检测系统的服务器端对收到的操作请求进行如下分析处理 若操作请求不会引起不可信DBMS中数据的恶意改动,则将操作请求转发给不可信DBMS,
再将得到的应答转送回应用程序,同时对可信DBMS中的数据对应不可信DBMS进行更新;否 则,拒绝本次应用程序的操作请求。 进一步地
在可信DBMS中的数据库中存储数据库模式信息、数据库对象映射规则、数据库中的字 段和表的加密密钥及加密算法;
数据库入侵检测系统的服务器端装有以下模块-
"SQL语法分析模块"-用于将接收到的SQL语句转换成SQL查询树;
"对象映射模块"-用于重写SQL査询树中的数据库对象名;
"加密模块"-用于加密数据;
"记录校验生成模块"-用于将每条记录的用户数据通过加密算法生成一个密码校验和, 把该校验和作为用户表的一个透明字段存储在不可信DBMS中; "数据包转发模块"-用于将查询树转换为SQL语句,以及 "SQL日志缓存模块"、"闩志回放模块"、"错误汇报模块"; 所述步骤4)进一步分为以下步骤
4. 1) "SQL语法分析模块"根据可信DBMS中存储的数据库模式信息以及SQL的词法规 则和语法规则,对接收到的SQL语句进行词法分析和语法分析,得到SQL査询树;
4. 2)"对象映射模块"根据可信DBMS中的数据库对象映射规则重写SQL査询树中的数 据库对象名;4.3) 如果当前SQL是读操作语句,则将SQL査询树移交给"数据包转发模块",该模块 转换SQL査询树为SQL语句,转发到不可信DBMS,完成本次请求处理,之后转应答处理步 骤4. 7),否则继续步骤4. 4);
4.4) 如果当前SQL是写操作语句,则将査询树移交给"加密模块",该模块首先确定需 要加密的字段或者表,并从可信DBMS中获取对应的加密密钥以及加密算法,加密数据之后 把査询树传递给"记录校验生成模块";
4.5) 每次执行SQL语句时,系统首先确定哪些记录将受到该SQL语句的访问,然后检査 这些记录的校验和是否正确,如果正确,说明数据没有受到恶意DBMS的改动,则将SQL査 询树移交给"数据包转发模块",该模块转换SQL查询树为SQL语句,转发到不可信DBMS;
4.6) 将该写操作SQL保存到"SQL日志缓存模块"中,之后"日志回放模块"从"SQL 日志缓存模块"中以事务为单位取出SQL语句,从不可信DBMS读取响应信息,并对可信DBMS 中的数据对应不可信DBMS进行更新,完成本次请求处理,之后转应答处理步骤4. 7);
4.7) 从不可信DBMS读取响应信息,之后进行对象映射,接着进行解密和记录校验验证, 最后转发数据包到客户端,整个过程中的产生的错误交由错误汇报模块发送到客户端。
更进一步地,在对可信DBMS中的数据对应不可信DBMS进行更新之前,检测不可信DBMS 中是否有恶意行为,若有恶意行为,则拒绝本次应用程序的操作请求,并恢复不可信DBMS 中的数据。
更进一步地,通过以下方法检测不可信DBMS中是否有恶意行为让每条SQL 命令在不可信DBMS和可信DBMS上分别执行,然后在后继的Select操作中比较它 们的返回结果,如果结果不同,则认为不可信DBMS有恶意行为。 更进一步地,检测不可信DBMS中是否有恶意行为的具体步骤是-7. l)在不可信DBMS上执行操作时,采取可串行化调度的Take-a-Ticket算法,在每个 事务中透明地加入一条Select语句读取Ticket,然后再加入一条Update语句将Ticket的 值加一,这样,每个事务读到的Ticket值即代表了它们在串行化历史中的次序; 7. 2)在可信DBMS上采取与不可信DBMS上同样的执行次序提交这些事务; 7. 3)当不可信DBMS和可信DBMS两个数据库同步操作完成之后,通过应用层提取每个表 的内容相互比较,若不相同,则表明不可信DBMS有恶意的行为。 本发明的优点在于
1. 自动发现数据管理系统中恶意代码发起的数据插入、修改和删除数据操作;
2. 恢复受恶意代码破坏的数据库;
3. 对关键数据加密,防止被恶意代码窃取。


图1是本发明不可信DBMS恶意入侵检测系统示意图2是请求截获和处理过程示意图; 图3是记录校验生成和验证示意6图4是结果分析和验证示意图; 图5是本发明系统部署实例。
具体实施例方式
下面结合附图对本发明作详细说明。 本发明是一种不可信DBMS恶意入侵检测系统及方法。
如图l,本发明在DBMS和数据库应用之间引入一个数据库入侵检测系统(DBIDS)来截 获DBMS和应用的消息通讯,以检测恶意行为,保护关键数据。DBIDS分为客户端和服务器 端两个部分,客户端主要负责数据库消息截获和转发,服务器端负责客户端身份认证、分析 通讯协议、实现透明数据加解密和恶意数据库入侵检测功能。
DBIDS采用数据转发的方式来截获数据库通讯。在数据库客户端设置服务器地址时,使 用DBIDS客户端的地址和端口。这样,应用程序发送给不可信数据库服务器的请求,全部都 发给了 DBIDS的客户端,然后DBIDS客户端使用基于SSL协议的网络连接发送这些请求给 DBIDS的服务器端,最后DBIDS服务器端将信息转发给真正的数据库服务器,并从数据库服 务器得到应答,转送回应用程序。对于应用程序和数据库服务器来说,这个过程是完全透明 的。而且,从安全的角度上看,即使DBIDS客户端被破坏了,由于此时客户端和服务端的逻 辑连接也被破坏了,所以也不会出现信息泄漏。
DBIDS服务器同时管理一个不可信DBMS和一个可信DBMS,其中可信DBMS的第一个功能 是保存系统的一些重要元数据信息,比如加密密钥,数据库对象映射关系,数据库表模式等 等。第二个功能是作为镜像数据库,从不可信DBMS复制一份数据,这样,既能检测不可信 DBMS的恶意行为,又能保障数据的可恢复性。对可信DBMS的功能、性能要求不高,单机、 单事务的DBMS就能够胜任了。因此可以选用许多国产DBMS或者开源数据库,比如安全增强 的MySQL (在其源码中去掉了网络功能,并增强了一些安全控制)。
在可信DBMS中的数据库中存储了数据库模式信息、数据库对象映射规则、数据库中的 字段和表的加密密钥及加密算法。
在数据库入侵检测系统的服务器端中装有以下软件模块-"SQL语法分析模块"-用于将接收到的SQL语句转换成SQL査询树; "对象映射模块"-用于重写SQL査询树中的数据库对象名; "加密模块"-用于加密数据;
"记录校验生成模块"-用于将每条记录的用户数据通过加密算法生成一个密码校验和, 把该校验和作为用户表的一个透明字段存储在不可信DBMS中; "数据包转发模块"-用于将査询树转换为SQL语句,以及 "SQL日志缓存模块"、"日志回放模块"、"错误汇报模块"等。 本发明的不可信DBMS恶意入侵检测方法包括以下步骤
l)在数据库客户端设置服务器地址时,使用数据库入侵检测系统的客户端的地址和端2) 将应用程序发送给不可信数据库服务器的操作请求全部转发给数据库入侵检测系统 的客户端;
3) 数据库入侵检测系统的客户端将这些操作请求转发给数据库入侵检测系统的服务器
i山
顺;
4) 数据库入侵检测系统的服务器端对收到的操作请求进行如下分析处理
若操作请求不会引起不可信DBMS中数据的恶意改动,则将操作请求转发给不可信DBMS, 再将得到的应答转送回应用程序,同时对可信DBMS中的数据对应不可信DBMS进行更新;否 则,拒绝本次应用程序的操作请求。
所述步骤4)进一步分为以下步骤
4. 1) "SQL语法分析模块"根据可信DBMS中存储的数据库模式信息以及SQL的词法规 则和语法规则,对接收到的SQL语句进行词法分析和语法分析,得到SQL查询树;
4. 2)"对象映射模块"根据可信DBMS中的数据库对象映射规则重写SQL査询树中的数 据库对象名;
4.3) 如果当前SQL是读操作语句,则将SQL査询树移交给"数据包转发模块",该模块 转换SQL查询树为SQL语句,转发到不可信DBMS,完成本次请求处理,之后转应答处理步 骤4.7),否则继续步骤4.4);
4.4) 如果当前SQL是写操作语句,则将查询树移交给"加密模块",该模块首先确定需 要加密的字段或者表,并从可信DBMS中获取对应的加密密钥以及加密算法,加密数据之后 把査询树传递给"记录校验生成模块";
4.5) 每次执行SQL语句时,系统首先确定哪些记录将受到该SQL语句的访问,然后检査 这些记录的校验和是否正确,如果正确,说明数据没有受到恶意DBMS的改动,则将SQL查 询树移交给"数据包转发模块",该模块转换SQL査询树为SQL语句,转发到不可信DBMS;
4.6) 将该写操作SQL保存到"SQL日志缓存模块"中,之后"日志回放模块"从"SQL 曰志缓存模块"中以事务为单位取出SQL语句,从不可信DBMS读取响应信息,并对可信DBMS 中的数据对应不可信DBMS进行更新,完成本次请求处理,之后转应答处理步骤4. 7);
4. 7)从不可信DBMS读取响应信息,之后进行对象映射,接着进行解密和记录校验验证, 最后转发数据包到客户端,整个过程中的产生的错误交由错误汇报模块发送到客户端。
更进一步地,在对可信DBMS中的数据对应不可信DBMS进行更新之前,检测不可信DBMS 中是否有恶意行为,若有恶意行为,则拒绝本次应用程序的操作请求,并恢复不可信DBMS 中的数据。
更进一步地,通过以下方法检测不可信DBMS中是否有恶意行为让每条SQL 命令在不可信DBMS和可信DBMS上分别执行,然后在后继的Select操作中比较它 们的返回结果,如果结果不同,则认为不可信DBMS有恶意行为。 更进一步地,检测不可信DBMS中是否有恶意行为的具体步骤是 7. l)在不可信DBMS上执行操作时,采取可串行化调度的Take-a-Ticket算法,在每个事务中透明地加入一条Select语句读取Ticket,然后再加入一条Update语句将Ticket的 值加一,这样,每个事务读到的Ticket值即代表了它们在串行化历史中的次序; 7. 2)在可信DBMS上采取与不可信DBMS上同样的执行次序提交这些事务; 7. 3)当不可信DBMS和可信DBMS两个数据库同步操作完成之后,通过应用层提取 每个表的内容相互比较,若不相同,则表明不可信DBMS有恶意的行为。 本发明不可信数据库入侵检测方法的工作原理从以下几个方面说明
1.数据请求
图2是数据请求的处理过程,客户端转发应用程序的数据请求到服务端,服务端的"SQL 语法分析模块"首先根据可信DBMS中存储的表、视图定义,以及SQL的词法规则和语法规 则对接收到的SQL语句进行词法分析和语法分析,得到SQL査询树。
接着,"对象映射模块"利用可信DBMS中的数据库对象映射规则重写SQL査询树中的数 据库对象名。该模块负责将"表"、"字段"、"表空间"等数据库对象名称替换为无意义的随 机名称,这样就使得外部应用所掌握的、语义丰富的数据库对象名称在进入不可信的DBMS 之前,己经进行了语义淡化处理。数据库对象映射规则是指用户可见的表、视图、列等数据 库对象名字和实际存储在不可信数据库中的数据库对象名之间的映射关系。假定可信数据库 中包含规则"USERNAME-〉 A"、 "PASSW0RD-〉B"、 "ACCOUNT->C",那么语句SELECT USERNAME, PASSWORD FROM ACCOUNT WHERE USERNAME=userl'的重写结果对应的SQL是SELECT A, B FROM C WHERE A=userr 。
如果当前SQL不是INSERT /UPDATE/DELETE等更新语句,査询树被移交给"数据包转发 模块",该模块转换查询树为SQL语句,构造网络消息包转发到不可信DBMS,完成本次请求 处理。
如果当前SQL是INSERT /UPDATE,查询树被移交给"加密模块",该模块读取用户配置 的需要加密的字段或者表,从可信DBMS中获取对应的加密密钥以及加密算法,加密数据之 后把查询树传递给"记录校验生成模块"。
因当前SQL是包含写操作,故该SQL被保存到"SQL日志缓存模块"中,之后"日志回 放模块"从缓存中以事务为单位取出SQL语句,把更新应用到可信DBMS。
"记录校验生成模块"为每条记录的用户数据通过加密算法生成一个密码校验和,把该 校验和作为表的一个透明字段存储在不可信的DBMS中。每次执行SQL语句时,系统首先 确定哪些记录将受到该SQL语句的访问对于读操作,SQL语句访问的记录就是SQL的结 果集;对于更新操作,需把更新条件转换为一个读查询,该査询的结果集就是SQL语句 访问的记录。然后,检査这些记录的校验和是否正确,如果正确,说明数据没有受到恶意 DBMS的改动;如果不正确,则表明数据库受到了恶意篡改,此时要进行报警,并从可信数 据库恢复数据。最后,数据包转发模块转换查询树成SQL语句,构造网络消息转发到不可 信DBMS完成本次请求处理。图3描述了生成记录校验、验证校验的过程。字段A、 B、 D 是正常字段,字段C是校验字段。插入记录或者更新记录时,C字段的内容根据A、 B、 D
9自动生成。访问记录时,根据A、 B、 D字段重新内容计算校验,并和C字段进行对比,如 果相同那么验证通过,否则验证失败。
数据请求处理过程中的产生的所有错误都由"错误汇报模块"处理,统一汇报给客户端。
2. 数据应答
如图4所示,数据应答的处理过程基本上是数据请求流程的逆过程,"结果集分析模块" 从不可信DBMS读取响应信息,之后进行对象映射,接着进行解密和记录校验验证,最后转 发数据包到客户端,整个过程中的产生的错误交由错误汇报模块发送到客户端。
3. 恶意行为检测和数据恢复
虽然通过记录校验可以检测数据库对记录的恶意篡改操作,但是不能检测恶意数据库对 查询语义的曲解。例如,执行Select语句时数据库符合条件的记录有N项,而恶意DBMS故 意多返回或少返回几项,或执行Delete语句时故意多删除或少删除几项。由于这两种恶意 动作已经触及DBMS的核心功能,须采用多个DBMS的并联结构,让每条SQL命令在多个DBMS 上分别执行,然后在后继的Select操作中比较它们的返回结果,如果结果不同,则认为DBMS 有恶意动作。
DBIDS在可信DBMS和不可信DBMS之间进行异步复制,即不可信DBMS中的数据更新异 步地传播到可信DBMS中。为了使两个DBMS中的数据保持一致,此时一个关键的任务是要确 定并发提交给不可信DBMS的多个事务的真正提交次序(也就是它们在等价的串行化调度下 的次序),以便在后备的可信DBMS采取同样的次序提交这些事务,从而在两个数据库中产 生逻辑上可以比较的结果。我们采取了原本用于多数据库的可串行化调度的Take-a-Ticket 算法来得到这一点。即,在每个事务中透明地加入一条Select语句读取Ticket的语句,然 后再加入一条Update语句将Ticket的值加一。这样,通过强制让每个事务在Ticket上产 生读写冲突,从而确保了事务执行的串行化,每个事务读到的Ticket值即代表了它们在串 行化历史中的次序。
当两个数据库同步完成之后,可以通过应用层提取每个表的内容相互比较以便检测是否 不可信DBMS有恶意的行为。当然,安全管理员可以定时让系统自动进行抽样检测。如果发 现不可信的DBMS的恶意行为导致数据库的结果与SQL命令的语义不符,可以利用后备数据 库来恢复不可信DBMS中的数据。注意,此时不能依赖恶意DBMS产生的备份来恢复,因为它 们是不可信的。
如图5所示,DBIDS数据库入侵检测系统位于数据库和应用服务器,或者数据库和客户 端之间。在客户端和应用服务器看来DBIDS就是一个数据库管理系统,在不可信DBMS看来, DBIDS就是唯一的数据库用户。如果绕开DBIDS直接访问数据库,那么客户端只能读到语义 弱化的数据库模式信息和加密之后的密文。
DBIDS的部署比较灵活,虽然DBIDS客户端可以和应用服务器或者客户端在同一台服务 器上,但是为了减少网络代价,DBIDS客户端通常部署在客户机或者应用服务器上,而DBIDS 服务器和DBMS服务器部署在同一个局域网中。
权利要求
1.一种不可信DBMS恶意入侵检测系统,包括DBMS和数据库应用系统,其特征在于在DBMS和数据库应用之间引入一个数据库入侵检测系统;数据库入侵检测系统分为客户端和服务器端两个部分,其中客户端负责数据库消息截获和转发,以检测恶意行为,保护关键数据;服务器端同时管理一个不可信DBMS和一个可信DBMS,可信DBMS保存系统的重要元数据信息,并作为不可信DBMS的镜像数据库;服务器端负责客户端身份认证、分析通讯协议、加解密数据和检测恶意数据库入侵。
2. 如权利要求1所述的不可信DBMS恶意入侵检测系统,其特征在于 所述重要元数据信息包括加密密钥、数据库对象映射关系、数据库表模式。
3. —种在权利要求1所述的系统中采用的不可信DBMS恶意入侵检测方法,其特征在于 包括以下步骤1) 在数据库客户端设置服务器地址时,使用数据库入侵检测系统的客户端的地址和端2) 将应用程序发送给不可信数据库服务器的操作请求全部转发给数据库入侵检测系统 的客户端;3) 数据库入侵检测系统的客户端将这些操作请求转发给数据库入侵检测系统的服务器端;4) 数据库入侵检测系统的服务器端对收到的操作请求进行如下分析处理 若操作请求不会引起不可信DBMS中数据的恶意改动,则将操作请求转发给不可信DBMS,再将得到的应答转送回应用程序,同时对可信DBMS中的数据对应不可信DBMS进行更新;否 则,拒绝本次应用程序的操作请求。
4. 如权利要求3所述的不可信DBMS恶意入侵检测方法,其特征在于在可信DBMS中的数据库中存储数据库模式信息、数据库对象映射规则、数据库中的字 段和表的加密密钥及加密算法;数据库入侵检测系统的服务器端装有以下模块-"SQL语法分析模块"-用于将接收到的SQL语句转换成SQL查询树;"对象映射模块"-用于重写SQL査询树中的数据库对象名;"加密模块"-用于加密数据;"记录校验生成模块"-用于将每条记录的用户数据通过加密算法生成一个密码校验和, 把该校验和作为用户表的一个透明字段存储在不可信DBMS中; "数据包转发模块"-用于将查询树转换为SQL语句,以及 "SQL日志缓存模块"、"日志回放模块"、"错误汇报模块"; 所述步骤4)进一步分为以下步骤4. 1) "SQL语法分析模块"根据可信DBMS中存储的数据库模式信息以及SQL的词法规则和语法规则,对接收到的SQL语句进行词法分析和语法分析,得到SQL査询树;4. 2)"对象映射模块"根据可信DBMS中的数据库对象映射规则重写SQL查询树中的数据库对象名;4.3) 如果当前SQL是读操作语句,则将SQL査询树移交给"数据包转发模块",该模块 转换SQL査询树为SQL语句,转发到不可信DBMS,完成本次请求处理,之后转应答处理步 骤4.7),否则继续歩骤4.4);4.4) 如果当前SQL是写操作语句,则将査询树移交给"加密模块",该模块首先确定需 要加密的字段或者表,并从可信DBMS中获取对应的加密密钥以及加密算法,加密数据之后 把査询树传递给"记录校验生成模块";4.5) 每次执行SQL语句时,系统首先确定哪些记录将受到该SQL语句的访问,然后检査 这些记录的校验和是否正确,如果正确,说明数据没有受到恶意DBMS的改动,则将SQL査 询树移交给"数据包转发模块",该模块转换SQL査询树为SQL语句,转发到不可信DBMS;4.6) 将该写操作SQL保存到"SQL日志缓存模块"中,之后"日志回放模块"从"SQL 日志缓存模块"中以事务为单位取出SQL语句,从不可信DBMS读取响应信息,并对可信DBMS 中的数据对应不可信DBMS进行更新,完成本次请求处理,之后转应答处理步骤4. 7);4.7) 从不可信DBMS读取响应信息,之后进行对象映射,接着进行解密和记录校验验证, 最后转发数据包到客户端,整个过程中的产生的错误交由错误'汇报模块发送到客户端。
5. 如权利要求3或4所述的不可信DBMS恶意入侵检测方法,其特征在于在对可信DBMS中的数据对应不可信DBMS进行更新之前,检测不可信DBMS中是否有恶 意行为,若有恶意行为,则拒绝本次应用程序的操作请求,并恢复不可信DBMS中的数据。
6. 如权利要求5所述的不可信DBMS恶意入侵检测方法,其特征在于 通过以下方法检测不可信DBMS中是否有恶意行为让每条SQL命令在不可信DBMS和可信DBMS上分别执行,然后在后继的Select操作中比较它们的返回结果,如果结果不同,则 认为不可信DBMS有恶意行为。
7. 如权利要求6所述的不可信DBMS恶意入侵检测方法,其特征在于-检测不可信DBMS中是否有恶意行为的具体步骤是7. l)在不可信DBMS上执行操作时,采取可串行化调度的Take-a-Ticket算法,在每个 事务中透明地加入一条Select语句读取Ticket,然后再加入一条Update语句将Ticket的 值加一,这样,每个事务读到的Ticket值即代表了它们在串行化历史中的次序; 7. 2)在可信DBMS上采取与不可信DBMS上同样的执行次序提交这些事务; 7. 3)当不可信DBMS和可信DBMS两个数据库同步操作完成之后,通过应用层提取每个表 的内容相互比较,若不相同,则表明不可信DBMS有恶意的行为。
全文摘要
本发明涉及不可信DBMS恶意入侵检测系统及方法,它在DBMS和数据库应用之间引入数据库入侵检测系统来截获DBMS和应用的消息通讯,以检测恶意行为、保护关键数据。数据库入侵检测系统分为客户端和服务器端两部分,客户端负责数据库消息截获和转发,服务器端同时管理不可信DBMS和可信DBMS,可信DBMS保存系统的重要元数据信息,并作为不可信DBMS的镜像数据库;服务器端负责客户端身份认证、分析通讯协议、实现透明数据加解密和恶意数据库入侵检测功能。本发明的优点在于自动发现数据管理系统中恶意代码发起的数据插入、修改和删除数据操作;恢复受恶意代码破坏的数据库;对关键数据加密,防止被恶意代码窃取。
文档编号H04L29/06GK101540704SQ20091008315
公开日2009年9月23日 申请日期2009年5月5日 优先权日2009年5月5日
发明者何清法, 赵明智, 顾云苏 申请人:北京神舟航天软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1