随着我国经济社会不断发展,以计算机技术为代表的信息技术在我国各行业领域应用愈发广泛和深入,特别是以数据库技术为核心的管理信息系统普遍应用于辅助管理。然而,由于数据库中的设计、管理中存在的问题和漏洞,不法分子容易进行非法侵入并进行数据库攻击。因此如何保护数据库信息安全,特别是研究核心数据安全防护技术,如何及时发现入侵,避免数据篡改具有重要意义。
文章主要对数据库的数据安全防护基本方法进行介绍,针对数据库的数据安全采用数据库数字水印技术和基于触发器的数据保护技术进行研究,并对两种方法进行比较,发现针对不同的应用需求,两种数据库安全防护技术在不同防护侧面各有优点。
1 数据库安全防护技术
数据库安全防护技术是防护数据库不受侵入的技术,主要分为动态入侵行为检测和静态安全特性检测两种类型防护技术[1]。其中动态安全防护技术,即动态入侵行为检测是针对客户端对数据库的访问请求的通信信息进行识别分析,发现其中具有危险侵入可能的通信指令,从而保证数据库安全。静态安全防护也称数据库安全特性检测防护,则是对数据库设计中存在的可能漏洞进行分析测试,发现其中的安全策略或设置的问题。该文主要研究的是数据库的静态安全防护,通过检测数据库管理系统的安全配置来发现安全隐患,为数据库安全策略的实施和改进,以及数据库用户的行为检测提供可靠信息[2]。
数据库安全特性分析以及其检测工具的设计是数据库安全技术的重要研究领域,西方国家自上世纪八十年代开始对数据库登录管理进行认证研究,以便保证数据库管理系统(Database Management System,DBMS)安全有效运行[3]。商业关系数据库的安全主要依赖生产厂家提供的最佳安全策略进行保障实施,然而自上世纪末科学家发现稳定性安全性在业内很高的Oracle数据库也存在巨大安全漏洞,作为管理信息系统的核心DBMS的未知安全特性风险,特别是数据库中的高危漏洞的评估和识别,逐步成为人们关注焦点,同时也更加深入认识到DBMS安全级别认证和安全风险评估的差异。因此数据库安全研究人员从本世纪初开始了数据库漏洞扫描及利用等数据库管理系统安全特性的漏洞检测和风险评估研究。
2 两种数据库安全防护技术
数据库的安全即包括硬件也包括软件,即包括用户角色也包括数据安全,其中最重要的就是核心数据安全。这里研究两种数据库中保护核心数据安全的防护技术,一种基于数据库数字水印技术,一种则是基于SQL Server数据库触发器技术。SQL Server系列数据库是微软公司推出的一款关系数据库开发系统,在大型企业信息系统中作为DBMS有着广泛应用[4]。
2.1 基于水印技术的安全防护技术
关系数据库数字水印是将数字水印技术应用于数据库安全技术中,在确保数据库正常运行基础上,通过对数据库的冗余空间中嵌入水印信息,从而实现保护关系数据库版权或确保数据库安全的目标。
关系数据库水印嵌入技术和水印提取和检测技术[5]是关系数据库水印技术研究的两个重要方面。水印嵌入的关系数据库设定为[R=M,A1,A2,…An],其中M是数据库中的主键,是数据表示对象的不变属性,其信息领域包含信息和属性意义最大,也叫最大意义属性MSA[6],Ai(0
研究的数据库安全防护技术主要采用数据库脆弱水印方法,其水印构造算法基本思想是通过决策树算法对关系数据库的非主键属性Ai进行分组,对分组的MSA的数学P结合密钥η,根据需要构建的水印W位数K,进行哈希变换hash(η,K,P)进行重新排序,最后将水印序列W的K位信息嵌入到排序后的各元组数学Ai中。其水印构造嵌入的具体步骤为:
第一步:
对数据库中非MSA属性Ai进行决策树分化,构建Ai:{(a1,a2),(a3,a4),…}子树划分形成分组,根据属性数据类型的不同采用不同划分方法:
1) 连续性数值数据利用决策树方法分划,设定最大阀值分组为离散组列[7];
2) 文本数据利用length()等函数转变为连续的数值数据,再按连续数据分组处理;
3) 离散型数据可以直接按照较多离散点进行划分。
第二步:
对Ai划分的n个分组采用hash(η,K,P)函数,构建新的分组排序,并按哈希冲突处理嵌入“0”或“1”,结合水印W的K位序列进行元组排序,并按此重新排序主键属性P。
第三步:
元组数据的水印序列嵌入方法:
针对文本型数据,需要嵌入位为0时,对文本数据不作改变;当需要嵌入位为1时,在该文本数据的结尾加入一个空格符。进行水印检测或提取时,研究比较文本长度和空格位置,一致时取0,不一致时取1。
针对数值型数据,利用数值型数据的最低有效位(LSB)进行嵌入,根据数值型数据的字段长度和最低有效位数的差值多少来确定嵌入信息量。
第四步:
对关系数据库R中的其他属性Ai,按照步骤二、三的方法对各属性元组进行水印嵌入。
脆弱水印数据库的数字水印检测和提取技术是嵌入算法的反过程,主要对各元组数据按照哈希函数进行重新排序,对各元组数据按反过程进行水印提取,对n组序列提取后,按照大数选举方法同水印W按位比较,发现不符位从而确定篡改的元组和属性。
2.2 基于触发器的安全防护技术
触发器是关系数据库中响应数据定义语言(DML)事件或数据操作语言(DML)事件而自动执行的特殊类型存储过程[8],当数据库发现操作或定义行为时自动运行。
根据定义,SQL Server据对数据库进行操作行为的不同将触发器DDL触发器和DML触发器两大类,其具体定义为:
1) DML触发器,DML触发器[9]在CREATE、ALTER、DROP以及其他数据表定义语言的进行执行管理任务,可以强制影响数据库的业务规则,即可以应用于数据库或服务器中某一类型操作命令,也可用于审核和控制数据库操作等管理任务。
2) DDL触发器,DDL触发器[10]在INSERT、UPDATE和DELETE等数据操作语句上操作,完成表或视图的数据操作时的强制业务规则,并扩展数据完整性。DML触发器可定义于表或视图上,也可查询其他表。
DML触发器可以按照触发时机分为INSTEAD OF触发器和AFTER触发器。其中INSTEAD OF触发器在执
行DML语句操作成功之前执行,AFTER触发器在执行DML语句操作成功之后执行。
DML触发器按照触发操作行为可分为INSERT, UPDATE和DELETE触发器,分别针对数据库的表或视图的插入、更新和删除,主要利用到系统提供的inserted和deleted两个系统表。其中Inserted表用于存储INSERT和UPDATE操作时,语句所影响到的数据行的复制。当数据库执行插入或更新操作时,添加的新数据行或更新的数据行副本将添加inserted表中。deleted表用于存储DELETE和UPDATE语句所影响的行的复制。当数据库表或视图执行删除或更新操作,涉及行从触发器执行表中删除,同时在Deleted表中备份存储。根据inserted和deleted两个系统表特点发现,当数据库中数据表或视图执行UPDATE操作语句时,更新事务等同于在该数据行先删除后插入,删除旧行并复制到deleted表中,然后插入新行到触发器表并复制到inserted表中。
根据触发器特点,构建基于触发器的数据库安全防护系统,其基本结构如图1。
如图1,利用数据库触发器的特性,当用户登录数据库信息系统后,数据库的监控模块将记录用户信息同时登记到用户认证的登录审计表中。当用户操作数据库时,根据用户操作行为的不同引发不同类型的触发器,将数据库表或视图的操作相关信息写入到用户操作信息审计表中,同时设计触发器执行当操作数据库定义操作时,则备份数据库;当操作是数据库基本操作时,则更新原数据记录到副表。
当管理员登录系统可审查用户操作信息审查表,对于审查发现的非法用户或非授权用户操作的,则还原数据库到备份点,具体方法为当进行数据表操作,则从基表副表中通过逆操作恢复此数据,视图操作则恢复到基本表中,其他数据表的定义操作则直接还原数据库。通过触发器最终实现对核心数据的禁止修改和写入等操作,对其他数据实现修改记录并提供可恢复技术。
3 两种防护技术比较
基于数字水印技术和基于触发器的两种SQL Server数据库安全防护技术,在实现对数据库核心数据安全保护中都能发挥防护作用,但两种防护技术仍存在区别,具体分析如下:
1) 应用范围不同。基于数字水印的防护技术主要通过对关系数据库中嵌入水印实现核心数据防护;基于触发器的防护技术则是主要针对SQL Server数据库。
2) 算法难度不同。基于数字水印的防护技术的嵌入和提取水印算法较为复杂;基于触发器的防护技术则主要在数据库中进行修改、添加相应数据表,设置触发器即可实现。
3) 通用程度不同。基于数字水印的防护技术对于不同的数据库数据和水印信息要重新设计算法,通用性不高;基于触发器则只需对相应数据表格作简单调整即可在不同数据库中通用。
4) 保护技术差别。基于数字水印的防护技术主要通过发现数据库中核心数据的篡改并定位,来保护核心数据;基于触发器则通过对核心数据设定禁写触发器来保护,对其他数据的修改则进行记录,并提供恢复技术来保护数据安全。
两种数据库安全防护技术的差别汇总如表1。
表1
[防护技术\&应用范围\&实现难度\&通用程度\&技术差别\&基于数字水印\&关系数据库\&较难\&不高\&对篡改数据定位\&基于触发器\&SQL Server系列数据库\&较易\&较好\&核心数据禁写,其他记录修改,并提供恢复技术\&]
可以发现,对于SQL server数据库,基于触发器的安全防护技术实现较容易,较好的通用性,既能发现数据修改还能提供数据恢复技术,基于数字水印的防护技术则对于所有的关系数据库均能应用,应用范围广。
4 结论
本文对数据库的安全防护进行介绍,着重对基于数字水印和基于触发器这两种数据库防护技术进行详细研究,并对两种方法在应用范围、实现难度、通用程度和技术差别进行比较,发现基于触发器技术在SQL Server数据库中性能优势明显,而基于数字水印的防护技术适用所有关系数据库,有广泛的应用范围。
参考文献:
[1] José Fonseca,Marco Vieira,Henrique Madeira.Integrated Intrusion Detectionin Databases[M].A.Bondavalli,F.Brasileiro,and S.Rajsbaum(Eds.):LADC 2007,LNCS 4746.2007:198-211.
[2] 焦岩.关于数据库系统安全现状的研究[J].计算机安全,2010(5):15-25.
[3] 李瑞林.计算机数据库安全管理研究[J]制造业自动化,2012(3):112-116.
[4] 孙明丽,王斌,刘莹.SQL Server 2005 数据库系统开发完全手册[M].北京:人民邮电出版社,2007:10-15.
[5] 牛夏牧,赵亮,黄文军,等.利用数字水印技术实现数据库的版权保护[J].电子学报,2003,31(12A):2050-2054.
[6] 顾力平,聂元铭.基于决策树的数据库脆弱水印算法研究[J].舰船电子工程,2013(04):57-61.
[7] Quinlan J R.C4.5:Programs for machine learning[M].San Mateo:Morgan Kaufmann Publishers Inc,1993:17-42.