入侵容忍数据库隔离算法设计

2016-12-17 13:46任强
科技创新与应用 2016年33期
关键词:隔离算法

任强

摘 要:入侵容忍数据库是解决数据安全问题的有效途径,但是入侵容忍数据库隔离算法的性能严重影响入侵容忍数据库的运行效率,成为制约入侵容忍数据库技术应用的主要障碍。这里通过分析入侵检测和攻击恢复的过程,给出一种入侵容忍数据库隔离算法的设计思路,以提高入侵容忍数据库的运行效率。

关键词:入侵容忍;隔离;算法

1 概述

数据库原子事务的性质表明,只有被提交成功的事务才能改写数据库中的数据。因此,在理论上只要我们能在事务提交前检测出它是否是恶意的,则可以在引起错误前回滚该事务。然而,这个方案事实上是不可行的:首先,事务执行的速度远远快于检测的速度,而降低事务的执行速度会引起严重的拒绝服务。其次,一些经过授权却是恶意的事务很难检测出来。这些恶意事务与其他合法的事务看起来一样。基于事务语义的异常检测可能是鉴别这种恶意事务的仅有的有效手段,然而对于异常检测要想在合理的检测反应时间和虚警率的条件下实现100%的检测率,即使可以实现也是非常困难的。

因此,可行的目标应该是在数据库被破坏后,尽快定位被破坏的部分并修复,从而是数据库在遭受攻击时可以继续提供服务。

2 损害数据的隔离方案

2.1 隔离工作过程

首先,根据门限值THm和THs作为入侵检测报告两种级别的警告。当异常事务高于异常门限THm时,该事务被报告为恶意的;当异常事务高于异常门限THs,而低于异常门限THm时,该事务被报告为可疑的(THs和THm的值取决于先前攻击的统计分析)。当恶意事务被报告之后,系统进行以下工作;当可以事务被报告之后,协调者在隔离管理者的协助下,将Ts(以及提交Ts的用户之后的事务)重定向到虚拟的隔离数据库中,在那里用户被隔离。随后,如果用户被证明是恶意的,隔离管理者将取消该用户的操作;如果用户不是恶意的,隔离管理者将该用户的操作结果导入主数据库。采用这种方案,破坏扩散能被急剧减少而不牺牲检测速度或降低对正常事务的可用性。

我们按用户隔离是因为由同一个用户提交的事务应该相互了解结果。这个方案应该能够同时隔离多个用户。将一组用户隔离在同一个虚拟数据库可以有助于解决合谋攻击,然而,当只有部分用户是恶意的时候,这将导致大量的应用性下降。

采用完全的数据库复制去隔离用户有两个缺点:一是代价高昂;二是没被隔离的用户更新结果对隔离用户是不可见的。在该方案中,我们采用数据版本虚拟构建隔离数据库。一个数据对象x通常总是拥有唯一信任版本,记为x[main]。只有当x被隔离用户更新后,x拥有一个特别的可疑版本。这样,总的可以版本的数量将大大少于信任版本的数量。

隔离算法有两个关键部分:(1)隔离用户进行怎样读写操作(注意,未被隔离的用户只能访问主数据库);(2)一个隔离用户被证明是非恶意之后,如何将其融合到主数据库。对第一个问题,我们可以采取单向隔离:如果没有一致的可疑版本,隔离者可以读信任版本,且所有隔离者的写操作都标记为可疑版本。第二个问题的关键在于信任版本和可疑版本不一致。如果一个可信用户和一个可疑用户分别更新同一个对象x,x[main]与可疑版本将不一致,为了进行融合就必须其中一个更新。此外,研究表明即使不是更新同一个对象也会引起不一致。并且,一个隔离对象的融合可能会影响到另一个仍旧被隔离的用户。这些不一致必须在融合时解决掉。

2.2 隔离方案的特点

本方案具有以下的特点:(1)在很大程度上,隔离对可疑用户是透明的。(2)隔离带来的额外存储开销很低。(3)数据在隔离前和融合后是一致的。(4)在融合过程中,如果这里有某些不一致,某些隔离的或未被隔离的事务不得不退回以解决这个问题,这是该方案的主要代价。幸运的是,研究表明事务回滚的代价只有5%。在不一致问题解决后,通过将剩下的隔离用户的更新导入主数据库,很容易完成融合过程。(5)该方案与数据库服务几乎没有冲突,只有在每个融合过程中隔离用户不能执行新事物,主数据库涉及到的向前更新进程的数据表会被临时锁定。

3 隔离算法设计

基于上述的隔离方案,设计隔离算法如下:

开始

如果SQL语句想插入数据的表(表示为Ri)没有为可疑用户建立可疑版本(指示为Si)

创建Si;

如果SQL语句在值域没有子查询

重写插入语句,使Si代替Ri;

附送重写的插入语句到Oracle Server;

否则假设SQL语句的子查询访问数据表Rj1,….,Rjn

对于每一个Rjk,如果包含Sjk中被删除的记录,则从Rjk中删除,并在内存中保存这些记录;

对于每一Sjk,如果包含Rjk中没有的记录,则插入这些记录到Rjk中;

重写插入语句,去掉"INSERT INTO table_name";

重写由前一步骤产生的查询语句;

假设结果表示为To_Insert,附送这个语句序列到Oracle server执行;

删除已经被插入到Rj1,…,Rjn 的每一个记录;

对已经被从Rj1,…,Rjn 中删除的记录,重插入这些记录到Rj1,…,Rjn;

将To_Insert中的每一个记录插入到相应的Sjk;

结束

4 下一步的工作

本方案说明,基于COTS组件来建设的容忍入侵的数据库系统结构具有以下优点:

(1)一个多层的深度防御方式,通常比使系统的可存活性依赖于一个或两个诸如入侵探测的机制效率的方法有更多的成本效益;(2)适应性的容忍入侵机制通常比提前编制的容忍入侵机制有更多的成本效益;(3)面向服务的容忍入侵数据库系统通常比面向状态的容忍入侵数据库系统有更多的成本效益。

针对下一步工作,我们认为未来研究方向应该有以下几个方面:

首先,恶性事务也许能被一系列部分复制的数据库服务器掩盖,这里每个服务器只执行一组而并非全部事务。这样一个伪装的框架的关键挑战应该是安全与数据一致性间的权衡。

其次,入侵探测器的准确性和反应时间对容忍入侵数据库系统的整个成本效益有很大的影响,这点一般是正确的。因此,为了使配置一个探测器的容忍入侵的数据库系统有成本效益,知道该探测器需要做到怎样好(根据假正数率,假负数率和探测反应时间)是很值得的。

最后,操作系统级和事务级的容忍入侵机制应该被无缝的整合来建造多层的容忍入侵数据库系统。这个整合需要仔细研究这两级机制间的关系。例如,尽管使用事务级方式不能探测出操作系统级数据污染,但事务级方式对恢复这些污染十分有用。

参考文献

[1]孙玉海,孟丽荣.基于入侵容忍的数据库安全解决方案[J].计算机工程与设计,2005(3).

[2]陈驰,孟丽蓉,夏思淝.入侵容忍数据库系统中选举方案的设计与实现[J].微电子学与计算机,2002,19(11):41-43.

猜你喜欢
隔离算法
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
算法初步两点追踪
低压空开检修活动绝缘罩的应用研究
基于增强随机搜索的OECI-ELM算法
幼儿隔离中的安全问题
凝结水精处理系统大修提前准备和改进
一种改进的整周模糊度去相关算法
医院消毒隔离的预防与控制