数据挖掘技术在数据库安全检测中应用的探讨
2009-07-07阿迪力江.阿布都热扎克
阿迪力江.阿布都热扎克
[摘要]从分析数据库安全的意义出发,详细的概述数据库的安全检测和用于安全检测的数据挖掘算法,并在此基础上提出一个基于关联规则挖掘的数据库安全检测系统的框架的搭建,并详细探讨安全检测系统的各个模块。
[关键词]数据库关联规则安全检测
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1120040-02
一、引言
随着科学技术和信息化的高速发展,计算机信息管理系统得到了广泛的应用。作为信息系统的三大支柱平台之一的数据库管理系统已经渗透到了各个领域,然而数据库在给人们带来数据管理方便的同时,各类病毒给数据库致命的破坏也是灾难性的。因此,数据库的安全检测逐渐成为了热点研究之一。
二、数据库的安全检测概述
数据库中安全检测机制主要包括以下几个方面:1.身份认证。用户身份认证是安全系统的第一道防线,目的是防止非法用户访问系统。为了有效可靠地管理用户权限,保证系统的安全,需要一套可靠完善的身份鉴别机制。身份鉴别有多种技术,可应用在管理信息系统的不同层次。口令权限管理是身份鉴别和保证系统安全的最常见、最方便的方法。除口令控制外,用户身份认证还可以采用比较复杂的计算过程和函数来完成。而智能卡技术、数字签名技术和生理特征(如指纹、体温、声纹、视网膜纹等)认证技术的迅速发展也为具有更高安全要求的用户身份认证提供了实用可行的技术基础。2.存取控制。数据库的存取访问控制机制是定义和控制用户对数据库数据的存取控制权限,以确保只授权给有资格的用户访问数据库的权限,并防止和杜绝对数据库中数据的非授权访问,通常在认证己成功的基础之上进行。3.数据库加密。虽然DBMS在操作系统的基础上增加了不少安全措施,但操作系统和DBMS对数据库文件本身仍然缺乏有效的保护措施。有经验的网上黑客会“绕道而行”,直接利用操作系统工具窃取或篡改数据库文件内容,这种隐患被称为通向DBMS的“隐秘通道”,它所带来的危害一般数据库用户难以觉察。分析和堵塞“隐秘通道”被认为是B2级的安全技术措施,对数据库中的敏感数据进行加密处理,是堵塞这一“隐秘通道”的有效手段。对于具有更高安全要求的DBMS,数据加密是保证用户数据隔离、防止敏感性数据泄漏的重要手段之一。4.审计追踪与安全检测。审计是指在系统运行的过程中,自动将对数据库的所有操作记录在审计日志中,来监视各用户对数据库施加的动作。由于数据库审计记录的数据量是极其庞大的,因此需要对大量的审计数据进行分析处理。另外,对数据库来说,仅仅依靠工作在文件和系统命令级的底层操作系统和网络入侵检测系统是无法保证检测的效率和精度的,这种入侵是操作系统和网络入侵检测系统所难以检测的。通过数据库安全检测可以弥补操作系统和网络入侵检测的不足,提高检测的准确度和有效性。
目前构造一个数据库安全检测系统是一个十分宏大的工程,很多情况下需要专业人员对已知的攻击进行分析,提取特征,然后用到检测中,或者采用很多统计方法来做异常检测,但是可扩展性和适应性都不强,而且规则库更新非常缓慢和昂贵。利用数据挖掘的自动发现数据特征的功能在安全检测中可以取得了很好的效果,将数据挖掘技术应用于数据库安全检测系统中,是目前检测领域一个重要的研究方向。
三、数据库安全检测算法
将数据挖掘算法应用到数据库的安全检测算法中,可以有效地从大量的审计数据中发现有助于检测的知识和规则。基于数据挖掘的数据库安全检测系统通过对审计数据进行挖掘,发现用户行为模式,生成规则库,然后对当前审计数据进行检测,判断非法行为是否发生,并响应。建立此种模型的前提是数据库用户在长期操作数据库的过程中会反映出一定的行为规律。基于数据挖掘的数据库安全检测算法,最常用的是关联规则,利用关联规则,找出数据库系统中各个数据表之间的关联关系,及在一个事务中那些表之间产生了联动。形成正常情况下数据表各个事件的规则和系统采集的运行数据进行比较,来预测数据行为的安全性。
关联规则。关联规则挖掘就是从大量的数据中挖掘出有价值描述数据项之间相互联系的有关知识。随着收集和存储在数据库中的数据规模越来越大,人们对从这些数据中挖掘相应的关联知识越来越有兴趣。例如:从大量的商业交易记录中发现有价值的关联知识就可帮助进行商品目录的设计、交叉营销或帮助进行其它有关的商业决策。挖掘关联知识的一个典型应用实例就是市场购物分析。根据被放到一个购物袋的(购物)内容记录数据而发现的不同(被购买)商品之间所存在的关联知识无疑将会帮助商家分析顾客的购买习惯。同理,数据库用户在长期操作数据库的过程中也会反映出一定的行为规律。例如哪些用户经常访问哪些数据库或数据库对象等。在建模的学习阶段,要求采集用户正常操作的数据,所以学习到的规则是用户正常状态下的行为规律。在检测时,如果一些会话连接不符合这些规则时,就认为这些连接是异常的。关联规则算法利用一个层次顺序搜索的循环方法来完成频繁项集的挖掘工作,这一循环方法就是利用k-项集来产生(k+1)-项集。算法的主要流程是:首先找出频繁1-项集,记为L1;然后利用L1,来挖掘L2,即频繁2-项集;如此循环下去,直到无法发现更多的频繁k一项集为止。每挖掘一层Lk就需要扫描整个数据库一遍,因此需要多次扫描数据库。为了提高按层次搜索并产生相应频繁项集的处理效率,关联规则算法利用了两个性质来帮助有效缩小频繁项集的搜索空间。这两个性质为任意非频繁项集的超集必定也是非频繁项集和任意频繁项集的子集都是频繁项集。关联规则算法主要包括以下三个步骤。(1)连接步。通过及Lk-1中的频繁(k-1)-项集的自连接产生候选k-项集的集合,该候选项集的集合记作Ck。设p,q∈Lk-1,如果(p[1]=q[2])^(p[2]=q[2])^……^(p[k-2]=q[k-2])^(p[k-1] 四、安全检测系统模型的建立 基于以上对数据库安全检测算法的分析,本文提出了一个基于关联规则算法的安全检测系统模型。该系统模型的框架图如下图1。从功能实现的角度把系统分为四大模块:数据预处理模块、规则生成模块、安全检测模块和响应模块。为提高安全检测系统的自适应性,增加了新规则生成模块。 1.数据预处理模块。在进行数据挖掘之前,对采集的数据库审计数据需要进行预处理。因为一个会话连接包含很多个审计记录,所以将多个属于同一会话的审计记录归并到同一个会话连接中去。本文定义一个会话连接包含下面的属性:(会话的数字ID,被审计的用户ID,被审计的用户操作系统终端描述字,被审计的操作)。对于数据库安全检测来说,所要挖掘的是用户行为模式,所以,任何一个规则都应该落实到每一个用户。所以可以将审计记录根据用户ID进行分组,分别使用关联规则挖掘算法,即先把记录按照被审计的用户ID从逻辑上分成几个互不相交的块,每次单独考虑一个分块。此算法可以高度地并行,把每个用户对应的记录分别分配给一个处理器生成频繁项集,产生相应的规则,最终合并所有规则。通过分类使得在生成频繁项集时,使用户之间的数据不相互干扰,减少了必须分析的候选项集的个数,从而提高了算法的效率,提高了海量数据的处理速度。
2.规则挖掘模块。根据安全检测方法,安全检测分为两大类型:滥用检测和异常检测,相应的,规则库也可以分为两大类:滥用检测规则库和异常检测规则库。本文所探讨的是数据库的异常检测,通过对正常数据的挖掘,发现其中存在的规则,生成异常检测规则库。滥用检测规则库则存放已知的攻击模式,由审计系统管理员根据个人的经验和以往审计检测出来的结果进行建立和维护。这使得滥用检测规则库并不完善。并且采用这种方法生成的滥用检测规则具有被动性,因此需要主动的发现滥用规则,从而完善滥用检测规则库。数据挖掘方法的优势在于它能从大量数据中提取人们感兴趣的、事先未知的知识和规律,而不依赖经验。本系统采用的关联规则算法描述如下:
For eaeh lk∈L;k>2
do begin /*生成规则*/
for eaeh subsetam∈lk
do begin
conf=support(lk)/support(am):
if(conf≥min_conf)
then begin
output rule am→(lk-am)(confidence=conf and support=support(lk));
end
end
end
3.安全检测模块。安全检测模块与规则挖掘库对应可分为滥用检测和异常检测,由于滥用检测的高漏检率,因此本文系统主要对异常检测进行分析。具体的异常检测过程为:
输入:滥用检测后的不匹配的审计记录
输出:异常记录
(1)获得第一条审计记录。(2)将审计记录与规则库中该用户的规则进行比较。(3)如果(2)中,比较的规则符合说明事务是正常事务,如不符合说明是可疑事务,则记录该事务为可疑事务并报警输出。(4)取下一条待检测的记录,为空说明检测完毕退出,不为空则继续重复(2)-(4)。
异常检测的响应程序描述如下:
说明:
P1→record:P1所指向的记录
P2→rule:P2所指向的规则
Numberitems:(P1→record):记录所含的项目数
Numberitems:(P2→true):规则所含的项目数
Dubious_record:存放可疑记录
输入:滥用检测过滤后的数据集
输出:可疑的数据库审计记录
打开存放待检测会话记录的文件,P1指向该文件第一条记录
While(P1≠NULL)
{
P2指向第一条规则
while(P2≠NULL)
{
if(Numberitems:(P2→true)=Numberitems:(P1→record)&&(P2→true→itemi))
then
break;
e1se P2++
}
add P1→record to dubious_record
P1++;
}
根据检测结果可以分为以下两种情况:滥用检测不匹配,异常检测匹配说明该审计记录是正常的用户行为和均不匹配认为,即在滥用检测和异常检测中均不匹配的记录是可疑记录。它可能是不符合用户历史行为模式的正常行为,也可能是未知的非法行为。
4.响应模块。根据安全检测结果分别产生不同的告警。如果为非法数据则通知审计管理员采取适当的措施,尽量减少入侵造成的损失。如果为可疑数据则通知审计管理员对审计记录进行标记,将可疑数据分为正常数据和非法数据,作为更新规则库的数据源。
5.新规则生成模块。在数据库安全检测中,检测的高效性取决于规则库的完备性。为此,规则库必须及时更新。新规则生成模块就是用来不断修正和更新用户的正常行为模式的。安全审计数据是随时间的变化而变化的,用户的行为模式很可能随时间呈现出某种发展趋势,使得当前己发现的用户行为模式可能不再生效,而可能存在新的用户行为模式有待于进一步去发现。因此,不仅需要有高效的算法来挖掘出用户行为模式,而且也迫切需要有高效的算法来更新、维护和管理已挖掘出来的用户行为模式对于在异常检测中不匹配的数据,需在审计管理员的参与下将记录分别标记为正常或非法行为,然后采用规则挖掘模块对标记为正常的数据进行挖掘,生成新的用户行为模式,将其存入规则库中,更新规则库。一般说来,正常的数据是大量的,可以采用关联规则挖掘算法,产生新的关联规则。对于非法数据,就需要在审计管理员的参与下,生成相应的检测规则。这样就可以更新异常检测规则库,实现了安全检测系统的自适应性,并降低误警率和漏检率。
五、结束语
现在的信息系统中,采取了各种措施保护信息系统的安全,但大多针对网络、病毒等方面,但对数据库本身的监管较少,特别是对数据库操作人员的监管上。而数据挖掘理论的成熟为数据库安全监管提供了许多可用的算法,因此,数据挖掘算法和数据库安全检测的结合时未来数据库安全的一个发展趋势。
参考文献:
[1]王丽娜、董晓梅、郭晓淳、于戈,基于数据挖掘的网络数据库入侵检测系统,东北大学学报(自然科学版),2003,3(24-3).
[2]黄晓燕、许龙飞,数据库入侵检测的一种数据挖掘方法计算机系统应用,2005.11.
[3]安淑芝,数据仓库与数据挖掘[M].清华大学出版社,2005.
[4]朱明,数据挖掘,中国科学技术大学出版.
[5]梁曼君、张瑞、熊范伦,从数据库中发掘定量型关联规则[J].计算机科学,1999,26(8).