实现数据库异常检测相关技术的研究
作者:王 奇
来源:《电脑知识与技术》2009年第14期
摘要:该文介绍了数据库异常检测的重要性。重点分析了Fp-growth关联规则算法的实现过程,提出了一个基于Fp-growth算法的数据库异常检测系统,并给出了系统试验数据结果。 关键词:数据库;Fp-growth关联规则算法;数据库异常检测系统
中图分类号:TP311 文献标识码:A文章编号:1009-3044(2009)14-3607-02 Anomaly Detection to Achieve the Database Related Technology Research WANG Qi
(Xingzhi Academy, Nanjing Xiaozhuang College, Nanjing 210012, China)
Abstract: This thesis introduced the importance of anomaly detection database. The thesis strongle analysed the Fp-growth algorithm of Apriori process, then it provided a database anomaly detection system based on Fp-growth algorithm and at last, the thesis given the results of system test data.
Key words: database; Fp-growth algorithm of Apriori; database anomaly detection system 1 数据库异常检测的重要性
随着信息技术和数据库应用的不断增加,数据库异常检测得到越来越广泛的重视和迫切需要。异常检测技术是计算机安全技术中的重要部分,它从计算机系统中的若干关键点收集信息,并分析这些信息,检测计算机系统中是否有违反安全策略的行为和遭到袭击的迹象。异常检测系统在几乎不影响计算机系统性能的情况下能对计算机系统进行实时监测,并对系统提供针对内部攻击、外部攻击和误操作的实时保护。异常检测技术通过对异常行为的过程与特征的研究,使安全系统对异常事件和异常过程能做出实时响应。异常检测技术扩展了系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高了信息安全基础结构的完整性。 2 FP-growth算法
在数据库异常检测技术中融入数据挖掘算法可以有效的从各种数据中提取出有用的信息,数据挖掘算法非常适用于从历史行为的大量数据中进行特征提取,进而能有效的挖掘出非法攻击的事件。本文所讨论的数据挖掘算法是改进的关联算法的FP-growth算法,并将其运用到数据库异常检测中。
龙源期刊网 http://www.qikan.com.cn
Fp-growth算法采用频繁模式增长,将提供频繁集的数据库压缩到一个频繁模式树,但仍保留项集关联信息;然后,将这种压缩后的数据库分成一组条件数据库(一种特殊类型的投影数据库),每个关联一个频繁数据项,并分别挖掘每个数据库。Fp-growth树具有自身一种特殊的结构:①由三个部分组成,这三部分分别为:标记为空结点(NULL)的根、作为根的儿子的项目前缀子树集合和频繁项头表;②项目前缀子树中的每一个节点由三个域组成:项目名、支持计数和节点链;③频繁项头表的每个条目包含三个域:项目名、支持度计数和节点链的头指针,指向该项目在模式树中的第一次出现位置。Fp-growth算法的具体描述如下: 算法:构造FP-Tree。
输入:事务数据库D,最小支持数ξ。 输出:FP-Tree。 过程:
(1) for each transaction t in D (2) {
(3) for each item x in t
(4) 从C1中找到与x同名的候选项c,使c的支持度计数加1;//说明:C1为候选1-频繁项集的集合。 (5) }
(6) 选取C1中支持度计数大于ξ的项,得到1-频繁项目集F,按支持度计数降序排列F得到L;
(7) 创建树根root,标记为NULL;//开始建树 (8) for each transaction t in D (9) {
(10) 选取t中频繁项目,并按L的顺序排列,记为[p|P],其中p为第一个元素,P为余下元素的列表;
(11) InsertTree([p|P],root);
(12) } 说明:过程的(1)-(6)句通过扫描一次事务数据库得到1-频繁项集L;从(7)开始创建FP-Tree,(8)-(12)通过再次扫描事务数据库来构建FP-Tree。
龙源期刊网 http://www.qikan.com.cn
procedure InsertTree([p|P],root) (1) {
(2) 如果root有儿子N,使得N.item-name=p.item-name,那么N.count++; (3) 否则
(4) {创建新节点N; (5) N.count=1; (6) p.parent=root;
(7) 将N.node-link链到头表中与它同名的项或树中与它同名的项;} (8) 如果P非空,那么 (9) {
(10) 把P的第一个元素赋值给p,并把它从P中删除; (11) InsertTree([p|P],N); (12) }
(13) }//过程结束
从上面的算法描述可以看出Fp-Tree构造算法刚好扫描两次事务数据库:第一次扫描生成频繁1-项目集;第二次扫描实现构造Fp-Tree。 3 数据异常检测技术的实现
结合以上数据库和数据挖掘算法的研究,本文设计实现的数据库异常检测系统结构如图1。其结构主要分为:数据预处理、数据挖掘和异常检测三个部分,系统采用的是SQL-Sever数据库。
3.1 数据预处理
本文的异常检测系统首先将进行数据采集工作,采集的方法是利用SQL-Server自带工具事件探测器对数据库的事务日志数据记录跟踪,采集得到的数据最终保存在数据表中。在数据采集完之后,需对数据进行预处理,将数据从多值型转化为布尔型。首先,把多个属于同一会话的审计记录归并到同一个会话连接中去。我们定义一个连接包含的属性为:(ID,用户,表,客户端,操
龙源期刊网 http://www.qikan.com.cn
作)。其中,ID为记录本次连接的ID;用户为操作表的数据库用户名称;表为正在运行中的表名;客户端为提交SQL语句的客户机名;操作为用户对表的select,delete,update,insert操作。然后,将每一个属性值由多值型转化为布尔型,在本系统中采用类别属性值,即将客户端分为c1,c21等几个布尔类型,将操作分为select,update,delete,insert几个布尔类型,得到相应的的例表。最后,将预处理后的表里的数据内容写入到文件中,以便于关联算法的挖掘。该文件的格式为:1表示客户端1;2表示客户端2;3表示用户1;4表示用户2;5表示用户3;6表示select;7表示update;8表示delete;9表示insert。该文件每一行输出的格式为:1 4 6 或 2 5 8,即该文件每一行的输出可作为一个事物,整个文件输出可作为为一个事物集D运用到关联算法中进行数据挖掘。 3.2 数据挖掘
将预处理后文件输出的事物集D运用Fp-growth算法进行关联挖掘,设最小支持度为10%,和最小置信度为70%,从而产生事物集D的关联规则集合,并对此规则集合进行归并更新。具体过程为:采集一定的新审计数据后,对这些数据进行审计挖掘,得到一些规则对新产生的规则集中每条规则,在聚簇规则中寻找相匹配的规则。规则匹配的含义为,两条规则的左右两边完全相同。如果在聚簇规则集中找到一条匹配的规则,那么将聚簇规则集中该规则的记数加1,并且使用加权平均的方法更新聚簇规则集中这条规则的支持度和可信度。否则,如果没有找到一条匹配规则,就将这条规则加入到聚簇规则集中,并将这条规则的计数器加1。这样训练聚簇规则集若干次,直到聚簇规则集稳定为止。规则最后保存到数据库或文件中。 3.3 异常检测
异常检测的步骤为:将采集的待检测审计数据进行预处理,转化成我们前面定义的会话记录格式。对待检测的会话连接记录进行关联规则挖掘,产生关联规则集(与前面训练异常模型的方法相同)。将产生的关联规则集与我们建立异常检测模型进行分析比较,比较出异常的记录。如果是异常,则显示出该记录的详细信息。 响应单元是对事件分析器做出反映的单元。对检测来说,如果发现异常,则把异常信息记录到异常表中,提供给系统管理员使用。对于异常检测,分析结果的处理包括对判断结果异常时候做处理,记录入侵检测信息并报告给系统管理员。 3.4 试验数据结果
本试验系统选取SQL-Server事件日志文件中300个事件作为历史日志行为数据集,另外选取150个事件集合作为当前审计行为数据集,按照上述系统设计进行Fp-growth关联挖掘,数据结果如下:
1)历史日志行为数据规则集:设最小支持度为10%,和最小置信度为70%,对选取出的300个历史事件数据挖掘结果如表1。
龙源期刊网 http://www.qikan.com.cn
2)当前审计行为数据规则集:这里取最小支持度为10%,最小置信度为70%,利用Fp-growth算法对150个当前审计事件数据挖掘出相应的结果,并采用上面类似的方法最后只取有实际意义的规则,挖掘出的规则集如表2。 3)异常结果:检测的异常结果如表3。 正常事件为:delete∧用户2→客户端1。 4 结束语
随着计算机数据库技术的迅速发展和应用的同时,数据库安全性威胁也日益严重,数据库的异常检测技术正成为研究的热点。本文对数据挖掘中的Fp-growth算法详细分析后,运用到数据库的异常检测技术中去,并通过搭建数据库异常检测系统得到了相应的试验数据。 参考文献:
[1] 用IDS入侵检测系统保卫数据库安全[J].电脑报,2005.
[2] 唐正军.黑客入侵防护系统源代码分析[M].机械工业出版社,2002. [3] 彭木根.数据仓库技术与实现[M].北京:电子工业出版社,2002. [4] 陈文伟,黄金才.数据仓库与数据挖掘[M].北京:人民邮电出版社,2004.
因篇幅问题不能全部显示,请点此查看更多更全内容