CN100504905C - 数据库恶意事务处理方法及其系统 - Google Patents
数据库恶意事务处理方法及其系统 Download PDFInfo
- Publication number
- CN100504905C CN100504905C CNB2007101775110A CN200710177511A CN100504905C CN 100504905 C CN100504905 C CN 100504905C CN B2007101775110 A CNB2007101775110 A CN B2007101775110A CN 200710177511 A CN200710177511 A CN 200710177511A CN 100504905 C CN100504905 C CN 100504905C
- Authority
- CN
- China
- Prior art keywords
- affairs
- malice
- transaction
- data element
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明针对现有数据库系统面对恶意事务的攻击安全性不强和响应效率低下的问题,提供了一种数据库系统恶意事务处理方法及其系统,设置一个独立于数据库原有日志系统的事务恢复日志系统,以事务为单位、在事务提交时记录事务的执行历史,然后依据事务恢复日志所记录的内容,对已提交事务的合法性进行判定,当检测到入侵的恶意事务时通过检索事务恢复日志查询所有受恶意事务影响的数据,并对这些数据进行恢复,而未受影响的事务操作结果将被保留,从而保证数据库系统的正确性和可用性。该方法和系统后置式的处理模式可以将效率折损限制在可接受的范围内,确保数据库系统对用户请求做出及时的响应。
Description
技术领域
本发明主要涉及一种增强数据库系统安全性的方法及其系统,更确切地是涉及一种在攻击者绕过数据库系统入侵防护组件之后,仍能保证数据正确性的方法与系统。
背景技术
随着信息共享需求的增长,数据库上层应用不断扩展,攻击者的攻击手段变得多元化,负责存储和管理敏感信息的数据库系统面临着越来越多的威胁,仅通过预防性措施难以保证数据库系统提供不间断的服务。高安全性的系统应具备发现入侵,并自动恢复到正常状态的能力。高安全性数据系统进行入侵防护的一般过程是:保护→检测→错误限制→恢复,这也是新一代安全数据库系统的发展方向之一。
在数据库系统中,一般事务处理速度较快,而特征提取、匹配运算和规则库遍历等入侵检测操作都需耗费大量时间,产生检测结果耗费时间比正常事务运行所需时间高2-3个数量级。考虑到恶意操作远少于正常操作,高安全性数据库系统往往采用先应答用户请求再执行检测和恢复进程的体系结构。在这样的体系结构中,入侵检测组件所生成的检测结果将滞后于事务的提交,在事务提交到恢复完成的时间区间内,后继事务可能因为读取了恶意事务的操作结果而受其影响,从而产生错误的操作结果。
现有的数据库系统具备日志和可信恢复技术主要解决数据库系统软硬件故障的问题,但日志仅记录写操作所导致的数据元素变化而不记录事务之间的相互关系。由于日志不能提供事务关系的描述,数据库系统在遭受恶意攻击后只能采用先停机然后回滚到出错点的应对机制,攻击发生之后的无辜事务也同时被取消。这一缺陷严重影响了系统的安全性,甚至可能被敌手所利用成为进行DOS攻击的工具,如果攻击者不断的提交恶意事务,将导致数据库系统不断的执行回滚过程,从而使数据库系统进入不可用的状态。为提高数据库系统的安全性,现有技术是在日志写入时依据数据依赖关系进行分片,这样仅需要回滚一个分片中的数据,从而保证了其它分片中数据元素的正确性。但这一方案存在以下的明显缺陷:
(1)仅能保证部分的正确性。在恶意事务所属分片的回滚中依然存在无辜事务被回滚的可能性。
(2)时间代价高。每次操作时都要写入日志,并且需对数据依赖关系进行判定,这将显著增加事务平均响应时间,降低了数据库使用效率。
(3)存在数据分片聚集的问题。若一个事务读取了多个分片的数据,那么该事务依赖于多个数据分片,将多个分片的合并才能确保回滚的完整性,从而引起数据分片逐渐聚集的问题。当大多数的数据集中于一个分片之中时,分片方案的功效就下降了。
在入侵检测结果产生之后,如何使数据库系统快速恢复到正确的状态是一直没有有效解决的问题。
发明内容
针对现有数据库系统面对恶意事务的攻击安全性不强和响应效率低下的问题,本发明提供一种数据库系统恶意事务处理方法及其系统,当入侵检测系统发现敌手向数据库系统提交的恶意事务之后,可以精确地查找到此后受到恶意事务影响的后继事务,并对这些事务进行回滚,未受影响的事务操作结果将被保留,从而保证了数据库系统的正确性和可用性。
通常,用户与数据库系统的交互主要包括两个过程:首先,用户向数据库管理系统提交访问请求;数据库管理系统受到访问请求后,根据访问控制规则对用户请求的合法性进行判定,根据判定结果决定进行应答,对数据库进行访问或拒绝用户请求。为达到上述目的,本发明提供的数据库系统恶意事务处理方法是在上述流程结束之后增加进一步的安全增强措施,即设置一个独立于数据库系统原有的日志系统的事务恢复日志系统,事务恢复日志的记录以事务而不是操作作为记录的单位,仅在事务完成时进行日志记录并且不需要在日志写入时判定事务间依赖关系,当入侵发生时通过检索日志查询所有受恶意事务影响的数据,并对这些数据进行恢复,而未受影响的事务操作结果将被保留,因此可以将效率折损限制在可以接受的范围内,从而确保数据库系统对用户请求做出及时的响应。
具体而言,本发明数据库系统恶意事务处理方法可以通过以下步骤实现:
第一步:生成事务恢复日志过程。针对每一个用户事务产生一条日志记录,在事务提交时写入事务恢复日志表中。
一般来说,用户对于数据库系统的访问操作以事务为单位进行组织,一个事务中的操作要么全部执行,要么全部不执行,所有的用户操作可以抽象为以下五种操作:事务开始、读、写、事务中断和事务提交。按照数据库事务系统模型的惯例,一般都假定不存在“盲写(blind write)”操作,即:在对某一数据元素执行写操作之前必先读取这个数据元素。每一条事务恢复日志至少包含以下内容:事务的标识、事务所读数据元素的全集(读集)、事务所写数据元素及其对应的数据前象的全集(写集)、事务提交的时间戳。该事务恢复日志的生成方法是:在事务开始时为每一个事务创建一个标识符和两个数据集合:读集和写集,读集用于存放事务所读的数据元素,写集用于存放事务所写数据元素的标识及其前象组成的二元组;用户在提交读操作时,将其操作对象加入数据元素读集;用户在提交写操作时,将其操作对象和数据前象加入数据元素写集;当用户提交事务中断操作时,删除所述读集和写集;当用户提交事务提交操作时,使用事务标识符、读集、写集和提交时间构成事务恢复日志记录,将其写入持久存储,最后删除读集和写集。
根据事务日志包含的内容,一条事务恢复日志可以表示为:TRecLog={Tid,RS,WS,Timestamp},其中:Tid是事务的标识;RS是事务的读集;WS是事务的写集,由二元组构成,WS={loc,val},其中:loc表示写操作所影响的数据元素,val为写操作执行前数据元素的取值,即写操作的数据前象;而Timestamp是事务提交的时间戳。
如下流程描述数据库系统事务处理的流程中与事务恢复日志的产生过程相关的部分:
a.数据库系统等待用户提交操作请求。用户所提交的操作属于以下五种情况之一:事务开始、读操作、写操作、事务中断、事务提交。数据库根据操作的不同转入不同的处理流程。如果用户提交的操作是事务开始,则转入步骤b;如果用户提交的操作是读操作,则转入步骤c;如果用户提交的操作是写操作,则转入步骤d,如果用户提交的操作是事务中断,则转入步骤e;如果用户提交的操作是事务提交则转入步骤f。
b.事务开始。为事务分配事务标识,此处以Tid标识,初始化数据集合RS(Tid)和WS(Tid),将两个集合置为空集。其中:RS表示当前事务所读数据元素的全集,其成员为数据元素的标识;WS表示当前事务所写的数据元素及其相应的数据前象的全集,其成员以二元组(loc,val)标识,其中loc为写操作所影响的数据元素的标识,val表示写操作的数据前象。转入步骤a。
c.读操作处理。把用户所要读取的数据元素标识添加到RS集合中。转入步骤a。
d.写操作处理。将写操作所影响的数据元素标识和当前数据元素的取值构造二元组,将此二元组添加到WS集合中。使用要写入的值替代当前数据元素的取值。转入步骤a。
e.事务中断处理。清除RS(Tid)和WS(Tid)。转入步骤a。
f.事务提交处理。使用Tid、RS(Tid)、WS(Tid)和当前时间,构造一条事务恢复日志。将这条日志写入持久存储,清除RS和WS集合,提交事务使用户操作生效。完成事务处理,应答用户请求。
第二步:入侵检测过程。进行入侵检测,获得恶意事务标识。
依据事务恢复日志所记录的内容,利用预设的规则对已提交事务的合法性进行判定。当发现入侵行为时,发出警报信息,将数据库状态置为攻击态,输出检测结果进行下一步处理。入侵检测可采用误用检测、异常检测或多种机制相结合的入侵检测方法来实现恶意事务的认定(戴英侠,连一峰,王航.系统安全与入侵检测[M].北京:清华大学出版社,2002;张相锋,孙玉芳.入侵检测系统发展的研究综述[J].计算机科学,2003(8):45-49。),最终将恶意事务的标识输出,此处以MT来表示原始恶意事务的标识符。
第三步:入侵限制过程。根据恶意事务标识和事务恢复日志记录的操作历史,分析后继事务与恶意事务之间的相互关系,找到所有与恶意事务相关的后继事务和所有受到恶意事务影响的数据元素,产生恶意事务列表和数据元素恢复列表,并将数据元素恢复列表中的所有数据元素锁定,以防止错误进一步的扩散。具体的工作流程解释如下(参见图1):
(a)建恶意事务列表MTList和数据元素恢复列表MLList,并将MTList和MLList置为空集。其中,MTList的成员为事务的标识符,MLList的成员为写集成员(由数据元素标识符和数据前象构成的二元组)。
(b)对MTList和MLList进行初始化。将入侵检测得到的检测结果MT并入MTList集合之中;查找事务恢复日志,找到恶意事务MT对应的记录,此时MT=Tid,将其WS并入MLList集合之中。
(c)对于原始恶意事务提交之后提交的每一个后继事务进行依赖性判断。如果后继事务依赖于恶意事务的操作结果,则:将其事务标识符并入恶意事务列表集合中;将其写集并入数据元素恢复列表集合之中,并将这些数据元素锁定。
该步骤通常是按提交时间的先后顺序对事务恢复日志中提交时间迟于MT提交时间的每一条日志记录执行下述操作:
对于恶意事务列表中的每一个成员,以MacT来表示,在事务恢复日志中检索到其日志记录log(MacT),对log(MacT).WS中的每一个成员,取其第一个向量loc进行判定。如果loc∈log(Tid).RS成立,则将事务Tid加入恶意事务列表,将事务Tid所写的所有数据元素加入数据元素恢复列表。如果loc∈log(Tid).RS不成立,则转向恶意事务列表中的下一个成员进行判断,直至发现当前的loc∈log(Tid).RS或者进行完最后一个恶意事务的判断,若发现当前的loc∈log(Tid).RS,执行将事务Tid加入恶意事务列表MTList和将事务Tid所写的所有数据元素加入数据元素恢复列表MLList的操作。对于每一个MLList中的数据元素,加排他锁定操作,阻止数据库系统对其进行读写操作。之后对下一个事务日志记录重复上述操作,直至最后一条事务日志记录。
换言之,上述对事务恢复日志中记录的每一个后继的已提交事务(简称为:当前事务)进行依赖关系判定的方法是:对于恶意事务列表中的每一个元素(简称为:恶意事务),在事务恢复日志中检索到其日志记录,取该日志记录中写操作所影响的数据元素构成写数据元素集合。使用当前事务的读集与该写数据元素集合进行集合交操作,如果结果不为空则认定当前事务是恶意事务。将该当前事务的标识符加入恶意事务列表;将其写集并入数据元素恢复列表,并对这些数据元素加入排他锁,阻止数据库系统对其进行读写操作。
第四步:可信恢复过程。根据恶意事务列表、数据元素恢复列表和事务恢复日志的记录,对恶意操作执行逆向操作,从而撤销恶意事务的操作结果,消除恶意事务对数据库系统的影响。
可信恢复过程具体的工作流程解释如下:
对于恶意事务列表中的每一个恶意事务MacT,按照根据事务恢复日志记录的事务提交的时间顺序,从后往前地在事务恢复日志中找到相对应的记录log(MacT),取其写集log(MacT).WS,对于其中包含的每一个数据元素,执行以下操作:使用数据前象取代其现有值;在数据元素恢复列表中删除数据元素标识,对数据元素解除排他锁。处理完所有log(MacT).WS中的数据元素之后,将该恶意事务MacT从恶意事务列表中删除。当MTList集合和MLList集合为空时,结束恶意事务处理流程,更改数据库系统的状态为正常态。
基于上述数据库恶意事务处理方法,本发明还提供了一种数据库恶意事务处理系统。
本发明提供的数据库恶意事务处理系统是基于传统数据库系统之上的,在现有技术中,传统数据库系统包括:数据库管理系统和数据库两个部分。其中,数据库管理系统负责受理用户对于数据库的访问请求,提供预防性的安全措施(如:身份认证、访问控制和其他相关操作),而数据库可以视为数据元素的全集。如图2所示,数据库恶意事务处理系统是在传统数据库系统基础上增加了如下四个模块:
用于以事务为单位,在事务提交时记录事务的执行历史的事务恢复日志;
用于读取事务恢复日志内容,对已提交事务进行合法性判定,检测出恶意事务并将入侵检测结果发送给入侵限制组件的入侵检测元件;
用于根据事务恢复日志和入侵检测结果分析后继事务与恶意事务之间的相互关系,找到所有与恶意事务相关的后继事务和所有受到恶意事务影响的数据元素的入侵限制组件;
用于将受恶意事务影响的数据元素恢复的可信恢复组件。
根据本发明提出的数据库恶意事务处理方法,上述事务恢复日志用于记录事务的执行历史,为后续的处理保存必须的信息。事务恢复日志以事务为单位,在事务完成时提交,至少包括以下内容:事务的标识、事务所读数据元素的全集、事务所写数据元素及其对应的数据前象的全集、事务提交的时间戳。
上述入侵检测元件读取事务恢复日志,依据日志所记录的内容,利用预设的规则对已提交事务的合法性进行判定,可采用误用检测、异常检测或多种机制相结合的入侵检测方法来实现恶意事务的认定,当发现入侵行为时,入侵检测元件发出警报信息,将数据库状态置为攻击态,并将恶意事务的标识作为入侵检测结果输出,将其发送给入侵限制组件进行进一步的处理。
上述入侵限制组件接收到入侵检测结果后,通过按提交时间的先后顺序分析每一个后继事务与恶意事务之间的相互关系,找到所有与恶意事务相关的后继事务和所有受到恶意事务影响的数据元素,生成恶意事务列表MTList和数据元素恢复列表MLList,并将数据元素恢复列表中的所有数据元素锁定,以防止错误进一步的扩散。最后将MTList和MLList作为参数传给可信恢复组件,并将其启动。
上述可信恢复组件依据恶意事务列表和数据元素恢复列表使数据库系统恢复到恶意操作之前的状态,并依次将恢复过的数据元素解锁。其中使数据库系统恢复的方法具体是,按照事务提交时间顺序从后往前在事务恢复日志中找到恶意事务列表中的每一个事务,对该事务所写的每一个数据元素执行如下操作:使用数据前象取代其现有值,在数据元素恢复列表中删除数据元素标识,对数据元素解除排他锁;处理完该事务所写的全部数据元素之后,将其从恶意事务列表中删除;当恶意事务列表和数据恢复元素列表为空时,结束恶意事务处理流程,更改数据库系统的状态为正常态。
采用本发明的恶意事务处理方法,可完备的恢复恶意事务对数据库所产生的影响,同时可保证恢复后的数据库状态符合语义正确性原理的要求,从而使数据库系统获得与现有技术相比更高的安全性。本发明具有以下优点:
1.弥补预防性安全措施的不足,增强数据库系统的安全性。
在信息战环境中,敌手的攻击无处不在,攻击者完全可能通过身份盗用等方式获取合法的用户身份,进一步向数据库系统提交恶意的事务请求。传统数据库系统所采用的预防性安全措施和日志系统无法应对此类攻击,只能回滚至出错点的状态,导致从恶意事务提交到回滚完成之间的正常操作丢失,数据库系统在这一时间区间内处于不可用的状态,安全性较低。与传统的数据库需要停机→处理→重启的可信恢复方案相比,本发明提供了一种在联机状态下进行恶意事务检测和恢复的恶意事务处理系统和方法,使数据库系统在遭受恶意攻击时,依然可以为用户提供正常的服务,大大提高了数据库系统的安全性和鲁棒性。
2.后置式的处理模式,效率折损低。
由于数据库系统对用户请求的响应速度较快,现有技术在增加安全功能时,往往会引起大比例的效率损失,其主要原因在于安全机制嵌入到用户请求应答的流程当中,而相对于一般用户请求来说安全功能的执行往往更加复杂和耗时。本发明采用后置式的处理模式,在应答用户请求之后才启动恶意事务处理流程,可将对用户请求应答流程的影响将至最低。
3.低耦合的实现方案,通用性强。
本发明所使用的事务恢复日志格式系统独立于原有的数据库系统日志构建,可实现于事务管理层面,与原有数据库日志系统的耦合度低,事务恢复日志的存放可采用数据表或文件形式,管理灵活、开发方便、实用性强、移植代价低。
附图说明
图1是本发明数据库恶意事务处理方法入侵限制步骤的工作流程图。
图2是本发明数据库系统与恶意事务处理系统的结构关系图。其中:
1——传统数据库系统 2——恶意事务处理系统
具体实施方式
下面结合附图和一个范例对本发明做进一步详细的说明,但不以任何方式限制本发明的范围。
在本范例中,假定数据库仅包括5个数据元素,初始状态各数据元素取值都为2:
数据元素标识 | loc1 | loc2 | loc3 | loc4 | loc5 |
取值 | 2 | 2 | 2 | 2 | 2 |
假定用户通过数据库管理系统,分别向数据库提交了4条事务:T1、T2、T3和T4,各事务分别执行了以下操作,如下表所列:
事务标识 | T1 | T2 | T3 | T4 |
操作1 | 事务开始 | 事务开始 | 事务开始 | 事务开始 |
操作2 | 读:loc1=2 | 读loc1=3 | 读loc2=2 | 读loc3=5 |
操作3 | 写:loc1=3 | 读loc2=2 | 写loc2=3 | 读loc4=2 |
操作4 | 提交事务 | 写loc3=loc2+loc3=5 | 提交事务 | 写loc5=loc3+loc4=7 |
操作5 | 提交事务 | 提交事务 |
如图2所示,数据库为上述4条事务分别生成4条事务恢复日志记录。事务恢复日志库如下所列:
事务标识 | 读集 | 写集 | 提交时间 | |
记录1 | T1 | loc1 | (loc1,2) | 2007-10-26,12:00 |
记录2 | T2 | loc1,loc2 | (loc3,2) | 2007-10-26,12:01 |
记录3 | T3 | loc2 | (loc2,2) | 2007-10-26,12:02 |
记录4 | T4 | loc3,loc4 | (loc5,2) | 2007-10-26,12:04 |
假定,在时刻2007-10-26,12:04,入侵检测元件检测得到T1是原始恶意事务,将数据库系统转换为入侵状态,并将T1作为输入,转入入侵限制组件进行处理。
入侵限制组件执行如图1所示的入侵限制过程,首先创建MTList和MLList,并对MTList和MLList进行初始化,将原始恶意事务标识T1并入MTList,将其写集并入MLList,此时MTList和MLList的取值如下所列:
MTList | T1 |
MLList | (loc1,2) |
遍历事务恢复日志库,对每一条日志记录执行图1中所示的依赖关系判定步骤。以记录2为例,其提交时间晚于记录1的提交时间,取T1的写集与T2的读集相交,得loc1,得出T2依赖于T1,则将T2并入MTList,将T2的写集并入MLList,为防止错误进一步的扩散,将MLList中的数据元素锁定。此时,MTList和MLList的取值如下所列:
MTList | T1,T2 |
MLList | (loc1,2),(loc3,2) |
如上例所示依次检验T3,T4的依赖关系,完成入侵限制组件的处理,并将MTList和MLList作为参数传给可信恢复组件,此时MTList和MLList的取值如下所列:
MTList | T1,T2,T4 |
MLList | (loc1,2),(loc3,2),(loc5,2) |
而此时数据库的状态是:
数据元素标识 | loc1 | loc2 | loc3 | loc4 | loc5 |
取值 | 3 | 3 | 5 | 2 | 7 |
如本例所述,在12:00-12:04之间提交的事务T1-T4,分别对数据库元素loc1,loc2,loc3,loc5的取值进行了更新。经过入侵检测设备的检查:T1是一个恶意事务。经过入侵限制组件的判定:T2依赖于T1的操作结果;T4依赖于T2,间接的依赖于T1。因此,事务:T1,T2和T4是需要回滚的事务,而事务T3的操作与T1无关,其操作结果需要保留。
可信恢复组件使用MLList中的数据前象取代数据元素的当前值,将数据元素的取值恢复到恶意事务提交之前的状态,此后将加在这些数据元素之上的排他锁解除,更改数据库系统的状态为正常态,并清除MTList和MLList。此时,数据库的状态为:
数据元素标识 | loc1 | loc2 | loc3 | loc4 | loc5 |
取值 | 2 | 3 | 2 | 2 | 2 |
数据库在经过恶意事务处理系统的处理之后,将恶意事务T1和受其影响的后继事务T2和T4的操作结果取消,而事务T3的操作结果得以保留。由此可见,配备了恶意事务处理系统的数据库,在遭受恶意攻击的同时仍能为用户提供持续不间断的正确服务。
Claims (3)
1.一种数据库恶意事务处理方法,其特征在于,设置一个独立于数据库原有日志系统的事务恢复日志系统,针对每一个用户事务产生一条日志记录,在事务提交时写入事务恢复日志表中,依据事务恢复日志所记录的内容,对已提交事务的合法性进行判定,当检测到入侵的恶意事务时通过检索事务恢复日志查询所有受恶意事务影响的数据,并对这些数据进行恢复,而保留未受影响的事务操作结果;
其中,每一条事务恢复日志至少包含以下内容:事务的标识、读集、写集和事务提交的时间,其中读集是事务所读数据元素的全集,写集是事务所写数据元素的标识及其对应的数据前象组成的二元组的全集;
所述事务恢复日志的生成方法是:在事务开始时为每一个事务创建一个标识符和两个数据元素集合:读集和写集,读集用于存放事务所读的数据元素,写集用于存放事务所写数据元素的标识及其前象组成的二元组;用户在提交读操作时,将其操作对象加入数据元素读集;用户在提交写操作时,将其操作对象和数据前象加入数据元素写集;当用户提交事务中断操作时,删除所述读集和写集;当用户提交事务提交操作时,使用事务标识符、读集、写集和提交时间构成事务恢复日志记录,将其写入持久存储,最后删除读集和写集;
当依据事务恢复日志所记录的内容检测到入侵的原始恶意事务时,将数据库状态置为攻击态,获得原始恶意事务标识,然后根据以下步骤进行处理:
1)创建恶意事务列表和数据元素恢复列表,并将这两个集合置为空集,其中,恶意事务列表的成员为事务的标识符,数据元素恢复列表的成员为数据元素的标识及其前象组成的二元组;
2)对恶意事务列表和数据元素恢复列表进行初始化,将原始恶意事务的标识符并入恶意事务列表中;查找事务恢复日志,找到原始恶意事务对应的记录,将其写集并入数据元素恢复列表之中;
3)按提交时间的先后顺序对原始恶意事务提交之后提交的每一个后继事务进行依赖性判断,如果后继事务依赖于恶意事务的操作结果,则:将其事务标识符并入恶意事务列表中;将其写集并入数据元素恢复列表之中,并对这些数据元素增加排他锁;
4)对于恶意事务列表中的每一个恶意事务,根据事务恢复日志记录的事务提交时间顺序从后往前在事务恢复日志中找到相对应的记录,取其写集,对于写集中包含的每一个数据元素,执行以下操作:使用数据前象取代其现有值,在数据元素恢复列表中删除数据元素标识,对数据元素解除排他锁;处理完所有写集中的数据元素之后,将该恶意事务从恶意事务列表中删除;当恶意事务列表和数据恢复元素列表为空时,结束恶意事务处理流程,更改数据库系统的状态为正常态。
2.如权利要求1所述的数据库恶意事务处理方法,其特征在于,所述步骤3)对每一个后继事务进行依赖性判断的方法具体是:对于恶意事务列表中的每一个成员,在事务恢复日志中检索到其日志记录,取该日志记录中写操作所影响的数据元素构成写数据元素集合;使用当前所判断的事务的读集与该写数据元素集合进行集合交操作,如果结果不为空则认定当前所判断的事务是恶意事务,将该事务的标识符加入恶意事务列表,将其写集并入数据元素恢复列表,并对这些数据元素加入排他锁,阻止数据库系统对其进行读写操作。
3.一种数据库恶意事务处理系统,包括:
用于以事务为单位,在事务提交时记录事务的执行历史的事务恢复日志,所述事务恢复日志中记录的每一条事务恢复日志至少包括以下内容:事务的标识、事务所读数据元素的全集、事务所写数据元素的标识及其对应的数据前象组成的二元组的全集、事务提交的时间戳;
用于读取事务恢复日志内容,对已提交事务进行合法性判定,检测出恶意事务并将入侵检测结果发送给入侵限制组件的入侵检测元件,所述入侵检测元件依据事务恢复日志所记录的内容,利用预设的规则对已提交事务的合法性进行判定,当发现入侵行为时,入侵检测元件发出警报信息,将数据库状态置为攻击态,并将恶意事务的标识输出,将其发送给入侵限制组件进行进一步的处理;
用于根据事务恢复日志和入侵检测结果分析后继事务与恶意事务之间的相互关系,找到所有与恶意事务相关的后继事务和所有受到恶意事务影响的数据元素的入侵限制组件,所述入侵限制组件按提交时间的先后顺序对恶意事务提交之后提交的每一个后继事务进行依赖性判断,找到所有与恶意事务相关的后继事务和所有受到恶意事务影响的数据元素,生成恶意事务列表和数据元素恢复列表,并将数据元素恢复列表中的所有数据元素锁定,以防止错误进一步的扩散,最后将恶意事务列表和数据元素恢复列表传给可信恢复组件,并将其启动;
用于将受恶意事务影响的数据元素恢复的可信恢复组件,所述可信恢复组件依据恶意事务列表和数据元素恢复列表,按照事务提交时间顺序从后往前在事务恢复日志中找到恶意事务列表中的每一个事务,对该事务所写的每一个数据元素执行如下操作:使用数据前象取代其现有值,在数据元素恢复列表中删除数据元素标识,对数据元素解除排他锁;处理完该事务所写的全部数据元素之后,将其从恶意事务列表中删除;如此循环处理直至恶意事务列表和数据恢复元素列表为空,使数据库系统恢复到恶意操作之前的状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101775110A CN100504905C (zh) | 2007-11-16 | 2007-11-16 | 数据库恶意事务处理方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101775110A CN100504905C (zh) | 2007-11-16 | 2007-11-16 | 数据库恶意事务处理方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101159003A CN101159003A (zh) | 2008-04-09 |
CN100504905C true CN100504905C (zh) | 2009-06-24 |
Family
ID=39307103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101775110A Expired - Fee Related CN100504905C (zh) | 2007-11-16 | 2007-11-16 | 数据库恶意事务处理方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100504905C (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923573A (zh) * | 2010-08-09 | 2010-12-22 | 哈尔滨工程大学 | 一种针对数据丢失的数据库数据快速恢复方法 |
CN102156720A (zh) * | 2011-03-28 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 一种数据恢复的方法、装置和系统 |
CN105024838B (zh) * | 2014-04-15 | 2019-01-08 | 腾讯科技(深圳)有限公司 | 多人交流平台的状态恢复方法和系统 |
CN105451223B (zh) * | 2014-08-07 | 2019-03-15 | 阿里巴巴集团控股有限公司 | 信息的监控方法、装置和移动终端 |
CN106599006B (zh) * | 2015-10-20 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 一种数据恢复方法和装置 |
CN109240854B (zh) * | 2015-12-18 | 2021-04-09 | 福建随行软件有限公司 | 对误操作引起的更改进行数据恢复的方法及系统 |
CN106407400B (zh) * | 2016-09-21 | 2019-08-06 | 中国科学院信息工程研究所 | 一种面向流式数据的实时摘要生成方法 |
CN107480009A (zh) * | 2017-08-18 | 2017-12-15 | 北京中电普华信息技术有限公司 | 一种事务恢复方法及装置 |
EP3696658B1 (en) | 2017-12-05 | 2023-10-04 | Huawei Technologies Co., Ltd. | Log management method, server and database system |
CN110121712B (zh) * | 2017-12-05 | 2022-04-05 | 华为技术有限公司 | 一种日志管理方法、服务器和数据库系统 |
CN109325073B (zh) * | 2018-08-14 | 2021-08-17 | 创新先进技术有限公司 | 分布式事务的实现方法和装置 |
CN109450942B (zh) * | 2018-12-25 | 2019-09-13 | 北京戴纳实验科技有限公司 | 一种实验室物联网管理系统的安全检测方法及其检测设备 |
CN112347497A (zh) * | 2020-11-24 | 2021-02-09 | 国网新疆电力有限公司信息通信公司 | 数据安全处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1691290A1 (de) * | 2005-02-09 | 2006-08-16 | Deutsche Post AG | Verfahren zur Sicherung einer Datenbank, computerlesbares Medium und Vorrichtung zur Durchführung des Verfahrens |
CN1819583A (zh) * | 2005-10-20 | 2006-08-16 | 北京邮电大学 | 一种基于门限的多级入侵容忍方案 |
CN1950775A (zh) * | 2004-04-29 | 2007-04-18 | 皇家飞利浦电子股份有限公司 | 计算机程序执行期间的入侵检测 |
-
2007
- 2007-11-16 CN CNB2007101775110A patent/CN100504905C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1950775A (zh) * | 2004-04-29 | 2007-04-18 | 皇家飞利浦电子股份有限公司 | 计算机程序执行期间的入侵检测 |
EP1691290A1 (de) * | 2005-02-09 | 2006-08-16 | Deutsche Post AG | Verfahren zur Sicherung einer Datenbank, computerlesbares Medium und Vorrichtung zur Durchführung des Verfahrens |
CN1819583A (zh) * | 2005-10-20 | 2006-08-16 | 北京邮电大学 | 一种基于门限的多级入侵容忍方案 |
Non-Patent Citations (4)
Title |
---|
事务处理日志与数据的安全恢复. 贾代平,范洪达.计算机应用与软件,第21卷第3期. 2004 |
事务处理日志与数据的安全恢复. 贾代平,范洪达.计算机应用与软件,第21卷第3期. 2004 * |
数据库入侵事后恢复系统的研究. 刘大勇,张玉清.信息安全与通信保密,第9期. 2006 |
数据库入侵事后恢复系统的研究. 刘大勇,张玉清.信息安全与通信保密,第9期. 2006 * |
Also Published As
Publication number | Publication date |
---|---|
CN101159003A (zh) | 2008-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100504905C (zh) | 数据库恶意事务处理方法及其系统 | |
US10152506B1 (en) | Method of ensuring real-time transaction integrity | |
US9760598B1 (en) | Method of ensuring real-time transaction integrity in the cloud | |
US9734190B1 (en) | Method of ensuring real-time transaction integrity | |
US10452648B1 (en) | Method of ensuring transactional integrity of a system that includes a plurality of subsystems, one of which takes an action upon a loss of transactional integrity | |
WO2019236321A1 (en) | Tracking and recovering transactions performed across multiple applications | |
US20060259518A1 (en) | Database corruption recovery systems and methods | |
Xie et al. | Pagoda: A hybrid approach to enable efficient real-time provenance based intrusion detection in big data environments | |
EP2024879B1 (en) | Significant change search alerts | |
CN102222194A (zh) | Linux主机计算环境安全保护的模块及方法 | |
Liu et al. | Intrusion confinement by isolation in information systems | |
US20160321143A1 (en) | Database rollback using wal | |
CN104881483B (zh) | 用于Hadoop平台数据泄露攻击的自动检测取证方法 | |
CN111914278A (zh) | 数据库的输入数据检查方法及数据库管理系统 | |
US10394798B1 (en) | Method of ensuring transactional integrity of a system that includes a first subsystem and a second subsystem | |
CN100337211C (zh) | 保障计算机持续安全运行的方法 | |
JP2007148946A (ja) | 不正アクセス検知方法 | |
CN103473353A (zh) | 面向Web安全的数据库安全防护方法和系统 | |
Panda et al. | Data dependency based logging for defensive information warfare | |
Jajodia et al. | Application-level isolation to cope with malicious database users | |
Liu | Engineering a distributed intrusion tolerant database system using COTS components | |
CN114297645A (zh) | 在云备份系统中识别勒索家族的方法、装置和系统 | |
Haraty et al. | Efficient damage assessment and recovery using fast mapping | |
Hua et al. | SQRM: An effective solution to suspicious users in database | |
CN106097104A (zh) | 一种判断分布式系统下互联网数据完整性的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090624 Termination date: 20161116 |