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

  • 3
  • 0
  • 约2.85千字
  • 约 7页
  • 2018-10-12 发布于福建
  • 举报
入侵容忍数据库隔离算法的设计

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

文档评论(0)

1亿VIP精品文档

相关文档