分类号:TP393 单位代码:10422
密 级: 学 号:200312321
硕 士 学 位 论 文
论文题目: 入侵容忍数据库的多阶段破坏控制模型
作 者 姓 名 李文才
专 业 计算机应用技术
指导教师姓名
专业技术职务 孟丽荣 教授
2006年 4月 5日
原创性声明和关于论文使用授权的说明
原 创 性 声 明
本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究所取得的成果.除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的科研成果.对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明.本声明的法律责任由本人承担.
论文作者签名: 日 期:
关于学位论文使用授权的声明
本人完全了解山东大学有关保留,使用学位论文的规定,同意学校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅;本人授权山东大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印,缩印或其他***手段保存论文和汇编本学位论文.
(保密论文在解密后应遵守此规定)
论文作者签名: 导师签名: 日 期:
目 录
第1章
摘 要
数据库安全涉及到数据库中数据的机密性,完整性,可用性.目前,大部分研究集中在如何保护数据库免受损害,很少有研究数据库在面临着一些成功的攻击时,如何提高自身的容忍能力.成功的攻击往往意味着对数据库系统的破坏,而破坏可以通过彼此读写而扩散.严重的破坏扩散会导致系统的不可用,因此,需要进行破坏控制,避免破坏扩散.目前,入侵容忍破坏控制技术多为单阶段破坏控制,受破坏对象直到修复管理器定位到它才受到控制,存在着延迟及破坏扩散.数据库系统完整性,可用性受到很大破坏.
针对这个问题,本文提出了多阶段破坏控制技术.当入侵检测器确定某一事务为恶意事务时,立即停止执行新的事务,并且立即控制从恶意事务的开始时间到恶意事务被检测出来的时间这个时间段内所有可能遭到破坏的对象,避免破坏扩散.然后在后续过程中,分多个阶段分析数据对象是否真正受到破坏.对那些没有受到破坏的对象立即解除控制.对受到破坏的对象修复到未被破坏前的最新版本,然后解除控制.多阶段破坏控制技术不再等到修复管理器定位到破坏再实行控制,避免了延迟,有效地解决了破坏扩散,保证了数据库系统完整性,可用性.
本文首先讨论了入侵容忍的理论基础,及常用的入侵容忍技术,分析了多级入侵容忍数据库模型,并介绍了入侵容忍数据库系统的破坏控制技术现状.然后,提出了多阶段破坏控制技术方案.方案包括对单个,两个及多个恶意事务的破坏控制.首先,方案给出了控制单个恶意事务时,用到的数据结构及基于时间戳控制单个恶意事务方案,处理了可能出现的破坏扩散,使用事务轮廓提高了多阶段破坏控制的效率,以及利用已完成的扫描进行有状态破坏控制.然后,给出了控制两个恶意事务的方案.方案将控制两个恶意事务分为三种情况,分别写出了严谨的算法.然后,给出了多个恶意事务的控制方案,提出了模型,并写出了算法.最后,针对多阶段破坏控制模型给出了其原型系统,并对其可行性进行了分析.
本模型有效地拒绝了破坏扩散,对用户透明,执行破坏评估和恢复时不需要停止正常的事务处理.模型基于时间戳设计,可以方便地应用到任何DBMS系统.在解除控制阶段,充分利用已有分析,避免重复分析,提高了效率.模型可以对多个恶意事务同时进行处理,因而具有很高可用性.
关键词 数据库安全;入侵容忍;多阶段破坏控制; 破坏扩散
ABSTRACT
Database security concerns the confidentiality, integrity, and availability of data stored in a database. Nowadays, a broad span of research has been done to protect the security of a database. Very limited research has been done on how to survive successful database attacks, which can seriously impair the integrity and availability of a database. Sometimes, damage spreads from one transaction to another by read and write operation. Serious damage spread can reduce the availability of a database. So, it is necessary to confine the damage and refuse damage spread. But traditional database damage confinement is one phase, that is, a damaged data item is confined only after it is identified as corrupted, and one-phase damage confinement has a serious problem, that is, during damage assessment serious damage spread can be caused.
To solve this problem, we present multi-phase database damage confinement. It means that when intrusion detector detects a malicious transaction, system contains all the objects that may be damaged immediately. And then, system checks whether the object is damaged through several phases. System uncontains the object that is undamaged. System repairs the objects that is damaged to the latest version that is undamaged. Multi-phase damage confinement solves damage spread and guarantees the system's integrity and availability.
In this paper, we introduce intrusion tolerance's theory foundation and intrusion tolerance technique in common use. Then, we introduce the multi-intrusion tolerant database system's model. In contrast to one-phase damage confinement, we present the multi-phase damage confinement's technique model. This model presents how to contain a single malicious transaction. We present the data structure, time-stamp-based damage containment, handling damage leakage, exploiting transaction profiles, and stateful damage containment. Before we present how to contain multiple transactions, we present how to contain two malicious transactions at first. There are three cases. We present the strict algorithm for each case. Then, we present the algorithm of containing multiple transactions. At last, we present the prototype of multi-phase database damage confinement system and analyze the feasibility.
This model solves damage spread. It is transparent to user. It enforces damage assessment and repair without stopping the execution of normal transactions, so it has more availability. This model designs the uncontaining phase as concurrent thread. In our design, we have thought much of efficiency and avoid repeated analysis. It can contain multiple transactions simultaneously and has more usability.
Key words database security; intrusion tolerance; multi-phase damage confinement; damage spread
第1章 绪论
课题提出的背景
随着数据库的广泛应用,企业和人们的日常生活对数据库依赖性越来越大,数据库的安全越来越得到人们的关注.但数据库安全事件时常发生,给受害企业和个人造成了极大的损失.特别是计算机网络的日益普及,非法入侵越来越多,如何保证数据库的安全成了目前的研究热点[1].一般的研究强调将攻击者拒之门外,通过加密和严格的存取控制保护信息的保密和完整[2].很少有研究数据库在面临一些成功的攻击时,如何保持数据库的完整性和可用性.而有时一些成功的攻击是不可避免的.这些成功的攻击可能导致数据库系统不能正常工作,造成大量数据信息被破坏,甚至使数据库系统崩溃.
像信用卡支付,银行,飞机交通控制,后勤管理,在线期货交易等大量用到数据的系统中,正在面临着一些成功的攻击.这些对商用数据库系统的攻击越来越变成我国经济的威胁.这就需要建立具有抵抗力(弹性)的数据库系统.入侵容忍数据库系统是一个很好的选择.但是,目前入侵容忍数据库系统多为单阶段破坏控制系统.数据对象直到破坏评估器定位到破坏才受到控制,这会造成检测延迟,评估延迟,恢复延迟,以至于导致严重的破坏扩散,使数据库变得不可用.为此,本文提出了多阶段破坏控制的入侵容忍数据库系统.当检测出恶意事务时,立即控制所有可能受到破坏的对象,解决了延迟,避免了破坏扩散,然后判断受控对象是否真正受到破坏.对于没有受到破坏的对象直接解除控制.对受到恶意事务破坏的对象进行修复,然后解除控制.多阶段破坏控制很好地克服了单阶段破坏控制的缺点,不会引起破坏扩散,实现了入侵容忍,能够很好地保证数据库系统的可用性.
1.2 主要研究内容和特色
1. 论文研究的主要内容
针对目前入侵容忍数据库系统的单阶段破坏控制技术,提出了多阶段破坏控制技术模型.给出了控制单个恶意事务时用到的数据结构,如何基于时间戳控制单个恶意事务,如何处理破坏扩散,如何使用事务轮廓提高多阶段破坏控制的效率,以及如何利用已经完成的扫描进行有状态的破坏控制,分别给出了算法.然后,根据控制多个恶意事务需要解决的问题,给出了控制两个恶意事务的方案.控制两个恶意事务可能出现三种情况:新检测出的恶意事务的提交时间在旧的恶意事务的受控子历史记录之前,在的受控子历史记录之后,在的受控子历史记录之中.在对三种情况可能出现的问题进行了分析后,分别给出严谨的算法.算法充分利用了前一个恶意事务的扫描结果,在保证没有破坏扩散的基础上,避免了重复分析,提高了效率.然后,给出了控制多个恶意事务方案,将多个恶意事务划分簇集的形式,提出了模型,并给出了算法.最后,针对多阶段破坏控制模型给出了其原型系统,并对系统可行性进行了分析.
2. 研究的主要特色:
(1)本文提出了多阶段破坏控制模型,模型具有既不存在破坏扩散,又不会出现重复分析的特点,因此,既保证了数据库系统正确性又保证了效率.
(2)模型从单个恶意事务到多个恶意事务,分别给出了详细的算法,涵盖了多阶段破坏控制的各种情况,算法严谨清晰.
(3)算法设计过程中,充分考虑已分析过的记录,避免了重复分析,提高了效率.
(4)模型基于时间戳设计,只需要为每一张表添加一个时间戳域,不需要对数据库做任何其他的修改,可以应用到任何DBMS.
(5)模型设计对用户透明,用户不需要知道系统的复杂性.
第2章 数据库入侵容忍技术概述
随着来自网络的越来越多的攻击,如何增强现有商用数据库系统的安全,使其针对攻击具有自动地恢复能力,或称弹性,成为现在的一个热门课题.入侵容忍技术就是针对这一问题提出的.
2.1 入侵容忍技术的引入
计算机网络的发展使数据库面临越来越多的攻击,增强抵御入侵和破坏能力的技术成为目前研究的热点.
在复杂网络环境下,特别是在Internet网络中,严格区分合法用户和假冒的合法用户变得困难.一个复杂的应用往往包括许多合法的用户,很难保证所有用户都遵守安全管理的规定.有些用户无意中泄露了自己的身份;有的可能主动请别人代替自己进行一些工作;有的薄弱环节可能被攻破,导致一些认证信息泄露等.所有这些,都使得系统辨认一个真正的合法用户变得困难.内部人员的攻击也成为复杂环境下系统安全必须考虑的问题.出于种种目的,内部用户可能利用合法渠道对系统实施攻击.利用现有的防攻击手段很难抵制这种攻击.另外,数据库系统往往存在一些安全漏洞,攻击者有时利用安全漏洞进行攻击,不仅威胁数据库的安全,也威胁到操作系统和其他可信任的系统.有些数据库系统提供的机制威胁着网络安全低层.比如,某公司的数据库里面保存着所有的技术文档,手册和***.即使运行在一个非常安全的操作系统上,入侵者也可能通过数据库获得操作系统权限,只需要执行一些内置在数据库中的扩展存储过程即可.这些数据库服务器还同其他服务器存在信任关系,入侵者就能够对整个域机器的安全产生严重威胁.
入侵容忍技术在这个背景下产生了,其目标是当一个系统遭受非法入侵后,其中的防护安全技术都失效或者不能完全排除入侵所造成的影响时,即使系统的某些组件遭受一些成功攻击者的破坏时,入侵容忍系统仍能及时自我诊断,恢复和重构,并能为合法用户提供所需的全部或者降级的服务[3].
一个入侵容忍系统ITS是这样的信息系统,它能够在面对攻击的情况下,仍然连续地为预期的用户提供及时的服务.入侵容忍系统能够抵抗一些用攻击避免和预防手段无法检测的信息攻击.这些攻击可能透过外层防御,即用攻击避免和预防手段设置的防御,如防火墙系统,认证和加密系统等,系统将采取一些必要的措施保证关键应用的功能连续正确.这些措施包括从限制怀疑的代码和数据到重新配置硬件和软件资源等.一般而言,容忍系统包括两个方面:一是容忍技术,这是目前商用系统所缺乏的功能.容忍技术可以让系统对入侵和攻击具有可复原性能(弹性),这些技术包括资源重新分配,系统冗余等;二是容忍机制的触发器,入侵检测系统可以成为一个这样的触发器.但即使目前最顶级的入侵检测系统,也具有太高的误警率和太低的入侵识别范围[4].理论上,触发器应该具有很高的覆盖范围和零误警率.很高的覆盖范围是指对任何攻击和入侵导致的错误都能检测出来,同时,错误在系统传播之前就应该检测到.例如,如果容忍生存系统结构依赖于单元的冗余备份,就必须在所有备份单元崩溃之前发现攻击入侵错误,在错误影响到容忍机制之前检测到错误也是很重要的.
数据库入侵容忍技术为解决这一问题提供了很好的方案.数据库入侵容忍技术是一种新的安全技术,其核心思想是用硬件或软件容错技术屏蔽任何入侵或者攻击对系统功能的影响,从而使数据库系统具有弹性,在系统遭受一定限度的攻击后,仍然能为合法用户提供不间断的正常服务.
2.2 入侵容忍的理论基础
2.2.1 系统故障模型
在面临攻击的情况下,一个系统或系统组件被成功入侵的原因主要有两个:(1)安全漏洞,本质上是需求,规范,设计或配置方面存在的缺陷,如不安全的口令,使得堆栈溢出的编码故障等,安全漏洞是系统被入侵的内部原因;(2)攻击者的攻击,这是系统被入侵的外部原因,是攻击者针对安全漏洞的恶意操作,如端口扫描,DOS攻击等方法[5].攻击者对系统或系统组件的一次成功入侵,能够使系统状态产生错误(error),进而会引起系统的失效(failure).为了把传统容错技术用到入侵容忍上面来,可把任何攻击者的攻击,入侵和系统组件的安全漏洞抽象成故障系统故障(fault).一个系统从面临攻击到系统失效的过程中,通常会出现以下事件序列:故障(fault)-错误(error)-失效(failure).为了推理用于建立阻止和容忍入侵的机制,有必要对系统故障进行建模.在实践中,常用的故障模型是AVI混合故障模型(Attack,Vulnerability,Intrusion composite fault model),见图2-1:
图2-1 AVI系统故障模型
由图2-1可见,故障是引起系统产生错误的原因,错误是故障在系统状态方面的表现,而失效是一个错误在系统为用户提供服务时的表现,即系统不能为用户提供预期的服务.为了实现入侵容忍,防止系统失效,可以对事件链的各个环节进行阻断,见图2-2:
图2-2 防止系统失效的AVI系统故障模型
由图2-2可见,综合应用多种安全技术可以防止系统失效,这些安全技术包括:(1)防止攻击:包括信息过滤,禁止JavaScript等可能含有恶意的脚本,对入侵进行预测等技术;(2)防止漏洞:包括完善的软件开发,预防配置和操作中的故障;(3)排除漏洞:针对程序堆栈溢出的编码错误,弱口令,未加保护的TCP/IP端口等漏洞,采用漏洞排除方法,从数量和严重程度上减少安全漏洞的存在,然而要完全排除系统安全漏洞并不现实.(4)防止入侵:针对已知形式的攻击,采取防火墙,入侵检测系统,认证和加密等手段,可以对这些攻击进行预防和阻止;(5)入侵容忍:作为阻止系统失效发生的最后一道防线,入侵容忍意味着能检测到入侵引起的系统错误,并采用相应机制进行错误处理.
2.2.2 入侵容忍目标和实现机制
入侵容忍技术从本质上讲是一种使系统保持可生存性(Survivability)的技术.根据安全需求,一个入侵容忍系统应达到以下目标:(1)能够阻止和预防攻击的发生;(2)能够检测攻击和评估攻击造成的破坏:(3)在遭受到攻击后,能够维护和恢复关键数据,关键服务或完全服务.入侵容忍系统目标的实现,需要一定的安全机制来保证,主要有以下机制:
安全通信机制 在网络环境里,为了保证通信者之间安全可靠的通信,预防和阻止攻击者窃听,伪装和拒绝服务等攻击,安全通信机制是必需的.入侵容忍的安全通信机制通常采用加密,认证,消息过滤和经典的容错通信等技术.
入侵检测机制 入侵检测通过监控并分析计算机系统或网络上发生的事件,对可能发生的攻击,入侵和系统存在的安全漏洞进行检测和响应.入侵检测通过和漏洞分析,攻击预报技术结合,能预测错误的发生,找出造成攻击或带来安全漏洞的原因.入侵检测也可结合审计机制,记录系统的行为和安全事件,对产生的安全问题及原因进行后验分析.
入侵遏制机制 通过资源冗余和设计的多样性增加攻击者入侵的难度和成本,还可通过安全分隔,结构重配等措施来隔离己遭破坏的组件,限制入侵,阻止入侵的进一步扩散.
错误处理机制 错误处理旨在阻止产生灾难性失效,具体包括错误检测和错误恢复.错误检测包括完整性检测和日志审计等.错误检测的目的在于:限制错误的进一步传播;触发错误恢复机制;触发故障处理机制,以阻止错误的发生.错误恢复机制的目的在于使系统从入侵所造成的错误状态中恢复过来,以维护或恢复关键数据,关键服务甚至是完全服务.错误恢复机制包括:前向恢复(Forward recovery),即系统向前继续执行到一个状态,该状态保证提供正确的服务;后向恢复(Backward recovery),即系统回到以前被认为是正确的状态并重新运行;错误屏蔽(Error masking),即系统地应用冗余来屏蔽错误以提供正确的服务,主要保障机制包括组件冗余,门限密码学,系统投票操作,拜占庭协商和交互一致性等.由于错误检测方法不可靠或有较大的延迟,从而会影响错误恢复的有效性,因此,错误屏蔽是优先考虑的机制.
本文中多阶段破坏控制技术模型就是针对错误处理机制提出的模型,它可以有效地阻止破坏扩散,有效地修复攻击造成的破坏,很好地支持了入侵容忍.
2.2.3 入侵容忍安全策略
入侵容忍安全策略是指当系统面临入侵时,系统采取何种安全策略来容忍入侵,避免系统失效的发生.入侵容忍安全策略来自于经典的容错和安全策略的融合,策略以操作类型,性能,可得到的技术等因素为条件,在衡量入侵的成本和受保护系统的价值的基础上制订.一旦入侵容忍安全策略定义好了,就可根据确定的入侵容忍机制设计入侵容忍系统.具体而言,入侵容忍策略包括以下几个方面:
故障避免和容错 故障避免策略指在系统设计,配置和操作过程中尽可能排除故障发生的策略,由于要完全排除系统组件的安全漏洞并不现实,而且通过容错的方法来抵消系统故障的负面影响往往比故障避免更经济,因此,在设计入侵容忍系统时,应将故障避免和容错策略折衷考虑.在一些特殊情况下,对于至关重要的系统,故障避免是追求的目标.
机密性操作 当策略目标是保持数据的机密时,入侵容忍要求在部分未授权数据泄露的情况下,不揭示任何有用的信息.入侵容忍系统的机密性操作服务可以通过错误屏蔽机制来实现,错误屏蔽有多种方法,如门限密码体制或法团(Quorum)方案.
可重配操作 可重配操作策略是指在系统遭受攻击时,系统根据组件或子系统的受破坏程度来评估入侵者成功的程度,进而对系统资源或服务进行重新配置的策略.可重配操作基于入侵检测技术,在检测到系统组件错误时能够自动用正确的组件来替代错误组件,或者用适当的配置来代替不适当的配置.可重配操作策略用于处理面向可用性或完整性服务,比如事务数据库,Web服务等.由于可重配策略需要对资源或服务进行重配,系统提供的服务可能临时无效而造成一些性能上的降级.
可恢复操作 对于一个系统,假设:①使它失效至少需要时间,②系统至多需要时间,从失效状态恢复到正常状态,而且时间对于应用者而言可以接受;③系统崩溃也不会产生不正确的计算;④对于一次给定的攻击,其攻击持续时间为,并且有 < + .如果系统满足以上四个假设,则其遭受攻击并失效时,系统可采用可恢复操作来恢复正常.在分布式环境里,可恢复操作需要借助安全的协商协议来实现.
防失败 当攻击者成功入侵系统的部分组件时,系统功能或性能受到破坏,当系统不能再容忍故障发生的情况下,系统有可能发展到潜在不安全状态.此时,有必要提供紧急措施(如停止系统的运行)以避免系统受到不期望的破坏.这种策略常用于任务至关重要的系统,是其他策略的补充.
2.3 常用的入侵容忍技术
(1)冗余技术
冗余是容忍的最基本,最重要的技术.冗余一般是指系统资源超出正常工作条件所需的标准.冗余与***(备份)是有区别的,***只是冗余的一种-是物理上对数据源的冗余.此外还有两种冗余:时间冗余和信息冗余.被广泛应用于通信协议的超时技术(Time-Out Technique)就是时间冗余的一个很好的例子,当发送连接请求并等待回应时,通常会设置一个超时时间,这个时间范围允许在一定范围内容忍通信连接中的临时错误.信息冗余的应用也很广泛,例如原始数据被采用多余的比特编码,用于提供同步,纠错等功能,从而更好地容忍错误.
采用冗余技术也会带来很多问题,主要不足有以下两个方面:一是冗余在减少错误发生的同时会增加系统的复杂度;二是冗余增加系统成本,而且不成熟的冗余会增加潜在的错误发生几率.
为了保证从冗余的源中得到正确结果,需要进行选举.举一个简单的例子:文件F存放在5个服务器上,当对F进行查询时,需要从5个服务器上取回查询结果{ F1,F2,F3,F4,F5 },并由一个选举执行者对这5个查询结果进行比较,如果其中的多数(如4个)服务器上的内容一致,则认为选举成功,同时表明另一个服务器有可能遭受入侵.由此可以看出,选举的作用有两个:一是得出正确的结果;二是标识入侵.
(2)系统自适应技术
系统根据攻击的情况设置入侵容忍策略,为了使系统高效的工作,必须采取自适应技术.常用的自适应技术有以下几种:
回滚:受影响的组件透明地用正确的备份组件代替.
转移:将所有拥塞的请求转移到另一个安全的服务器.
共享负载:共享负载(负载平衡)用于避免负载过重导致服务器不可用或降级.
阻塞:如果某个客户被认定是攻击者或是可疑的,则系统可以拒绝为其服务.
鱼缸:类似于阻塞,但是允许可疑客户继续接受服务,但是将禁止其执行某些操作,以保护其它正常客户不受影响.
复员:当遭受攻击的组件恢复正常后,可以被重新启用.
调整系统状态:系统的多级防御措施可以根据操作环境和遭受攻击情况进行调整.
在入侵容忍数据库的设计方案中,可以综合应用以上自适应技术,但必须注意以下两个方面:一是系统的自适应方案应该是不可预见的,否则将会被攻击;二是自适应方案要有弹性,防止短暂的行为导致系统调整工作状态,以致造成系统状态的不稳定.实时的或无级的自适应是非常困难的.
(3)间接访问技术
间接访问也是入侵容忍中的重要技术,用来在客户和服务器之间设置防御.由于间接访问的实现采用黑盒设计,对于客户来说是透明的.常用的间接访问技术有3种:
代理(Proxy) Proxy是系统的入口,代理客户的请求,是系统防御的第一道防线.Proxy的功能主要有:代理客户请求;流量(负载)平衡;客户合法性测试;基于签名的测试等.由于Proxy是系统的入口,因此它的性能是系统性能的瓶颈,而且容易成为被攻击的目标,解决方法是采用多Proxy设计.
间接访问能够提高系统的安全性能,但是会增加额外的成本和时延.
封装(wrapper) 封装同代理类似,只是比Proxy部件拥有更高的可信度,能够与服务器直接交互.
沙箱(sandboxing) 该方法将不信任的程序在单独的虚拟地址空间里安全地运行,限制其访问本地资源的权限,它只能施加有限的影响,破坏有限的资源.Java运行环境就提供了这种安全技术用来防止Java applet危害主机.
(4)破坏控制技术
入侵容忍数据库的破坏控制技术分为两种:入侵隔离和多阶段破坏控制.
入侵隔离是实现入侵容忍的一个重要手段.入侵隔离的主要思想是在入侵检测器无法确定某一事务是否为恶意事务时,设定其为可疑用户.系统隔离可疑用户提交的操作,而不是立即终止该用户提交的数据库事务操作,建立嫌疑版本数据库.如果系统在后续操作中发现该用户不是恶意攻击者时,数据库系统能够以较少的资源消耗,达到保留该用户尽可能多的事务操作的目的.如果是恶意事务,则将嫌疑版本数据库删除.隔离使得数据库免于被一系列可疑事务可能造成的破坏,而且没有损失数据库持续的可用性.入侵隔离技术具有消耗资源少,便于实现的优点,具有很高的可用性.入侵隔离很好地解决了检测延迟.
多阶段破坏控制技术是入侵检测器确定某一事务为恶意事务时,立即控制所有可能遭到破坏的对象,然后在后续过程中,分阶段的对那些没有受到破坏的对象或受到破坏但是被正确修复的对象进行解除控制.多阶段破坏控制技术拒绝了破坏扩散,有效地保证了数据库系统的可用性和完整性.多阶段破坏控制很好地解决了评估延迟和修复延迟.
2.4 多级入侵容忍数据库的模型
数据库受到的安全威胁主要来自4个层面,即用户,OS层面,DBMS层面和事务层面.首先,身份认证,访问控制等安全防护措施可以防止非法用户或合法用户的误操作对数据库安全造成威胁.其次,由于数据库运行在操作系统之上,要保证数据库安全首先需要一个安全的操作系统环境.例如在windows环境下运行的SQL Server,如果SQL Server采用windows身份验证,一旦操作系统口令被攻破,则入侵者很容易获取SQL Server中的机密数据.第三,DBMS的安全问题主要有:DBMS弱口令,数据库管理员对用户权限分配不合理或管理不善造成的用户权限和用户级别混乱,DBMS安全漏洞等.采用冗余的办法,通过一组异构的数据库应用服务器,可以有效的解决来自OS层和DBMS层的恶意攻击.异构的数据库应用服务器是指在不同的操作系统环境下运行的不同类型的DBMS.由于不同类型的OS和DBMS的安全漏洞不尽相同,一种攻击不能同时破坏两种不同的数据库应用服务器.这就意味着要想完全破坏冗余的数据,入侵者必须熟悉各种OS和DBMS,而要做到这一点是非常不容易的.最后,事务层面的攻击主要是入侵者设法获取合法的身份后,对数据库进行访问,由于入侵者的操作看上去是合法的,因此可以避开身份认证,访问控制等安全防护措施.基于冗余的入侵容忍技术无法解决事务层面的攻击.本文中的多阶段破坏控制模型建立在事务级入侵容忍的基础上.
基于入侵容忍的多级数据库安全模型由四级构成,如图2-3所示.
第一级:对用户采用间接访问,认证,访问控制,加密,消息过滤,防火墙等技术,以防范非授权用户的攻击和破坏.客户访问数据库系统时,首先要经过防火墙过滤,客户与服务器进行互相认证,必要时对机密信息进行加密.
第二级:不同类型OS,采用Windows,Unix,Linux等多种操作系统.由于一种恶意攻击往往只对一种OS有效,引入多种OS能有效防止恶意攻击对数据库造成破坏.
第三级:冗余异构的DBMS,采用Oracle,DB2,SQL Server,SYBASE等多种数据库管理系统存储数据.由于攻击者不可能对所有DBMS都熟悉,一种恶意攻击往往只对一种DBMS有效,因此将机密数据存放在不同类型的DBMS中能有效防止恶意攻击对数据库造成破坏.
第四级:事务级入侵容忍.容忍入侵技术主要考虑在入侵存在的情况下系统的生存能力,保证系统关键功能的安全性和健壮性.数据库安全面临的最大问题是内部人员攻击.内部人员攻击可以是恶意的或是非恶意的.恶意攻击是指内部人员有计划地窃听,偷窃或损坏信息,或拒绝其他授权用户的访问.联邦调查局(FBI)的评估显示80%的攻击和入侵来自组织内部.内部人员熟悉系统的结构,敏感数据的存储及安全系统的情况,这种攻击最难于检测和防范.非恶意的攻击通常指那些由于粗心,缺乏技术知识或为了"方便工作"等无意间绕过安全策略从而对系统造成了破坏的行为.事务级入侵容忍能很好的抵御来自内部的攻击,保障数据库的数据安全.入侵隔离技术和多阶段破坏控制技术可以很好地解决事务级的入侵容忍.
图2-3 基于多级入侵容忍的数据库安全模型
本文提出的多阶段破坏控制模型建立在事务级入侵容忍的基础上,系统执行事务级安全策略,对事务级恶意攻击及其造成的破坏进行控制并进行修复,来保证数据库系统的完整性及可用性.
第3章 多阶段破坏控制技术
本模型面向事务级入侵容忍.模型中数据库系统由一系列数据对象组成,数据对象由事务进行处理.事务是一系列的读写操作,事务要么提交要么中断.
多阶段破坏控制是相对于单阶段破坏控制而来的.在单阶段破坏控制模型中,受破坏对象不会被控制直到修复管理器定位到它,以致产生严重的评估延迟,导致严重的破坏扩散.破坏扩散会降低系统可用性,甚至导致系统不可用.多阶段破坏控制技术针对以上弊端提出:一旦检测到恶意事务,立即控制所有可能遭到破坏的对象.然后,分多个阶段对未受破坏对象解除控制,对受到破坏的对象修复后解除控制.多阶段破坏控制可以有效地解决破坏扩散,保证系统可用性.
3.1 概念解释
事务:一系列的读写操作,执行过程中要么提交要么中断,由一系列的SQL语句构成.
历史记录:详细记录一系列事务的执行.本模型中,事务执行是序列化的.系统通过两段锁协议来保证序列化.
破坏扩散:如果事务读数据对象x,而x被另一事务写,则被直接影响;的写操作集和的读操作集的交集,叫做对的依赖度.如果被直接影响,被直接影响但没有被直接影响,则 被间接影响. 容易看到,如果更新x的事务被确认为恶意的,那么在恶意事务被修复前,破坏可能扩散到每一个受直接或间接影响的良性事务更新的对象.
举例说明:事务集:(,,,,)
:读数据对象x ;:写数据对象x;:提交.
历史记录H1:
B1,G1,G2,G3,G4的写操作集为{x,u},{x,y},{y,v},{z },{u,y,z }.
恶意事务B1的写操作集为{x,u},但实际受到破坏的数据集为:{x,y,u,v,z}.破坏由{x,u}扩散到{x,y,u,v,z}.
受控对象:被控制执行器控制的对象,不能够被任何用户事务读或者更新.
事务处理原子性:事务中的SQL语句要么全部执行,要么一个也不执行.
检测延迟:如果事务B是恶意事务,入侵检测器检测出B需要时间.从B开始到B被检测出来的时间叫做检测延迟.入侵容忍数据库系统采用入侵隔离解决检测延迟.
评估延迟:检测出恶意事务B后,确定哪些数据对象遭到破坏需要时间,从检测出B到确定哪些数据对象受到破坏的时间叫评估延迟.多阶段破坏控制可以解决评估延迟.
恢复延迟:干净对象x从被错误控制到被解除控制的时间段.
控制策略:系统对破坏的控制策略分为四种,假设SE为实际受到控制的对象,SD为实际受到破坏的对象.精确控制:SE=SD 过量控制:SESD 不足控制: SESD不精确控制:SESDSE并且SESD SD.本模型中,采用过量控制作为解决方案.
系统可用性:系统可用性通过未受控对象占所有数据对象的比例来衡量.
系统完整性:系统完整性通过未被破坏且未受控对象占所有未受控对象的比例来衡量.
破坏泄漏:在控制阶段,如果一个对象实际上被破坏但是没有受到控制,则造成破坏泄漏.在解控阶段,如果一个受到破坏的对象,还没有被修复但是被错误的解除控制,同样造成破坏泄漏.
为定位受恶意事务影响的事务,引入依赖关系图DG(B).DG(B)=(V,E).V:B和所有受B影响的事务集.E:→,若∈V,∈(V- B),那么依赖于.
3.2 多阶段破坏控制结构模型
多阶段破坏控制由一个初始控制阶段和几个解控阶段组成.多阶段破坏控制的前提是:系统能够检测出恶意事务.在恶意事务被入侵检测器检测出来后,系统立即控制所有可能遭到恶意事务破坏的对象,然后对受控对象进行破坏评估,对受破坏对象通过一系列UNDO操作修复到未遭受破坏前的版本并解除控制.系统采用多个解控阶段是为了保证既不存在破坏扩散,又能尽可能的提高效率.本模型中,受控对象不能够为用户事务读取,直到它被解除控制.
系统通过触发器和分析事务轮廓(SQL语句)得到事务的读操作和写操作.通过历史记录中事务之间的依赖关系图分析破坏的范围.多阶段破坏控制结构模型如图3-1.
图3-1多阶段破坏控制结构模型
入侵检测器(intrusion detector):检测恶意事务.入侵检测器不能够保证100%的正确,一些破坏可能不能够被定位并修复,一些没有受到破坏的可能会被错误的修复.
破坏修复器(repair manager):定位并且修复恶意事务造成的破坏,执行UNDO操作,把数据恢复到未被破坏前的最新版本.修复管理器通过入侵检测器报警触发.
策略执行管理器 (Policy Enforcement Manager):共有两个方面的功能
对每一个正常用户的事务进行代理.
执行系统范围的安全策略.例如:当系统检测到某个用户的一个事务是恶意事务时,可以认为该用户为恶意用户,拒绝执行用户的其他事务.
破坏评估器:检查历史记录,分析事务之间的依赖关系,定位破坏的范围,以及破坏的程度,并将受破坏的对象送到破坏修复器进行修复.
破坏控制管理器:系统通过它执行破坏控制.
3.3 多阶段破坏控制的各个阶段
初始控制阶段:采用过量控制策略.当检测到一个恶意事务B,系统立即控制所有可能遭到破坏的对象.受到控制的对象集合(confinement set)记作.实际遭到破坏的对象,记作.是的子集.初始控制阶段使用时间戳.所有时间戳晚于B的开始时间的对象将被系统控制.不包括在初始控制阶段之后被更新的对象.初始控制阶段期间,所有活动的事务停止执行,所以不会出现破坏扩散.初始控制阶段只设置对象的受控标记,因此,只需要很短的时间.
解控方案由三个解控阶段构成,系统解除控制那些受到控制但实际没有受到破坏的对象,修复受破坏对象到没有被破坏前的最新版本,因此,系统的受控对象集合是递减的.恢复阶段的受控对象集:,,,…,,中的对象逐渐减少,直到最后变成.(j≤i). (i≥1)是第i个解控阶段的结果.在本模型中,解控阶段作为可以单独并发执行的线程,彼此之间不互相影响.
第一解控阶段:检查事务类型的依赖关系图,假设每个事务有一个专门的类型,事务的轮廓(事务中的SQL语句)是预先知道的.一个事务读或写对象的类型可以从事务的轮廓中得到(对象类型可能是关系数据库中的一列或一张表).如果一种事务类型的写集合和另一种事务类型的读集合的交集不为空,那么这两种事务类型之间存在直接依赖关系.不同事务类型之间也可存在着传递依赖关系.检查事务类型的依赖关系图,如果一种事务类型和恶意事务的类型之间不存在依赖,那么,这一类型事务操作的对象可以解除控制.
第二解控阶段:对事务类型进行实例化,然后检查实例化后的事务之间的依赖关系,对于那些没有受到恶意事务影响的事务操作的对象解除控制.
第三解控阶段:检查系统的历史日志,对实际执行的事务进行破坏评估.在破坏评估阶段,检查哪些良性事务受到恶意事务B的影响,哪些数据对象受到B或受B破坏的事务的影响,定位破坏的范围.如果一个事务G为良性事务,那么G更新的对象中,时间戳早于G的提交时间的对象没有受到破坏.对于那些没有受到破坏的对象,系统解除控制.对于受到破坏的对象,破坏修复器通过专门的UNDO事务对受破坏对象修复,然后,系统对其解除控制.需要注意的是,并不是所有被良性事务G更新的对象可以被解除控制,因为这些对象可能在之后的过程中被其他事务破坏.
多阶段破坏控制不会产生破坏扩散,缺点是:一些没有受到破坏的数据对象,可能会暂时地受到控制而丧失一些可用性.
以下省略
第7章 结束语
随着网络,电子商务以及电子政务等的迅速发展,数据库安全面临更加严峻的挑战.越来越多的政府,商业,金融等机构和部门将自己的数据库连接到Internet上,数据库受到网上的攻击越来越多,造成的损害越来越大,所以数据库安全成为安全的焦点.入侵容忍数据库系统使数据库系统面临一些成功的攻击时,变得有弹性.
本文在原有的单阶段破坏控制技术的基础上,对入侵容忍数据库的破坏控制技术进行了改进,给出了入侵容忍数据库的多阶段破坏控制模型.该模型具有以下特点:
(1)系统执行多阶段破坏控制,不会存在破坏扩散.当系统的入侵检测器检测到恶意事务时,立即控制从恶意事务的开始时间到恶意事务被检测出来的时间这个时间段内所有对象,这个过程执行的很快,不影响其他正常事务的执行.
(2)系统基于时间戳设计,数据库系统只需要为每一张表添加一个时间戳域,无须其他操作,因此可以应用到任何数据库系统,如Oracle,SQL Server.
(3)多阶段破坏控制模型的解控阶段使用了类型依赖关系图,实例化类型依赖关系图,大大提高了解控阶段对受控对象的分析效率,提高了数据库可用性.
(4)控制多个恶意事务时,在保证没有破坏扩散的基础上,充分利用已经扫描过的受控历史子记录,避免了重复分析,提高了系统效率.
数据库入侵容忍技术是解决来自网络或内部攻击的最好办法,是数据库安全的一个重要组成部分.本文的方案虽然取得了一定成果,还有需要进一步改进的工作:
首先,多阶段破坏控制模型会使系统丧失一些可用性,如何在保证没有破坏扩散的基础上,进一步提高系统可用性.在面临大量恶意攻击时,进一步提高自身稳定性,提高服务质量.
其次,入侵检测是实现数据库入侵容忍的基础,如何尽可能早的发现恶意事务,提高入侵检测的准确性,减少检测延迟.
再次,如何从事务轮廓中得到更准确的事务读写模板,如何获得更加准确的事务之间的依赖关系图,以及如何对事务类型进行更加准确的实例化,需要进一步研究.
最后,如何进一步提高多阶段破坏控制系统的自适应性.
参考资料
[1] 刘自伟, 蔡勇, 陈波 数据库安全技术研究 西南科技大学学报(自然科学版),2002 Vol.17 No.3
[2] 徐升华, 陈思华. 关系数据库系统中基于角色的存取控制 计算机与现代化,2005 No.4: 73-75
[3] 郭大伟, 安宁 入侵容忍系统设计 计算机工程与应用, 2005 Vol.41 No.29
[4] 吴庆涛, 邵志清 入侵检测研究综述 计算机应用研究, 2005 Vol.22 No.12
[5] 文俊浩,徐玲,李立新,徐传运 安全增强的数据库系统的模型构建 计算机应用,2005 Vol.25 No.8
[6] 王慧, 方明, 李仁根.网络数据库安全性问题的分析与模型.2003,18(1):64-66.
[7] 巩建国,裴红,韩素贞,许大盛.数据库服务器的安全性[J].山东建筑工程学院学报,2004,19(2):79-83
[8] 刘军,肖军模,张磊. 网络信息安全技术讲座(二). 军事通信技术,2003,24(1):68-74
[9] 荆继武.在攻击中生存.计算机世界报 2004,第11期.
[10] 荆继武,周天阳,Internet上的入侵容忍服务技术,中国科学院研究生院学报.2001/18/2
[11] 张险峰,刘锦德.一种基于门限ECC的入侵容忍CA方案[]].计算机应用,2004,24(2):5-8
[12] 朱建明,史庭俊,马建峰.基于多代理的容忍入侵体系结构. 基于多代理的容忍入侵体系结构. 计算机工程与应用.2003.11
[13] 韩炜,藏红伟.N版本编程技术的软件可靠性分析.微电子学与计算机.2003.5
[14] 陈伟鹤,殷新春,谢立.数据库管理系统的入侵容忍技术研究进展.计算机科学,2004,Vol.31 No.4
[15] 郭渊博,马建峰.一种容忍入侵的会议密钥分配方案. 2004年4月,Vol. 31 ,No. 2
[16] 郭渊博,马建峰. 面向服务的容忍入侵方法与设计,郑州大学学报(理学版),2004Vo1. 36,No. 2.
[17] 陈驰,夏思淝,赵华伟.入侵容忍数据库中选举流程的设计.计算机应用与软件. 2003 Vol.20 No.1:35-37.
[18] 白银姬,谢维信,喻建平等. 基于主动秘密共享的安全容忍入侵方案.兰州交通大学学报,2004Vo1. 23,No. 1.
[19] 张险峰,张峰秦,志光等.入侵容忍技术现状与发展.计算机科学2004Vo1. 31No. 10.
[20] 孟丽荣,夏思淝,陈驰等, 一种入侵容忍的安全数据库系统设计方案.山东大学学报(工学版).2003,33(2):176-179
[21] 阙喜戎,孙锐等.信息安全原理及应用.北京大学出版社.2003.7
[22] 邹立新,丁建立 基于拜占庭协议的入侵容忍系统模型设计 计算机工程, 2005 Vol.31 No.z1
[23] 彭文灵,王丽娜,张焕国 基于有限自动机的网络入侵容忍系统研究 型微型计算机系统, 2005 Vol.26 No.8
[24]赵洁,田炼,宋如顺 网络入侵容忍技术分析 计算机时代, 2005 No.6
[25]刘林强,李学宝,任圣 基于数据融合的入侵防御模型 计算机应用研究, 2005 Vol.22 No.7
[26] Liu P, Architectures for Intrusion Tolerant Database Systems[C]. 18th Annual Computer Security Applications Conference . San Diego California .December 09 - 13, 2002.
[27]Liu P,DAIS: A Real-Time Data Attack Isolation System for Commercial Database Applications. 17th Annual Computer Security Applications Conference ACSAC'01.December 10 - 14, 2001
[28]Pramote Luenam, Liu P, ODAR:an on-the-fly damage assessment and repair system for commercial database applications. Proceedings of the fifteenth annual working conference on Database and application security,2001 ,ISBN:1-4020-7041-1
[29]Peng Liu, Paul Ammann, Sushil Jajodia: Rewriting Histories: Recovering from Malicious Transactions. Distributed and Parallel Databases 8(1)1: 7-40(2000)
[30]P. Ammann, S. Jajodia, and P. Liu. Recovery from malicious transactions. Technical report, George Mason University, Fairfax, VA. Under Review for Journal publication.
[31]Y. Deswarte ,L.Blain ,J . C. Fabre. Intrusion tolerance in distributed computing systems[J ] . In Proc. of the International Symposium on Security and Privacy , IEEE press ,May 1991. 110~121.
[32] V. C.S. Lee, J. A. Stankovic, S. H. Son. Intrusion Detection in Real-time Database Systems Via Time Signatures, In Proceedings of the Sixth IEEE Real Time Technology and Applications Symposium, 2000.
[33] Papakonstantinou Y,Garcia-Molina H,Widom J. Object exchange across heterogeneous information sources. In: Proc. of the Eleventh Intl. Conf. on Data Engineering, Taipei, Taiwan, Mar.1995-251-260
[34] F. Y. Wang ,F. M. Gong ,S. Chandramouli ,et al. SITAR :A Scalable Intrusion - Tolerant Architecture [ EB/ OL ] ,http :/ / www. anr. mcnc. org/projects/ SITAR/ SITAR - norfolk - 2001. pdf ,2001.
[35] A. Shamir. How to share a secret. Communications of the ACM, 22(11):612-613, November 1979.
[36]Liu P,Jajodia S.Muliti-phase Damage Connement in Database Systems for Intrusion Tolerance[A].Proc 14th IEEE Computer Security Foundations Workshop.New York:IEEE,2001.191-205.
[37] Lucent Technologies. Software Implemented Fault Tolerance for Windows NT, User's Guide.
http://www.bell-labs.com/project/ swift/Support/index.htm,1999.
[38] Ammann P,Jajodia S,McCollum C D,et al.Surviving Information Warfare Attacks on Database[A].Proceedings of the IEEE Symposium on Security and Privacy[C].New York:IEEE,1997.164-174.
[39] Liu P, Engineering a Distributed Intrusion Tolerant Database System Using COTS Components, DARPA Information Survivability Conference and Exposition - Volume II
[40] Braga D,Campi A,Klemettinen M,Lanzi P L. Mining association rules from xml data. In: Proc. of the 41h Intl. Conf. on Data Warehousing and knowledge discovery(DaWak 2002)Sep. Aixen-Provence, France, 2002. accepted.
致谢
在我的毕业课题的研究开发工作中,感谢导师孟丽荣教授的教诲和指导,从课题的选定,资料的收集,论文的撰写修改等各个环节,她都倾注了大量的精力,使我最后完成了学位论文的撰写.在课题研究过程中,导师的学识,严谨的治学态度,高度的工作热情给我留下了深刻的印象,使我受益匪浅.在此谨向尊敬的导师致以衷心的感谢!
另外,感谢在课题研究过程中给予我帮助的于常辉等同学,得益于他们的帮助使我顺利地完成了毕业课题.
最后,感谢所有关心和帮助我的老师和同学们.
攻读学位期间发表的主要学术论文
[1] 用于入侵容忍数据库系统的多阶段控制技术[J],李文才,孟丽荣,于常辉 计算机应用 2006.2
[2] 入侵容忍数据库的入侵隔离方案[J],李文才,孟丽荣 计算机应用研究, 拟于2006.8发表
学位论文评阅及答辩情况表
论文评阅人
姓 名
专业技术职务
所 在 单 位
对论文总体评价※
答 辩 委 员 会 成员
姓 名
专业技术职务
所 在 单 位
备 注
主席
委
员
答辩委员会对论文的总体评价※
答辩秘书
答辩日期
备注
※ 优秀为"A";良好为"B";合格为"C";不合格为"D".
山 东 大 学 硕 士 学 位 论 文
山 东 大 学 硕 士 学 位 论 文
山 东 大 学 硕 士 学 位 论 文
山 东 大 学 硕 士 学 位 论 文
山 东 大 学 硕 士 学 位 论 文