数据库用户异常行为检测方法与流程

文档序号:20702511发布日期:2020-05-12 15:55阅读:646来源:国知局
本发明属于网络信息安全
技术领域
:,具体涉及数据库用户异常行为检测方法。
背景技术
::在网络信息安全体系中,数据库的安全保护一直被人们所关注,数据库威胁主要分为外部攻击与内部攻击。外部攻击由外部未经授权的用户,利用系统漏洞进行非法的数据库访问,尽管传统的数据库安全服务能够提供一定的防御措施,有效抵御外部攻击,但是其却不易应对来自内部人员滥用权限造成的安全问题,此类攻击则被称为内部攻击,由于内部人员完全了解系统安全设置,甚至对一些数据拥有访问权限,此类数据库事务的访问不容易被发现,从而对数据造成潜在威胁,因此对于防范内部攻击目前变得尤为重要。出于对现有的安全措施不足,并防止此类攻击的发生,因此有必要设计一种可以有效监测数据库非法入侵的检测系统(databaseintrusiondetectionsystem,dids),以用来保护数据库信息安全。有关dids系统,elaziz等人提出了一种通过增强顺序数据挖掘数据库入侵的监测模型,通过对用户的正常历史记录完成挖掘,利用机器学习模型进行检测,从而实现异常记录的挖掘检测。yi等人提出了一种根据相关系统数据提取行为特征完成的入侵检测方案。张夏提出了一种支持向量机的分类方法完成网络入侵检测的方案。但目前而言,多数的此类系统对于入侵检测能力提升的同时,误报率也在提升,会对正常的用户产生一定的干扰。技术实现要素:本发明解决目前数据库用户异常行为检测类系统对于入侵检测能力提升的同时,误报率也在提升,会对正常的用户产生一定的干扰的技术问题。为实现上述技术目的,本发明采用了以下技术方案:数据库用户异常行为检测方法,其特征在于,包括:本发明提供了一种数据库用户异常行为检测方法,包括以下步骤:将数据库事务数据集中数据库事务记录的属性转化为纯数值型属性的元组,得到数值化后的数据库事务特征集合;将得到的数据库事务特征集合作为optics算法的聚类数据进行聚类;根据聚类结果,将被标记为簇标签的记录标记为正常的用户行为,对于未能获得簇标签的记录作为离群元组集合记录的lof值计算,对于lof值小于设定值的记录将其标记为正常的用户行为;对于其他未被标记的记录输入至预先训练完成的集成学习分类模型进行分类获得分类结果;所有数据库事务特征都标记完成获得最终确定用户行为模式库;利用用户行为模式库匹配数据库事务数据完成用户异常行为检测。进一步地,所述数据库事务记录的属性包括sql语句内的信息、事务发生的时间和/或事务的请求源。进一步地,对所述元组中的元素进行归一化,方法为:统计所有元组各个属性的上界与下界,将每个属性按照所处上下界的比例,折算成[0,1]之间的数值。进一步地,optics算法的聚类数据进行聚类的具体方法如下:步骤1:输入数据库事务特征集合d,对于数值型属性,原样保留,对于非数值型、离散型属性,使用数值映射表将其映射为等距数值,获得数据集合u;将数据集合u分为两组数据集合u1与u2;步骤2:将数据集合u1与u2分别进行归一化处理,得到数据u’与u”;定义optics算法中的领域半径r及最小个数minpts参数;步骤3:定义两个有序集合:集合r1和排序集合o;步骤4:从数据集合u’任意取出不在结果集合r1中且未标记已处理的元组p,先将其标记为已处理状态;步骤5:利用欧式距离计算公式计算该元组与其他元组的欧式距离,并获得以元祖p为中心,ε为半径的其他元组集合,若该集合中所含数量大于等于minpts时,则将点p列入结果集合r1中,并将其邻域集合列入排序集合,对排序集合o中元组计算他们的可达距离,并进行升序排序,然后从中取出序列首个元组,重复步骤f。若排序集合o已空,则重复步骤4;若数据集合u’中已无未处理的元组则optics算法结束,输出有序的结果集合r1,集合包含每一个元组的最小可达距离d;获得数据集合u’中在不包含在结果集合r1的元组构成的离群元组集合f,对数据集合u”进行与步骤e相同的optics聚类操作,获得结果集合r1’与离群元组组成的离群元组集合f’。再进一步地,对于离群元组集合f内各个元组使用lof计算公式计算其lof值,若其lof值<1,则将其移除集合f,并列入稠密点集合r2,最终将以稠密点集合r2、离群元组集合f作为输出。再进一步地,对于离群元组集合f,继续交由集成学习模块,集成学习模块采用bagging、boosting、stacking作为复合模型,其中bagging与boosting均采用多层感知器mlp作为个体分类器,stacking的基学习器使用mlp、k-nn和dt,元学习器使用nb进行组合,以结果集合r1’与离离群元组集合f’作为训练集,其中r1’表示为正常行为记录元组、f’为异常行为元组,训练三个复合模型;将离群元组集合f作为输入,分别进行bagging、boosting、stacking复合模型进行分类,分别给出分类结论ba、bo、st;若离群元组集合f中元组被ba、bo、st中任意结论标识为正常行为记录,则该元组即为正常行为,列入正常行为集合r3中;否则为异常行为,列入异常行为集合f1中。再进一步地,获得用户行为模式库包括:正常用户行为表ght和异常行为表mht,其中集合r1、稠密点集合r2、正常行为集合r3均留样存放至正常行为表ght中,对于异常行为集合f1中元组列入异常行为表mht中。有益技术效果:本方法采用无监督学习与有监督学习相结合,实现无需提供先验样本的方式进行数据库异常行为的监测方法。在无监督学习中,采用optics聚类算法给出基于聚类的行为结论,然后再使用lof计算公式对于非簇中元素进行进一步确认非稠密的检测,该方法解决了单一使用lof计算的计算量过大的问题,提高检测效率。其次在optics算法给出的聚类结论,作为有监督学习过程,即集成学习中所需要的训练集合,使用bagging、boosting、stacking复合模型提升经典分类器的分类效率。经过optics聚类、lof计算、3种集成学习复合模型的分类检测,尽可能挖掘原始数据集中的“正常用户行为”,以用来降低系统的误报率,避免对用户正常的使用带来影响。对已经检测出的正常行为与异常行为,将其特征进行留样,可对未来产生的新的用户行为快速匹配做出响应。因此本发明能够明显提升入侵检测能力,以及降低误报率,提高数据库用户异常行为检测的效率和精度。附图说明为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明具体实施例提供的方法整体流程图;图2为本发明具体实施例模拟器生成的一组二维数据集的分布情况具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了更好地理解本发明,下面对本发明技术方案中的相关技术特征进行说明。optics聚类:optics是一种不需要用户提供特定密度阈值的密度聚类算法,是基于具有噪声应用的基于密度的空间聚类(density-basedspatialclusteringofapplicationswithnoise,dbscan)的改进算法,其并不显式地产生数据集聚类,通过输出簇排序,表达数据的基于密度的聚类结构。核心思想为:对于簇ci中任意对象p,在其ε邻域nε(p)中,至少存在minpts-1个其他对象,其中ε代表欧里几何距离半径,minpts表示使得对象p作为核心对象在他的ε邻域中至少应含有的对象数量。optics计算中,存在核心距离(core-distance,cd)和可达距离(reachability-distance,rd)两个重要信息。对象p的核心距离cdε,minpts(p)定义为:设半径参数为ε',使得p的ε'-邻域刚好包含minpts个对象,若p不是关于ε'和minpts的核心对象,则p的核心距离没有定义,表达式为公式(1):对象p到另一个对象q的可达距离rdε,minpts(p,q)定义为使得p从q密度可达的最小半径值,其中q必须是核心对象,并且p必须在q的领域内,其表达式为公式(2):optics聚类算法,最终将根据识别结果输出数据集的簇排序,该排序给出了对数据结构化和聚类的一般观察。局部离群因子(lof):局部离群因子(localoutlierfactor,lof)通过计算样本点的在局部的分布情况,以数值方式反映其离群程度,是一种基于密度的离群点检测方法,该算法首先需要计算局部可达距离lrd,该距离被描述为对于对象p,其minpts邻域中其他元素平均可达距离的倒数,表达式为公式(3):其次,对lof值进行计算,该值表达式为:若lof值小于1时,则表明该点所在位置相对稠密,不是离群点。集成学习是一个复合模型,用于提高个体分类准确率,产生比个体分类器更好的结果。该复合模型由多个分类器组合而成,个体分类器进行投票,组合分类器基于投票返回类标号进而进行预测,组合分类器往往比他的成员分类器具备更高的准确率。目前常用的方法复合模型包括:bagging、boosting和stacking。本发明提出的数据库入侵检测系统由三个阶段组成:数据预处理阶段、聚类分析阶段和集成学习分类阶段。起初对原始数据集进行预处理操作,将每条记录进行特征提取并映射为可供聚类、分类模块识别的纯数值类型结构,经过交叉分解后进行optics聚类,产生用户行为配置文件与检验数据集聚类结果,对于检验数据集结果中的离群点再进行lof计算,对于lof值大于等于1的记录即仍然是离群点记录继续交由集成学习模块识别,经过多次识别后未能成功分类的记录将被识别为恶意用户行为。实施例、本实施例提供了数据库用户异常行为检测方法,流程图见图1,包括以下步骤:a)处理数据库事务记录,将根据多条sql语句内的信息、事务发生的时间、事务的请求源进行预处理,产生由7个属性构成的元组结构,得到数据集合d。b)将数据集合d数值化,具体方法为:对于数值型属性,原样保留,对于非数值型、离散型属性,使用数值映射表将其映射为等距数值,获得数据集合u。将数据集合u分为两组数据集合u1与u2,使得u1+u2=uc)将数据集合u1与u2分别进行归一化处理,得到数据u’与u”,作为optics算法的聚类数据,将根据系统多次的调试结果,设定当前所需环境相对适配的optics算法的领域半径ε,与最小个数minpts参数。d)optics主要特征为,将维护两个有序集合,分别以结果集合r1和排序集合o表示。e)从数据集合u’任意取出不在结果集合r1中且未标记已处理的元组p,先将其标记为已处理状态。f)利用欧式距离计算公式计算该元组与其他元组的欧式距离,并获得以p为中心,ε为半径的其他元组集合,若该集合中所含数量大于等于minpts时,则将点p列入结果集合r1中,并将其邻域集合列入排序集合,对排序集合o中元组计算他们的可达距离,并进行升序排序,然后从中取出序列首个元组,重复步骤f。若排序集合o已空,则重复步骤e。若数据集合u’中已无未处理的元组则optics算法结束。g)optics最终将给出一个有序的结果集合r1作为输出,该集合包含每一个元组的最小可达距离d。其中数据集合u’中可能存在不包含在结果集合r1的元组,即表示该元组离群,对于离群元组组成集合f。h)对数据集合u”进行与步骤e相同的optics聚类操作,获得结果集合r1’与集合f’。i)对于离群元组集合f内各个元组使用lof计算公式计算其lof值,若其lof值<1,则将其移除集合f,并列入稠密点集合r2,最终将以稠密点集合r2、离群元组集合f作为输出。j)对于离群元组集合f,继续交由集成学习模块,集成学习模块采用bagging、boosting、stacking作为复合模型,其中bagging与boosting均采用mlp作为个体分类器进行算法提升,stacking的基学习器使用mlp、k-nn、dt,元学习器使用nb进行组合,以步骤h给出的r1’和f’作为训练集,其中r1’表示为正常行为记录元组、f’为异常行为元组,训练三个复合模型。k)再将步骤i中离群元组集合f作为输入,分别进行bagging、boosting、stacking复合模型进行分类,给出分类结论ba、bo、st。l)若f中元组被ba、bo、st中任意结论标识为正常行为记录,则该元组即为正常行为,列入集合r3中;否则为异常行为,列入集合f1中。m)对于以上步骤中产生的r1、r2、r3均留样存放至正常行为表ght中,对于f1中元组列入异常行为表mht中。n)对于以后系统新产生的行为元组,将其进行ght、mht中所留样记录进行匹配,若存在相似则可直接得出正常或异常行为结论。在本实施例中,数据预处理阶段包括如下:为了构建用户行为数据,系统必须将数据库事务数据集转化为可被系统识别的数据格式。本发明提出一种由七个字段构成的数据结构,由以下7个元组组成每一次的事务特征:<u_id,query_type,query_num,table_list,attr_list,time_slot,ip_seg>其元组各个元素含义见表1。表1事务特征元组中各元素含义为使得该数据结构可供聚类、分类模块进行处理,对元组中各个元素映射为数值型数据,并进行归一化处理,转化为[0,1]之间的数值,然后将数据集进行交叉分解以供后续使用。对于元组元素值的获取以及数值转化将以一次事务为例,该事务由两条sql查询语句构成:sql1:selectx,yfromtablet1wherez=1sql2:deletefromt2wheren=2其中,本次事务中共涉及两个数据库表<t1,t2>,两个数据库表字段<t1.z,t2.n>,两种查询类型<select,delete>,将非数值类型的元组映射为数字表示形式,每个数值将唯一表示一种元素的状态。假设本次事务发生的时间段为上午8:00-8:30之间,则time_slot为16,用户请求源ip网段归属于3部门,则本次事务描述为:<3,{1,4},2,{2,4},{1,6},16,3>。本实施例中聚类分析阶段使用数据预处理阶段分解得到两个数据集分别进行用于训练与检测的聚类处理,算法采用optics聚类。其中较少数量的数据集作为训练数据集,用于产生供分类阶段使用的参照数据,较多数量的数据集作为检测数据集,作为系统报告的输出的主体内容。检测数据集经过聚类算法处理后,被成功标记为簇标签的记录将被标记为正常的用户行为,而对于未能获得簇标签的记录将继续进行该记录的lof值计算,对于lof值小于1的记录同样被标记为正常的用户行为,而对于其他记录即未被成功标记的点将递交至集成学习分类阶段继续处理。本实施例集成学习将基于bagging、boosting和stacking三种复合模型完成。在个体分类器的选择中,本发明使用以下4种常用的分类器进行实验:朴素贝叶斯(naivebayes,nb)、决策树(decisiontrees,dt)、k-最近邻(k-nearestneighbor,k-nn)、多层感知器(multilayerperceptron,mlp)。朴素贝叶斯是一种常用的分类器,该分类器假设数据集中各项特征相互独立进行分类;决策树适合处理高维度数据,且不需要进行参数假设;k-nn适用于样本容量比较大的类域的自动分类,对异常点不是很敏感;mlp是一种前馈人工神经网络模型,可学习得到非线性模型。在bagging、boosting和stacking的复合分类器中,将使用上述4种分类器进行分别测试。bagging模型中通过投票方式获得最终的分类结果,能够有效降低使用单一分类器时的方差;在boosting模型中,通过迭代修正测试数据集权重的方式,提升模型的精确度。stacking模型中将分为两层学习器,在第0层(基学习器)通过k折分段的方式拆分原始数据,交由其他个体分类器进行分类预测,再将结果递交至第1层(元学习器)获得最终的结果,从而实现更高的准确性与较低的误报率。本实施例中对于各阶段已经成功识别的用户行为,对特征进行留存,留存的数据库包含正常历史记录表(genuinehistorytable,ght)与恶意历史记录表(malicioushistorytable,mht),以便对于用户后续过程中产生相同特征的行为时,不再进行额外的计算工作。对于optics与lof计算中给出的正常事务都将更新至ght中。同时,若集成学习模块中识别出的正常或恶意的事务,也相应的放到ght或mht中。表2给出ght的存储样例,表3给出mht的存储样例,从表中可以看出,对于mht表而言,并不记录对应的用户id,因为恶意行为的产生与用户无关。表2正常历史记录表以下给出实验结果及分析实验环境是在cpu为intel(r)core(tm)i7-6700@3.40ghz,16g内存,硬盘1t,操作系统为windows10的计算机上进行,本系统已使用python语言开发实现。实验选择的测试数据集如下:由于未能在公开的且已带有标签的数据集中找到符合本发明的数据集,本发明参照panigrahi等人所提出的数据生成原理模拟产生相关的事物以及对应的标签。该模拟器包含两个符合高斯分布的事务生成器,分别产生正常事务数据与恶意事务数据,可以生成多维度下的模拟数据集。为观察模拟器数据生成效果,实验前创建一组由30000个二维数据构成的数据集合,其分布如图2所示,在图2中圆状点对应大量的正常事务,“x”状点对应恶意事务。由图2可知整体数据分布符合所模拟场景的近似情况,本实验使用本模拟器产生的30000条数据集进行性能测试,每一条事务记录将包含7个属性元组,以及其对应的“正常”或“恶意”的标签。性能分析为分析本发明所提出的系统性能,将采用准确度(accuracy,acc)、精度(precision,pre)、真阳率(truepositiverate,tpr)、假阳率(falsepositiverate,fpr)、f-measure指标进行量化。acc表示正确检测的事务中,占全部事务的百分比,表达式为式(5);pre表示在全部样本中正确检测的事务百分比,表达式为式(6);tpr表示在实际为正常事务中,检测为正常事务的百分比,表达式为式(7);fpr表示在实际为恶意事务中,检测为恶意事务的百分比,表达式为式(8);f-measure是pre与fpr的加权调和平均数,表达式为式(9),当f-measure较高时则能说明实验方法比较有效。本发明采用十折交叉验证规则,将原始数据集分为训练数据集与测试数据集。在optics聚类模块中,其聚类性能主要由参数ε与minpts(简写为m)决定,为此本发明对各种参数进行了搭配测试,其测试结果如表4所示。观察表4中1、2、5、6、10对照组可知,参数ε越小,其fpr值越来越小,f-measure越来越大,整体性能得到提升,但参数ε小到超过数据阈值时,将无法完成聚类。观察2、5、7、8对照组,整体识别效果比较良好,但由2-4、6-9对照组数据可知,minpts值越大,其聚类结果性能均有所降低,因此综上所述,对照组2,即ε=0.01且minpts=10时,聚类模块识别效果较好,该参数下给出的结果将作为后续的实验数据。表4optics聚类不同参数下的性能表现表5给出了在集成学习模块中各个个体分类器在单独分类和复合模式下分类的性能表现情况。观察表5可知,使用复合模型相比于个体分类器在性能结果上有不同程度的提高。在不同分类器模型之间,mlp分类器综合而言具备较高的pre、tpr以及较低的fpr,其f-measure分值也是最高的,该分类器在bagging与boosting模型下,提高pre的同时也大幅度降低了fpr值。表5四种个体分类器在单一使用、结合bagging、结合boosting模式下的性能表现表6给出了使用上述的四种分类器,在stacking模型下的性能表现,分别选用该四种分类器作为元学习器进行测试。其中在nb作为元学习器时,其他三种分类器为基学习器时,各项指标中表现出了较好的性能。表6四种个体分类器在stacking模式下不同搭配的性能表现实验结果表明,当聚类模块设置参数ε=0.01,minpts=10时,集成学习模块中bagging、boosting复合模式下结合mlp个体分类器,stacking模式下采用nb个体分类作为元学习器具备更好的系统识别率和更低的误报率。本发明提出了一种新的对数据库入侵检测的识别系统,该系统基于optics聚类算法与集成学习模块来识别入侵行为。入侵检测大致分为两个主要阶段:训练阶段与测试阶段。在训练阶段中,将数据库事务数据集进行预处理,经由optics聚类构建用户配置文件,为集成学习模块提供样本数据。测试阶段,将数据集先由optics聚类算法进行聚类,对于已经识别到的簇内记录将被标记为正常记录,对于未能识别的簇外记录继续计算它们的局部离群因子(lof),以此判断其离群程度,对于仍然处于离群的记录递交至集成学习模块进行进一步的行为的判断,选用nb、dt、k-nn和mpl作为个体分类器,使用bagging、boosting和stacking作为复合模型。本发明利用随机模型产生了一套包含大量正常与恶意事务请求的模拟数据集,经过反复实验后发现,对于聚类模块而言,optics聚类方法中参数ε=0.01、minpts=10时,聚类模块识别效果较好。在集成学习模块中,bagging、boosting复合模型采用mlp作为个体分类器时分类结果较其复合前均有明显的性能提高,相比于其他个体分类器的组合,也有较好的分类结果,对于stacking复合模型中,基学习器使用mlp、k-nn、dt,元学习器使用nb的效果要优于其他组合。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1