一种基于数据挖掘的网络异常检测方法与流程

文档序号:11156615

本发明属于计算机应用技术领域,更具体地说,尤其涉及一种基于数据挖掘的网络异常检测方法。



背景技术:

数据挖掘是从存放在数据库,数据仓库或其他信息库中的大量数据中挖掘有趣知识的过程。数据挖掘从数据库中大量模糊的、有噪声的原始数据中,按照一定规则发掘重要的信息,提取有价值的知识。数据挖掘技术是一门交叉学科,涉及到入侵检测、智能数据库与机器学习等多个领域,数据挖掘已经成为热门的研究课题。在入侵检测中应用数据挖掘技术,能提高了检测效率、增强了系统的自适应性和扩展性。基于数据挖掘的入侵检测系统,能很好地保护计算机网络系统的安全,具有很高的研究价值和现实意义。

21世纪的信息化革命给人类社会带来了翻天覆地的变化,改变了全球的信息交流方式,随着计算机和通信技术的发展,网络成为当今世界发展的重要因素。近年来,计算机网络发展极其迅速,信息网络涉及到了国家的政府、军事、文教等诸多领域,政府的每项重大决策、商业经济机密、银行资金流动、能源统计、科研数据等都包含了大量的信息流动,信息网络已经成为社会发展的重要保证,是体现国家综合实力的象征。随着计算机的网络化和全球化,社会的各个领域在网络时代产生了质的飞跃,人们的学习、工作、生活都融入到网络中,通过网络人们共享资源。

经过数十年的发展,网络环境已经发生了很大的变化,结构由简单到复杂,应用由单一到多元化,维护网络的正常稳定运行也成为了极其重要的问题。各种网络技术在时间和空间上的延伸,用户数量和设备的增加,网络攻击行为频发等,这些网络中的不稳定因素使网络管理的难度加大。通过网络的犯罪活动口益严重,保障计算机网络系统的安全刻不容缓,网络安全已成为国家安全的重大问题。只有计算机网络安全,社会的信息化才能正常发展,国家的信息才能安全,才能保证人民的网络生活不受侵害,因此,网络安全技术的研究具有重要的社会意义和现实意义。

目前,网络应用中存在许多不安全因素,主要表现为信息泄漏、信息篡改、非法使用网络资源、非法信息渗透等,网络信息的安全与防范显得越来越重要。计算机网络安全隐患多,维护难度大,攻击手段变得多元化、复杂化、智能化,因此必须要建立一个安全有效的保护系统,才能保证网络健康稳定的运行。

传统的网络安全技术主要有:加密技术、身份鉴别和认证技术、访问控制技术、防火墙技术等,在计算机网络发展的初级阶段,这些安全技术起到了一定的作用,保证了网络的正常运行和信息的交流。面对当前复杂的网络环境,传统的安全保护技术主要有以下几个问题:

1.这些技术都属于静态安全技术范畴,不能主动跟踪入侵者,同时静态防御中的安全策略牺牲了用户的部分权利,这与网络的开放性,共享性相违背;

2.不能防止来自系统内部的攻击,对授权用户滥用计算机及其资源的情况无能为力;

3.由于性能的限制,无法提供实时监测。

因此,计算机网络安全的研究重点由静态安全技术逐步转向主动跟踪、主动检测的动态安全技术。



技术实现要素:

本发明的目的是为了解决现有技术中存在的缺点,而提出的一种基于数据挖掘的网络异常检测方法。

为实现上述目的,本发明提供如下技术方案:

一种基于数据挖掘的网络异常检测方法,包括:

系统标准输入、输出:stdio;

系统标准库:stdlib;

系统数学函数库:math;

系统标准输入、输出流:iostream;

具体包括如下步骤:

S1、首先,启动主程序文件detection.cpp,读入待检测的数据和进行预处理;

S2、依次调用数值化程序num.epp、数据归一化程序format.cpp两个文件对数据进行预处理,提高后面算法的运行效率;

S3、调用个体适应度计算程序fitcal.cpp计算个体的适应度,以用于选择算子部分的赌盘选择;

S4、调用遗传算子程序genetic.cpp;

S5、调用聚类分析和生成模块clust.cpp,将前一步所得个体作为聚类划分方法的初始中心点,由此模块对数据进行划分并产生聚类;

S6、调用数据可读性转换模块trap.cpp对产生的聚类进行标识,确定正常数据和异常数据类型;

S7、报警模块alert.cpp向控制台输出正常数据和异常数据的信息。

优选的,在S4中,所述调用遗传算子程序genetic.cpp的具体步骤如下:

a首先,调用选择算子选择适应度较高的个体;

b然后,调用交叉算子对个体进行适度地交叉,提高全局搜索能力;

c最后,调用变异算子对个体进行适度地变异,提高局部搜索能力,一共迭代4次。

优选的,在S5中,所述聚类的具体方法如下:

输入:密度半径r,n条记录的数据集A;输出:k个聚类;包括如下步骤:

A、扫描一次数据集A,For:读取样本集合A中的每一个数据i;

B、计算每个数据的点密度,并计算出每个数据点的距离和Dᵢ与距离均和H;

C、如果数据对象密度值小于密度值Q,并且D>H则视为该对象为孤立点t;

D、去除A中的孤立点数据,得到新的数据集A',并记录A'中的样本个数m=n-t,输出孤立点;

E、运行改进的获取初始聚类中心的算法,获得k个初始聚类中心;

F、对点集U进行聚类,形成k个簇集UK

异常检测是根据用户的行为或资源正常使用状况的正常程度来判断是否入侵,可以检测出新的攻击行为。异常检测主要观察通信中出现的异常现象,而不是已知的入侵行为。异常检测假设入侵行为都是异常的,比如外部闯入、内部的不正常操作和攻击,基于这个假设,收集系统正常行为的历史数据,用定量的方法为系统建立一个正常行为的特征库,这样在理论上与正常特征不一样的行为和操作就可以视为入侵行为。异常检测判断系统资源的使用情况,通过运行监控程序监视用户在系统上的行为,将当前的活动的特征和正常行为的特征比较,若当前的活动的特征和正常行为的特征的差别程度大于设定的闽值即判定为入侵,并发出警报。对于异常检测,该方法的关键是对异常度阀值的设定与正常特征的选择。

本发明的技术效果和优点:本发明提供的一种基于数据挖掘的网络异常检测方法,与传统技术相比,本发明有效地应用数据挖掘技术于入侵检测中,基于入侵检测的应用需要对原有的聚类分析算法进行改进,使得算法能够适用于入侵检测的环境和数据类型,达到入侵检测的目的,并提高入侵检测的检测率,降低误报率;同时,本发明引入了遗传算法解决聚类算法收敛于局部最优解的缺陷,从而进一步提高了入侵检测的检测率,降低了误报率。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

一种基于数据挖掘的网络异常检测方法,包括:

系统标准输入、输出:stdio;

系统标准库:stdlib;

系统数学函数库:math;

系统标准输入、输出流:iostream;

具体包括如下步骤:

S1、首先,启动主程序文件detection.cpp,读入待检测的数据和进行预处理;

S2、依次调用数值化程序num.epp、数据归一化程序format.cpp两个文件对数据进行预处理,提高后面算法的运行效率;

S3、调用个体适应度计算程序fitcal.cpp计算个体的适应度,以用于选择算子部分的赌盘选择;

S4、调用遗传算子程序genetic.cpp;

S5、调用聚类分析和生成模块clust.cpp,将前一步所得个体作为聚类划分方法的初始中心点,由此模块对数据进行划分并产生聚类;

S6、调用数据可读性转换模块trap.cpp对产生的聚类进行标识,确定正常数据和异常数据类型;

S7、报警模块alert.cpp向控制台输出正常数据和异常数据的信息。

具体地,在S4中,所述调用遗传算子程序genetic.cpp的具体步骤如下:

a首先,调用选择算子选择适应度较高的个体;

b然后,调用交叉算子对个体进行适度地交叉,提高全局搜索能力;

c最后,调用变异算子对个体进行适度地变异,提高局部搜索能力,一共迭代4次。

具体地,在S5中,所述聚类的具体方法如下:

输入:密度半径r,n条记录的数据集A;输出:k个聚类;包括如下步骤:

A、扫描一次数据集A,For:读取样本集合A中的每一个数据i;

B、计算每个数据的点密度,并计算出每个数据点的距离和Dᵢ与距离均和H;

C、如果数据对象密度值小于密度值Q,并且D>H则视为该对象为孤立点t;

D、去除A中的孤立点数据,得到新的数据集A',并记录A'中的样本个数m=n-t,输出孤立点;

E、运行改进的获取初始聚类中心的算法,获得k个初始聚类中心;

F、对点集U进行聚类,形成k个簇集UK

综上所述:本发明基于误用检测的方法不能有效地检测未知类型的攻击,基于异常的入侵检测方法不依赖于入侵检测的特征库,能检测未知类型的攻击,有必要研究行之有效的异常检测的方法。本发明采用了数据挖掘技术,对入侵检测系统做改进,可以有效适用于入侵检测系统的数据挖掘算法,进一步提高检测率并降低误报率。当对系统的攻击发生时,系统能够检测出攻击行为,及时向网络管理员报警,达到入侵检测的目的。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1