刘婷
摘要:以数据库为基础的信息系统在政治、经济、军事及科研等各个领域得到广泛应用。数据库系统是信息系统中数据存储和处理的核心,一旦失效可能导致无法弥补的损失。事务级入侵容忍要解决的问题是在恶意事务被发现之前,保证由恶意事务造成的数据库损坏不会扩散,并在恶意事务被定位后及时修复损坏的数据,使系统在遭受攻击的情况下仍可正常运行,实现数据库的可用性、可生存性以及关键数据的机密性和完整性。
关键词:数据库安全;入侵检测;入侵容忍技术
DOIDOI:10.11907/rjdk.161013
中图分类号:TP309
文献标识码:A 文章编号:1672-7800(2016)005-0182-03
0 引言
数据库安全研究的基本目标是如何利用信息安全及密码学技术,实现数据库内容的机密性、完整性与可用性,防止非授权的信息泄露、 内容篡改以及拒绝服务[1]。传统的数据库安全技术,重点在于防御攻击或入侵,主要采用防火墙、访问控制、入侵检测、认证、加密等技术手段,将非法用户隔绝在外,这些防御措施并不能解决所有的入侵问题,特别是来自组织内部的攻击和入侵。因此,在防御失败的情况下,如何保障数据库系统的可生存性及抗毁能力,使系统在受攻击后仍然可以为合法用户提供不间断的服务,成为数据库安全的一个关键问题。入侵容忍系统的出现,使数据库系统具有弹性,能承受一定限度的攻击,且具备自诊断、修复和重构的能力,能够利用不可信的数据库管理系统构建可信的数据库应用系统,为上述问题提供了很好的解决方案。
据统计,在以往的数据库入侵事件中,事务级入侵发生频率最高,至少50%的入侵来自系统内部[2]。这些入侵者往往拥有(或盗用了)合法的用户身份和权限,通过运行包含恶意操作的数据库事务来实施攻击,而且攻击操作一般不会严重地偏离预期行为,也不会遵循某种固定的攻击模式,因此隐蔽性很强,难以防范。此外,还有一部分来自网络的攻击者,往往利用密码嗅探或会话骑劫等手段窃取或伪装成合法的身份及权限欺骗服务器,从事恶意活动。针对这一现状,本文主要探讨基于事务级入侵容忍的数据库安全解决方案。必须关注的一点是,该系统必须由硬件层、操作系统层、DBMS层和事务层的各个层面全方位地抵御入侵,唯有在其它各个层面均获得有效安全保证的大背景下,事务级入侵容忍方可真正实现。
1 入侵容忍
入侵容忍概念最早由J.Fraga等人于1985年提出。近年来,在入侵容忍技术领域,对于构建方法、实现原理、体系结构、入侵容忍协议及分析方法等研究越来越多,国外比较有代表性的项目或原型系统主要有:SITAR、MAFTIA、ITUA、ITTC、ITDB 、Phoenix、Blastema。国内入侵容忍研究主要有:系统建模方面的基于表决的分布式入侵容忍系统模型[3]、一种具有自律特征的入侵容忍系统模型[4]等,性能评估方面的自律入侵容忍系统模型构建与量化分析[5]、入侵容忍实时数据库的半马尔可夫生存能力评价[6]、基于表决的分布式入侵容忍系统模型及量化分析[7]等,实现技术方面的基于概率的入侵容忍系统表决机制设计[8]、可证安全的入侵容忍签名方案[9]、一种面向虚拟计算环境的入侵容忍方法[10]等。
入侵容忍技术是一种结合了密码和容错两大技术的全新网络安全技术。在所保护系统的一系列组件出现错误的情况下,尽可能地保障系统重要信息和服务的全面性和可使用性[11],从而有效处理入侵检测系统误报警高、延时长、自适应性差及有效跟踪分析缺乏的问题。常用技术包括冗余技术、门限方案技术、间接访问技术和系统重构技术。作为网络信安保护之中的最终防线,其设计目的重点在4个方面:①保障系统的安全稳定运作;②确保系统服务的有效性;③确保服务器之中有关数据的保密性;④确保相关数据信息的完整性。这必须有对应的安全机制作为保障,具体包括:安全通信机制、入侵检测机制、入侵遏制机制和错误处理机制。根据解决思路的不同,入侵容忍可分为基于攻击屏蔽的入侵容忍和基于攻击响应的入侵容忍[12]。基于攻击屏蔽的入侵容忍,需要依靠系统设计时所预先采取的安全措施,基本思维是基于资源冗余措施并加强设计的多样性,从而提升入侵所需付出的代价,提高复杂度,增强系统弹性。通过可疑事务隔离、增加间接层、结构重配等一系列方式来加以隔离、更换受损组件,从而制约入侵,避免入侵问题再度扩大。后者需要通过对入侵的检测和响应来实现入侵容忍,总体思维是在系统中创建反应式响应、前瞻式响应及适应式响应等一系列响应机制,当发现系统遭受入侵时,入侵检测机制会立即实施相应措施,从而协助系统有效地处理入侵所产生的问题,保证系统正确工作。较之于入侵检测有一定差异的是,该系统不仅可以检测当前已经了解的、已经明确定义的入侵活动,还能在系统传播之前及时发现错误,避免高误报率、漏检以及时间延迟等问题。
2 基于事务级容侵的数据库安全模型
通常对数据的访问,需要依次经过用户层、操作系统层、数据库管理系统层和事务层。而入侵者获取合法用户权限后所进行的操作,一般发生在事务层。事务级入侵首先直接破坏数据信息,导致有关的实物查询和之后的一系列运行遭受干扰,修复遭到破坏的数据势必影响服务,而影响程度会伴随破坏水平的增大而加深,进而间接对服务产生破坏。所以,系统需要综合考虑自我诊断、受损评估、故障隔离以及自我修复能力,在尽可能短的时间内修复受损数据,避免对服务造成破坏。
2.1 基于事务级容侵的数据库安全模型体系结构
国内数据库软件市场长期为国外产品占领,如Oracle、Mircosoft 、SQLServer等,这些产品不提供源代码,无法进行代码分析、评审以及可信计算基分析,安全性很难保证。因此,本文将以国产数据库产品为基础开展基于事务级容侵的数据库安全研究。现阶段容侵数据库系统的运行均是基于当前的DBMS拓展相应的容侵职能,整个体系最大的共同点在于无需对服务器实施调整,仅通过使用中间件(或代理)就可实现,通用性和可移植性极佳,缺点是性能开销大,存在安全隐患。为克服上述缺点,我们采用高安全性、低系统开销、通用性的设计原则,提出另一种设计思路,将容侵功能作为DBMS服务器的一个内部机制来实现,同时杜绝容侵组件本身遭受攻击的可能,其体系结构如图1所示。
基于事务级容侵的数据库安全模型由以下7部分构成:入侵检测器、策略执行管理器、依赖追踪器、受损评估器、受损修复器、受损限制管理器以及隔离管理器。下面分别介绍各模块的功能。
(1)入侵检测器。入侵检测器负责检测并报告用户事务中的恶意事务及可疑事务,如检测到异常则发出入侵警报。考虑到入侵检测功能的系统开销较大,未将此模块纳入DBMS服务器。
(2)策略执行管理器。 策略执行管理器负责根据入侵检测器的报告和当前的系统环境来制定相应的系统安全策略,如收到入侵警报时,启用受损限制管理器。
(3)依赖追踪器。 依赖追踪器负责分析用户提交的事务与其它事务之间的依赖关系,并将这些依赖信息记载在事务依赖表中。事务间的依赖关系主要有3种:①由于读取另一个事务修改的数据对象而产生的显式依赖关系;②由于漏读或错读另一个事务修改的数据对象而产生的隐式依赖关系;③事务由于与另一个事务在应用程序中共享变量而产生的依赖关系。事务间的依赖关系可用于解决恶意事务提交后的污染扩散问题。
(4)受损评估器。受损评估器负责定位遭受破坏的位置并评估恶意事务对数据库造成的破坏程度。对于入侵检测器报告的恶意事务及隔离管理器确认的恶意事务,受损评估模块按照系统记录的依存关系辨析事务是否遭受了恶意事物的影响,并籍此明确要修正的数据,从而便于修复器修复。
(5)受损修复器。其主要工作是将受损数据库还原至健康水平。针对此前已经明确的数据对象,按照日志内的前像信息,将对象的数值还原为受损之前本应有的正确状态。
(6)受损限制管理器。其作用主要是在修复的过程中控制事务对有关受损数据信息的访问,同时将可疑事务送入隔离管理器,避免造成更大面积的污染。受损限制管理器按照评估结果,对所有可能的数据信息实施相应限制,事务针对这部分数据所提出的一系列操作要求均无法获得系统支持。伴随修复的深入开展,已经获得修复的信息将逐渐获得开放,直到最终各数据对象都被修复。
(7) 隔离管理器。隔离管理器负责隔离可疑事务操作,若用户事务的后续操作未发现恶意攻击,则保留该用户事务的操作结果并解除隔离,若用户事务被证明是恶意操作,则撤销该用户事务并启用受损评估器。
2.2 系统工作过程
在用户执行有关事务时,其活动的审计信息即被存储在数据库中,入侵检测器通过一系列的审计信息来研究活动有无异常现象,若存在异常,则发布对应的入侵警报。如果明确这部分异常对当前的数据库产生了损失,则必须对这部分数据加以修复。
(1)日常的依赖信息维护工作。这方面的工作渗透至系统运行的全过程之中,通过依赖追踪器来实现。访问数据库时,其会研究有关事务和其它一系列事务彼此间的依存关系,将这一系列信息存放在事务依赖表内。事务将基表实施删改等一系列操作的前像信息置于对应的前像表内。
(2)对受损数据的修复工作。入侵检测器发出恶意事务入侵警报作为起点,各部分均获得修复以后作为终点,通过策略执行管理器、受损限制管理器、隔离管理器和受损修复器共同实现。前者主要是按照对应的报告和当前的系统环境来制定相应的系统安全策略。受损评估器根据恶意事务号以及事务依赖表中的信息判断需要撤销的事务集合;隔离管理器负责隔离可疑事务操作;受损修复器根据前像表中的前像信息回滚必须撤出的一系列事务,修复有关数据;受损限制管理器验证在此过程中事务有无访问,防止这一系列事务由于受损数据影响出现错误,从而出现更大规模的损失。
2.3 关键技术分析
系统中的日志由前像表日志、基表、事务依赖日志、日志以及审计信息构成,其中前像表日志与事务依赖日志的更新方式与数据库相同,相关页面的读写在数据缓冲区中进行,对这3类文件的更新均在数据缓冲区完成。
前像表日志的作用主要在于回滚事务,通过数个前像表形成,与基表具有明确的对应关系。针对各个基表R,前像表日志中均有且仅有一个相应的前像表Rbi。Rbi用来存储由R中去除的数据信息,相应的元组结构和R基本一致,从而确保由R中删除的元组完全不必格式变更即能实现插入。
事务依赖日志用于确定回滚事务集,是在系统处理读操作的过程中即时确定事务依赖关系,并将依赖关系信息显式地保存在日志中。事务依赖日志由若干条记录构成,共有3类:开始记录、夭折记录及提交记录。每个新事务开始时,系统在日志中写入一条相应的开始记录;如果事务夭折,则在日志中写入一条相应的夭折记录;如果事务正常提交,则根据所依赖的全部事务集合构造一条事务提交记录写入日志中。
系统采取NO—FORCE数据缓冲区、写日志优先协议、提交时强制写日志规则以及UNDO/REDO日志方式策略,具体包括:事务结束时对脏页是否写入磁盘不作要求,减少写数据库次数;在将数据缓冲区中的内容写盘之前,将REDO日志缓冲区中的相应日志记录写盘,保证所有己经写盘的数据库修改在REDO日志中都有记载,确保系统恢复时所有REDO日志记录都可用;当事务提交时必须将该事务对应的REDO日志信息刷新到磁盘上,保证已提交事务的日志信息完整;将事务修改前后的信息分别记录到UNDO日志和REDO日志中;应用REDO日志重复历史,为各类故障后的恢复提供充足信息。
3 结语
入侵容忍数据库技术的研究,对于保证网络系统和服务的安全性及生存性具有重要的现实意义。将入侵容忍技术与信息安全技术、数据挖掘技术相结合,解决系统的自适应性问题,可有效预防或阻止入侵,降低系统瘫痪带来的损失,发展前景非常广阔。
参考文献:
[1]张敏. 数据库安全研究现状与展望[J].中国科学院院刊, 2011,26(3):303-309.
[2]谢美意. 入侵容忍数据库技术研究[D].武汉: 华中科技大学,2009.
[3]秦华旺, 戴跃伟, 王执铨. 一种基于改进神经网络的入侵容忍系统模型[J]. 南京理工大学学报:自然科学版,2008(5): 20-22.
[4]刘彬, 吴庆涛, 郑瑞娟. 一种具有自律特征的入侵容忍系统模型[J].微电子学与计算机,2012,29(7):167-170.
[5]李冰洋, 王慧强, 冯光升. 自律入侵容忍系统的模型构建与量化分析[J].计算机应用研究,2009,26(5):156-159.
[6]陈长清, 裴小兵, 周恒, 等. 入侵容忍实时数据库的半马尔可夫生存能力评价模型[J].计算机学报,2011,34(10):1907-1916.
[7]戴月明, 王金鑫, 李彦伟. 基于表决的分布式入侵容忍系统模型及量化分析[J].计算机应用研究, 2011,28(6):358-362.
[8]费洪晓, 李钦秀, 李文兴, 等. 基于概率的入侵容忍系统表决机制设计[J].计算机技术与发展, 2010(3):36-39.
[9]于佳, 孔凡玉, 程相国, 等. 可证安全的入侵容忍签名方案[J].软件学报, 2010, 21(9):2352-2366.
[10]赵峰, 金海, 金莉, 等. VFRS:一种面向虚拟计算环境的入侵容忍方法[J].计算机研究与发展, 2010,47(3):19-23.
[11]张云英, 王程明, 姜千, 等. 入侵容忍综述[J].吉林大学学报: 信息科学版,2009(4):389-395.
[12]秦华旺. 网络入侵容忍的理论及应用技术研究[D].南京:南京理工大学,2009.
(责任编辑:杜能钢)